UNPKG

sync-query

Version:

Use the React higher-order component to store the React State in URL query (routing parameters)

1 lines 50 kB
!function(I,g){if("object"==typeof exports&&"object"==typeof module)module.exports=g();else if("function"==typeof define&&define.amd)define([],g);else{var C=g();for(var n in C)("object"==typeof exports?exports:I)[n]=C[n]}}(window,(function(){return function(I){var g={};function C(n){if(g[n])return g[n].exports;var e=g[n]={i:n,l:!1,exports:{}};return I[n].call(e.exports,e,e.exports,C),e.l=!0,e.exports}return C.m=I,C.c=g,C.d=function(I,g,n){C.o(I,g)||Object.defineProperty(I,g,{enumerable:!0,get:n})},C.r=function(I){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(I,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(I,"__esModule",{value:!0})},C.t=function(I,g){if(1&g&&(I=C(I)),8&g)return I;if(4&g&&"object"==typeof I&&I&&I.__esModule)return I;var n=Object.create(null);if(C.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:I}),2&g&&"string"!=typeof I)for(var e in I)C.d(n,e,function(g){return I[g]}.bind(null,e));return n},C.n=function(I){var g=I&&I.__esModule?function(){return I.default}:function(){return I};return C.d(g,"a",g),g},C.o=function(I,g){return Object.prototype.hasOwnProperty.call(I,g)},C.p="",C(C.s=4)}([function(module,exports,__webpack_require__){"use strict";eval('\nObject.defineProperty(exports, "__esModule", { value: true });\nexports.isFunction = exports.isString = exports.isObject = exports.isArray = void 0;\nfunction isArray(value) {\n return Object.prototype.toString.call(value) == "[object Array]";\n}\nexports.isArray = isArray;\nfunction isObject(value) {\n return (Object.prototype.toString.call(value)) == "[object Object]";\n}\nexports.isObject = isObject;\nfunction isString(value) {\n return Object.prototype.toString.call(value) == "[object String]";\n}\nexports.isString = isString;\nfunction isFunction(value) {\n return Object.prototype.toString.call(value) == "[object Function]";\n}\nexports.isFunction = isFunction;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9oZWxwZXJzL3R5cGUudHM/YTNjNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBmdW5jdGlvbiBpc0FycmF5KHZhbHVlKSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gXCJbb2JqZWN0IEFycmF5XVwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkpID09IFwiW29iamVjdCBPYmplY3RdXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09IFwiW29iamVjdCBTdHJpbmddXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gXCJbb2JqZWN0IEZ1bmN0aW9uXVwiO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFGQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0\n')},function(module,exports,__webpack_require__){"use strict";eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.syncQueryHOC = exports.SyncQueryFactory = exports.syncQueryCb = void 0;\nconst util_1 = __webpack_require__(2);\nconst convert_1 = __webpack_require__(5);\nconst url_1 = __webpack_require__(3);\nconst type_1 = __webpack_require__(0);\nconst deepEqual_1 = __webpack_require__(6);\nfunction syncQueryCb(callbackDeps) {\n return function (target, propertyKey) {\n target.callbackName = propertyKey;\n if (type_1.isArray(callbackDeps) && callbackDeps.length > 0) {\n target.callbackDeps = callbackDeps;\n }\n };\n}\nexports.syncQueryCb = syncQueryCb;\nconst __SYNC_QUERY_DIFF_IGNORE__ = '__SYNC_QUERY_DIFF_IGNORE__';\nconst __SYNC_QUERY_CALLBACK_IGNORE__ = '__SYNC_QUERY_CALLBACK_IGNORE__';\nfunction SyncQueryFactory(stateList, callbackName, config) {\n return function (WrappedComponent) {\n return syncQueryHOC(WrappedComponent, stateList, callbackName, config);\n };\n}\nexports.SyncQueryFactory = SyncQueryFactory;\n/**\n * syncQueryHOC\n * @param WrappedComponent\n * @param stateList states are observed\n * @param callbackName callbackName would be called when state difference is detected\n * @param config SyncQueryConfig\n */\nfunction syncQueryHOC(WrappedComponent, stateList, callbackName, config) {\n if (!type_1.isObject(config)) {\n config = {\n wait: 300,\n };\n }\n else {\n config = Object.assign({ wait: 300 }, config);\n }\n return class Enhancer extends WrappedComponent {\n constructor(param) {\n super(param);\n this.prevStateCache = {};\n this.state = Object.assign(Object.assign({}, this.state), this.getStateFromURL(stateList));\n this.reBindCallback(false, true);\n this.prevStateCache = this.state;\n if (config.disableAutoSync === true) {\n this.triggerSync = () => {\n this.stateDiffEffect(this.state);\n };\n }\n this.stateDiffEffect = util_1.debounce(this.stateDiffEffect, config.wait).bind(this);\n }\n getStateFromURL(stateList) {\n const query = location.href.split('?')[1];\n if (query == null) {\n return;\n }\n return convert_1.queryToState(query, stateList, config.parser);\n }\n syncStateToURL(state) {\n const [locationAddress, oldQuery] = location.href.split('?');\n const restQuery = url_1.filterQuery(oldQuery, (key, value) => (stateList.indexOf(key) === -1));\n const query = convert_1.stateToQuery(state, config.stringify);\n const href = `${locationAddress}?${query}&${restQuery}`;\n location.href = href;\n }\n reBindCallback(diffIgnore = true, callBackIgnore) {\n this.callbackName = this.callbackName || callbackName;\n if (this.callbackName == null) {\n return;\n }\n if (typeof super[this.callbackName] !== 'function') {\n console.error('sync-query: callback must be react component method name!!! Tips: SyncQueryFactory and syncQueryHOC must be closest with Component Class');\n return;\n }\n const clone = Object.create(this);\n clone.setState = (updater, callback) => {\n this.setState(updater, callback, diffIgnore, callBackIgnore);\n };\n // super[callbackName] is super.prototype[callbackName], so it is not bound with _super.\n this[this.callbackName] = super[this.callbackName].bind(clone);\n this.callbackDeps = this.callbackDeps || config.callbackDeps;\n }\n componentDidMount() {\n const result = super.componentDidMount && super.componentDidMount();\n this.reBindCallback();\n return result;\n }\n componentDidUpdate(prevProps, prevState) {\n if (this.state[__SYNC_QUERY_DIFF_IGNORE__] === true || config.disableAutoSync === true) {\n return (super.componentDidUpdate &&\n super.componentDidUpdate(prevProps, prevState));\n }\n this.stateDiffEffect(this.state);\n return (super.componentDidUpdate &&\n super.componentDidUpdate(prevProps, prevState));\n }\n stateDiffEffect(state) {\n const prevState = this.prevStateCache;\n if (prevState == null && state == null) {\n console.error('sync-query: stateDiffEffect could not be null');\n return;\n }\n // stateList diff\n const pickedPrevState = util_1.pick(prevState, stateList);\n const pickedState = util_1.pick(state, stateList);\n const isDiff = !deepEqual_1.deepEqual(pickedPrevState, pickedState);\n if (isDiff) {\n this.syncStateToURL(pickedState);\n }\n if (this.state[__SYNC_QUERY_CALLBACK_IGNORE__] === true) {\n console.warn('Ingore: sync-query: auto trigger callback,only after ComponentDidMount');\n return;\n }\n // callbackDeps diff\n const callbackDeps = this.callbackDeps;\n if (callbackDeps == null) {\n isDiff && this[this.callbackName] && typeof this[this.callbackName] === 'function' && this[this.callbackName]();\n }\n else {\n const pickedPrevState = util_1.pick(prevState, callbackDeps);\n const pickedState = util_1.pick(state, callbackDeps);\n const isDiff = !deepEqual_1.deepEqual(pickedPrevState, pickedState);\n isDiff && this[this.callbackName] && typeof this[this.callbackName] === 'function' && this[this.callbackName]();\n }\n this.prevStateCache = state;\n }\n setState(updater, callback, diffIgnore, callBackIgnore) {\n // Ref: https://zh-hans.reactjs.org/docs/react-component.html#setstate\n if (typeof updater === 'object') {\n return super.setState(Object.assign(Object.assign({}, updater), { [__SYNC_QUERY_DIFF_IGNORE__]: diffIgnore, [__SYNC_QUERY_CALLBACK_IGNORE__]: callBackIgnore }), callback);\n }\n if (typeof updater === 'function') {\n return super.setState(function (state, props) {\n return Object.assign(Object.assign({}, updater(state, props)), { [__SYNC_QUERY_DIFF_IGNORE__]: diffIgnore, [__SYNC_QUERY_CALLBACK_IGNORE__]: callBackIgnore });\n }, callback);\n }\n return super.setState(updater, callback);\n }\n };\n}\nexports.syncQueryHOC = syncQueryHOC;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jb3JlL2RlY29yYXRvcnMudHM/MWNkOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwaWNrLCBkZWJvdW5jZSB9IGZyb20gXCIuLi9oZWxwZXJzL3V0aWxcIjtcbmltcG9ydCB7IHF1ZXJ5VG9TdGF0ZSwgc3RhdGVUb1F1ZXJ5LCBJUXVlcnlQYXJzZXIsIElRdWVyeVN0cmluZ2lmeSB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbnZlcnRcIjtcbmltcG9ydCB7IGZpbHRlclF1ZXJ5IH0gZnJvbSBcIi4uL2hlbHBlcnMvdXJsXCI7XG5pbXBvcnQgeyBpc0FycmF5LCBpc09iamVjdCB9IGZyb20gXCIuLi9oZWxwZXJzL3R5cGVcIjtcbmltcG9ydCB7IGRlZXBFcXVhbCB9IGZyb20gXCIuLi9oZWxwZXJzL2RlZXBFcXVhbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gc3luY1F1ZXJ5Q2IoY2FsbGJhY2tEZXBzPzpzdHJpbmdbXSkge1xuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpIHtcbiAgICAgICAgdGFyZ2V0LmNhbGxiYWNrTmFtZSA9IHByb3BlcnR5S2V5O1xuICAgICAgICBpZiAoaXNBcnJheShjYWxsYmFja0RlcHMpICYmIGNhbGxiYWNrRGVwcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0YXJnZXQuY2FsbGJhY2tEZXBzID0gY2FsbGJhY2tEZXBzO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuY29uc3QgX19TWU5DX1FVRVJZX0RJRkZfSUdOT1JFX18gPSAnX19TWU5DX1FVRVJZX0RJRkZfSUdOT1JFX18nO1xuY29uc3QgX19TWU5DX1FVRVJZX0NBTExCQUNLX0lHTk9SRV9fID0gJ19fU1lOQ19RVUVSWV9DQUxMQkFDS19JR05PUkVfXyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBTeW5jUXVlcnlGYWN0b3J5KHN0YXRlTGlzdDogc3RyaW5nW10sIGNhbGxiYWNrTmFtZT86c3RyaW5nLCBjb25maWc/OlN5bmNRdWVyeUNvbmZpZykge1xuICAgIHJldHVybiBmdW5jdGlvbihXcmFwcGVkQ29tcG9uZW50KSB7XG4gICAgICAgIHJldHVybiBzeW5jUXVlcnlIT0MoV3JhcHBlZENvbXBvbmVudCwgc3RhdGVMaXN0LCBjYWxsYmFja05hbWUsIGNvbmZpZyk7XG4gICAgfVxufVxuXG50eXBlIFN5bmNRdWVyeUNvbmZpZyA9IHtcbiAgICB3YWl0PzogbnVtYmVyLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g5Ye95pWw6Ziy5oqW55qE562J5b6F5pe26Ze077yMIOWNleS9jSBtc1xuICAgIGNhbGxiYWNrRGVwcz86IHN0cmluZ1tdLCAgICAgICAgICAgICAgICAvLyBjYWxsYmFja0RlcHMg5a2Y5pS+IHN0YXRlIGtleSDnmoTmlbDnu4TvvIznm5HlkKzliLAgc3RhdGUg5Lit5a+55bqUa2V5IOeahCB2YWx1ZSDlj5jljJbml7bvvIzkvJrosIPnlKggY2FsbGJhY2vvvIjnvZHnu5zor7fmsYLnrYnvvIlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFM6IGNhbGxiYWNrRGVwcyDmsqHmnInkvKDlhaXml7bvvIzpu5jorqTnm5HlkKznmoTlhoXlrrnnrYnkuo4gc3RhdGVMaXN0XG4gICAgcGFyc2VyPzogSVF1ZXJ5UGFyc2VyLCAgICAgICAgICAgICAgICAgIC8vIOino+aekOWZqO+8mueUqOS6juWwhui3r+eUseWPguaVsCBxdWVyeSDop6PmnpDliLAgc3RhdGXvvIzpu5jorqTmmK8gSlNPTi5wYXJzZVxuICAgIHN0cmluZ2lmeT86IElRdWVyeVN0cmluZ2lmeSwgICAgICAgICAgICAvLyDnlJ/miJDlmajvvJrnlKjkuo7nlJ/miJAgc3RhdGUg5a+55bqU55qEIHF1ZXJ5IOWtl+espuS4su+8jOm7mOiupOaYryBKU09OLnN0cmluZ2lmeVxuICAgIGRpc2FibGVBdXRvU3luYz86IGJvb2xlYW4sICAgICAgICAgICAgICAvLyDmmK/lkKblhbPpl63oh6rliqjlkIzmraVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTeW5jUXVlcnlIb3N0IHtcbiAgICB0cmlnZ2VyU3luY1xufVxuXG4vKipcbiAqIHN5bmNRdWVyeUhPQ1xuICogQHBhcmFtIFdyYXBwZWRDb21wb25lbnQgXG4gKiBAcGFyYW0gc3RhdGVMaXN0IHN0YXRlcyBhcmUgb2JzZXJ2ZWRcbiAqIEBwYXJhbSBjYWxsYmFja05hbWUgY2FsbGJhY2tOYW1lIHdvdWxkIGJlIGNhbGxlZCB3aGVuIHN0YXRlIGRpZmZlcmVuY2UgaXMgZGV0ZWN0ZWRcbiAqIEBwYXJhbSBjb25maWcgU3luY1F1ZXJ5Q29uZmlnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzeW5jUXVlcnlIT0MoV3JhcHBlZENvbXBvbmVudCwgc3RhdGVMaXN0OiBzdHJpbmdbXSwgY2FsbGJhY2tOYW1lPzpzdHJpbmcsIGNvbmZpZz86U3luY1F1ZXJ5Q29uZmlnKSA6IGFueXsgICAgXG4gICAgaWYgKCFpc09iamVjdChjb25maWcpKSB7XG4gICAgICAgIGNvbmZpZyA9IHtcbiAgICAgICAgICAgIHdhaXQ6IDMwMCxcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbmZpZyA9IHtcbiAgICAgICAgICAgIHdhaXQ6IDMwMCxcbiAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2xhc3MgRW5oYW5jZXIgZXh0ZW5kcyBXcmFwcGVkQ29tcG9uZW50IHtcbiAgICAgICAgcHJpdmF0ZSBwcmV2U3RhdGVDYWNoZSA9IHt9O1xuICAgICAgICBjb25zdHJ1Y3RvcihwYXJhbSkge1xuICAgICAgICAgICAgc3VwZXIocGFyYW0pO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0U3RhdGVGcm9tVVJMKHN0YXRlTGlzdCksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlQmluZENhbGxiYWNrKGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIHRoaXMucHJldlN0YXRlQ2FjaGUgPSB0aGlzLnN0YXRlO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5kaXNhYmxlQXV0b1N5bmMgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJTeW5jID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlRGlmZkVmZmVjdCh0aGlzLnN0YXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlRGlmZkVmZmVjdCA9IGRlYm91bmNlKHRoaXMuc3RhdGVEaWZmRWZmZWN0LCBjb25maWcud2FpdCkuYmluZCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBwcml2YXRlIGdldFN0YXRlRnJvbVVSTChzdGF0ZUxpc3Q6c3RyaW5nW10pIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gbG9jYXRpb24uaHJlZi5zcGxpdCgnPycpWzFdO1xuICAgICAgICAgICAgaWYgKHF1ZXJ5ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcXVlcnlUb1N0YXRlKHF1ZXJ5LCBzdGF0ZUxpc3QsIGNvbmZpZy5wYXJzZXIpO1xuICAgICAgICB9XG4gICAgICAgIHByaXZhdGUgc3luY1N0YXRlVG9VUkwoc3RhdGU6T2JqZWN0KSB7XG4gICAgICAgICAgICBjb25zdCBbbG9jYXRpb25BZGRyZXNzLCBvbGRRdWVyeV0gPSBsb2NhdGlvbi5ocmVmLnNwbGl0KCc/Jyk7XG4gICAgICAgICAgICBjb25zdCByZXN0UXVlcnkgPSBmaWx0ZXJRdWVyeShvbGRRdWVyeSwgKGtleSwgdmFsdWUpID0+IChzdGF0ZUxpc3QuaW5kZXhPZihrZXkpID09PSAtMSkpXG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9ICBzdGF0ZVRvUXVlcnkoc3RhdGUsIGNvbmZpZy5zdHJpbmdpZnkpO1xuICAgICAgICAgICAgY29uc3QgaHJlZiA9IGAke2xvY2F0aW9uQWRkcmVzc30/JHtxdWVyeX0mJHtyZXN0UXVlcnl9YDtcbiAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBocmVmO1xuICAgICAgICB9XG4gICAgICAgIHByaXZhdGUgcmVCaW5kQ2FsbGJhY2soZGlmZklnbm9yZTpib29sZWFuID0gdHJ1ZSwgY2FsbEJhY2tJZ25vcmU/OmJvb2xlYW4pIHtcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tOYW1lID0gdGhpcy5jYWxsYmFja05hbWUgfHwgY2FsbGJhY2tOYW1lOyAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHRoaXMuY2FsbGJhY2tOYW1lID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHN1cGVyW3RoaXMuY2FsbGJhY2tOYW1lXSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ3N5bmMtcXVlcnk6IGNhbGxiYWNrIG11c3QgYmUgcmVhY3QgY29tcG9uZW50IG1ldGhvZCBuYW1lISEhIFRpcHM6ICBTeW5jUXVlcnlGYWN0b3J5IGFuZCBzeW5jUXVlcnlIT0MgbXVzdCBiZSBjbG9zZXN0IHdpdGggQ29tcG9uZW50IENsYXNzJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY2xvbmUgPSBPYmplY3QuY3JlYXRlKHRoaXMpO1xuICAgICAgICAgICAgY2xvbmUuc2V0U3RhdGUgPSAodXBkYXRlciwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHVwZGF0ZXIsIGNhbGxiYWNrLCBkaWZmSWdub3JlLCBjYWxsQmFja0lnbm9yZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBzdXBlcltjYWxsYmFja05hbWVdIGlzIHN1cGVyLnByb3RvdHlwZVtjYWxsYmFja05hbWVdLCBzbyBpdCBpcyBub3QgYm91bmQgd2l0aCBfc3VwZXIuXG4gICAgICAgICAgICB0aGlzW3RoaXMuY2FsbGJhY2tOYW1lXSA9IHN1cGVyW3RoaXMuY2FsbGJhY2tOYW1lXS5iaW5kKGNsb25lKTtcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tEZXBzID0gdGhpcy5jYWxsYmFja0RlcHMgfHwgY29uZmlnLmNhbGxiYWNrRGVwcztcbiAgICAgICAgfVxuICAgICAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHN1cGVyLmNvbXBvbmVudERpZE1vdW50ICYmIHN1cGVyLmNvbXBvbmVudERpZE1vdW50KCk7XG4gICAgICAgICAgICB0aGlzLnJlQmluZENhbGxiYWNrKCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGVbX19TWU5DX1FVRVJZX0RJRkZfSUdOT1JFX19dID09PSB0cnVlIHx8IGNvbmZpZy5kaXNhYmxlQXV0b1N5bmMgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICBzdXBlci5jb21wb25lbnREaWRVcGRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgc3VwZXIuY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlRGlmZkVmZmVjdCh0aGlzLnN0YXRlKTtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgc3VwZXIuY29tcG9uZW50RGlkVXBkYXRlICYmXG4gICAgICAgICAgICAgICAgc3VwZXIuY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBwcml2YXRlIHN0YXRlRGlmZkVmZmVjdChzdGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgcHJldlN0YXRlID0gdGhpcy5wcmV2U3RhdGVDYWNoZTtcbiAgICAgICAgICAgIGlmIChwcmV2U3RhdGUgPT0gbnVsbCAmJiBzdGF0ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignc3luYy1xdWVyeTogc3RhdGVEaWZmRWZmZWN0IGNvdWxkIG5vdCBiZSBudWxsJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gc3RhdGVMaXN0IGRpZmZcbiAgICAgICAgICAgIGNvbnN0IHBpY2tlZFByZXZTdGF0ZSA9IHBpY2socHJldlN0YXRlLCBzdGF0ZUxpc3QpO1xuICAgICAgICAgICAgY29uc3QgcGlja2VkU3RhdGUgPSBwaWNrKHN0YXRlLCBzdGF0ZUxpc3QpO1xuXG4gICAgICAgICAgICBjb25zdCBpc0RpZmYgPSAhZGVlcEVxdWFsKHBpY2tlZFByZXZTdGF0ZSwgcGlja2VkU3RhdGUpO1xuICAgICAgICAgICAgaWYgKGlzRGlmZikge1xuICAgICAgICAgICAgICAgIHRoaXMuc3luY1N0YXRlVG9VUkwocGlja2VkU3RhdGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZVtfX1NZTkNfUVVFUllfQ0FMTEJBQ0tfSUdOT1JFX19dID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdJbmdvcmU6IHN5bmMtcXVlcnk6IGF1dG8gdHJpZ2dlciBjYWxsYmFja++8jG9ubHkgYWZ0ZXIgQ29tcG9uZW50RGlkTW91bnQnKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjYWxsYmFja0RlcHMgZGlmZlxuICAgICAgICAgICAgY29uc3QgY2FsbGJhY2tEZXBzID0gdGhpcy5jYWxsYmFja0RlcHM7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2tEZXBzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpc0RpZmYgJiYgdGhpc1t0aGlzLmNhbGxiYWNrTmFtZV0gJiYgdHlwZW9mIHRoaXNbdGhpcy5jYWxsYmFja05hbWVdID09PSAnZnVuY3Rpb24nICYmIHRoaXNbdGhpcy5jYWxsYmFja05hbWVdKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBpY2tlZFByZXZTdGF0ZSA9IHBpY2socHJldlN0YXRlLCBjYWxsYmFja0RlcHMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBpY2tlZFN0YXRlID0gcGljayhzdGF0ZSwgY2FsbGJhY2tEZXBzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0RpZmYgPSAhZGVlcEVxdWFsKHBpY2tlZFByZXZTdGF0ZSwgcGlja2VkU3RhdGUpO1xuICAgICAgICAgICAgICAgIGlzRGlmZiAmJiB0aGlzW3RoaXMuY2FsbGJhY2tOYW1lXSAmJiB0eXBlb2YgdGhpc1t0aGlzLmNhbGxiYWNrTmFtZV0gPT09ICdmdW5jdGlvbicgJiYgdGhpc1t0aGlzLmNhbGxiYWNrTmFtZV0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucHJldlN0YXRlQ2FjaGUgPSBzdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBzZXRTdGF0ZSh1cGRhdGVyLCBjYWxsYmFjaz86KCkgPT4gdm9pZCwgZGlmZklnbm9yZT86Ym9vbGVhbiwgY2FsbEJhY2tJZ25vcmU/OmJvb2xlYW4pIHtcbiAgICAgICAgICAgIC8vIFJlZjogaHR0cHM6Ly96aC1oYW5zLnJlYWN0anMub3JnL2RvY3MvcmVhY3QtY29tcG9uZW50Lmh0bWwjc2V0c3RhdGVcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdXBkYXRlciA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIuc2V0U3RhdGUoXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnVwZGF0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBbX19TWU5DX1FVRVJZX0RJRkZfSUdOT1JFX19dOiBkaWZmSWdub3JlLFxuICAgICAgICAgICAgICAgICAgICAgICAgW19fU1lOQ19RVUVSWV9DQUxMQkFDS19JR05PUkVfX106IGNhbGxCYWNrSWdub3JlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB1cGRhdGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnNldFN0YXRlKFxuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoc3RhdGUsIHByb3BzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnVwZGF0ZXIoc3RhdGUsIHByb3BzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbX19TWU5DX1FVRVJZX0RJRkZfSUdOT1JFX19dOiBkaWZmSWdub3JlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtfX1NZTkNfUVVFUllfQ0FMTEJBQ0tfSUdOT1JFX19dOiBjYWxsQmFja0lnbm9yZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdXBlci5zZXRTdGF0ZSh1cGRhdGVyLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFTQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBbUJBOzs7Ozs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUZBO0FBR0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVFBO0FBQ0E7QUFDQTtBQUVBO0FBS0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdklBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///1\n")},function(module,exports,__webpack_require__){"use strict";eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.debounce = exports.map = exports.filterExist = exports.filter = exports.pick = void 0;\nconst type_1 = __webpack_require__(0);\n/**\n * Refer: https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore\n * @param object\n * @param keys\n */\nfunction pick(object, keys) {\n return filter(object, function (acc, cur, obj) {\n return keys.indexOf(cur) != -1;\n });\n}\nexports.pick = pick;\nfunction filter(obj, handler) {\n if (!type_1.isObject(obj)) {\n console.error(`Param ${obj} is not a object`);\n return {};\n }\n return Object.keys(obj).reduce((acc, cur) => {\n if (typeof handler != 'function') {\n handler = notNull;\n }\n if (handler(acc, cur, obj)) {\n return Object.assign(Object.assign({}, acc), { [cur]: obj[cur] });\n }\n else {\n return acc;\n }\n }, {});\n}\nexports.filter = filter;\nfunction notNull(tarket, key, obj) {\n return obj[key] != null;\n}\nfunction exist(tarket, key, obj) {\n return obj[key] != null;\n}\nfunction filterExist(obj) {\n return filter(obj, exist);\n}\nexports.filterExist = filterExist;\nfunction map(obj, func) {\n if (!type_1.isObject(obj)) {\n console.error(`Param ${obj} is not a object`);\n return {};\n }\n return Object.keys(obj).reduce((acc, key) => {\n acc[key] = func(obj[key], key);\n return acc;\n }, {});\n}\nexports.map = map;\nfunction debounce(func, wait) {\n let timeout;\n return function (...args) {\n const context = this;\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n func.apply(context, args);\n }, wait);\n };\n}\nexports.debounce = debounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9oZWxwZXJzL3V0aWwudHM/ODcyNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4vdHlwZSc7XG5cbi8qKlxuICogUmVmZXI6IGh0dHBzOi8vZ2l0aHViLmNvbS95b3UtZG9udC1uZWVkL1lvdS1Eb250LU5lZWQtTG9kYXNoLVVuZGVyc2NvcmVcbiAqIEBwYXJhbSBvYmplY3QgXG4gKiBAcGFyYW0ga2V5cyBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBpY2sob2JqZWN0LCBrZXlzOnN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIGZpbHRlcihvYmplY3QsIGZ1bmN0aW9uKGFjYywgY3VyLCBvYmopIHtcbiAgICAgICAgcmV0dXJuIGtleXMuaW5kZXhPZihjdXIpICE9IC0xO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyKG9iaiwgaGFuZGxlcj8pIHtcbiAgICBpZiAoIWlzT2JqZWN0KG9iaikpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgUGFyYW0gJHtvYmp9IGlzIG5vdCBhIG9iamVjdGApO1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgoYWNjLCBjdXIpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBoYW5kbGVyICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGhhbmRsZXIgPSBub3ROdWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYW5kbGVyKGFjYywgY3VyLCBvYmopKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgICAgICBbY3VyXTogb2JqW2N1cl0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuICAgIH0sIHt9KTtcbn1cblxuZnVuY3Rpb24gbm90TnVsbCh0YXJrZXQsIGtleSwgb2JqKSB7XG4gICAgcmV0dXJuIG9ialtrZXldICE9IG51bGw7XG59XG5cbmZ1bmN0aW9uIGV4aXN0KHRhcmtldCwga2V5LCBvYmopIHtcbiAgICByZXR1cm4gb2JqW2tleV0gIT0gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckV4aXN0KG9iajpPYmplY3QpIHtcbiAgICByZXR1cm4gZmlsdGVyKG9iaiwgZXhpc3QpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwKG9iaiwgZnVuYykge1xuICAgIGlmICghaXNPYmplY3Qob2JqKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBQYXJhbSAke29ian0gaXMgbm90IGEgb2JqZWN0YCk7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBhY2Nba2V5XSA9IGZ1bmMob2JqW2tleV0sIGtleSk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCkge1xuICAgIGxldCB0aW1lb3V0O1xuICAgIHJldHVybiBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcztcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncylcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3YWl0XG4gICAgICAgIClcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBRUE7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFsQkE7QUFvQkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFaQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2\n")},function(module,exports,__webpack_require__){"use strict";eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterQuery = exports.encodeQuery = exports.parseQuery = exports.formatQuery = exports.formatUrl = void 0;\nconst type_1 = __webpack_require__(0);\n/**\n * Refer: nuxt/utils\n * Format given url, append query to url query string\n *\n * @param {string} url\n * @param {string} query\n * @return {string}\n */\nfunction formatUrl(url, query) {\n let protocol;\n const index = url.indexOf('://');\n if (index !== -1) {\n protocol = url.substring(0, index);\n url = url.substring(index + 3);\n }\n else if (url.startsWith('//')) {\n url = url.substring(2);\n }\n let parts = url.split('/');\n let result = (protocol ? protocol + '://' : '//') + parts.shift();\n let path = parts.filter(Boolean).join('/');\n let hash;\n parts = path.split('#');\n if (parts.length === 2) {\n [path, hash] = parts;\n }\n result += path ? '/' + path : '';\n if (query && JSON.stringify(query) !== '{}') {\n result += (url.split('?').length === 2 ? '&' : '?') + formatQuery(query);\n }\n result += hash ? '#' + hash : '';\n return result;\n}\nexports.formatUrl = formatUrl;\n/**\n * Refer: nuxt/utils\n * Transform data object to query string\n *\n * @param {object} query\n * @return {string}\n */\nfunction formatQuery(query) {\n return Object.keys(query).sort().map((key) => {\n const val = query[key];\n if (val == null) {\n return '';\n }\n if (Array.isArray(val)) {\n return val.slice().map(val2 => [key, '=', val2].join('')).join('&');\n }\n return key + '=' + val;\n }).filter(Boolean).join('&');\n}\nexports.formatQuery = formatQuery;\nexports.parseQuery = (queryString, handler = decodeURIComponent) => {\n const query = {};\n const pairs = queryString.split('&');\n for (let i = 0; i < pairs.length; i++) {\n const pair = pairs[i].split('=');\n query[handler(pair[0])] = handler(pair[1] || '');\n }\n return query;\n};\nexports.encodeQuery = (queryObject, handler = encodeURIComponent) => {\n return Object.entries(queryObject)\n .filter(([key, value]) => typeof value !== 'undefined')\n .map(([key, value]) => handler(key) + (value != null ? '=' + handler(value) : ''))\n .join('&');\n};\nexports.filterQuery = (queryString, handler) => {\n if (!type_1.isString(queryString)) {\n return '';\n }\n if (queryString.length === 0) {\n return '';\n }\n return queryString\n .split('&')\n .reduce((acc, cur) => {\n const [key, value] = cur.split('=');\n if (handler(key, value)) {\n acc.push(cur);\n }\n return acc;\n }, [])\n .join('&');\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9oZWxwZXJzL3VybC50cz8zZTRjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcIi4vdHlwZVwiO1xuXG4vKipcbiAqIFJlZmVyOiBudXh0L3V0aWxzXG4gKiBGb3JtYXQgZ2l2ZW4gdXJsLCBhcHBlbmQgcXVlcnkgdG8gdXJsIHF1ZXJ5IHN0cmluZ1xuICpcbiAqIEBwYXJhbSAge3N0cmluZ30gdXJsXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHF1ZXJ5XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRVcmwodXJsLCBxdWVyeSkge1xuICAgIGxldCBwcm90b2NvbFxuICAgIGNvbnN0IGluZGV4ID0gdXJsLmluZGV4T2YoJzovLycpXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBwcm90b2NvbCA9IHVybC5zdWJzdHJpbmcoMCwgaW5kZXgpXG4gICAgICAgIHVybCA9IHVybC5zdWJzdHJpbmcoaW5kZXggKyAzKVxuICAgIH0gZWxzZSBpZiAodXJsLnN0YXJ0c1dpdGgoJy8vJykpIHtcbiAgICAgICAgdXJsID0gdXJsLnN1YnN0cmluZygyKVxuICAgIH1cblxuICAgIGxldCBwYXJ0cyA9IHVybC5zcGxpdCgnLycpXG4gICAgbGV0IHJlc3VsdCA9IChwcm90b2NvbCA/IHByb3RvY29sICsgJzovLycgOiAnLy8nKSArIHBhcnRzLnNoaWZ0KClcblxuICAgIGxldCBwYXRoID0gcGFydHMuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJy8nKVxuICAgIGxldCBoYXNoXG4gICAgcGFydHMgPSBwYXRoLnNwbGl0KCcjJylcbiAgICBpZiAocGFydHMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIFtwYXRoLCBoYXNoXSA9IHBhcnRzXG4gICAgfVxuXG4gICAgcmVzdWx0ICs9IHBhdGggPyAnLycgKyBwYXRoIDogJydcblxuICAgIGlmIChxdWVyeSAmJiBKU09OLnN0cmluZ2lmeShxdWVyeSkgIT09ICd7fScpIHtcbiAgICAgICAgcmVzdWx0ICs9ICh1cmwuc3BsaXQoJz8nKS5sZW5ndGggPT09IDIgPyAnJicgOiAnPycpICsgZm9ybWF0UXVlcnkocXVlcnkpXG4gICAgfVxuICAgIHJlc3VsdCArPSBoYXNoID8gJyMnICsgaGFzaCA6ICcnXG5cbiAgICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogUmVmZXI6IG51eHQvdXRpbHNcbiAqIFRyYW5zZm9ybSBkYXRhIG9iamVjdCB0byBxdWVyeSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0gIHtvYmplY3R9IHF1ZXJ5XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRRdWVyeShxdWVyeSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeSkuc29ydCgpLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbCA9IHF1ZXJ5W2tleV1cbiAgICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gJydcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsLnNsaWNlKCkubWFwKHZhbDIgPT4gW2tleSwgJz0nLCB2YWwyXS5qb2luKCcnKSkuam9pbignJicpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleSArICc9JyArIHZhbFxuICAgIH0pLmZpbHRlcihCb29sZWFuKS5qb2luKCcmJylcbn1cblxuZXhwb3J0IGNvbnN0IHBhcnNlUXVlcnkgPSAocXVlcnlTdHJpbmcsIGhhbmRsZXIgPSBkZWNvZGVVUklDb21wb25lbnQpID0+IHtcbiAgICBjb25zdCBxdWVyeSA9IHt9XG4gICAgY29uc3QgcGFpcnMgPSBxdWVyeVN0cmluZy5zcGxpdCgnJicpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYWlycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBwYWlyID0gcGFpcnNbaV0uc3BsaXQoJz0nKVxuICAgICAgICBxdWVyeVtoYW5kbGVyKHBhaXJbMF0pXSA9IGhhbmRsZXIocGFpclsxXSB8fCAnJylcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJ5XG59XG5cbmV4cG9ydCBjb25zdCBlbmNvZGVRdWVyeSA9IChxdWVyeU9iamVjdCwgaGFuZGxlcjpGdW5jdGlvbiA9IGVuY29kZVVSSUNvbXBvbmVudCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhxdWVyeU9iamVjdClcbiAgICAgICAgLmZpbHRlcigoW2tleSwgdmFsdWVdKSA9PiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKVxuICAgICAgICAubWFwKFxuICAgICAgICAgICAgKFtrZXksIHZhbHVlXSkgPT5cbiAgICAgICAgICAgICAgICBoYW5kbGVyKGtleSkgKyAodmFsdWUgIT0gbnVsbCA/ICc9JyArIGhhbmRsZXIodmFsdWUgYXMgYW55KSA6ICcnKVxuICAgICAgICApXG4gICAgICAgIC5qb2luKCcmJylcbn1cblxuZXhwb3J0IGNvbnN0IGZpbHRlclF1ZXJ5ID0gKFxuICAgIHF1ZXJ5U3RyaW5nOnN0cmluZyxcbiAgICBoYW5kbGVyOihrZXk6c3RyaW5nLCB2YWx1ZTpzdHJpbmcpID0+IEJvb2xlYW5cbikgPT4ge1xuICAgIGlmICghaXNTdHJpbmcocXVlcnlTdHJpbmcpKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKHF1ZXJ5U3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBxdWVyeVN0cmluZ1xuICAgICAgICAuc3BsaXQoJyYnKVxuICAgICAgICAucmVkdWNlKFxuICAgICAgICAgICAgKGFjYywgY3VyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gY3VyLnNwbGl0KCc9JylcbiAgICAgICAgICAgICAgICBpZiAoaGFuZGxlcihrZXksIHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBhY2MucHVzaChjdXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtdXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJyYnKTtcbn1cblxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUVBOzs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQTVCQTtBQThCQTs7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFYQTtBQWFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUVBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n")},function(module,exports,__webpack_require__){"use strict";eval('\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, "__esModule", { value: true });\nexports.SyncQueryFactory = exports.syncQueryHOC = exports.syncQueryCb = void 0;\nconst decorators_1 = __webpack_require__(1);\nObject.defineProperty(exports, "syncQueryCb", { enumerable: true, get: function () { return decorators_1.syncQueryCb; } });\nObject.defineProperty(exports, "syncQueryHOC", { enumerable: true, get: function () { return decorators_1.syncQueryHOC; } });\nObject.defineProperty(exports, "SyncQueryFactory", { enumerable: true, get: function () { return decorators_1.SyncQueryFactory; } });\n__exportStar(__webpack_require__(1), exports);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9pbmRleC50cz9mZmI0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN5bmNRdWVyeUNiLCBzeW5jUXVlcnlIT0MsIFN5bmNRdWVyeUZhY3RvcnksIFN5bmNRdWVyeUhvc3QgfSAgZnJvbSAnLi9jb3JlL2RlY29yYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL2RlY29yYXRvcnMnO1xuXG5leHBvcnQge1xuICAgIHN5bmNRdWVyeUNiLCBzeW5jUXVlcnlIT0MsIFN5bmNRdWVyeUZhY3RvcnksIFN5bmNRdWVyeUhvc3Rcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBO0FBSUE7QUFBQTtBQUFBO0FBSEE7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n')},function(module,exports,__webpack_require__){"use strict";eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stateToQuery = exports.queryToState = exports.parseParam = void 0;\nconst url_1 = __webpack_require__(3);\nconst util_1 = __webpack_require__(2);\nconst type_1 = __webpack_require__(0);\nfunction parseParam(value) {\n let parsed;\n try {\n parsed = JSON.parse(value);\n }\n catch (error) {\n console.error(`parseParam error: ${value} can't be JSON.parse. Error: ${error}. Type: ${typeof value}. `);\n }\n return parsed;\n}\nexports.parseParam = parseParam;\nfunction queryToState(query, stateList, parser) {\n if (!type_1.isString(query) || query.length === 0) {\n return {};\n }\n const origin = url_1.parseQuery(query);\n return Object.keys(origin)\n .filter((value) => (stateList == null ? true : stateList.indexOf(value)) > -1)\n .reduce((obj, key) => {\n const parseParamFunc = type_1.isObject(parser) && type_1.isFunction(parser[key]) && parser[key] || parseParam;\n const parsedVal = parseParamFunc(origin[key]);\n parsedVal != null && (obj[key] = parsedVal);\n return obj;\n }, {});\n}\nexports.queryToState = queryToState;\nfunction stringifyParam(value) {\n return JSON.stringify(value);\n}\nfunction stateToQuery(state, stringify) {\n if (!type_1.isObject(state)) {\n return '';\n }\n const filterState = util_1.filterExist(state);\n const query = url_1.encodeQuery(util_1.map(filterState, (value, key) => {\n const stringifyParamFunc = type_1.isObject(stringify) && type_1.isFunction(stringify[key]) && stringify[key] || stringifyParam;\n return stringifyParamFunc(value);\n }));\n return query;\n}\nexports.stateToQuery = stateToQuery;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9oZWxwZXJzL2NvbnZlcnQudHM/Njg4MiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVF1ZXJ5LCBlbmNvZGVRdWVyeSB9IGZyb20gXCIuL3VybFwiO1xuaW1wb3J0IHsgZmlsdGVyRXhpc3QsIG1hcCB9IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCB7IGlzU3RyaW5nLCBpc09iamVjdCwgaXNGdW5jdGlvbiB9IGZyb20gXCIuL3R5cGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGFyYW0odmFsdWUpIHtcbiAgICBsZXQgcGFyc2VkO1xuICAgIHRyeSB7XG4gICAgICAgIHBhcnNlZCA9IEpTT04ucGFyc2UodmFsdWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYHBhcnNlUGFyYW0gZXJyb3I6ICR7IHZhbHVlIH0gY2FuJ3QgYmUgSlNPTi5wYXJzZS4gRXJyb3I6ICR7IGVycm9yIH0uIFR5cGU6ICR7IHR5cGVvZiB2YWx1ZSB9LiBgKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlZDtcbn1cblxuZXhwb3J0IHR5cGUgSVF1ZXJ5UGFyc2VyID0ge1xuICAgIFtrZXk6c3RyaW5nXTogKHN0cmluZykgPT4gYW55XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlUb1N0YXRlKHF1ZXJ5OnN0cmluZywgc3RhdGVMaXN0PzpzdHJpbmdbXSwgcGFyc2VyPzpJUXVlcnlQYXJzZXIpIHtcbiAgICBpZiAoIWlzU3RyaW5nKHF1ZXJ5KSB8fCBxdWVyeS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCBvcmlnaW4gPSBwYXJzZVF1ZXJ5KHF1ZXJ5KTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob3JpZ2luKVxuICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gKFxuICAgICAgICAgICAgc3RhdGVMaXN0ID09IG51bGwgPyB0cnVlIDogc3RhdGVMaXN0LmluZGV4T2YodmFsdWUpKSA+IC0xXG4gICAgICAgIClcbiAgICAgICAgLnJlZHVjZSgob2JqLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlUGFyYW1GdW5jID0gaXNPYmplY3QocGFyc2VyKSAmJiBpc0Z1bmN0aW9uKHBhcnNlcltrZXldKSAmJiBwYXJzZXJba2V5XSB8fCBwYXJzZVBhcmFtO1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkVmFsID0gcGFyc2VQYXJhbUZ1bmMob3JpZ2luW2tleV0pO1xuICAgICAgICAgICAgcGFyc2VkVmFsICE9IG51bGwgJiYgKG9ialtrZXldID0gcGFyc2VkVmFsKTtcbiAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH0sIHt9KTtcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5UGFyYW0odmFsdWUpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xufVxuXG5leHBvcnQgdHlwZSBJUXVlcnlTdHJpbmdpZnkgPSB7XG4gICAgW2tleTpzdHJpbmddOiAoYW55KSA9PiBhbnksXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZVRvUXVlcnkoc3RhdGU6T2JqZWN0LCBzdHJpbmdpZnk/OklRdWVyeVN0cmluZ2lmeSkge1xuICAgIGlmICghaXNPYmplY3Qoc3RhdGUpKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgZmlsdGVyU3RhdGUgPSBmaWx0ZXJFeGlzdChzdGF0ZSk7XG4gICAgY29uc3QgcXVlcnkgPSBlbmNvZGVRdWVyeShcbiAgICAgICAgbWFwKFxuICAgICAgICAgICAgZmlsdGVyU3RhdGUsXG4gICAgICAgICAgICAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZ2lmeVBhcmFtRnVuYyA9XG4gICAgICAgICAgICAgICAgICAgIGlzT2JqZWN0KHN0cmluZ2lmeSkgJiYgaXNGdW5jdGlvbihzdHJpbmdpZnlba2V5XSkgJiYgc3RyaW5naWZ5W2tleV0gfHwgc3RyaW5naWZ5UGFyYW07XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0cmluZ2lmeVBhcmFtRnVuYyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICApO1xuICAgIHJldHVybiBxdWVyeTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQWNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFmQTtBQWlCQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBaEJBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5\n")},function(module,exports,__webpack_require__){"use strict";eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deepEqual = void 0;\n// Ref: https://stackoverflow.com/questions/1068834/object-comparison-in-javascript\nfunction deepEqual(...rest) {\n var i, l, leftChain, rightChain;\n function compare2Objects(x, y) {\n var p;\n // remember that NaN === NaN returns false\n // and isNaN(undefined) returns true\n if (isNaN(x) && isNaN(y) && typeof x === 'number' && typeof y === 'number') {\n return true;\n }\n // Compare primitives and functions. \n // Check if both arguments link to the same object.\n // Especially useful on the step where we compare prototypes\n if (x === y) {\n return true;\n }\n // Works in case when functions are created in constructor.\n // Comparing dates is a common scenario. Another built-ins?\n // We can even handle functions passed across iframes\n if ((typeof x === 'function' && typeof y === 'function') ||\n (x instanceof Date && y instanceof Date) ||\n (x instanceof RegExp && y instanceof RegExp) ||\n (x instanceof String && y instanceof String) ||\n (x instanceof Number && y instanceof Number)) {\n return x.toString() === y.toString();\n }\n // At last checking prototypes as good as we can\n if (!(x instanceof Object && y instanceof Object)) {\n return false;\n }\n if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) {\n return false;\n }\n if (x.constructor !== y.constructor) {\n return false;\n }\n if (x.prototype !== y.prototype) {\n return false;\n }\n // Check for infinitive linking loops\n if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1) {\n return false;\n }\n // Quick checking of one object being a subset of another.\n // todo: cache the structure of arguments[0] for performance\n for (p in y) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false;\n }\n else if (typeof y[p] !== typeof x[p]) {\n return false;\n }\n }\n for (p in x) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false;\n }\n else if (typeof y[p] !== typeof x[p]) {\n return false;\n }\n switch (typeof (x[p])) {\n case 'object':\n case 'function':\n leftChain.push(x);\n rightChain.push(y);\n if (!compare2Objects(x[p], y[p])) {\n return false;\n }\n leftChain.pop();\n rightChain.pop();\n break;\n default:\n if (x[p] !== y[p]) {\n return false;\n }\n break;\n }\n }\n return true;\n }\n if (rest.length < 1) {\n return true; //Die silently? Don't know how to handle such case, please help...\n // throw \"Need two or more rest to compare\";\n }\n for (i = 1, l = rest.length; i < l; i++) {\n leftChain = []; //Todo: this can be cached\n rightChain = [];\n if (!compare2Objects(rest[0], rest[i])) {\n return false;\n }\n }\n return true;\n}\nexports.deepEqual = deepEqual;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9oZWxwZXJzL2RlZXBFcXVhbC50cz9iYjMwIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFJlZjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTA2ODgzNC9vYmplY3QtY29tcGFyaXNvbi1pbi1qYXZhc2NyaXB0XG5leHBvcnQgZnVuY3Rpb24gZGVlcEVxdWFsKC4uLnJlc3QpIHtcbiAgICB2YXIgaSwgbCwgbGVmdENoYWluLCByaWdodENoYWluO1xuXG4gICAgZnVuY3Rpb24gY29tcGFyZTJPYmplY3RzKHgsIHkpIHtcbiAgICAgICAgdmFyIHA7XG5cbiAgICAgICAgLy8gcmVtZW1iZXIgdGhhdCBOYU4gPT09IE5hTiByZXR1cm5zIGZhbHNlXG4gICAgICAgIC8vIGFuZCBpc05hTih1bmRlZmluZWQpIHJldHVybnMgdHJ1ZVxuICAgICAgICBpZiAoaXNOYU4oeCkgJiYgaXNOYU4oeSkgJiYgdHlwZW9mIHggPT09ICdudW1iZXInICYmIHR5cGVvZiB5ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb21wYXJlIHByaW1pdGl2ZXMgYW5kIGZ1bmN0aW9ucy4gICAgIFxuICAgICAgICAvLyBDaGVjayBpZiBib3RoIGFyZ3VtZW50cyBsaW5rIHRvIHRoZSBzYW1lIG9iamVjdC5cbiAgICAgICAgLy8gRXNwZWNpYWxseSB1c2VmdWwgb24gdGhlIHN0ZXAgd2hlcmUgd2UgY29tcGFyZSBwcm90b3R5cGVzXG4gICAgICAgIGlmICh4ID09PSB5KSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdvcmtzIGluIGNhc2Ugd2hlbiBmdW5jdGlvbnMgYXJlIGNyZWF0ZWQgaW4gY29uc3RydWN0b3IuXG4gICAgICAgIC8vIENvbXBhcmluZyBkYXRlcyBpcyBhIGNvbW1vbiBzY2VuYXJpby4gQW5vdGhlciBidWlsdC1pbnM/XG4gICAgICAgIC8vIFdlIGNhbiBldmVuIGhhbmRsZSBmdW5jdGlvbnMgcGFzc2VkIGFjcm9zcyBpZnJhbWVzXG4gICAgICAgIGlmICgodHlwZW9mIHggPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHkgPT09ICdmdW5jdGlvbicpIHx8XG4gICAgICAgICAgICAoeCBpbnN0YW5jZW9mIERhdGUgJiYgeSBpbnN0YW5jZW9mIERhdGUpIHx8XG4gICAgICAgICAgICAoeCBpbnN0YW5jZW9mIFJlZ0V4cCAmJiB5IGluc3RhbmNlb2YgUmVnRXhwKSB8fFxuICAgICAgICAgICAgKHggaW5zdGFuY2VvZiBTdHJpbmcgJiYgeSBpbnN0YW5jZW9mIFN0cmluZykgfHxcbiAgICAgICAgICAgICh4IGluc3RhbmNlb2YgTnVtYmVyICYmIHkgaW5zdGFuY2VvZiBOdW1iZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4geC50b1N0cmluZygpID09PSB5LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBdCBsYXN0IGNoZWNraW5nIHByb3RvdHlwZXMgYXMgZ29vZCBhcyB3ZSBjYW5cbiAgICAgICAgaWYgKCEoeCBpbnN0YW5jZW9mIE9iamVjdCAmJiB5IGluc3RhbmNlb2YgT2JqZWN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHguaXNQcm90b3R5cGVPZih5KSB8fCB5LmlzUHJvdG90eXBlT2YoeCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh4LmNvbnN0cnVjdG9yICE9PSB5LmNvbnN0cnVjdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoeC5wcm90b3R5cGUgIT09IHkucHJvdG90eXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBmb3IgaW5maW5pdGl2ZSBsaW5raW5nIGxvb3BzXG4gICAgICAgIGlmIChsZWZ0Q2hhaW4uaW5kZXhPZih4KSA+IC0xIHx8IHJpZ2h0Q2hhaW4uaW5kZXhPZih5KSA+IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBRdWljayBjaGVja2luZyBvZiBvbmUgb2JqZWN0IGJlaW5nIGEgc3Vic2V0IG9mIGFub3RoZXIuXG4gICAgICAgIC8vIHRvZG86IGNhY2hlIHRoZSBzdHJ1Y3R1cmUgb2YgYXJndW1lbnRzWzBdIGZvciBwZXJmb3JtYW5jZVxuICAgICAgICBmb3IgKHAgaW4geSkge1xuICAgICAgICAgICAgaWYgKHkuaGFzT3duUHJvcGVydHkocCkgIT09IHguaGFzT3duUHJvcGVydHkocCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgeVtwXSAhPT0gdHlwZW9mIHhbcF0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHAgaW4geCkge1xuICAgICAgICAgICAgaWYgKHkuaGFzT3duUHJvcGVydHkocCkgIT09IHguaGFzT3duUHJvcGVydHkocCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgeVtwXSAhPT0gdHlwZW9mIHhbcF0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mICh4W3BdKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuXG4gICAgICAgICAgICAgICAgICAgIGxlZnRDaGFpbi5wdXNoKHgpO1xuICAgICAgICAgICAgICAgICAgICByaWdodENoYWluLnB1c2goeSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb21wYXJlMk9iamVjdHMoeFtwXSwgeVtwXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGxlZnRDaGFpbi5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHRDaGFpbi5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAoeFtwXSAhPT0geVtwXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHJlc3QubGVuZ3RoIDwgMSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTsgLy9EaWUgc2lsZW50bHk/IERvbid0IGtub3cgaG93IHRvIGhhbmRsZSBzdWNoIGNhc2UsIHBsZWFzZSBoZWxwLi4uXG4gICAgICAgIC8vIHRocm93IFwiTmVlZCB0d28gb3IgbW9yZSByZXN0IHRvIGNvbXBhcmVcIjtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAxLCBsID0gcmVzdC5sZW5ndGg7IGkgPCBsOyBpKyspIHtcblxuICAgICAgICBsZWZ0Q2hhaW4gPSBbXTsgLy9Ub2RvOiB0aGlzIGNhbiBiZSBjYWNoZWRcbiAgICAgICAgcmlnaHRDaGFpbiA9IFtdO1xuXG4gICAgICAgIGlmICghY29tcGFyZTJPYmplY3RzKHJlc3RbMF0sIHJlc3RbaV0pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn0iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQWpIQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///6\n")}])}));