Socket
Socket
Sign inDemoInstall

react-geosuggest

Package Overview
Dependencies
1
Maintainers
3
Versions
64
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.18.1 to 1.19.0

module/prop-types.js

14

CHANGELOG.md

@@ -0,1 +1,15 @@

## 1.19.0 (2016-03-11)
#### Bug Fixes
* remove isMounted antipattern ([b347e9a3](https://github.com/ubilabs/react-geosuggest/commit/b347e9a3eb935e89ca30797ba253cd299b2a1e57), closes [#71](https://github.com/ubilabs/react-geosuggest/issues/71))
* Add className option for fixtures ([880fe77](https://github.com/ubilabs/react-geosuggest/commit/880fe7758810a0e259c2442698cdf07309829b41))
#### Features
* add props validation ([7d68a02f](https://github.com/ubilabs/react-geosuggest/commit/7d68a02f8bbdea86fdc91b87a084e5ee25d98ca4), closes [#33](https://github.com/ubilabs/react-geosuggest/issues/33))
### 1.18.1 (2016-02-11)

@@ -2,0 +16,0 @@

74

dist/react-geosuggest.js

@@ -84,2 +84,6 @@ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Geosuggest = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){

var _propTypes = require('./prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _filterInputAttributes = require('./filter-input-attributes');

@@ -119,7 +123,7 @@

this.state = {
isMounted: false,
isSuggestsHidden: true,
userInput: this.props.initialValue,
activeSuggest: null,
suggests: []
suggests: [],
timer: null
};

@@ -129,3 +133,3 @@ }

/**
* Default values for the properties
* Types for the properties
* @type {Object}

@@ -169,4 +173,2 @@ */

this.geocoder = new googleMaps.Geocoder();
this.setState({ isMounted: true });
}

@@ -180,3 +182,3 @@

value: function componentWillUnmount() {
this.setState({ isMounted: false });
clearTimeout(this.state.timer);
}

@@ -344,7 +346,7 @@

this.props.onBlur();
setTimeout(function () {
if (_this5.state && _this5.state.isMounted) {
_this5.setState({ isSuggestsHidden: true });
}
var timer = setTimeout(function () {
_this5.setState({ isSuggestsHidden: true });
}, 100);
this.setState({ timer: timer });
}

@@ -492,2 +494,8 @@

Geosuggest.propTypes = _propTypes2['default'];
/**
* Default values for the properties
* @type {Object}
*/
Geosuggest.defaultProps = _defaults2['default'];

@@ -498,3 +506,3 @@

},{"./defaults":3,"./filter-input-attributes":4,"./input":5,"./suggest-list":7,"classnames":1}],3:[function(require,module,exports){
},{"./defaults":3,"./filter-input-attributes":4,"./input":5,"./prop-types":6,"./suggest-list":8,"classnames":1}],3:[function(require,module,exports){
/**

@@ -725,2 +733,41 @@ * Default values

/**
* Default values
*/
exports['default'] = {
fixtures: _react2['default'].PropTypes.array,
initialValue: _react2['default'].PropTypes.string,
placeholder: _react2['default'].PropTypes.string,
disabled: _react2['default'].PropTypes.bool,
className: _react2['default'].PropTypes.string,
inputClassName: _react2['default'].PropTypes.string,
location: _react2['default'].PropTypes.object,
radius: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]),
bounds: _react2['default'].PropTypes.object,
country: _react2['default'].PropTypes.string,
types: _react2['default'].PropTypes.array,
googleMaps: _react2['default'].PropTypes.object,
onSuggestSelect: _react2['default'].PropTypes.func,
onFocus: _react2['default'].PropTypes.func,
onBlur: _react2['default'].PropTypes.func,
onChange: _react2['default'].PropTypes.func,
skipSuggest: _react2['default'].PropTypes.func,
getSuggestLabel: _react2['default'].PropTypes.func,
autoActivateFirstSuggest: _react2['default'].PropTypes.bool
};
module.exports = exports['default'];
},{}],7:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _react = (window.React);
var _react2 = _interopRequireDefault(_react);
// eslint-disable-line no-unused-vars

@@ -769,3 +816,3 @@

},{"classnames":1}],7:[function(require,module,exports){
},{"classnames":1}],8:[function(require,module,exports){
'use strict';

@@ -821,2 +868,3 @@

return _react2['default'].createElement(_suggestItem2['default'], { key: suggest.placeId,
className: suggest.className,
suggest: suggest,

@@ -835,3 +883,3 @@ isActive: isActive,

},{"./suggest-item":6,"classnames":1}]},{},[2])(2)
},{"./suggest-item":7,"classnames":1}]},{},[2])(2)
});

2

dist/react-geosuggest.min.js

@@ -1,1 +0,1 @@

!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Geosuggest=e()}}(function(){var e;return function t(e,n,s){function o(i,r){if(!n[i]){if(!e[i]){var a="function"==typeof require&&require;if(!r&&a)return a(i,!0);if(u)return u(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[i]={exports:{}};e[i][0].call(c.exports,function(t){var n=e[i][1][t];return o(n?n:t)},c,c.exports,t,e,n,s)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<s.length;i++)o(s[i]);return o}({1:[function(t,n){!function(){"use strict";function t(){for(var e=[],n=0;n<arguments.length;n++){var o=arguments[n];if(o){var u=typeof o;if("string"===u||"number"===u)e.push(o);else if(Array.isArray(o))e.push(t.apply(null,o));else if("object"===u)for(var i in o)s.call(o,i)&&o[i]&&e.push(i)}}return e.join(" ")}var s={}.hasOwnProperty;"undefined"!=typeof n&&n.exports?n.exports=t:"function"==typeof e&&"object"==typeof e.amd&&e.amd?e("classnames",[],function(){return t}):window.classNames=t}()},{}],2:[function(e,t,n){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}Object.defineProperty(n,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var s=t[n];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,n,s){return n&&e(t.prototype,n),s&&e(t,s),t}}(),l=function(e,t,n){for(var s=!0;s;){var o=e,u=t,i=n;s=!1,null===o&&(o=Function.prototype);var r=Object.getOwnPropertyDescriptor(o,u);if(void 0!==r){if("value"in r)return r.value;var a=r.get;return void 0===a?void 0:a.call(i)}var l=Object.getPrototypeOf(o);if(null===l)return void 0;e=l,t=u,n=i,s=!0,r=l=void 0}},c=window.React,f=s(c),p=e("classnames"),g=s(p),d=e("./defaults"),h=s(d),v=e("./filter-input-attributes"),y=s(v),m=e("./input"),S=s(m),b=e("./suggest-list"),w=s(b),O=function(e){function t(e){o(this,t),l(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,e),this.state={isMounted:!1,isSuggestsHidden:!0,userInput:this.props.initialValue,activeSuggest:null,suggests:[]}}return u(t,e),a(t,[{key:"componentWillReceiveProps",value:function(e){this.props.initialValue!==e.initialValue&&this.setState({userInput:e.initialValue})}},{key:"componentDidMount",value:function(){this.setState({userInput:this.props.initialValue});var e=this.props.googleMaps||window.google&&window.google.maps||this.googleMaps;e&&(this.googleMaps=e,this.autocompleteService=new e.places.AutocompleteService,this.geocoder=new e.Geocoder,this.setState({isMounted:!0}))}},{key:"componentWillUnmount",value:function(){this.setState({isMounted:!1})}},{key:"onInputChange",value:function(e){var t=this;this.setState({userInput:e},function(){t.showSuggests(),t.props.onChange(e)})}},{key:"onInputFocus",value:function(){this.props.onFocus(),this.showSuggests()}},{key:"onInputBlur",value:function(){this.state.ignoreBlur||this.hideSuggests()}},{key:"focus",value:function(){this.refs.input.focus()}},{key:"update",value:function(e){this.setState({userInput:e}),this.props.onChange(e)}},{key:"clear",value:function(){var e=this;this.setState({userInput:""},function(){return e.hideSuggests()})}},{key:"searchSuggests",value:function(){var e=this;if(!this.state.userInput)return void this.updateSuggests();var t={input:this.state.userInput};["location","radius","bounds","types"].forEach(function(n){e.props[n]&&(t[n]=e.props[n])}),this.props.country&&(t.componentRestrictions={country:this.props.country}),this.autocompleteService.getPlacePredictions(t,function(t){e.updateSuggests(t||[]),e.props.autoActivateFirstSuggest&&e.activateSuggest("next")})}},{key:"updateSuggests",value:function(){var e=this,t=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],n=[],s=new RegExp(i(this.state.userInput),"gim"),o=this.props.skipSuggest;this.props.fixtures.forEach(function(e){!o(e)&&e.label.match(s)&&(e.placeId=e.label,n.push(e))}),t.forEach(function(t){o(t)||n.push({label:e.props.getSuggestLabel(t),placeId:t.place_id})}),this.setState({suggests:n})}},{key:"showSuggests",value:function(){this.searchSuggests(),this.setState({isSuggestsHidden:!1})}},{key:"hideSuggests",value:function(){var e=this;this.props.onBlur(),setTimeout(function(){e.state&&e.state.isMounted&&e.setState({isSuggestsHidden:!0})},100)}},{key:"activateSuggest",value:function(e){if(this.state.isSuggestsHidden)return void this.showSuggests();var t=this.state.suggests.length-1,n="next"===e,s=null,o=0,u=0;for(u;t>=u;u++)this.state.suggests[u]===this.state.activeSuggest&&(o=n?u+1:u-1);this.state.activeSuggest||(o=n?0:t),o>=0&&t>=o&&(s=this.state.suggests[o]),this.setState({activeSuggest:s})}},{key:"selectSuggest",value:function(e){return e||(e={label:this.state.userInput}),this.setState({isSuggestsHidden:!0,userInput:e.label}),e.location?(this.setState({ignoreBlur:!1}),void this.props.onSuggestSelect(e)):void this.geocodeSuggest(e)}},{key:"geocodeSuggest",value:function(e){var t=this;this.geocoder.geocode(e.placeId?{placeId:e.placeId}:{address:e.label},function(n,s){if(s===t.googleMaps.GeocoderStatus.OK){var o=n[0],u=o.geometry.location;e.gmaps=o,e.location={lat:u.lat(),lng:u.lng()},t.props.onSuggestSelect(e)}})}},{key:"render",value:function(){var e=this,t=y["default"](this.props),n=g["default"]("geosuggest",this.props.className);return f["default"].createElement("div",{className:n},f["default"].createElement(S["default"],r({className:this.props.inputClassName,ref:"input",value:this.state.userInput,onChange:this.onInputChange.bind(this),onFocus:this.onInputFocus.bind(this),onBlur:this.onInputBlur.bind(this),onNext:function(){return e.activateSuggest("next")},onPrev:function(){return e.activateSuggest("prev")},onSelect:function(){return e.selectSuggest(e.state.activeSuggest)},onEscape:this.hideSuggests.bind(this)},t)),f["default"].createElement(w["default"],{isHidden:this.state.isSuggestsHidden,suggests:this.state.suggests,activeSuggest:this.state.activeSuggest,onSuggestMouseDown:function(){return e.setState({ignoreBlur:!0})},onSuggestMouseOut:function(){return e.setState({ignoreBlur:!1})},onSuggestSelect:this.selectSuggest.bind(this)}))}}]),t}(f["default"].Component);O.defaultProps=h["default"],n["default"]=O,t.exports=n["default"]},{"./defaults":3,"./filter-input-attributes":4,"./input":5,"./suggest-list":7,classnames:1}],3:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]={fixtures:[],initialValue:"",placeholder:"Search places",disabled:!1,className:"",inputClassName:"",location:null,radius:null,bounds:null,country:null,types:null,googleMaps:null,onSuggestSelect:function(){},onFocus:function(){},onBlur:function(){},onChange:function(){},skipSuggest:function(){},getSuggestLabel:function(e){return e.description},autoActivateFirstSuggest:!1},t.exports=n["default"]},{}],4:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=["autoComplete","autoFocus","disabled","form","formAction","formEncType","formMethod","formNoValidate","formTarget","height","id","inputMode","maxLength","name","pattern","placeholder","readOnly","required","size","spellCheck","tabIndex"];n["default"]=function(e){var t={};return s.forEach(function(n){e[n]&&(t[n]=e[n])}),t},t.exports=n["default"]},{}],5:[function(e,t,n){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(n,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},r=function(){function e(e,t){for(var n=0;n<t.length;n++){var s=t[n];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,n,s){return n&&e(t.prototype,n),s&&e(t,s),t}}(),a=function(e,t,n){for(var s=!0;s;){var o=e,u=t,i=n;s=!1,null===o&&(o=Function.prototype);var r=Object.getOwnPropertyDescriptor(o,u);if(void 0!==r){if("value"in r)return r.value;var a=r.get;return void 0===a?void 0:a.call(i)}var l=Object.getPrototypeOf(o);if(null===l)return void 0;e=l,t=u,n=i,s=!0,r=l=void 0}},l=window.React,c=s(l),f=e("classnames"),p=s(f),g=e("./filter-input-attributes"),d=s(g),h=function(e){function t(){o(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return u(t,e),r(t,[{key:"onChange",value:function(){this.props.onChange(this.refs.input.value)}},{key:"onInputKeyDown",value:function(e){switch(e.which){case 40:e.preventDefault(),this.props.onNext();break;case 38:e.preventDefault(),this.props.onPrev();break;case 13:e.preventDefault(),this.props.onSelect();break;case 9:this.props.onSelect();break;case 27:this.props.onEscape()}}},{key:"focus",value:function(){this.refs.input.focus()}},{key:"render",value:function(){var e=d["default"](this.props),t=p["default"]("geosuggest__input",this.props.className);return c["default"].createElement("input",i({className:t,ref:"input",type:"text"},e,{value:this.props.value,onKeyDown:this.onInputKeyDown.bind(this),onChange:this.onChange.bind(this),onFocus:this.props.onFocus.bind(this),onBlur:this.props.onBlur.bind(this)}))}}]),t}(c["default"].Component);h.defaultProps={className:"",value:"",onChange:function(){},onFocus:function(){},onBlur:function(){},onNext:function(){},onPrev:function(){},onSelect:function(){},onEscape:function(){}},n["default"]=h,t.exports=n["default"]},{"./filter-input-attributes":4,classnames:1}],6:[function(e,t,n){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0});var o=window.React,u=s(o),i=e("classnames"),r=s(i);n["default"]=function(e){var t=e.isActive,n=void 0===t?!1:t,s=e.className,o=void 0===s?"":s,i=e.suggest,a=void 0===i?{}:i,l=e.onMouseDown,c=void 0===l?function(){}:l,f=e.onMouseOut,p=void 0===f?function(){}:f,g=e.onSelect,d=void 0===g?function(){}:g,h=r["default"]("geosuggest-item",o,{"geosuggest-item--active":n});return u["default"].createElement("li",{className:h,onMouseDown:c,onMouseOut:p,onClick:function(e){e.preventDefault(),d()}},a.label)},t.exports=n["default"]},{classnames:1}],7:[function(e,t,n){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0});var o=window.React,u=s(o),i=e("classnames"),r=s(i),a=e("./suggest-item"),l=s(a);n["default"]=function(e){var t=e.isHidden,n=void 0===t?!0:t,s=e.suggests,o=void 0===s?[]:s,i=e.activeSuggest,a=e.onSuggestMouseDown,c=void 0===a?function(){}:a,f=e.onSuggestMouseOut,p=void 0===f?function(){}:f,g=e.onSuggestSelect,d=void 0===g?function(){}:g,h=r["default"]("geosuggest__suggests",{"geosuggest__suggests--hidden":n});return u["default"].createElement("ul",{className:h},o.map(function(e){var t=i&&e.placeId===i.placeId;return u["default"].createElement(l["default"],{key:e.placeId,suggest:e,isActive:t,onMouseDown:c,onMouseOut:p,onSelect:function(){return d(e)}})}))},t.exports=n["default"]},{"./suggest-item":6,classnames:1}]},{},[2])(2)});
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Geosuggest=e()}}(function(){var e;return function t(e,n,s){function o(r,i){if(!n[r]){if(!e[r]){var a="function"==typeof require&&require;if(!i&&a)return a(r,!0);if(u)return u(r,!0);var l=new Error("Cannot find module '"+r+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[r]={exports:{}};e[r][0].call(c.exports,function(t){var n=e[r][1][t];return o(n?n:t)},c,c.exports,t,e,n,s)}return n[r].exports}for(var u="function"==typeof require&&require,r=0;r<s.length;r++)o(s[r]);return o}({1:[function(t,n){!function(){"use strict";function t(){for(var e=[],n=0;n<arguments.length;n++){var o=arguments[n];if(o){var u=typeof o;if("string"===u||"number"===u)e.push(o);else if(Array.isArray(o))e.push(t.apply(null,o));else if("object"===u)for(var r in o)s.call(o,r)&&o[r]&&e.push(r)}}return e.join(" ")}var s={}.hasOwnProperty;"undefined"!=typeof n&&n.exports?n.exports=t:"function"==typeof e&&"object"==typeof e.amd&&e.amd?e("classnames",[],function(){return t}):window.classNames=t}()},{}],2:[function(e,t,n){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function r(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}Object.defineProperty(n,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var s=t[n];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,n,s){return n&&e(t.prototype,n),s&&e(t,s),t}}(),l=function(e,t,n){for(var s=!0;s;){var o=e,u=t,r=n;s=!1,null===o&&(o=Function.prototype);var i=Object.getOwnPropertyDescriptor(o,u);if(void 0!==i){if("value"in i)return i.value;var a=i.get;return void 0===a?void 0:a.call(r)}var l=Object.getPrototypeOf(o);if(null===l)return void 0;e=l,t=u,n=r,s=!0,i=l=void 0}},c=window.React,p=s(c),f=e("classnames"),g=s(f),d=e("./defaults"),h=s(d),v=e("./prop-types"),y=s(v),m=e("./filter-input-attributes"),S=s(m),b=e("./input"),w=s(b),P=e("./suggest-list"),O=s(P),_=function(e){function t(e){o(this,t),l(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,e),this.state={isSuggestsHidden:!0,userInput:this.props.initialValue,activeSuggest:null,suggests:[],timer:null}}return u(t,e),a(t,[{key:"componentWillReceiveProps",value:function(e){this.props.initialValue!==e.initialValue&&this.setState({userInput:e.initialValue})}},{key:"componentDidMount",value:function(){this.setState({userInput:this.props.initialValue});var e=this.props.googleMaps||window.google&&window.google.maps||this.googleMaps;e&&(this.googleMaps=e,this.autocompleteService=new e.places.AutocompleteService,this.geocoder=new e.Geocoder)}},{key:"componentWillUnmount",value:function(){clearTimeout(this.state.timer)}},{key:"onInputChange",value:function(e){var t=this;this.setState({userInput:e},function(){t.showSuggests(),t.props.onChange(e)})}},{key:"onInputFocus",value:function(){this.props.onFocus(),this.showSuggests()}},{key:"onInputBlur",value:function(){this.state.ignoreBlur||this.hideSuggests()}},{key:"focus",value:function(){this.refs.input.focus()}},{key:"update",value:function(e){this.setState({userInput:e}),this.props.onChange(e)}},{key:"clear",value:function(){var e=this;this.setState({userInput:""},function(){return e.hideSuggests()})}},{key:"searchSuggests",value:function(){var e=this;if(!this.state.userInput)return void this.updateSuggests();var t={input:this.state.userInput};["location","radius","bounds","types"].forEach(function(n){e.props[n]&&(t[n]=e.props[n])}),this.props.country&&(t.componentRestrictions={country:this.props.country}),this.autocompleteService.getPlacePredictions(t,function(t){e.updateSuggests(t||[]),e.props.autoActivateFirstSuggest&&e.activateSuggest("next")})}},{key:"updateSuggests",value:function(){var e=this,t=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],n=[],s=new RegExp(r(this.state.userInput),"gim"),o=this.props.skipSuggest;this.props.fixtures.forEach(function(e){!o(e)&&e.label.match(s)&&(e.placeId=e.label,n.push(e))}),t.forEach(function(t){o(t)||n.push({label:e.props.getSuggestLabel(t),placeId:t.place_id})}),this.setState({suggests:n})}},{key:"showSuggests",value:function(){this.searchSuggests(),this.setState({isSuggestsHidden:!1})}},{key:"hideSuggests",value:function(){var e=this;this.props.onBlur();var t=setTimeout(function(){e.setState({isSuggestsHidden:!0})},100);this.setState({timer:t})}},{key:"activateSuggest",value:function(e){if(this.state.isSuggestsHidden)return void this.showSuggests();var t=this.state.suggests.length-1,n="next"===e,s=null,o=0,u=0;for(u;t>=u;u++)this.state.suggests[u]===this.state.activeSuggest&&(o=n?u+1:u-1);this.state.activeSuggest||(o=n?0:t),o>=0&&t>=o&&(s=this.state.suggests[o]),this.setState({activeSuggest:s})}},{key:"selectSuggest",value:function(e){return e||(e={label:this.state.userInput}),this.setState({isSuggestsHidden:!0,userInput:e.label}),e.location?(this.setState({ignoreBlur:!1}),void this.props.onSuggestSelect(e)):void this.geocodeSuggest(e)}},{key:"geocodeSuggest",value:function(e){var t=this;this.geocoder.geocode(e.placeId?{placeId:e.placeId}:{address:e.label},function(n,s){if(s===t.googleMaps.GeocoderStatus.OK){var o=n[0],u=o.geometry.location;e.gmaps=o,e.location={lat:u.lat(),lng:u.lng()},t.props.onSuggestSelect(e)}})}},{key:"render",value:function(){var e=this,t=S["default"](this.props),n=g["default"]("geosuggest",this.props.className);return p["default"].createElement("div",{className:n},p["default"].createElement(w["default"],i({className:this.props.inputClassName,ref:"input",value:this.state.userInput,onChange:this.onInputChange.bind(this),onFocus:this.onInputFocus.bind(this),onBlur:this.onInputBlur.bind(this),onNext:function(){return e.activateSuggest("next")},onPrev:function(){return e.activateSuggest("prev")},onSelect:function(){return e.selectSuggest(e.state.activeSuggest)},onEscape:this.hideSuggests.bind(this)},t)),p["default"].createElement(O["default"],{isHidden:this.state.isSuggestsHidden,suggests:this.state.suggests,activeSuggest:this.state.activeSuggest,onSuggestMouseDown:function(){return e.setState({ignoreBlur:!0})},onSuggestMouseOut:function(){return e.setState({ignoreBlur:!1})},onSuggestSelect:this.selectSuggest.bind(this)}))}}]),t}(p["default"].Component);_.propTypes=y["default"],_.defaultProps=h["default"],n["default"]=_,t.exports=n["default"]},{"./defaults":3,"./filter-input-attributes":4,"./input":5,"./prop-types":6,"./suggest-list":8,classnames:1}],3:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]={fixtures:[],initialValue:"",placeholder:"Search places",disabled:!1,className:"",inputClassName:"",location:null,radius:null,bounds:null,country:null,types:null,googleMaps:null,onSuggestSelect:function(){},onFocus:function(){},onBlur:function(){},onChange:function(){},skipSuggest:function(){},getSuggestLabel:function(e){return e.description},autoActivateFirstSuggest:!1},t.exports=n["default"]},{}],4:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s=["autoComplete","autoFocus","disabled","form","formAction","formEncType","formMethod","formNoValidate","formTarget","height","id","inputMode","maxLength","name","pattern","placeholder","readOnly","required","size","spellCheck","tabIndex"];n["default"]=function(e){var t={};return s.forEach(function(n){e[n]&&(t[n]=e[n])}),t},t.exports=n["default"]},{}],5:[function(e,t,n){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(n,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},i=function(){function e(e,t){for(var n=0;n<t.length;n++){var s=t[n];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,n,s){return n&&e(t.prototype,n),s&&e(t,s),t}}(),a=function(e,t,n){for(var s=!0;s;){var o=e,u=t,r=n;s=!1,null===o&&(o=Function.prototype);var i=Object.getOwnPropertyDescriptor(o,u);if(void 0!==i){if("value"in i)return i.value;var a=i.get;return void 0===a?void 0:a.call(r)}var l=Object.getPrototypeOf(o);if(null===l)return void 0;e=l,t=u,n=r,s=!0,i=l=void 0}},l=window.React,c=s(l),p=e("classnames"),f=s(p),g=e("./filter-input-attributes"),d=s(g),h=function(e){function t(){o(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return u(t,e),i(t,[{key:"onChange",value:function(){this.props.onChange(this.refs.input.value)}},{key:"onInputKeyDown",value:function(e){switch(e.which){case 40:e.preventDefault(),this.props.onNext();break;case 38:e.preventDefault(),this.props.onPrev();break;case 13:e.preventDefault(),this.props.onSelect();break;case 9:this.props.onSelect();break;case 27:this.props.onEscape()}}},{key:"focus",value:function(){this.refs.input.focus()}},{key:"render",value:function(){var e=d["default"](this.props),t=f["default"]("geosuggest__input",this.props.className);return c["default"].createElement("input",r({className:t,ref:"input",type:"text"},e,{value:this.props.value,onKeyDown:this.onInputKeyDown.bind(this),onChange:this.onChange.bind(this),onFocus:this.props.onFocus.bind(this),onBlur:this.props.onBlur.bind(this)}))}}]),t}(c["default"].Component);h.defaultProps={className:"",value:"",onChange:function(){},onFocus:function(){},onBlur:function(){},onNext:function(){},onPrev:function(){},onSelect:function(){},onEscape:function(){}},n["default"]=h,t.exports=n["default"]},{"./filter-input-attributes":4,classnames:1}],6:[function(e,t,n){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0});var o=window.React,u=s(o);n["default"]={fixtures:u["default"].PropTypes.array,initialValue:u["default"].PropTypes.string,placeholder:u["default"].PropTypes.string,disabled:u["default"].PropTypes.bool,className:u["default"].PropTypes.string,inputClassName:u["default"].PropTypes.string,location:u["default"].PropTypes.object,radius:u["default"].PropTypes.oneOfType([u["default"].PropTypes.string,u["default"].PropTypes.number]),bounds:u["default"].PropTypes.object,country:u["default"].PropTypes.string,types:u["default"].PropTypes.array,googleMaps:u["default"].PropTypes.object,onSuggestSelect:u["default"].PropTypes.func,onFocus:u["default"].PropTypes.func,onBlur:u["default"].PropTypes.func,onChange:u["default"].PropTypes.func,skipSuggest:u["default"].PropTypes.func,getSuggestLabel:u["default"].PropTypes.func,autoActivateFirstSuggest:u["default"].PropTypes.bool},t.exports=n["default"]},{}],7:[function(e,t,n){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0});var o=window.React,u=s(o),r=e("classnames"),i=s(r);n["default"]=function(e){var t=e.isActive,n=void 0===t?!1:t,s=e.className,o=void 0===s?"":s,r=e.suggest,a=void 0===r?{}:r,l=e.onMouseDown,c=void 0===l?function(){}:l,p=e.onMouseOut,f=void 0===p?function(){}:p,g=e.onSelect,d=void 0===g?function(){}:g,h=i["default"]("geosuggest-item",o,{"geosuggest-item--active":n});return u["default"].createElement("li",{className:h,onMouseDown:c,onMouseOut:f,onClick:function(e){e.preventDefault(),d()}},a.label)},t.exports=n["default"]},{classnames:1}],8:[function(e,t,n){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0});var o=window.React,u=s(o),r=e("classnames"),i=s(r),a=e("./suggest-item"),l=s(a);n["default"]=function(e){var t=e.isHidden,n=void 0===t?!0:t,s=e.suggests,o=void 0===s?[]:s,r=e.activeSuggest,a=e.onSuggestMouseDown,c=void 0===a?function(){}:a,p=e.onSuggestMouseOut,f=void 0===p?function(){}:p,g=e.onSuggestSelect,d=void 0===g?function(){}:g,h=i["default"]("geosuggest__suggests",{"geosuggest__suggests--hidden":n});return u["default"].createElement("ul",{className:h},o.map(function(e){var t=r&&e.placeId===r.placeId;return u["default"].createElement(l["default"],{key:e.placeId,className:e.className,suggest:e,isActive:t,onMouseDown:c,onMouseOut:f,onSelect:function(){return d(e)}})}))},t.exports=n["default"]},{"./suggest-item":7,classnames:1}]},{},[2])(2)});

@@ -33,2 +33,6 @@ /* global window */

var _propTypes = require('./prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _filterInputAttributes = require('./filter-input-attributes');

@@ -68,7 +72,7 @@

this.state = {
isMounted: false,
isSuggestsHidden: true,
userInput: this.props.initialValue,
activeSuggest: null,
suggests: []
suggests: [],
timer: null
};

@@ -78,3 +82,3 @@ }

/**
* Default values for the properties
* Types for the properties
* @type {Object}

@@ -118,4 +122,2 @@ */

this.geocoder = new googleMaps.Geocoder();
this.setState({ isMounted: true });
}

@@ -129,3 +131,3 @@

value: function componentWillUnmount() {
this.setState({ isMounted: false });
clearTimeout(this.state.timer);
}

@@ -293,7 +295,7 @@

this.props.onBlur();
setTimeout(function () {
if (_this5.state && _this5.state.isMounted) {
_this5.setState({ isSuggestsHidden: true });
}
var timer = setTimeout(function () {
_this5.setState({ isSuggestsHidden: true });
}, 100);
this.setState({ timer: timer });
}

@@ -441,2 +443,8 @@

Geosuggest.propTypes = _propTypes2['default'];
/**
* Default values for the properties
* @type {Object}
*/
Geosuggest.defaultProps = _defaults2['default'];

@@ -443,0 +451,0 @@

@@ -51,2 +51,3 @@ 'use strict';

return _react2['default'].createElement(_suggestItem2['default'], { key: suggest.placeId,
className: suggest.className,
suggest: suggest,

@@ -53,0 +54,0 @@ isActive: isActive,

{
"name": "react-geosuggest",
"version": "1.18.1",
"version": "1.19.0",
"description": "A React autosuggest for the Google Maps Places API.",

@@ -5,0 +5,0 @@ "main": "module/Geosuggest.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc