UNPKG

react-thailand-address-autocomplete

Version:
1,193 lines (1,080 loc) 1.15 MB
module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 9); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) { // shim for using process in browser var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it // don't break things. But we need to wrap it in a try catch in case it is // wrapped in strict mode code which doesn't define any globals. It's inside a // function because try/catches deoptimize in certain engines. var cachedSetTimeout; var cachedClearTimeout; function defaultSetTimout() { throw new Error('setTimeout has not been defined'); } function defaultClearTimeout () { throw new Error('clearTimeout has not been defined'); } (function () { try { if (typeof setTimeout === 'function') { cachedSetTimeout = setTimeout; } else { cachedSetTimeout = defaultSetTimout; } } catch (e) { cachedSetTimeout = defaultSetTimout; } try { if (typeof clearTimeout === 'function') { cachedClearTimeout = clearTimeout; } else { cachedClearTimeout = defaultClearTimeout; } } catch (e) { cachedClearTimeout = defaultClearTimeout; } } ()) function runTimeout(fun) { if (cachedSetTimeout === setTimeout) { //normal enviroments in sane situations return setTimeout(fun, 0); } // if setTimeout wasn't available but was latter defined if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { cachedSetTimeout = setTimeout; return setTimeout(fun, 0); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedSetTimeout(fun, 0); } catch(e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedSetTimeout.call(null, fun, 0); } catch(e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error return cachedSetTimeout.call(this, fun, 0); } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) { //normal enviroments in sane situations return clearTimeout(marker); } // if clearTimeout wasn't available but was latter defined if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { cachedClearTimeout = clearTimeout; return clearTimeout(marker); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedClearTimeout(marker); } catch (e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedClearTimeout.call(null, marker); } catch (e){ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. // Some versions of I.E. have different rules for clearTimeout vs setTimeout return cachedClearTimeout.call(this, marker); } } } var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { if (!draining || !currentQueue) { return; } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); } else { queueIndex = -1; } if (queue.length) { drainQueue(); } } function drainQueue() { if (draining) { return; } var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; while(len) { currentQueue = queue; queue = []; while (++queueIndex < len) { if (currentQueue) { currentQueue[queueIndex].run(); } } queueIndex = -1; len = queue.length; } currentQueue = null; draining = false; runClearTimeout(timeout); } process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { args[i - 1] = arguments[i]; } } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { runTimeout(drainQueue); } }; // v8 likes predictible objects function Item(fun, array) { this.fun = fun; this.array = array; } Item.prototype.run = function () { this.fun.apply(null, this.array); }; process.title = 'browser'; process.browser = true; process.env = {}; process.argv = []; process.version = ''; // empty string to avoid regexp issues process.versions = {}; function noop() {} process.on = noop; process.addListener = noop; process.once = noop; process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; process.prependListener = noop; process.prependOnceListener = noop; process.listeners = function (name) { return [] } process.binding = function (name) { throw new Error('process.binding is not supported'); }; process.cwd = function () { return '/' }; process.chdir = function (dir) { throw new Error('process.chdir is not supported'); }; process.umask = function() { return 0; }; /***/ }), /* 1 */ /***/ (function(module, exports) { module.exports = require("react"); /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* object-assign (c) Sindre Sorhus @license MIT */ /* eslint-disable no-unused-vars */ var getOwnPropertySymbols = Object.getOwnPropertySymbols; var hasOwnProperty = Object.prototype.hasOwnProperty; var propIsEnumerable = Object.prototype.propertyIsEnumerable; function toObject(val) { if (val === null || val === undefined) { throw new TypeError('Object.assign cannot be called with null or undefined'); } return Object(val); } function shouldUseNative() { try { if (!Object.assign) { return false; } // Detect buggy property enumeration order in older V8 versions. // https://bugs.chromium.org/p/v8/issues/detail?id=4118 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers test1[5] = 'de'; if (Object.getOwnPropertyNames(test1)[0] === '5') { return false; } // https://bugs.chromium.org/p/v8/issues/detail?id=3056 var test2 = {}; for (var i = 0; i < 10; i++) { test2['_' + String.fromCharCode(i)] = i; } var order2 = Object.getOwnPropertyNames(test2).map(function (n) { return test2[n]; }); if (order2.join('') !== '0123456789') { return false; } // https://bugs.chromium.org/p/v8/issues/detail?id=3056 var test3 = {}; 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { test3[letter] = letter; }); if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') { return false; } return true; } catch (err) { // We don't expect any of the above to throw, but better to be safe. return false; } } module.exports = shouldUseNative() ? Object.assign : function (target, source) { var from; var to = toObject(target); var symbols; for (var s = 1; s < arguments.length; s++) { from = Object(arguments[s]); for (var key in from) { if (hasOwnProperty.call(from, key)) { to[key] = from[key]; } } if (getOwnPropertySymbols) { symbols = getOwnPropertySymbols(from); for (var i = 0; i < symbols.length; i++) { if (propIsEnumerable.call(from, symbols[i])) { to[symbols[i]] = from[symbols[i]]; } } } } return to; }; /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; module.exports = ReactPropTypesSecret; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** * Copyright (c) 2013-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ if (process.env.NODE_ENV !== 'production') { var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && Symbol.for && Symbol.for('react.element')) || 0xeac7; var isValidElement = function(object) { return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; }; // By explicitly using `prop-types` you are opting into new development behavior. // http://fb.me/prop-types-in-prod var throwOnDirectAccess = true; module.exports = __webpack_require__(14)(isValidElement, throwOnDirectAccess); } else { // By explicitly using `prop-types` you are opting into new production behavior. // http://fb.me/prop-types-in-prod module.exports = __webpack_require__(13)(); } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** * Copyright (c) 2013-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var printWarning = function() {}; if (process.env.NODE_ENV !== 'production') { var ReactPropTypesSecret = __webpack_require__(3); var loggedTypeFailures = {}; printWarning = function(text) { var message = 'Warning: ' + text; if (typeof console !== 'undefined') { console.error(message); } try { // --- Welcome to debugging React --- // This error was thrown as a convenience so that you can use this stack // to find the callsite that caused this warning to fire. throw new Error(message); } catch (x) {} }; } /** * Assert that the values match with the type specs. * Error messages are memorized and will only be shown once. * * @param {object} typeSpecs Map of name to a ReactPropType * @param {object} values Runtime values that need to be type-checked * @param {string} location e.g. "prop", "context", "child context" * @param {string} componentName Name of the component for error messages. * @param {?Function} getStack Returns the component stack. * @private */ function checkPropTypes(typeSpecs, values, location, componentName, getStack) { if (process.env.NODE_ENV !== 'production') { for (var typeSpecName in typeSpecs) { if (typeSpecs.hasOwnProperty(typeSpecName)) { var error; // Prop type validation may throw. In case they do, we don't want to // fail the render phase where it didn't fail before. So we log it. // After these have been cleaned up, we'll let them throw. try { // This is intentionally an invariant that gets caught. It's the same // behavior as without this statement except with a better message. if (typeof typeSpecs[typeSpecName] !== 'function') { var err = Error( (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' ); err.name = 'Invariant Violation'; throw err; } error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); } catch (ex) { error = ex; } if (error && !(error instanceof Error)) { printWarning( (componentName || 'React class') + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).' ) } if (error instanceof Error && !(error.message in loggedTypeFailures)) { // Only monitor this failure once because there tends to be a lot of the // same error. loggedTypeFailures[error.message] = true; var stack = getStack ? getStack() : ''; printWarning( 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') ); } } } } } module.exports = checkPropTypes; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(process) { if (process.env.NODE_ENV === 'production') { module.exports = __webpack_require__(21); } else { module.exports = __webpack_require__(20); } /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var React = __webpack_require__(1); var PropTypes = __webpack_require__(4); var _require = __webpack_require__(17), findDOMNode = _require.findDOMNode; var scrollIntoView = __webpack_require__(10); var IMPERATIVE_API = ['blur', 'checkValidity', 'click', 'focus', 'select', 'setCustomValidity', 'setSelectionRange', 'setRangeText']; function getScrollOffset() { return { x: window.pageXOffset !== undefined ? window.pageXOffset : (document.documentElement || document.body.parentNode || document.body).scrollLeft, y: window.pageYOffset !== undefined ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop }; } var Autocomplete = function (_React$Component) { _inherits(Autocomplete, _React$Component); function Autocomplete(props) { _classCallCheck(this, Autocomplete); var _this = _possibleConstructorReturn(this, (Autocomplete.__proto__ || Object.getPrototypeOf(Autocomplete)).call(this, props)); _this.state = { isOpen: false, highlightedIndex: null }; _this._debugStates = []; _this.ensureHighlightedIndex = _this.ensureHighlightedIndex.bind(_this); _this.exposeAPI = _this.exposeAPI.bind(_this); _this.handleInputFocus = _this.handleInputFocus.bind(_this); _this.handleInputBlur = _this.handleInputBlur.bind(_this); _this.handleChange = _this.handleChange.bind(_this); _this.handleKeyDown = _this.handleKeyDown.bind(_this); _this.handleInputClick = _this.handleInputClick.bind(_this); _this.maybeAutoCompleteText = _this.maybeAutoCompleteText.bind(_this); return _this; } _createClass(Autocomplete, [{ key: 'componentWillMount', value: function componentWillMount() { // this.refs is frozen, so we need to assign a new object to it this.refs = {}; this._ignoreBlur = false; this._ignoreFocus = false; this._scrollOffset = null; this._scrollTimer = null; } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { clearTimeout(this._scrollTimer); this._scrollTimer = null; } }, { key: 'componentWillReceiveProps', value: function componentWillReceiveProps(nextProps) { if (this.state.highlightedIndex !== null) { this.setState(this.ensureHighlightedIndex); } if (nextProps.autoHighlight && (this.props.value !== nextProps.value || this.state.highlightedIndex === null)) { this.setState(this.maybeAutoCompleteText); } } }, { key: 'componentDidMount', value: function componentDidMount() { if (this.isOpen()) { this.setMenuPositions(); } } }, { key: 'componentDidUpdate', value: function componentDidUpdate(prevProps, prevState) { if (this.state.isOpen && !prevState.isOpen || 'open' in this.props && this.props.open && !prevProps.open) this.setMenuPositions(); this.maybeScrollItemIntoView(); if (prevState.isOpen !== this.state.isOpen) { this.props.onMenuVisibilityChange(this.state.isOpen); } } }, { key: 'exposeAPI', value: function exposeAPI(el) { var _this2 = this; this.refs.input = el; IMPERATIVE_API.forEach(function (ev) { return _this2[ev] = el && el[ev] && el[ev].bind(el); }); } }, { key: 'maybeScrollItemIntoView', value: function maybeScrollItemIntoView() { if (this.isOpen() && this.state.highlightedIndex !== null) { var itemNode = this.refs['item-' + this.state.highlightedIndex]; var menuNode = this.refs.menu; scrollIntoView(findDOMNode(itemNode), findDOMNode(menuNode), { onlyScrollIfNeeded: true }); } } }, { key: 'handleKeyDown', value: function handleKeyDown(event) { if (Autocomplete.keyDownHandlers[event.key]) Autocomplete.keyDownHandlers[event.key].call(this, event);else if (!this.isOpen()) { this.setState({ isOpen: true }); } } }, { key: 'handleChange', value: function handleChange(event) { this.props.onChange(event, event.target.value); } }, { key: 'getFilteredItems', value: function getFilteredItems(props) { var items = props.items; if (props.shouldItemRender) { items = items.filter(function (item) { return props.shouldItemRender(item, props.value); }); } if (props.sortItems) { items.sort(function (a, b) { return props.sortItems(a, b, props.value); }); } return items; } }, { key: 'maybeAutoCompleteText', value: function maybeAutoCompleteText(state, props) { var highlightedIndex = state.highlightedIndex; var value = props.value, getItemValue = props.getItemValue; var index = highlightedIndex === null ? 0 : highlightedIndex; var items = this.getFilteredItems(props); for (var i = 0; i < items.length; i++) { if (props.isItemSelectable(items[index])) break; index = (index + 1) % items.length; } var matchedItem = items[index] && props.isItemSelectable(items[index]) ? items[index] : null; if (value !== '' && matchedItem) { var itemValue = getItemValue(matchedItem); var itemValueDoesMatch = itemValue.toLowerCase().indexOf(value.toLowerCase()) === 0; if (itemValueDoesMatch) { return { highlightedIndex: index }; } } return { highlightedIndex: null }; } }, { key: 'ensureHighlightedIndex', value: function ensureHighlightedIndex(state, props) { if (state.highlightedIndex >= this.getFilteredItems(props).length) { return { highlightedIndex: null }; } } }, { key: 'setMenuPositions', value: function setMenuPositions() { var node = this.refs.input; var rect = node.getBoundingClientRect(); var computedStyle = global.window.getComputedStyle(node); var marginBottom = parseInt(computedStyle.marginBottom, 10) || 0; var marginLeft = parseInt(computedStyle.marginLeft, 10) || 0; var marginRight = parseInt(computedStyle.marginRight, 10) || 0; this.setState({ menuTop: rect.bottom + marginBottom, menuLeft: rect.left + marginLeft, menuWidth: rect.width + marginLeft + marginRight }); } }, { key: 'highlightItemFromMouse', value: function highlightItemFromMouse(index) { this.setState({ highlightedIndex: index }); } }, { key: 'selectItemFromMouse', value: function selectItemFromMouse(item) { var _this3 = this; var value = this.props.getItemValue(item); // The menu will de-render before a mouseLeave event // happens. Clear the flag to release control over focus this.setIgnoreBlur(false); this.setState({ isOpen: false, highlightedIndex: null }, function () { _this3.props.onSelect(value, item); }); } }, { key: 'setIgnoreBlur', value: function setIgnoreBlur(ignore) { this._ignoreBlur = ignore; } }, { key: 'renderMenu', value: function renderMenu() { var _this4 = this; var items = this.getFilteredItems(this.props).map(function (item, index) { var element = _this4.props.renderItem(item, _this4.state.highlightedIndex === index, { cursor: 'default' }); return React.cloneElement(element, { onMouseEnter: _this4.props.isItemSelectable(item) ? function () { return _this4.highlightItemFromMouse(index); } : null, onClick: _this4.props.isItemSelectable(item) ? function () { return _this4.selectItemFromMouse(item); } : null, ref: function ref(e) { return _this4.refs['item-' + index] = e; } }); }); var style = { left: this.state.menuLeft, top: this.state.menuTop, minWidth: this.state.menuWidth }; var menu = this.props.renderMenu(items, this.props.value, style); return React.cloneElement(menu, { ref: function ref(e) { return _this4.refs.menu = e; }, // Ignore blur to prevent menu from de-rendering before we can process click onTouchStart: function onTouchStart() { return _this4.setIgnoreBlur(true); }, onMouseEnter: function onMouseEnter() { return _this4.setIgnoreBlur(true); }, onMouseLeave: function onMouseLeave() { return _this4.setIgnoreBlur(false); } }); } }, { key: 'handleInputBlur', value: function handleInputBlur(event) { var _this5 = this; if (this._ignoreBlur) { this._ignoreFocus = true; this._scrollOffset = getScrollOffset(); this.refs.input.focus(); return; } var setStateCallback = void 0; var highlightedIndex = this.state.highlightedIndex; if (this.props.selectOnBlur && highlightedIndex !== null) { var items = this.getFilteredItems(this.props); var item = items[highlightedIndex]; var value = this.props.getItemValue(item); setStateCallback = function setStateCallback() { return _this5.props.onSelect(value, item); }; } this.setState({ isOpen: false, highlightedIndex: null }, setStateCallback); var onBlur = this.props.inputProps.onBlur; if (onBlur) { onBlur(event); } } }, { key: 'handleInputFocus', value: function handleInputFocus(event) { var _this6 = this; if (this._ignoreFocus) { this._ignoreFocus = false; var _scrollOffset = this._scrollOffset, x = _scrollOffset.x, y = _scrollOffset.y; this._scrollOffset = null; // Focus will cause the browser to scroll the <input> into view. // This can cause the mouse coords to change, which in turn // could cause a new highlight to happen, cancelling the click // event (when selecting with the mouse) window.scrollTo(x, y); // Some browsers wait until all focus event handlers have been // processed before scrolling the <input> into view, so let's // scroll again on the next tick to ensure we're back to where // the user was before focus was lost. We could do the deferred // scroll only, but that causes a jarring split second jump in // some browsers that scroll before the focus event handlers // are triggered. clearTimeout(this._scrollTimer); this._scrollTimer = setTimeout(function () { _this6._scrollTimer = null; window.scrollTo(x, y); }, 0); return; } this.setState({ isOpen: true }); var onFocus = this.props.inputProps.onFocus; if (onFocus) { onFocus(event); } } }, { key: 'isInputFocused', value: function isInputFocused() { var el = this.refs.input; return el.ownerDocument && el === el.ownerDocument.activeElement; } }, { key: 'handleInputClick', value: function handleInputClick() { // Input will not be focused if it's disabled if (this.isInputFocused() && !this.isOpen()) this.setState({ isOpen: true }); } }, { key: 'composeEventHandlers', value: function composeEventHandlers(internal, external) { return external ? function (e) { internal(e);external(e); } : internal; } }, { key: 'isOpen', value: function isOpen() { return 'open' in this.props ? this.props.open : this.state.isOpen; } }, { key: 'render', value: function render() { if (this.props.debug) { // you don't like it, you love it this._debugStates.push({ id: this._debugStates.length, state: this.state }); } var inputProps = this.props.inputProps; var open = this.isOpen(); return React.createElement( 'div', _extends({ style: _extends({}, this.props.wrapperStyle) }, this.props.wrapperProps), this.props.renderInput(_extends({}, inputProps, { role: 'combobox', 'aria-autocomplete': 'list', 'aria-expanded': open, autoComplete: 'off', ref: this.exposeAPI, onFocus: this.handleInputFocus, onBlur: this.handleInputBlur, onChange: this.handleChange, onKeyDown: this.composeEventHandlers(this.handleKeyDown, inputProps.onKeyDown), onClick: this.composeEventHandlers(this.handleInputClick, inputProps.onClick), value: this.props.value })), open && this.renderMenu(), this.props.debug && React.createElement( 'pre', { style: { marginLeft: 300 } }, JSON.stringify(this._debugStates.slice(Math.max(0, this._debugStates.length - 5), this._debugStates.length), null, 2) ) ); } }]); return Autocomplete; }(React.Component); Autocomplete.propTypes = { /** * The items to display in the dropdown menu */ items: PropTypes.array.isRequired, /** * The value to display in the input field */ value: PropTypes.any, /** * Arguments: `event: Event, value: String` * * Invoked every time the user changes the input's value. */ onChange: PropTypes.func, /** * Arguments: `value: String, item: Any` * * Invoked when the user selects an item from the dropdown menu. */ onSelect: PropTypes.func, /** * Arguments: `item: Any, value: String` * * Invoked for each entry in `items` and its return value is used to * determine whether or not it should be displayed in the dropdown menu. * By default all items are always rendered. */ shouldItemRender: PropTypes.func, /** * Arguments: `item: Any` * * Invoked when attempting to select an item. The return value is used to * determine whether the item should be selectable or not. * By default all items are selectable. */ isItemSelectable: PropTypes.func, /** * Arguments: `itemA: Any, itemB: Any, value: String` * * The function which is used to sort `items` before display. */ sortItems: PropTypes.func, /** * Arguments: `item: Any` * * Used to read the display value from each entry in `items`. */ getItemValue: PropTypes.func.isRequired, /** * Arguments: `item: Any, isHighlighted: Boolean, styles: Object` * * Invoked for each entry in `items` that also passes `shouldItemRender` to * generate the render tree for each item in the dropdown menu. `styles` is * an optional set of styles that can be applied to improve the look/feel * of the items in the dropdown menu. */ renderItem: PropTypes.func.isRequired, /** * Arguments: `items: Array<Any>, value: String, styles: Object` * * Invoked to generate the render tree for the dropdown menu. Ensure the * returned tree includes every entry in `items` or else the highlight order * and keyboard navigation logic will break. `styles` will contain * { top, left, minWidth } which are the coordinates of the top-left corner * and the width of the dropdown menu. */ renderMenu: PropTypes.func, /** * Styles that are applied to the dropdown menu in the default `renderMenu` * implementation. If you override `renderMenu` and you want to use * `menuStyle` you must manually apply them (`this.props.menuStyle`). */ menuStyle: PropTypes.object, /** * Arguments: `props: Object` * * Invoked to generate the input element. The `props` argument is the result * of merging `props.inputProps` with a selection of props that are required * both for functionality and accessibility. At the very least you need to * apply `props.ref` and all `props.on<event>` event handlers. Failing to do * this will cause `Autocomplete` to behave unexpectedly. */ renderInput: PropTypes.func, /** * Props passed to `props.renderInput`. By default these props will be * applied to the `<input />` element rendered by `Autocomplete`, unless you * have specified a custom value for `props.renderInput`. Any properties * supported by `HTMLInputElement` can be specified, apart from the * following which are set by `Autocomplete`: value, autoComplete, role, * aria-autocomplete. `inputProps` is commonly used for (but not limited to) * placeholder, event handlers (onFocus, onBlur, etc.), autoFocus, etc.. */ inputProps: PropTypes.object, /** * Props that are applied to the element which wraps the `<input />` and * dropdown menu elements rendered by `Autocomplete`. */ wrapperProps: PropTypes.object, /** * This is a shorthand for `wrapperProps={{ style: <your styles> }}`. * Note that `wrapperStyle` is applied before `wrapperProps`, so the latter * will win if it contains a `style` entry. */ wrapperStyle: PropTypes.object, /** * Whether or not to automatically highlight the top match in the dropdown * menu. */ autoHighlight: PropTypes.bool, /** * Whether or not to automatically select the highlighted item when the * `<input>` loses focus. */ selectOnBlur: PropTypes.bool, /** * Arguments: `isOpen: Boolean` * * Invoked every time the dropdown menu's visibility changes (i.e. every * time it is displayed/hidden). */ onMenuVisibilityChange: PropTypes.func, /** * Used to override the internal logic which displays/hides the dropdown * menu. This is useful if you want to force a certain state based on your * UX/business logic. Use it together with `onMenuVisibilityChange` for * fine-grained control over the dropdown menu dynamics. */ open: PropTypes.bool, debug: PropTypes.bool }; Autocomplete.defaultProps = { value: '', wrapperProps: {}, wrapperStyle: { display: 'inline-block' }, inputProps: {}, renderInput: function renderInput(props) { return React.createElement('input', props); }, onChange: function onChange() {}, onSelect: function onSelect() {}, isItemSelectable: function isItemSelectable() { return true; }, renderMenu: function renderMenu(items, value, style) { return React.createElement('div', { style: _extends({}, style, this.menuStyle), children: items }); }, menuStyle: { borderRadius: '3px', boxShadow: '0 2px 12px rgba(0, 0, 0, 0.1)', background: 'rgba(255, 255, 255, 0.9)', padding: '2px 0', fontSize: '90%', position: 'fixed', overflow: 'auto', maxHeight: '50%' }, autoHighlight: true, selectOnBlur: false, onMenuVisibilityChange: function onMenuVisibilityChange() {} }; Autocomplete.keyDownHandlers = { ArrowDown: function ArrowDown(event) { event.preventDefault(); var items = this.getFilteredItems(this.props); if (!items.length) return; var highlightedIndex = this.state.highlightedIndex; var index = highlightedIndex === null ? -1 : highlightedIndex; for (var i = 0; i < items.length; i++) { var p = (index + i + 1) % items.length; if (this.props.isItemSelectable(items[p])) { index = p; break; } } if (index > -1 && index !== highlightedIndex) { this.setState({ highlightedIndex: index, isOpen: true }); } }, ArrowUp: function ArrowUp(event) { event.preventDefault(); var items = this.getFilteredItems(this.props); if (!items.length) return; var highlightedIndex = this.state.highlightedIndex; var index = highlightedIndex === null ? items.length : highlightedIndex; for (var i = 0; i < items.length; i++) { var p = (index - (1 + i) + items.length) % items.length; if (this.props.isItemSelectable(items[p])) { index = p; break; } } if (index !== items.length) { this.setState({ highlightedIndex: index, isOpen: true }); } }, Enter: function Enter(event) { var _this7 = this; // Key code 229 is used for selecting items from character selectors (Pinyin, Kana, etc) if (event.keyCode !== 13) return; // In case the user is currently hovering over the menu this.setIgnoreBlur(false); if (!this.isOpen()) { // menu is closed so there is no selection to accept -> do nothing return; } else if (this.state.highlightedIndex == null) { // input has focus but no menu item is selected + enter is hit -> close the menu, highlight whatever's in input this.setState({ isOpen: false }, function () { _this7.refs.input.select(); }); } else { // text entered + menu item has been highlighted + enter is hit -> update value to that of selected menu item, close the menu event.preventDefault(); var item = this.getFilteredItems(this.props)[this.state.highlightedIndex]; var value = this.props.getItemValue(item); this.setState({ isOpen: false, highlightedIndex: null }, function () { //this.refs.input.focus() // TODO: file issue _this7.refs.input.setSelectionRange(value.length, value.length); _this7.props.onSelect(value, item); }); } }, Escape: function Escape() { // In case the user is currently hovering over the menu this.setIgnoreBlur(false); this.setState({ highlightedIndex: null, isOpen: false }); }, Tab: function Tab() { // In case the user is currently hovering over the menu this.setIgnoreBlur(false); } }; module.exports = Autocomplete; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(23))) /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { !function(e,C){if(true)module.exports=C();else if("function"===typeof define&&define.amd)define([],C);else{var A=C();for(var B in A)("object"===typeof exports?exports:e)[B]=A[B]}}(this,function(){return function(e){function C(B){if(A[B])return A[B].exports;var D=A[B]={i:B,l:!1,exports:{}};return e[B].call(D.exports,D,D.exports,C),D.l=!0,D.exports}var A={};return C.m=e,C.c=A,C.d=function(e,A,B){C.o(e,A)||Object.defineProperty(e,A,{configurable:!1,enumerable:!0,get:B})},C.n=function(e){var A=e&&e.__esModule?function(){return e.default}:function(){return e};return C.d(A,"a",A),A},C.o=function(e,C){return Object.prototype.hasOwnProperty.call(e,C)},C.p="",C(C.s=0)}([function(e,C,A){e.exports=A(1)},function(e,C,A){"use strict";Object.defineProperty(C,"__esModule",{value:!0});var B=A(2);C.default=B.a},function(e,C,A){"use strict";var B=A(3),D=A.n(B),E=[],F=[],a=function(){var e,C=D.a,A=[],B=[],a=[];C.lookup&&C.words&&(A=C.lookup.split("|"),B=C.words.split("|"),C=C.data),e=function(e){function C(e){var C=e.charCodeAt(0);return B[C<97?C-65:26+C-97]}return"number"===typeof e&&(e=A[e]),e.replace(/[A-Z]/gi,C)},C.forEach(function(C){var A=1;3===C.length&&(A=2),C[A].forEach(function(B){B[A].forEach(function(D){D[A]=D[A]instanceof Array?D[A]:[D[A]],D[A].forEach(function(E){var l={tumbon:e(D[0]),city:e(B[0]),province:e(C[0]),zipcode:E};2===A&&(l.tumbon_code=D[1]||!1,l.city_code=B[1]||!1,l.province_code=C[1]||!1),-1===F.indexOf(l.province)&&F.push(l.province),a.push(l)})})})}),E=a},l=function(e,C){if(!e)return[];if(0===Object.keys(e).length&&e.constructor===Object)return[];0===E.length&&a();var A=Object.keys(e)[0];return E.filter(function(C){return C[A].toString().startsWith(e[A])}).slice(0,C)};C.a={search:l,provinces:F}},function(e,C){e.exports={data:[["\u0e01\u0e23\u0e30\u0e1a\u0e35\u0e48",[["I\u0e17\u0e48\u0e2d\u0e21",[["I\u0e17\u0e48\u0e2d\u0e21o",81120],["I\u0e17\u0e48\u0e2d\u0e21\u0e43\u0e15\u0e49",81120],["I\u0e1e\u0e19",81170],[0,81170],["\u0e1e\u0e23\u0e38\u0e14\u0e34\u0e19C",81120],["LQ\u0e02\u0e32\u0e27",81120],["\u0e40\u0e1e\u0e2b\u0e25\u0e32",81120]]],[1,[["\u0e04\u0e35\u0e23\u0e35\u0e27\u0e07",81160],[1,81160],["S\u0e15\u0e48\u0e2d",81160],["S\u0e40\u0e02\u0e19",81160]]],[2,[["\u0e14\u0e34\u0e19\u0e2d\u0e38\u0e14\u0e21",81190],[3,81190],["JyN",81190],[2,81190]]],["\u0e2d\u0e48\u0e32\u0e27\u0e25\u0e36\u0e01",[["I\u0e22\u0e32",81110],["Ip",81110],["Co",81110],[4,81110],["\u0e2d\u0e48\u0e32\u0e27\u0e25\u0e36\u0e01f",81110],["\u0e2d\u0e48\u0e32\u0e27\u0e25\u0e36\u0e01o",81110],["\u0e2d\u0e48\u0e32\u0e27\u0e25\u0e36\u0e01\u0e43\u0e15\u0e49",81110],[5,81110],["\u0e41\u0e2b\u0e25\u0e21\u0e2a\u0e31\u0e01",81110]]],["P\u0e25\u0e31\u0e19l",[[6,81120],["\u0e28\u0e32\u0e25\u0e32\u0e14\u0e48\u0e32\u0e19",81150],["Pw",81120],["P\u0e25\u0e31\u0e19lf",81150],["P\u0e25\u0e31\u0e19lM",81150]]],[7,[["\u0e1e\u0e23\u0e38\u0e40\u0e15\u0e35\u0e22\u0e27",81140],[8,80240],["\u0e2b\u0e19\u0e49\u0e32S",81140],[9,81140],[7,81140],["K\u0e2b\u0e32\u0e23",80240]]],["F\u0e01\u0e23\u0e30\u0e1a\u0e35\u0e48",[["\u0e01\u0e23\u0e30\u0e1a\u0e35\u0e48f",81e3],["\u0e01\u0e23\u0e30\u0e1a\u0e35\u0e48M",81e3],["I\u0e1b\u0e23\u0e30\u0e2a\u0e07\u0e04\u0e4c",81e3],["\u0e17\u0e31\u0e1a\u0e1b\u0e23\u0e34\u0e01",81e3],[10,81e3],["A\u0e17\u0e30\u0e40\u0e25",81180],["\u0e2d\u0e48\u0e32\u0e27C\u0e07",81e3],["S\u0e04\u0e23\u0e32\u0e21",81e3],[11,81e3],["\u0e44\u0e2a\u0e44\u0e17\u0e22",81e3]]],[12,[["I\u0e02C\u0e19",81130],["I\u0e40\u0e02\u0e21\u0e49\u0e32",81130],[13,81130],["\u0e1b\u0e01\u0e32\u0e2a\u0e31\u0e22",81130],["L\u0e22\u0e39\u0e07",81130],["PO\u0e1a\u0e2d\u0e22\u0e32",81130],[12,81130],[14,81130]]]]],["\u0e01\u0e23\u0e38\u0e07\u0e40\u0e17\u0e1e\u0e21\u0e2b\u0e32\u0e19\u0e04\u0e23",[[15,[["I\u0e15\u0e49\u0e19y",10600],[15,10600],["Dv\u0e20\u0e39\u0e25\u0e48\u0e32\u0e07",10600],["\u0e2a\u0e21\u0e40\u0e14\u0e47\u0e08\u0e40\u0e08\u0e49\u0e32W\u0e22\u0e32",10600]]],["Iq\u0e27\u0e32",[["i\u0e01\u0e2d\u0e07\u0e14\u0e34\u0e19",10510],["i\u0e01\u0e2d\u0e07\u0e14\u0e34\u0e19\u0e43\u0e15\u0e49",10510],[16,10510],["q\u0e27\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01",10510],["q\u0e27\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01",10510]]],[17,[[18,10110],[17,10110],[19,10110],[19,10260]]],[20,[[20,10230],["\u0e23\u0e32\u0e21\u0e2d\u0e34\u0e19\u0e17\u0e23\u0e32",10230]]],[21,[[21,10900],["\u0e08\u0e2d\u0e21\u0e1e\u0e25",10900],["\u0e08\u0e31\u0e19\u0e17\u0e23\u0e40\u0e01\u0e29\u0e21",10900],[22,10900],["\u0e40\u0e2aC\u0e19\u0e34\u0e04\u0e21",10900]]],[23,[[23,10150],[24,10150],["D\u0e04\u0e49\u0e2d",10150],[25,10150]]],[26,[[26,10210],["\u0e2aC\u0e21\u0e1a\u0e34\u0e19",10210],["\u0e2a\u0e35\u0e01\u0e31\u0e19",10210]]],[3,[[3,10400]]],[27,[[27,10300],["\u0e16\u0e19\u0e19\u0e19\u0e04\u0e23\u0e44\u0e0a\u0e22O",10300],["\u0e27\u0e0a\u0e34\u0e23\u0e1e\u0e22\u0e32\u0e1a\u0e32\u0e25",10300],["\u0e2a\u0e27\u0e19\u0e08\u0e34\u0e15\u0e23\u0e25\u0e14\u0e32",10300],["\u0e2a\u0e27\u0e19\u0e08\u0e34\u0e15\u0e23\u0e25\u0e14\u0e32",10303],["\u0e2a\u0e35\u0e48\u0e41\u0e22\u0e01\u0e21\u0e2b\u0e32C\u0e04",10300]]],[13,[["I\u0e0a\u0e31\u0e01W",10170],["\u0e09\u0e34\u0e21\u0e1e\u0e25\u0e35",10170],[13,10170],[28,10170],["D\u0e23\u0e30\u0e21\u0e32\u0e14",10170],["D\u0e40\u0e0a\u0e37\u0e2d\u0e01\u0e2b\u0e19\u0e31\u0e07",10170]]],[29,[[29,10170],["\u0e28\u0e32\u0e25\u0e32\u0e18\u0e23\u0e23\u0e21\u0e2a\u0e1e\u0e19\u0e4c",10170]]],[30,[[30,10140],[25,10140]]],["\u0e18\u0e19\u0e1a\u0e38\u0e23\u0e35",[["\u0e14\u0e32\u0e27\u0e04\u0e30\u0e19\u0e2d\u0e07",10600],["\u0e15\u0e25\u0e32\u0e14\u0e1e\u0e25\u0e39",10600],["D\u0e22\u0e35\u0e48\u0e40\u0e23\u0e37\u0e2d",10600],["\u0e1a\u0e38\u0e04\u0e04\u0e42\u0e25",10600],["\u0e27\u0e31\u0e14\u0e01\u0e31\u0e25\u0e22\u0e32\u0e13\u0e4c",10600],["\u0e2a\u0e33\u0e40\u0e2b\u0e23\u0e48",10600],["\u0e2b\u0e34\u0e23\u0e31\u0e0d\u0e23\u0e39\u0e08\u0e35",10600]]],["D\u0e01\u0e2d\u0e01f",[["D\u0e02\u0e38\u0e19\u0e19\u0e19\u0e17\u0e4c",10700],["D\u0e02\u0e38\u0e19O",10700],["B\u0e0a\u0e48\u0e32\u0e07\u0e2b\u0e25\u0e48\u0e2d",10700],["\u0e28\u0e34\u0e23\u0e34\u0e23\u0e32\u0e0a",10700],["\u0e2d\u0e23\u0e38\u0e13\u0e2d\u0e31\u0e21\u0e23\u0e34\u0e19\u0e17\u0e23\u0e4c",10700]]],["D\u0e01\u0e2d\u0e01M",[["\u0e27\u0e31\u0e14EW",10600],["\u0e27\u0e31\u0e14\u0e2d\u0e23\u0e38\u0e13",10600]]],[31,[["I\u0e08\u0e31\u0e48\u0e19",10240],["e\u0e2b\u0e21\u0e32\u0e01",10240],["e\u0e2b\u0e21\u0e32\u0e01",10250]]],[24,[[32,10150],["\u0e41\u0e2a\u0e21\u0e14\u0e33",10150]]],[33,[[33,10120],["D\u0e42\u0e04\u0e25\u0e48",10120],["\u0e27\u0e31\u0e14W\u0e22\u0e32\u0e44\u0e01\u0e23",10120]]],[34,[[34,10800],["\u0e27\u0e07\u0e28\u0e4c\u0e2a\u0e27\u0e48\u0e32\u0e07",10800]]],[35,[[35,10260]]],[36,[[36,10150]]],[37,[["D\u0e1a\u0e33\u0e2b\u0e23\u0e38",10700],[37,10700],["D\u0e22\u0e35\u0e48\u0e02\u0e31\u0e19",10700],[38,10700]]],[39,[[39,10500],["\u0e21\u0e2b\u0e32\u0e1e\u0e24\u0e12\u0e32\u0e23\u0e32\u0e21",10500],["\u0e2a\u0e35\u0e25\u0e21",10500],["\u0e2a\u0e35\u0e48W\u0e22\u0e32",10500],["\u0e2a\u0e38\u0e23\u0e34\u0e22\u0e27\u0e07\u0e28\u0e4c",10500]]],[40,[[41,10220],[41,10230],["\u0e2d\u0e19\u0e38\u0e2a\u0e32\u0e27\u0e23\u0e35\u0e22\u0e4c",10220]]],[42,[[42,10160],["D\u0e41\u0e04o",10160],[43,10160],[44,10160]]],["x\u0e01\u0e38\u0e48\u0e21",[["I\u0e01\u0e38\u0e48\u0e21",10230],["I\u0e01\u0e38\u0e48\u0e21",10240],["\u0e19\u0e27\u0e21\u0e34\u0e19\u0e17\u0e23\u0e4c",10230],["\u0e19\u0e27\u0e25\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c",10230]]],[45,[[45,10330],["\u0e23\u0e2d\u0e07F",10330],["\u0e25\u0e38\u0e21\u0e1e\u0e34\u0e19\u0e35",10330],[46,10330],[46,10110],[46,10120],[46,10400],[46,10500]]],[47,[[48,10250],[47,10250],[49,10250]]],["\u0e1b\u0e49\u0e2d\u0e21\u0e1b\u0e23\u0e32\u0e1a\u0e28\u0e31\u0e15\u0e23\u0e39\u0e1e\u0e48\u0e32\u0e22",[["I\u0e21\u0e2b\u0e32C\u0e04",10100],["B\u0e1a\u0e32\u0e15\u0e23",10100],["\u0e1b\u0e49\u0e2d\u0e21\u0e1b\u0e23\u0e32\u0e1a",10100],["\u0e27\u0e31\u0e14\u0e40\u0e17\u0e1e\u0e28\u0e34\u0e23\u0e34\u0e19\u0e17\u0e23\u0e4c",10100],["\u0e27\u0e31\u0e14\u0e42\u0e2a\u0e21\u0e19\u0e31\u0e2a",10100]]],["\u0e1e\u0e0d\u0e32\u0e44\u0e17",[["q\u0e40\u0e2a\u0e19\u0e43\u0e19",10400]]],["W\u0e19\u0e04\u0e23",[["\u0e0a\u0e19\u0e30\u0e2a\u0e07\u0e04\u0e23\u0e32\u0e21",10200],["\u0e15\u0e25\u0e32\u0e14\u0e22\u0e2d\u0e14",10200],["\u0e1a\u0e27\u0e23\u0e19\u0e34\u0e40\u0e27\u0e28",10200],["D\u0e02\u0e38\u0e19\u0e1e\u0e23\u0e2b\u0e21",10200],["B\u0e1e\u0e32\u0e19\u0e16\u0e21",10200],["W\u0e1a\u0e23\u0e21\u0e21\u0e2b\u0e32\u0e23\u0e32\u0e0aG",10200],["G\u0e1a\u0e39\u0e23\u0e1e\u0e32\u0e20\u0e34\u0e23\u0e21\u0e22\u0e4c",10200],["\u0e27\u0e31\u0e14\u0e23\u0e32\u0e0a\u0e1a\u0e1e\u0e34\u0e18",10200],["\u0e27\u0e31\u0e14qW\u0e22\u0e32",10200],["\u0e28\u0e32\u0e25\u0e40\u0e08\u0e49\u0e32\u0e1e\u0e48\u0e2d\u0e40\u0e2a\u0e37\u0e2d",10200],[50,10200],["\u0e40\u0e2a\u0e32\u0e0a\u0e34\u0e07\u0e0a\u0e49\u0e32",10200]]],[19,[[51,10260]]],["\u0e20\u0e32\u0e29\u0e35\u0e40\u0e08\u0e23\u0e34\u0e0d",[[52,10160],[53,10160],[51,10160],[54,10160],["D\u0e2b\u0e27\u0e49\u0e32",10160],["D\u0e41\u0e27\u0e01",10160],["rI\u0e20\u0e32\u0e29\u0e35\u0e40\u0e08\u0e23\u0e34\u0e0d",10160]]],[55,[[55,10510],["\u0e41\u0e2a\u0e19\u0e41\u0e2a\u0e1a",10510]]],[56,[["\u0e0a\u0e48\u0e2d\u0e07\u0e19\u0e19\u0e17\u0e23\u0e35",10120],["D\u0e42\u0e1e\u0e07\u0e1e\u0e32\u0e07",10120]]],["\u0e23\u0e32\u0e0a\u0e40\u0e17\u0e27\u0e35",[["\u0e16\u0e19\u0e19\u0e1e\u0e0d\u0e32\u0e44\u0e17",10400],["\u0e16\u0e19\u0e19\u0e40\u0e1e\u0e0a\u0e23\u0e1a\u0e38\u0e23\u0e35",10400],["J\u0e1e\u0e0d\u0e32\u0e44\u0e17",10400],["\u0e21\u0e31\u0e01\u0e01\u0e30\u0e2a\u0e31\u0e19",10400]]],[57,[["D\u0e1b\u0e30\u0e01\u0e2d\u0e01",10140],[57,10140]]],[58,[["\u0e02\u0e38\u0e21N",10520],["I\u0e2a\u0e2d\u0e07\u0e15\u0e49\u0e19\u0e19\u0e38\u0e48\u0e19",10520],["Iq\u0e1b\u0e23\u0e30\u0e40\u0e27\u0e28",10520],["\u0e17\u0e31\u0e1a\u0e22\u0e32\u0e27",10520],[58,10520],["v\u0e1b\u0e25\u0e32\u0e17\u0e34\u0e27",10520]]],[59,[["\u0e08\u0e23\u0e40\u0e02\u0e49X",10230],[59,10230]]],[60,[["I\u0e40\u0e08\u0e49\u0e32\u0e04\u0e38\u0e13\u0e2a\u0e34\u0e07\u0e2b\u0e4c",10310],[61,10310],[60,10310],["\u0e2a\u0e30\u0e1e\u0e32\u0e19\u0e2a\u0e2d\u0e07",10310]]],[62,[["I\u0e15\u0e31\u0e19o",10110],["I\u0e40\u0e15\u0e22o",10110],["W\u0e42\u0e02\u0e19\u0e07o",10110],["W\u0e42\u0e02\u0e19\u0e07o",10260]]],[63,[[63,10250]]],[64,[[64,10240],[64,10250],["\u0e23\u0e32\u0e29\u0e0e\u0e23\u0e4c\u0e1e\u0e31\u0e12C",10240],[280,10250]]],[65,[["\u0e08\u0e31\u0e01\u0e23\u0e27\u0e23\u0e23\u0e14\u0e34\u0e4c",10100],[66,10100],[65,10100]]],["\u0e2a\u0e32\u0e17\u0e2