(function(modules) { var installedModules = {}; function __webpack_require__(moduleId) { if(installedModules[moduleId]) { return installedModules[moduleId].exports; } var module = installedModules[moduleId] = { i: moduleId, l: false, exports: {} }; modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); module.l = true; return module.exports; } __webpack_require__.m = modules; __webpack_require__.c = installedModules; __webpack_require__.d = function(exports, name, getter) { if(!__webpack_require__.o(exports, name)) { Object.defineProperty(exports, name, { enumerable: true, get: getter }); } }; __webpack_require__.r = function(exports) { if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); } Object.defineProperty(exports, '__esModule', { value: true }); }; __webpack_require__.t = function(value, mode) { if(mode & 1) value = __webpack_require__(value); if(mode & 8) return value; if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; var ns = Object.create(null); __webpack_require__.r(ns); Object.defineProperty(ns, 'default', { enumerable: true, value: value }); if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); return ns; }; __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; }; __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; __webpack_require__.p = ""; return __webpack_require__(__webpack_require__.s = 0); }) ([ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); function n(n){for(var t=arguments.length,r=Array(t>1?t-1:0),e=1;e3?t.i-4:t.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,t){return 2===o(n)?n.has(t):Object.prototype.hasOwnProperty.call(n,t)}function a(n,t){return 2===o(n)?n.get(t):n[t]}function f(n,t,r){var e=o(n);2===e?n.set(t,r):3===e?(n.delete(t),n.add(r)):n[t]=r}function c(n,t){return n===t?0!==n||1/n==1/t:n!=n&&t!=t}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var t=tn(n);delete t[Q];for(var r=nn(t),e=0;e1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&immer_esm_i(n,(function(n,t){return d(t,!0)}),!0),n)}function h(){n(2)}function y(n){return null==n||"object"!=typeof n||Object.isFrozen(n)}function b(t){var r=rn[t];return r||n(18,t),r}function m(n,t){rn[n]||(rn[n]=t)}function _(){return true||false,U}function immer_esm_j(n,t){t&&(b("Patches"),n.u=[],n.s=[],n.v=t)}function O(n){g(n),n.p.forEach(S),n.p=null}function g(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var t=n[Q];0===t.i||1===t.i?t.j():t.O=!0}function P(t,e){e._=e.p.length;var i=e.p[0],o=void 0!==t&&t!==i;return e.h.g||b("ES5").S(e,t,o),o?(i[Q].P&&(O(e),n(4)),r(t)&&(t=M(e,t),e.l||x(e,t)),e.u&&b("Patches").M(i[Q],t,e.u,e.s)):t=M(e,i,[]),O(e),e.u&&e.v(e.u,e.s),t!==H?t:void 0}function M(n,t,r){if(y(t))return t;var e=t[Q];if(!e)return immer_esm_i(t,(function(i,o){return A(n,e,t,i,o,r)}),!0),t;if(e.A!==n)return t;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o;immer_esm_i(3===e.i?new Set(o):o,(function(t,i){return A(n,e,o,t,i,r)})),x(n,o,!1),r&&n.u&&b("Patches").R(e,r,n.u,n.s)}return e.o}function A(e,i,o,a,c,s){if( false&&false,t(c)){var v=M(e,c,s&&i&&3!==i.i&&!u(i.D,a)?s.concat(a):void 0);if(f(o,a,v),!t(v))return;e.m=!1}if(r(c)&&!y(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,t,r){void 0===r&&(r=!1),n.h.F&&n.m&&d(t,r)}function z(n,t){var r=n[Q];return(r?p(r):n)[t]}function I(n,t){if(t in n)for(var r=Object.getPrototypeOf(n);r;){var e=Object.getOwnPropertyDescriptor(r,t);if(e)return e;r=Object.getPrototypeOf(r)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function R(n,t,r){var e=s(t)?b("MapSet").N(t,r):v(t)?b("MapSet").T(t,r):n.g?function(n,t){var r=Array.isArray(n),e={i:r?1:0,A:t?t.A:_(),P:!1,I:!1,D:{},l:t,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;r&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(t,r):b("ES5").J(t,r);return(r?r.A:_()).p.push(e),e}function D(e){return t(e)||n(22,e),function n(t){if(!r(t))return t;var e,u=t[Q],c=o(t);if(u){if(!u.P&&(u.i<4||!b("ES5").K(u)))return u.t;u.I=!0,e=F(t,c),u.I=!1}else e=F(t,c);return immer_esm_i(e,(function(t,r){u&&a(u.t,t)===r||f(e,t,n(r))})),3===c?new Set(e):e}(e)}function F(n,t){switch(t){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function N(){function r(n,t){var r=s[n];return r?r.enumerable=t:s[n]=r={configurable:!0,enumerable:t,get:function(){var t=this[Q];return false&&false,en.get(t,n)},set:function(t){var r=this[Q]; false&&false,en.set(r,n,t)}},r}function e(n){for(var t=n.length-1;t>=0;t--){var r=n[t][Q];if(!r.P)switch(r.i){case 5:a(r)&&k(r);break;case 4:o(r)&&k(r)}}}function o(n){for(var t=n.t,r=n.k,e=nn(r),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=t[o];if(void 0===a&&!u(t,o))return!0;var f=r[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!t[Q];return e.length!==nn(t).length+(v?0:1)}function a(n){var t=n.k;if(t.length!==n.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!r||r.get)}function f(t){t.O&&n(3,JSON.stringify(p(t)))}var s={};m("ES5",{J:function(n,t){var e=Array.isArray(n),i=function(n,t){if(n){for(var e=Array(t.length),i=0;i1?r-1:0),o=1;o1?r-1:0),o=1;o=0;e--){var i=r[e];if(0===i.path.length&&"replace"===i.op){n=i.value;break}}var o=b("Patches").$;return t(n)?o(n,r):this.produce(n,(function(n){return o(n,r.slice(e+1))}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an); var immer_esm = (fn); var NOT_FOUND = 'NOT_FOUND'; function createSingletonCache(equals) { var entry; return { get: function get(key) { if (entry && equals(entry.key, key)) { return entry.value; } return NOT_FOUND; }, put: function put(key, value) { entry = { key: key, value: value }; }, getEntries: function getEntries() { return entry ? [entry] : []; }, clear: function clear() { entry = undefined; } }; } function createLruCache(maxSize, equals) { var entries = []; function get(key) { var cacheIndex = entries.findIndex(function (entry) { return equals(key, entry.key); }); if (cacheIndex > -1) { var entry = entries[cacheIndex]; if (cacheIndex > 0) { entries.splice(cacheIndex, 1); entries.unshift(entry); } return entry.value; } return NOT_FOUND; } function put(key, value) { if (get(key) === NOT_FOUND) { entries.unshift({ key: key, value: value }); if (entries.length > maxSize) { entries.pop(); } } } function getEntries() { return entries; } function clear() { entries = []; } return { get: get, put: put, getEntries: getEntries, clear: clear }; } var defaultEqualityCheck = function defaultEqualityCheck(a, b) { return a === b; }; function createCacheKeyComparator(equalityCheck) { return function areArgumentsShallowlyEqual(prev, next) { if (prev === null || next === null || prev.length !== next.length) { return false; } var length = prev.length; for (var i = 0; i < length; i++) { if (!equalityCheck(prev[i], next[i])) { return false; } } return true; }; } function defaultMemoize(func, equalityCheckOrOptions) { var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : { equalityCheck: equalityCheckOrOptions }; var _providedOptions$equa = providedOptions.equalityCheck, equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa, _providedOptions$maxS = providedOptions.maxSize, maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS, resultEqualityCheck = providedOptions.resultEqualityCheck; var comparator = createCacheKeyComparator(equalityCheck); var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); function memoized() { var value = cache.get(arguments); if (value === NOT_FOUND) { value = func.apply(null, arguments); if (resultEqualityCheck) { var entries = cache.getEntries(); var matchingEntry = entries.find(function (entry) { return resultEqualityCheck(entry.value, value); }); if (matchingEntry) { return matchingEntry.value; } } cache.put(arguments, value); } return value; } memoized.clearCache = function () { return cache.clear(); }; return memoized; } function getDependencies(funcs) { var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs; if (!dependencies.every(function (dep) { return typeof dep === 'function'; })) { var dependencyTypes = dependencies.map(function (dep) { return typeof dep === 'function' ? "function " + (dep.name || 'unnamed') + "()" : typeof dep; }).join(', '); throw new Error("createSelector expects all input-selectors to be functions, but received the following types: [" + dependencyTypes + "]"); } return dependencies; } function createSelectorCreator(memoize) { for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { memoizeOptionsFromArgs[_key - 1] = arguments[_key]; } var createSelector = function createSelector() { for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { funcs[_key2] = arguments[_key2]; } var _recomputations = 0; var _lastResult; var directlyPassedOptions = { memoizeOptions: undefined }; var resultFunc = funcs.pop(); if (typeof resultFunc === 'object') { directlyPassedOptions = resultFunc; resultFunc = funcs.pop(); } if (typeof resultFunc !== 'function') { throw new Error("createSelector expects an output function after the inputs, but received: [" + typeof resultFunc + "]"); } var _directlyPassedOption = directlyPassedOptions, _directlyPassedOption2 = _directlyPassedOption.memoizeOptions, memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions]; var dependencies = getDependencies(funcs); var memoizedResultFunc = memoize.apply(void 0, [function () { _recomputations++; return resultFunc.apply(null, arguments); }].concat(finalMemoizeOptions)); var selector = memoize(function () { var params = []; var length = dependencies.length; for (var i = 0; i < length; i++) { params.push(dependencies[i].apply(null, arguments)); } _lastResult = memoizedResultFunc.apply(null, params); return _lastResult; }); Object.assign(selector, { resultFunc: resultFunc, memoizedResultFunc: memoizedResultFunc, dependencies: dependencies, lastResult: function lastResult() { return _lastResult; }, recomputations: function recomputations() { return _recomputations; }, resetRecomputations: function resetRecomputations() { return _recomputations = 0; } }); return selector; }; return createSelector; } var createSelector = createSelectorCreator(defaultMemoize); var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) { if (selectorCreator === void 0) { selectorCreator = createSelector; } if (typeof selectors !== 'object') { throw new Error('createStructuredSelector expects first argument to be an object ' + ("where each property is a selector, instead received a " + typeof selectors)); } var objectKeys = Object.keys(selectors); return selectorCreator( objectKeys.map(function (key) { return selectors[key]; }), function () { for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { values[_key3] = arguments[_key3]; } return values.reduce(function (composition, value, index) { composition[objectKeys[index]] = value; return composition; }, {}); }); }; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function formatProdErrorMessage(code) { return "Minified Redux error #" + code + "; visit https://redux.js.org/Errors?code=" + code + " for the full message or " + 'use the non-minified dev environment for full errors. '; } var $$observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })(); var randomString = function randomString() { return Math.random().toString(36).substring(7).split('').join('.'); }; var ActionTypes = { INIT: "@@redux/INIT" + randomString(), REPLACE: "@@redux/REPLACE" + randomString(), PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() { return "@@redux/PROBE_UNKNOWN_ACTION" + randomString(); } }; function isPlainObject(obj) { if (typeof obj !== 'object' || obj === null) return false; var proto = obj; while (Object.getPrototypeOf(proto) !== null) { proto = Object.getPrototypeOf(proto); } return Object.getPrototypeOf(obj) === proto; } function miniKindOf(val) { if (val === void 0) return 'undefined'; if (val === null) return 'null'; var type = typeof val; switch (type) { case 'boolean': case 'string': case 'number': case 'symbol': case 'function': { return type; } } if (Array.isArray(val)) return 'array'; if (isDate(val)) return 'date'; if (isError(val)) return 'error'; var constructorName = ctorName(val); switch (constructorName) { case 'Symbol': case 'Promise': case 'WeakMap': case 'WeakSet': case 'Map': case 'Set': return constructorName; } return type.slice(8, -1).toLowerCase().replace(/\s/g, ''); } function ctorName(val) { return typeof val.constructor === 'function' ? val.constructor.name : null; } function isError(val) { return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number'; } function isDate(val) { if (val instanceof Date) return true; return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function'; } function kindOf(val) { var typeOfVal = typeof val; if (false) {} return typeOfVal; } function redux_createStore(reducer, preloadedState, enhancer) { var _ref2; if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') { throw new Error( true ? formatProdErrorMessage(0) : undefined); } if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { enhancer = preloadedState; preloadedState = undefined; } if (typeof enhancer !== 'undefined') { if (typeof enhancer !== 'function') { throw new Error( true ? formatProdErrorMessage(1) : undefined); } return enhancer(redux_createStore)(reducer, preloadedState); } if (typeof reducer !== 'function') { throw new Error( true ? formatProdErrorMessage(2) : undefined); } var currentReducer = reducer; var currentState = preloadedState; var currentListeners = []; var nextListeners = currentListeners; var isDispatching = false; function ensureCanMutateNextListeners() { if (nextListeners === currentListeners) { nextListeners = currentListeners.slice(); } } function getState() { if (isDispatching) { throw new Error( true ? formatProdErrorMessage(3) : undefined); } return currentState; } function subscribe(listener) { if (typeof listener !== 'function') { throw new Error( true ? formatProdErrorMessage(4) : undefined); } if (isDispatching) { throw new Error( true ? formatProdErrorMessage(5) : undefined); } var isSubscribed = true; ensureCanMutateNextListeners(); nextListeners.push(listener); return function unsubscribe() { if (!isSubscribed) { return; } if (isDispatching) { throw new Error( true ? formatProdErrorMessage(6) : undefined); } isSubscribed = false; ensureCanMutateNextListeners(); var index = nextListeners.indexOf(listener); nextListeners.splice(index, 1); currentListeners = null; }; } function dispatch(action) { if (!isPlainObject(action)) { throw new Error( true ? formatProdErrorMessage(7) : undefined); } if (typeof action.type === 'undefined') { throw new Error( true ? formatProdErrorMessage(8) : undefined); } if (isDispatching) { throw new Error( true ? formatProdErrorMessage(9) : undefined); } try { isDispatching = true; currentState = currentReducer(currentState, action); } finally { isDispatching = false; } var listeners = currentListeners = nextListeners; for (var i = 0; i < listeners.length; i++) { var listener = listeners[i]; listener(); } return action; } function replaceReducer(nextReducer) { if (typeof nextReducer !== 'function') { throw new Error( true ? formatProdErrorMessage(10) : undefined); } currentReducer = nextReducer; dispatch({ type: ActionTypes.REPLACE }); } function observable() { var _ref; var outerSubscribe = subscribe; return _ref = { subscribe: function subscribe(observer) { if (typeof observer !== 'object' || observer === null) { throw new Error( true ? formatProdErrorMessage(11) : undefined); } function observeState() { if (observer.next) { observer.next(getState()); } } observeState(); var unsubscribe = outerSubscribe(observeState); return { unsubscribe: unsubscribe }; } }, _ref[$$observable] = function () { return this; }, _ref; } dispatch({ type: ActionTypes.INIT }); return _ref2 = { dispatch: dispatch, subscribe: subscribe, getState: getState, replaceReducer: replaceReducer }, _ref2[$$observable] = observable, _ref2; } function warning(message) { if (typeof console !== 'undefined' && typeof console.error === 'function') { 1; } try { throw new Error(message); } catch (e) {} } function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) { var reducerKeys = Object.keys(reducers); var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; if (reducerKeys.length === 0) { return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; } if (!isPlainObject(inputState)) { return "The " + argumentName + " has unexpected type of \"" + kindOf(inputState) + "\". Expected argument to be an object with the following " + ("keys: \"" + reducerKeys.join('", "') + "\""); } var unexpectedKeys = Object.keys(inputState).filter(function (key) { return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; }); unexpectedKeys.forEach(function (key) { unexpectedKeyCache[key] = true; }); if (action && action.type === ActionTypes.REPLACE) return; if (unexpectedKeys.length > 0) { return "Unexpected " + (unexpectedKeys.length > 1 ? 'keys' : 'key') + " " + ("\"" + unexpectedKeys.join('", "') + "\" found in " + argumentName + ". ") + "Expected to find one of the known reducer keys instead: " + ("\"" + reducerKeys.join('", "') + "\". Unexpected keys will be ignored."); } } function assertReducerShape(reducers) { Object.keys(reducers).forEach(function (key) { var reducer = reducers[key]; var initialState = reducer(undefined, { type: ActionTypes.INIT }); if (typeof initialState === 'undefined') { throw new Error( true ? formatProdErrorMessage(12) : undefined); } if (typeof reducer(undefined, { type: ActionTypes.PROBE_UNKNOWN_ACTION() }) === 'undefined') { throw new Error( true ? formatProdErrorMessage(13) : undefined); } }); } function combineReducers(reducers) { var reducerKeys = Object.keys(reducers); var finalReducers = {}; for (var i = 0; i < reducerKeys.length; i++) { var key = reducerKeys[i]; if (false) {} if (typeof reducers[key] === 'function') { finalReducers[key] = reducers[key]; } } var finalReducerKeys = Object.keys(finalReducers); var unexpectedKeyCache; if (false) {} var shapeAssertionError; try { assertReducerShape(finalReducers); } catch (e) { shapeAssertionError = e; } return function combination(state, action) { if (state === void 0) { state = {}; } if (shapeAssertionError) { throw shapeAssertionError; } if (false) { var warningMessage; } var hasChanged = false; var nextState = {}; for (var _i = 0; _i < finalReducerKeys.length; _i++) { var _key = finalReducerKeys[_i]; var reducer = finalReducers[_key]; var previousStateForKey = state[_key]; var nextStateForKey = reducer(previousStateForKey, action); if (typeof nextStateForKey === 'undefined') { var actionType = action && action.type; throw new Error( true ? formatProdErrorMessage(14) : undefined); } nextState[_key] = nextStateForKey; hasChanged = hasChanged || nextStateForKey !== previousStateForKey; } hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length; return hasChanged ? nextState : state; }; } function bindActionCreator(actionCreator, dispatch) { return function () { return dispatch(actionCreator.apply(this, arguments)); }; } function bindActionCreators(actionCreators, dispatch) { if (typeof actionCreators === 'function') { return bindActionCreator(actionCreators, dispatch); } if (typeof actionCreators !== 'object' || actionCreators === null) { throw new Error( true ? formatProdErrorMessage(16) : undefined); } var boundActionCreators = {}; for (var key in actionCreators) { var actionCreator = actionCreators[key]; if (typeof actionCreator === 'function') { boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); } } return boundActionCreators; } function compose() { for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) { funcs[_key] = arguments[_key]; } if (funcs.length === 0) { return function (arg) { return arg; }; } if (funcs.length === 1) { return funcs[0]; } return funcs.reduce(function (a, b) { return function () { return a(b.apply(void 0, arguments)); }; }); } function applyMiddleware() { for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) { middlewares[_key] = arguments[_key]; } return function (createStore) { return function () { var store = createStore.apply(void 0, arguments); var _dispatch = function dispatch() { throw new Error( true ? formatProdErrorMessage(15) : undefined); }; var middlewareAPI = { getState: store.getState, dispatch: function dispatch() { return _dispatch.apply(void 0, arguments); } }; var chain = middlewares.map(function (middleware) { return middleware(middlewareAPI); }); _dispatch = compose.apply(void 0, chain)(store.dispatch); return _objectSpread2(_objectSpread2({}, store), {}, { dispatch: _dispatch }); }; }; } function isCrushed() {} if (false) {} function createThunkMiddleware(extraArgument) { var middleware = function middleware(_ref) { var dispatch = _ref.dispatch, getState = _ref.getState; return function (next) { return function (action) { if (typeof action === 'function') { return action(dispatch, getState, extraArgument); } return next(action); }; }; }; return middleware; } var es_thunk = createThunkMiddleware(); es_thunk.withExtraArgument = createThunkMiddleware; var es = (es_thunk); var __extends = (undefined && undefined.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __generator = (undefined && undefined.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; }; var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = function (obj, key, value) { return key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value }) : obj[key] = value; }; var __spreadValues = function (a, b) { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var _i = 0, _b = __getOwnPropSymbols(b); _i < _b.length; _i++) { var prop = _b[_i]; if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = function (a, b) { return __defProps(a, __getOwnPropDescs(b)); }; var __async = function (__this, __arguments, generator) { return new Promise(function (resolve, reject) { var fulfilled = function (value) { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = function (value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = function (x) { return x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); }; step((generator = generator.apply(__this, __arguments)).next()); }); }; var createDraftSafeSelector = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var selector = createSelector.apply(void 0, args); var wrappedSelector = function (value) { var rest = []; for (var _i = 1; _i < arguments.length; _i++) { rest[_i - 1] = arguments[_i]; } return selector.apply(void 0, __spreadArray([t(value) ? D(value) : value], rest)); }; return wrappedSelector; }; var composeWithDevTools = typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () { if (arguments.length === 0) return void 0; if (typeof arguments[0] === "object") return compose; return compose.apply(null, arguments); }; var devToolsEnhancer = typeof window !== "undefined" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function () { return function (noop) { return noop; }; }; function redux_toolkit_esm_isPlainObject(value) { if (typeof value !== "object" || value === null) return false; var proto = value; while (Object.getPrototypeOf(proto) !== null) { proto = Object.getPrototypeOf(proto); } return Object.getPrototypeOf(value) === proto; } function getTimeMeasureUtils(maxDelay, fnName) { var elapsed = 0; return { measureTime: function (fn) { var started = Date.now(); try { return fn(); } finally { var finished = Date.now(); elapsed += finished - started; } }, warnIfExceeded: function () { if (elapsed > maxDelay) { 1; } } }; } var MiddlewareArray = (function (_super) { __extends(MiddlewareArray, _super); function MiddlewareArray() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var _this = _super.apply(this, args) || this; Object.setPrototypeOf(_this, MiddlewareArray.prototype); return _this; } Object.defineProperty(MiddlewareArray, Symbol.species, { get: function () { return MiddlewareArray; }, enumerable: false, configurable: true }); MiddlewareArray.prototype.concat = function () { var arr = []; for (var _i = 0; _i < arguments.length; _i++) { arr[_i] = arguments[_i]; } return _super.prototype.concat.apply(this, arr); }; MiddlewareArray.prototype.prepend = function () { var arr = []; for (var _i = 0; _i < arguments.length; _i++) { arr[_i] = arguments[_i]; } if (arr.length === 1 && Array.isArray(arr[0])) { return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr[0].concat(this))))(); } return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr.concat(this))))(); }; return MiddlewareArray; }(Array)); var isProduction = "production" === "production"; var prefix = "Invariant failed"; function invariant(condition, message) { if (condition) { return; } if (isProduction) { throw new Error(prefix); } throw new Error(prefix + ": " + (message || "")); } function stringify(obj, serializer, indent, decycler) { return JSON.stringify(obj, getSerialize(serializer, decycler), indent); } function getSerialize(serializer, decycler) { var stack = [], keys = []; if (!decycler) decycler = function (_, value) { if (stack[0] === value) return "[Circular ~]"; return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]"; }; return function (key, value) { if (stack.length > 0) { var thisPos = stack.indexOf(this); ~thisPos ? stack.splice(thisPos + 1) : stack.push(this); ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key); if (~stack.indexOf(value)) value = decycler.call(this, key, value); } else stack.push(value); return serializer == null ? value : serializer.call(this, key, value); }; } function isImmutableDefault(value) { return typeof value !== "object" || value === null || typeof value === "undefined" || Object.isFrozen(value); } function trackForMutations(isImmutable, ignorePaths, obj) { var trackedProperties = trackProperties(isImmutable, ignorePaths, obj); return { detectMutations: function () { return detectMutations(isImmutable, ignorePaths, trackedProperties, obj); } }; } function trackProperties(isImmutable, ignorePaths, obj, path) { if (ignorePaths === void 0) { ignorePaths = []; } if (path === void 0) { path = ""; } var tracked = { value: obj }; if (!isImmutable(obj)) { tracked.children = {}; for (var key in obj) { var childPath = path ? path + "." + key : key; if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) { continue; } tracked.children[key] = trackProperties(isImmutable, ignorePaths, obj[key], childPath); } } return tracked; } function detectMutations(isImmutable, ignorePaths, trackedProperty, obj, sameParentRef, path) { if (ignorePaths === void 0) { ignorePaths = []; } if (sameParentRef === void 0) { sameParentRef = false; } if (path === void 0) { path = ""; } var prevObj = trackedProperty ? trackedProperty.value : void 0; var sameRef = prevObj === obj; if (sameParentRef && !sameRef && !Number.isNaN(obj)) { return { wasMutated: true, path: path }; } if (isImmutable(prevObj) || isImmutable(obj)) { return { wasMutated: false }; } var keysToDetect = {}; for (var key in trackedProperty.children) { keysToDetect[key] = true; } for (var key in obj) { keysToDetect[key] = true; } for (var key in keysToDetect) { var childPath = path ? path + "." + key : key; if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) { continue; } var result = detectMutations(isImmutable, ignorePaths, trackedProperty.children[key], obj[key], sameRef, childPath); if (result.wasMutated) { return result; } } return { wasMutated: false }; } function createImmutableStateInvariantMiddleware(options) { if (options === void 0) { options = {}; } if (true) { return function () { return function (next) { return function (action) { return next(action); }; }; }; } var _b = options.isImmutable, isImmutable = _b === void 0 ? isImmutableDefault : _b, ignoredPaths = options.ignoredPaths, _c = options.warnAfter, warnAfter = _c === void 0 ? 32 : _c, ignore = options.ignore; ignoredPaths = ignoredPaths || ignore; var track = trackForMutations.bind(null, isImmutable, ignoredPaths); return function (_b) { var getState = _b.getState; var state = getState(); var tracker = track(state); var result; return function (next) { return function (action) { var measureUtils = getTimeMeasureUtils(warnAfter, "ImmutableStateInvariantMiddleware"); measureUtils.measureTime(function () { state = getState(); result = tracker.detectMutations(); tracker = track(state); invariant(!result.wasMutated, "A state mutation was detected between dispatches, in the path '" + (result.path || "") + "'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)"); }); var dispatchedAction = next(action); measureUtils.measureTime(function () { state = getState(); result = tracker.detectMutations(); tracker = track(state); result.wasMutated && invariant(!result.wasMutated, "A state mutation was detected inside a dispatch, in the path: " + (result.path || "") + ". Take a look at the reducer(s) handling the action " + stringify(action) + ". (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)"); }); measureUtils.warnIfExceeded(); return dispatchedAction; }; }; }; } function isPlain(val) { var type = typeof val; return type === "undefined" || val === null || type === "string" || type === "boolean" || type === "number" || Array.isArray(val) || redux_toolkit_esm_isPlainObject(val); } function findNonSerializableValue(value, path, isSerializable, getEntries, ignoredPaths) { if (path === void 0) { path = ""; } if (isSerializable === void 0) { isSerializable = isPlain; } if (ignoredPaths === void 0) { ignoredPaths = []; } var foundNestedSerializable; if (!isSerializable(value)) { return { keyPath: path || "", value: value }; } if (typeof value !== "object" || value === null) { return false; } var entries = getEntries != null ? getEntries(value) : Object.entries(value); var hasIgnoredPaths = ignoredPaths.length > 0; for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) { var _b = entries_1[_i], key = _b[0], nestedValue = _b[1]; var nestedPath = path ? path + "." + key : key; if (hasIgnoredPaths && ignoredPaths.indexOf(nestedPath) >= 0) { continue; } if (!isSerializable(nestedValue)) { return { keyPath: nestedPath, value: nestedValue }; } if (typeof nestedValue === "object") { foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths); if (foundNestedSerializable) { return foundNestedSerializable; } } } return false; } function createSerializableStateInvariantMiddleware(options) { if (options === void 0) { options = {}; } if (true) { return function () { return function (next) { return function (action) { return next(action); }; }; }; } var _b = options.isSerializable, isSerializable = _b === void 0 ? isPlain : _b, getEntries = options.getEntries, _c = options.ignoredActions, ignoredActions = _c === void 0 ? [] : _c, _d = options.ignoredActionPaths, ignoredActionPaths = _d === void 0 ? ["meta.arg", "meta.baseQueryMeta"] : _d, _e = options.ignoredPaths, ignoredPaths = _e === void 0 ? [] : _e, _f = options.warnAfter, warnAfter = _f === void 0 ? 32 : _f, _g = options.ignoreState, ignoreState = _g === void 0 ? false : _g; return function (storeAPI) { return function (next) { return function (action) { if (ignoredActions.length && ignoredActions.indexOf(action.type) !== -1) { return next(action); } var measureUtils = getTimeMeasureUtils(warnAfter, "SerializableStateInvariantMiddleware"); measureUtils.measureTime(function () { var foundActionNonSerializableValue = findNonSerializableValue(action, "", isSerializable, getEntries, ignoredActionPaths); if (foundActionNonSerializableValue) { var keyPath = foundActionNonSerializableValue.keyPath, value = foundActionNonSerializableValue.value; 1; } }); var result = next(action); if (!ignoreState) { measureUtils.measureTime(function () { var state = storeAPI.getState(); var foundStateNonSerializableValue = findNonSerializableValue(state, "", isSerializable, getEntries, ignoredPaths); if (foundStateNonSerializableValue) { var keyPath = foundStateNonSerializableValue.keyPath, value = foundStateNonSerializableValue.value; 1; } }); measureUtils.warnIfExceeded(); } return result; }; }; }; } function isBoolean(x) { return typeof x === "boolean"; } function curryGetDefaultMiddleware() { return function curriedGetDefaultMiddleware(options) { return getDefaultMiddleware(options); }; } function getDefaultMiddleware(options) { if (options === void 0) { options = {}; } var _b = options.thunk, thunk = _b === void 0 ? true : _b, _c = options.immutableCheck, immutableCheck = _c === void 0 ? true : _c, _d = options.serializableCheck, serializableCheck = _d === void 0 ? true : _d; var middlewareArray = new MiddlewareArray(); if (thunk) { if (isBoolean(thunk)) { middlewareArray.push(es); } else { middlewareArray.push(es.withExtraArgument(thunk.extraArgument)); } } if (false) { var serializableOptions, immutableOptions; } return middlewareArray; } var IS_PRODUCTION = "production" === "production"; function configureStore(options) { var curriedGetDefaultMiddleware = curryGetDefaultMiddleware(); var _b = options || {}, _c = _b.reducer, reducer = _c === void 0 ? void 0 : _c, _d = _b.middleware, middleware = _d === void 0 ? curriedGetDefaultMiddleware() : _d, _e = _b.devTools, devTools = _e === void 0 ? true : _e, _f = _b.preloadedState, preloadedState = _f === void 0 ? void 0 : _f, _g = _b.enhancers, enhancers = _g === void 0 ? void 0 : _g; var rootReducer; if (typeof reducer === "function") { rootReducer = reducer; } else if (redux_toolkit_esm_isPlainObject(reducer)) { rootReducer = combineReducers(reducer); } else { throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'); } var finalMiddleware = middleware; if (typeof finalMiddleware === "function") { finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware); if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) { throw new Error("when using a middleware builder function, an array of middleware must be returned"); } } if (!IS_PRODUCTION && finalMiddleware.some(function (item) { return typeof item !== "function"; })) { throw new Error("each middleware provided to configureStore must be a function"); } var middlewareEnhancer = applyMiddleware.apply(void 0, finalMiddleware); var finalCompose = compose; if (devTools) { finalCompose = composeWithDevTools(__spreadValues({ trace: !IS_PRODUCTION }, typeof devTools === "object" && devTools)); } var storeEnhancers = [middlewareEnhancer]; if (Array.isArray(enhancers)) { storeEnhancers = __spreadArray([middlewareEnhancer], enhancers); } else if (typeof enhancers === "function") { storeEnhancers = enhancers(storeEnhancers); } var composedEnhancer = finalCompose.apply(void 0, storeEnhancers); return redux_createStore(rootReducer, preloadedState, composedEnhancer); } function createAction(type, prepareAction) { function actionCreator() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } if (prepareAction) { var prepared = prepareAction.apply(void 0, args); if (!prepared) { throw new Error("prepareAction did not return an object"); } return __spreadValues(__spreadValues({ type: type, payload: prepared.payload }, "meta" in prepared && { meta: prepared.meta }), "error" in prepared && { error: prepared.error }); } return { type: type, payload: args[0] }; } actionCreator.toString = function () { return "" + type; }; actionCreator.type = type; actionCreator.match = function (action) { return action.type === type; }; return actionCreator; } function isFSA(action) { return redux_toolkit_esm_isPlainObject(action) && typeof action.type === "string" && Object.keys(action).every(isValidKey); } function isValidKey(key) { return ["type", "payload", "error", "meta"].indexOf(key) > -1; } function getType(actionCreator) { return "" + actionCreator; } function executeReducerBuilderCallback(builderCallback) { var actionsMap = {}; var actionMatchers = []; var defaultCaseReducer; var builder = { addCase: function (typeOrActionCreator, reducer) { if (false) {} var type = typeof typeOrActionCreator === "string" ? typeOrActionCreator : typeOrActionCreator.type; if (type in actionsMap) { throw new Error("addCase cannot be called with two reducers for the same action type"); } actionsMap[type] = reducer; return builder; }, addMatcher: function (matcher, reducer) { if (false) {} actionMatchers.push({ matcher: matcher, reducer: reducer }); return builder; }, addDefaultCase: function (reducer) { if (false) {} defaultCaseReducer = reducer; return builder; } }; builderCallback(builder); return [actionsMap, actionMatchers, defaultCaseReducer]; } function createReducer(initialState, mapOrBuilderCallback, actionMatchers, defaultCaseReducer) { if (actionMatchers === void 0) { actionMatchers = []; } var _b = typeof mapOrBuilderCallback === "function" ? executeReducerBuilderCallback(mapOrBuilderCallback) : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer], actionsMap = _b[0], finalActionMatchers = _b[1], finalDefaultCaseReducer = _b[2]; var frozenInitialState = immer_esm(initialState, function () { }); return function (state, action) { if (state === void 0) { state = frozenInitialState; } var caseReducers = __spreadArray([ actionsMap[action.type] ], finalActionMatchers.filter(function (_b) { var matcher = _b.matcher; return matcher(action); }).map(function (_b) { var reducer = _b.reducer; return reducer; })); if (caseReducers.filter(function (cr) { return !!cr; }).length === 0) { caseReducers = [finalDefaultCaseReducer]; } return caseReducers.reduce(function (previousState, caseReducer) { if (caseReducer) { if (t(previousState)) { var draft = previousState; var result = caseReducer(draft, action); if (typeof result === "undefined") { return previousState; } return result; } else if (!r(previousState)) { var result = caseReducer(previousState, action); if (typeof result === "undefined") { if (previousState === null) { return previousState; } throw Error("A case reducer on a non-draftable value must not return undefined"); } return result; } else { return immer_esm(previousState, function (draft) { return caseReducer(draft, action); }); } } return previousState; }, state); }; } function getType2(slice, actionKey) { return slice + "/" + actionKey; } function createSlice(options) { var name = options.name, initialState = options.initialState; if (!name) { throw new Error("`name` is a required option for createSlice"); } var reducers = options.reducers || {}; var _b = typeof options.extraReducers === "function" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers], _c = _b[0], extraReducers = _c === void 0 ? {} : _c, _d = _b[1], actionMatchers = _d === void 0 ? [] : _d, _e = _b[2], defaultCaseReducer = _e === void 0 ? void 0 : _e; var reducerNames = Object.keys(reducers); var sliceCaseReducersByName = {}; var sliceCaseReducersByType = {}; var actionCreators = {}; reducerNames.forEach(function (reducerName) { var maybeReducerWithPrepare = reducers[reducerName]; var type = getType2(name, reducerName); var caseReducer; var prepareCallback; if ("reducer" in maybeReducerWithPrepare) { caseReducer = maybeReducerWithPrepare.reducer; prepareCallback = maybeReducerWithPrepare.prepare; } else { caseReducer = maybeReducerWithPrepare; } sliceCaseReducersByName[reducerName] = caseReducer; sliceCaseReducersByType[type] = caseReducer; actionCreators[reducerName] = prepareCallback ? createAction(type, prepareCallback) : createAction(type); }); var finalCaseReducers = __spreadValues(__spreadValues({}, extraReducers), sliceCaseReducersByType); var reducer = createReducer(initialState, finalCaseReducers, actionMatchers, defaultCaseReducer); return { name: name, reducer: reducer, actions: actionCreators, caseReducers: sliceCaseReducersByName }; } function getInitialEntityState() { return { ids: [], entities: {} }; } function createInitialStateFactory() { function getInitialState(additionalState) { if (additionalState === void 0) { additionalState = {}; } return Object.assign(getInitialEntityState(), additionalState); } return { getInitialState: getInitialState }; } function createSelectorsFactory() { function getSelectors(selectState) { var selectIds = function (state) { return state.ids; }; var selectEntities = function (state) { return state.entities; }; var selectAll = createDraftSafeSelector(selectIds, selectEntities, function (ids, entities) { return ids.map(function (id) { return entities[id]; }); }); var selectId = function (_, id) { return id; }; var selectById = function (entities, id) { return entities[id]; }; var selectTotal = createDraftSafeSelector(selectIds, function (ids) { return ids.length; }); if (!selectState) { return { selectIds: selectIds, selectEntities: selectEntities, selectAll: selectAll, selectTotal: selectTotal, selectById: createDraftSafeSelector(selectEntities, selectId, selectById) }; } var selectGlobalizedEntities = createDraftSafeSelector(selectState, selectEntities); return { selectIds: createDraftSafeSelector(selectState, selectIds), selectEntities: selectGlobalizedEntities, selectAll: createDraftSafeSelector(selectState, selectAll), selectTotal: createDraftSafeSelector(selectState, selectTotal), selectById: createDraftSafeSelector(selectGlobalizedEntities, selectId, selectById) }; } return { getSelectors: getSelectors }; } function createSingleArgumentStateOperator(mutator) { var operator = createStateOperator(function (_, state) { return mutator(state); }); return function operation(state) { return operator(state, void 0); }; } function createStateOperator(mutator) { return function operation(state, arg) { function isPayloadActionArgument(arg2) { return isFSA(arg2); } var runMutator = function (draft) { if (isPayloadActionArgument(arg)) { mutator(arg.payload, draft); } else { mutator(arg, draft); } }; if (t(state)) { runMutator(state); return state; } else { return immer_esm(state, runMutator); } }; } function selectIdValue(entity, selectId) { var key = selectId(entity); if (false) {} return key; } function ensureEntitiesArray(entities) { if (!Array.isArray(entities)) { entities = Object.values(entities); } return entities; } function splitAddedUpdatedEntities(newEntities, selectId, state) { newEntities = ensureEntitiesArray(newEntities); var added = []; var updated = []; for (var _i = 0, newEntities_1 = newEntities; _i < newEntities_1.length; _i++) { var entity = newEntities_1[_i]; var id = selectIdValue(entity, selectId); if (id in state.entities) { updated.push({ id: id, changes: entity }); } else { added.push(entity); } } return [added, updated]; } function createUnsortedStateAdapter(selectId) { function addOneMutably(entity, state) { var key = selectIdValue(entity, selectId); if (key in state.entities) { return; } state.ids.push(key); state.entities[key] = entity; } function addManyMutably(newEntities, state) { newEntities = ensureEntitiesArray(newEntities); for (var _i = 0, newEntities_2 = newEntities; _i < newEntities_2.length; _i++) { var entity = newEntities_2[_i]; addOneMutably(entity, state); } } function setOneMutably(entity, state) { var key = selectIdValue(entity, selectId); if (!(key in state.entities)) { state.ids.push(key); } state.entities[key] = entity; } function setManyMutably(newEntities, state) { newEntities = ensureEntitiesArray(newEntities); for (var _i = 0, newEntities_3 = newEntities; _i < newEntities_3.length; _i++) { var entity = newEntities_3[_i]; setOneMutably(entity, state); } } function setAllMutably(newEntities, state) { newEntities = ensureEntitiesArray(newEntities); state.ids = []; state.entities = {}; addManyMutably(newEntities, state); } function removeOneMutably(key, state) { return removeManyMutably([key], state); } function removeManyMutably(keys, state) { var didMutate = false; keys.forEach(function (key) { if (key in state.entities) { delete state.entities[key]; didMutate = true; } }); if (didMutate) { state.ids = state.ids.filter(function (id) { return id in state.entities; }); } } function removeAllMutably(state) { Object.assign(state, { ids: [], entities: {} }); } function takeNewKey(keys, update, state) { var original2 = state.entities[update.id]; var updated = Object.assign({}, original2, update.changes); var newKey = selectIdValue(updated, selectId); var hasNewKey = newKey !== update.id; if (hasNewKey) { keys[update.id] = newKey; delete state.entities[update.id]; } state.entities[newKey] = updated; return hasNewKey; } function updateOneMutably(update, state) { return updateManyMutably([update], state); } function updateManyMutably(updates, state) { var newKeys = {}; var updatesPerEntity = {}; updates.forEach(function (update) { if (update.id in state.entities) { updatesPerEntity[update.id] = { id: update.id, changes: __spreadValues(__spreadValues({}, updatesPerEntity[update.id] ? updatesPerEntity[update.id].changes : null), update.changes) }; } }); updates = Object.values(updatesPerEntity); var didMutateEntities = updates.length > 0; if (didMutateEntities) { var didMutateIds = updates.filter(function (update) { return takeNewKey(newKeys, update, state); }).length > 0; if (didMutateIds) { state.ids = state.ids.map(function (id) { return newKeys[id] || id; }); } } } function upsertOneMutably(entity, state) { return upsertManyMutably([entity], state); } function upsertManyMutably(newEntities, state) { var _b = splitAddedUpdatedEntities(newEntities, selectId, state), added = _b[0], updated = _b[1]; updateManyMutably(updated, state); addManyMutably(added, state); } return { removeAll: createSingleArgumentStateOperator(removeAllMutably), addOne: createStateOperator(addOneMutably), addMany: createStateOperator(addManyMutably), setOne: createStateOperator(setOneMutably), setMany: createStateOperator(setManyMutably), setAll: createStateOperator(setAllMutably), updateOne: createStateOperator(updateOneMutably), updateMany: createStateOperator(updateManyMutably), upsertOne: createStateOperator(upsertOneMutably), upsertMany: createStateOperator(upsertManyMutably), removeOne: createStateOperator(removeOneMutably), removeMany: createStateOperator(removeManyMutably) }; } function createSortedStateAdapter(selectId, sort) { var _b = createUnsortedStateAdapter(selectId), removeOne = _b.removeOne, removeMany = _b.removeMany, removeAll = _b.removeAll; function addOneMutably(entity, state) { return addManyMutably([entity], state); } function addManyMutably(newEntities, state) { newEntities = ensureEntitiesArray(newEntities); var models = newEntities.filter(function (model) { return !(selectIdValue(model, selectId) in state.entities); }); if (models.length !== 0) { merge(models, state); } } function setOneMutably(entity, state) { return setManyMutably([entity], state); } function setManyMutably(newEntities, state) { newEntities = ensureEntitiesArray(newEntities); if (newEntities.length !== 0) { merge(newEntities, state); } } function setAllMutably(newEntities, state) { newEntities = ensureEntitiesArray(newEntities); state.entities = {}; state.ids = []; addManyMutably(newEntities, state); } function updateOneMutably(update, state) { return updateManyMutably([update], state); } function takeUpdatedModel(models, update, state) { if (!(update.id in state.entities)) { return false; } var original2 = state.entities[update.id]; var updated = Object.assign({}, original2, update.changes); var newKey = selectIdValue(updated, selectId); delete state.entities[update.id]; models.push(updated); return newKey !== update.id; } function updateManyMutably(updates, state) { var models = []; updates.forEach(function (update) { return takeUpdatedModel(models, update, state); }); if (models.length !== 0) { merge(models, state); } } function upsertOneMutably(entity, state) { return upsertManyMutably([entity], state); } function upsertManyMutably(newEntities, state) { var _b = splitAddedUpdatedEntities(newEntities, selectId, state), added = _b[0], updated = _b[1]; updateManyMutably(updated, state); addManyMutably(added, state); } function areArraysEqual(a, b) { if (a.length !== b.length) { return false; } for (var i = 0; i < a.length && i < b.length; i++) { if (a[i] === b[i]) { continue; } return false; } return true; } function merge(models, state) { models.forEach(function (model) { state.entities[selectId(model)] = model; }); var allEntities = Object.values(state.entities); allEntities.sort(sort); var newSortedIds = allEntities.map(selectId); var ids = state.ids; if (!areArraysEqual(ids, newSortedIds)) { state.ids = newSortedIds; } } return { removeOne: removeOne, removeMany: removeMany, removeAll: removeAll, addOne: createStateOperator(addOneMutably), updateOne: createStateOperator(updateOneMutably), upsertOne: createStateOperator(upsertOneMutably), setOne: createStateOperator(setOneMutably), setMany: createStateOperator(setManyMutably), setAll: createStateOperator(setAllMutably), addMany: createStateOperator(addManyMutably), updateMany: createStateOperator(updateManyMutably), upsertMany: createStateOperator(upsertManyMutably) }; } function createEntityAdapter(options) { if (options === void 0) { options = {}; } var _b = __spreadValues({ sortComparer: false, selectId: function (instance) { return instance.id; } }, options), selectId = _b.selectId, sortComparer = _b.sortComparer; var stateFactory = createInitialStateFactory(); var selectorsFactory = createSelectorsFactory(); var stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId); return __spreadValues(__spreadValues(__spreadValues({ selectId: selectId, sortComparer: sortComparer }, stateFactory), selectorsFactory), stateAdapter); } var urlAlphabet = "ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"; var nanoid = function (size) { if (size === void 0) { size = 21; } var id = ""; var i = size; while (i--) { id += urlAlphabet[Math.random() * 64 | 0]; } return id; }; var commonProperties = [ "name", "message", "stack", "code" ]; var RejectWithValue = (function () { function RejectWithValue(payload, meta) { this.payload = payload; this.meta = meta; } return RejectWithValue; }()); var FulfillWithMeta = (function () { function FulfillWithMeta(payload, meta) { this.payload = payload; this.meta = meta; } return FulfillWithMeta; }()); var miniSerializeError = function (value) { if (typeof value === "object" && value !== null) { var simpleError = {}; for (var _i = 0, commonProperties_1 = commonProperties; _i < commonProperties_1.length; _i++) { var property = commonProperties_1[_i]; if (typeof value[property] === "string") { simpleError[property] = value[property]; } } return simpleError; } return { message: String(value) }; }; function createAsyncThunk(typePrefix, payloadCreator, options) { var fulfilled = createAction(typePrefix + "/fulfilled", function (payload, requestId, arg, meta) { return ({ payload: payload, meta: __spreadProps(__spreadValues({}, meta || {}), { arg: arg, requestId: requestId, requestStatus: "fulfilled" }) }); }); var pending = createAction(typePrefix + "/pending", function (requestId, arg, meta) { return ({ payload: void 0, meta: __spreadProps(__spreadValues({}, meta || {}), { arg: arg, requestId: requestId, requestStatus: "pending" }) }); }); var rejected = createAction(typePrefix + "/rejected", function (error, requestId, arg, payload, meta) { return ({ payload: payload, error: (options && options.serializeError || miniSerializeError)(error || "Rejected"), meta: __spreadProps(__spreadValues({}, meta || {}), { arg: arg, requestId: requestId, rejectedWithValue: !!payload, requestStatus: "rejected", aborted: (error == null ? void 0 : error.name) === "AbortError", condition: (error == null ? void 0 : error.name) === "ConditionError" }) }); }); var displayedWarning = false; var AC = typeof AbortController !== "undefined" ? AbortController : (function () { function class_1() { this.signal = { aborted: false, addEventListener: function () { }, dispatchEvent: function () { return false; }, onabort: function () { }, removeEventListener: function () { } }; } class_1.prototype.abort = function () { if (false) {} }; return class_1; }()); function actionCreator(arg) { return function (dispatch, getState, extra) { var _a; var requestId = ((_a = options == null ? void 0 : options.idGenerator) != null ? _a : nanoid)(); var abortController = new AC(); var abortReason; var abortedPromise = new Promise(function (_, reject) { return abortController.signal.addEventListener("abort", function () { return reject({ name: "AbortError", message: abortReason || "Aborted" }); }); }); var started = false; function abort(reason) { if (started) { abortReason = reason; abortController.abort(); } } var promise = function () { return __async(this, null, function () { var _a2, finalAction, err_1, skipDispatch; return __generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 2, , 3]); if (options && options.condition && options.condition(arg, { getState: getState, extra: extra }) === false) { throw { name: "ConditionError", message: "Aborted due to condition callback returning false." }; } started = true; dispatch(pending(requestId, arg, (_a2 = options == null ? void 0 : options.getPendingMeta) == null ? void 0 : _a2.call(options, { requestId: requestId, arg: arg }, { getState: getState, extra: extra }))); return [4 , Promise.race([ abortedPromise, Promise.resolve(payloadCreator(arg, { dispatch: dispatch, getState: getState, extra: extra, requestId: requestId, signal: abortController.signal, rejectWithValue: function (value, meta) { return new RejectWithValue(value, meta); }, fulfillWithValue: function (value, meta) { return new FulfillWithMeta(value, meta); } })).then(function (result) { if (result instanceof RejectWithValue) { throw result; } if (result instanceof FulfillWithMeta) { return fulfilled(result.payload, requestId, arg, result.meta); } return fulfilled(result, requestId, arg); }) ])]; case 1: finalAction = _b.sent(); return [3 , 3]; case 2: err_1 = _b.sent(); finalAction = err_1 instanceof RejectWithValue ? rejected(null, requestId, arg, err_1.payload, err_1.meta) : rejected(err_1, requestId, arg); return [3 , 3]; case 3: skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition; if (!skipDispatch) { dispatch(finalAction); } return [2 , finalAction]; } }); }); }(); return Object.assign(promise, { abort: abort, requestId: requestId, arg: arg, unwrap: function () { return promise.then(unwrapResult); } }); }; } return Object.assign(actionCreator, { pending: pending, rejected: rejected, fulfilled: fulfilled, typePrefix: typePrefix }); } function unwrapResult(action) { if (action.meta && action.meta.rejectedWithValue) { throw action.payload; } if (action.error) { throw action.error; } return action.payload; } var hasMatchFunction = function (v) { return v && typeof v.match === "function"; }; var matches = function (matcher, action) { if (hasMatchFunction(matcher)) { return matcher.match(action); } else { return matcher(action); } }; function isAnyOf() { var matchers = []; for (var _i = 0; _i < arguments.length; _i++) { matchers[_i] = arguments[_i]; } return function (action) { return matchers.some(function (matcher) { return matches(matcher, action); }); }; } function isAllOf() { var matchers = []; for (var _i = 0; _i < arguments.length; _i++) { matchers[_i] = arguments[_i]; } return function (action) { return matchers.every(function (matcher) { return matches(matcher, action); }); }; } function hasExpectedRequestMetadata(action, validStatus) { if (!action || !action.meta) return false; var hasValidRequestId = typeof action.meta.requestId === "string"; var hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1; return hasValidRequestId && hasValidRequestStatus; } function isAsyncThunkArray(a) { return typeof a[0] === "function" && "pending" in a[0] && "fulfilled" in a[0] && "rejected" in a[0]; } function isPending() { var asyncThunks = []; for (var _i = 0; _i < arguments.length; _i++) { asyncThunks[_i] = arguments[_i]; } if (asyncThunks.length === 0) { return function (action) { return hasExpectedRequestMetadata(action, ["pending"]); }; } if (!isAsyncThunkArray(asyncThunks)) { return isPending()(asyncThunks[0]); } return function (action) { var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.pending; }); var combinedMatcher = isAnyOf.apply(void 0, matchers); return combinedMatcher(action); }; } function isRejected() { var asyncThunks = []; for (var _i = 0; _i < arguments.length; _i++) { asyncThunks[_i] = arguments[_i]; } if (asyncThunks.length === 0) { return function (action) { return hasExpectedRequestMetadata(action, ["rejected"]); }; } if (!isAsyncThunkArray(asyncThunks)) { return isRejected()(asyncThunks[0]); } return function (action) { var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.rejected; }); var combinedMatcher = isAnyOf.apply(void 0, matchers); return combinedMatcher(action); }; } function isRejectedWithValue() { var asyncThunks = []; for (var _i = 0; _i < arguments.length; _i++) { asyncThunks[_i] = arguments[_i]; } var hasFlag = function (action) { return action && action.meta && action.meta.rejectedWithValue; }; if (asyncThunks.length === 0) { return function (action) { var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag); return combinedMatcher(action); }; } if (!isAsyncThunkArray(asyncThunks)) { return isRejectedWithValue()(asyncThunks[0]); } return function (action) { var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag); return combinedMatcher(action); }; } function isFulfilled() { var asyncThunks = []; for (var _i = 0; _i < arguments.length; _i++) { asyncThunks[_i] = arguments[_i]; } if (asyncThunks.length === 0) { return function (action) { return hasExpectedRequestMetadata(action, ["fulfilled"]); }; } if (!isAsyncThunkArray(asyncThunks)) { return isFulfilled()(asyncThunks[0]); } return function (action) { var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.fulfilled; }); var combinedMatcher = isAnyOf.apply(void 0, matchers); return combinedMatcher(action); }; } function isAsyncThunkAction() { var asyncThunks = []; for (var _i = 0; _i < arguments.length; _i++) { asyncThunks[_i] = arguments[_i]; } if (asyncThunks.length === 0) { return function (action) { return hasExpectedRequestMetadata(action, ["pending", "fulfilled", "rejected"]); }; } if (!isAsyncThunkArray(asyncThunks)) { return isAsyncThunkAction()(asyncThunks[0]); } return function (action) { var matchers = []; for (var _i = 0, asyncThunks_1 = asyncThunks; _i < asyncThunks_1.length; _i++) { var asyncThunk = asyncThunks_1[_i]; matchers.push(asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled); } var combinedMatcher = isAnyOf.apply(void 0, matchers); return combinedMatcher(action); }; } N(); var isObject = function (obj) { return !!(obj && typeof obj === 'object' && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Date]'); }; var deepMerge = function () { var objects = []; for (var _i = 0; _i < arguments.length; _i++) { objects[_i] = arguments[_i]; } return objects.reduce(function (prev, obj) { for (var _i = 0, _a = Object.entries(obj); _i < _a.length; _i++) { var _b = _a[_i], key = _b[0], value = _b[1]; var prevValue = prev[key]; if (isObject(prevValue) && isObject(value)) { prev[key] = deepMerge(prevValue, value); } else { prev[key] = value; } } return prev; }, {}); }; var isNumeric = function (str) { return !isNaN(parseFloat(str)) && isFinite(str); }; var getActionsByType = function (actions, type) { var _a; var filtered = []; for (var _i = 0, _b = Object.values(actions); _i < _b.length; _i++) { var action = _b[_i]; if (((_a = action.control) === null || _a === void 0 ? void 0 : _a.indexOf(type)) !== -1) { filtered.push(action); } } return filtered; }; var scrollTop = function () { window.scroll(0, 0); }; var isWhiteSpace = function (text) { return text.trim().length === 0; }; var isStorageEnabled = function (storageType) { if (storageType === 'cookies') return true; if (storageType === 'local-storage') { var temp = 'test'; try { window.localStorage.setItem(temp, temp); window.localStorage.removeItem(temp); return true; } catch (e) { return false; } } if (storageType === 'session-storage') { var temp = 'test'; try { window.sessionStorage.setItem(temp, temp); window.sessionStorage.removeItem(temp); return true; } catch (e) { return false; } } return false; }; var setCookie = function (name, value, expiration, secure, samesite) { if (expiration === void 0) { expiration = -1; } if (secure === void 0) { secure = false; } if (samesite === void 0) { samesite = undefined; } var escapedValue = encodeURIComponent(typeof value === 'object' ? JSON.stringify(value) : value); var exp = Number(expiration) || -1; var cookieString = ''; if (exp === -1) { cookieString = name + "=" + escapedValue + ";path=/;"; } else { var date = new Date(); date.setMinutes(date.getMinutes() + expiration); var expires = date.toUTCString(); cookieString = name + "=" + escapedValue + ";path=/; expires=" + expires; } if (samesite) { cookieString += ";samesite=" + samesite; } if (secure) { cookieString += ';secure'; } document.cookie = cookieString; }; var getCookie = function (name) { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = cookies[i]; var index = cookie.indexOf('='); var key = cookie.substr(0, index); var value = cookie.substr(index + 1); if (key.trim().toLowerCase() === name.trim().toLowerCase()) { return decodeURIComponent(value); } } return null; }; var setLocalStorageItem = function (storageName, value) { var escapedValue = encodeURIComponent(typeof value === 'object' ? JSON.stringify(value) : value); window.localStorage.setItem(storageName, escapedValue); }; var getLocalStorageItem = function (storageName) { var value = window.localStorage.getItem(storageName); return decodeURIComponent(value); }; var setSessionStorageItem = function (storageName, value) { var escapedValue = encodeURIComponent(typeof value === 'object' ? JSON.stringify(value) : value); window.sessionStorage.setItem(storageName, escapedValue); }; var getSessionStorageItem = function (storageName) { var value = window.sessionStorage.getItem(storageName); return decodeURIComponent(value); }; var saveToStorage = function (storageType, storageName, value, cookiesExpiration) { if (cookiesExpiration === void 0) { cookiesExpiration = -1; } if (!isStorageEnabled(storageType)) return; if (storageType === 'cookies') { setCookie(storageName, value, cookiesExpiration); } if (storageType === 'local-storage') { setLocalStorageItem(storageName, value); } if (storageType === 'session-storage') { setSessionStorageItem(storageName, value); } }; var getFromStorage = function (storageType, storageName) { if (!isStorageEnabled(storageType)) return null; if (storageType === 'cookies') { return getCookie(storageName); } if (storageType === 'local-storage') { return getLocalStorageItem(storageName); } if (storageType === 'session-storage') { return getSessionStorageItem(storageName); } return null; }; var sort_spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var sort = function (girdItems, paths) { if (!paths || paths.length <= 0) return girdItems; var copy = sort_spreadArray([], girdItems, true); copy.sort(function (item1, item2) { return sortHelper(item1, item2, paths, 0); }); return copy; }; var sortHelper = function (item1, item2, paths, pathIndex) { if (pathIndex >= paths.length) return 0; var result = 0; var path = paths[pathIndex]; if (path.type === 'initial') { result = initialSort(item1, item2); } if (path.type === 'text') { result = textSort(item1, item2, path.path, path.direction, path.skip); } if (path.type === 'number') { result = numbersSort(item1, item2, path.path, path.direction); } if (result === 0) { result = sortHelper(item1, item2, paths, pathIndex + 1); } return result; }; var initialSort = function (item1, item2) { var order1 = Number(item1.order) || 0; var order2 = Number(item2.order) || 0; return order1 - order2; }; var textSort = function (item1, item2, path, direction, skip) { if (path === void 0) { path = ''; } if (direction === void 0) { direction = 'asc'; } if (skip === void 0) { skip = '[^a-zA-Z0-9]+'; } if (!item1 || !item2) { return 0; } var el1 = path ? item1.querySelector(path) : item1; var el2 = path ? item2.querySelector(path) : item2; if (!el1 || !el2) { return 0; } var text1 = el1.textContent.trim().toLowerCase(); var text2 = el2.textContent.trim().toLowerCase(); if (skip) { var regexExpr = new RegExp(skip, 'ig'); text1 = text1.replace(regexExpr, '').trim(); text2 = text2.replace(regexExpr, '').trim(); } if (text1 === text2) { return 0; } if (!direction) { direction = 'asc'; } if (''.localeCompare) { if (direction === 'asc') { return text1.localeCompare(text2); } else { return text2.localeCompare(text1); } } else { if (direction === 'asc') { return text1 > text2 ? 1 : -1; } else { return text1 < text2 ? 1 : -1; } } }; var numbersSort = function (item1, item2, path, direction) { if (path === void 0) { path = ''; } if (direction === void 0) { direction = 'asc'; } if (!item1 || !item2) { return 0; } var el1 = path ? item1.querySelector(path) : item1; var el2 = path ? item2.querySelector(path) : item2; if (!el1 || !el2) { return 0; } var number1str = el1.textContent.trim().toLowerCase(); var number2str = el2.textContent.trim().toLowerCase(); var number1 = parseFloat(number1str.replace(/[^-0-9.]+/g, '')); var number2 = parseFloat(number2str.replace(/[^-0-9.]+/g, '')); if (isNaN(number1) || isNaN(number2)) { if (isNaN(number1) && isNaN(number2)) { return 0; } else { return isNaN(number1) ? 1 : -1; } } if (number1 === number2) { return 0; } if (!direction) { direction = 'asc'; } if (direction === 'asc') { return number1 - number2; } else { return number2 - number1; } }; var TokenType; (function (TokenType) { TokenType["OpenParentheses"] = "OpenParentheses"; TokenType["CloseParentheses"] = "CloseParentheses"; TokenType["And"] = "And"; TokenType["Or"] = "Or"; TokenType["ID"] = "ID"; })(TokenType || (TokenType = {})); var createToken = function (type, index, value) { var res = { type: type, index: index, }; if (value !== undefined) { res.value = value; } return res; }; var scan = function (text) { var result = { tokens: [], isError: false, errors: [], }; if (isWhiteSpace(text)) { return result; } text = text.replace(/\n/g, ' '); var index = 0; var endOfFile = function () { return index >= text.length; }; var error = function () { result.isError = true; result.errors.push("DataGrid Custom Filter Error: Bad character input: " + text[index] + ", index: " + index); }; var isId = function (char) { return /^[a-zA-Z0-9-_]+$/.test(char); }; var getLastIdToken = function () { var lastToken = result.tokens.length > 0 ? result.tokens[result.tokens.length - 1] : null; if (lastToken !== null && lastToken.type === TokenType.ID) return lastToken; lastToken = createToken(TokenType.ID, index, ''); result.tokens.push(lastToken); return lastToken; }; var isAnd = function (startIndex) { return text.substring(startIndex, startIndex + 3) === 'and'; }; var isOr = function (startIndex) { return text.substring(startIndex, startIndex + 2) === 'or'; }; var start = function () { result = { tokens: [], isError: false, errors: [], }; if (endOfFile()) return result; var char = text[index]; switch (char) { case ' ': { index++; start(); break; } case '{': { openBracket(); break; } case '(': { openParentheses(); break; } default: { error(); break; } } }; var openBracket = function () { index++; if (endOfFile()) return error(); var char = text[index]; if (char === ' ') { index++; openBracketWhiteSpace(); } else if (isId(char)) { id(); } else error(); }; var openBracketWhiteSpace = function () { if (endOfFile()) return error(); var char = text[index]; if (char === ' ') { index++; openBracketWhiteSpace(); } else if (isId(char)) { id(); } else error(); }; var id = function () { var idChar = text[index]; var lastIdToken = getLastIdToken(); lastIdToken.value += idChar; index++; var char = text[index]; if (endOfFile()) return error(); if (char === ' ') idWhiteSpace(); else if (isId(char)) id(); else if (char === '}') closeBracket(); else error(); }; var idWhiteSpace = function () { if (endOfFile()) return error(); var char = text[index]; switch (char) { case ' ': { index++; idWhiteSpace(); break; } case '}': { closeBracket(); break; } default: { error(); break; } } }; var closeBracket = function () { index++; if (endOfFile()) return result; var char = text[index]; switch (char) { case ' ': { index++; closeBracketWhiteSpace(); break; } case ')': { closeParentheses(); break; } default: { error(); break; } } }; var closeBracketWhiteSpace = function () { if (endOfFile()) return result; var char = text[index]; if (char === ' ') { index++; closeBracketWhiteSpace(); } else if (isAnd(index)) { and(); } else if (isOr(index)) { or(); } else if (char === ')') { closeParentheses(); } else error(); }; var and = function () { result.tokens.push(createToken(TokenType.And, index)); index += 3; if (endOfFile()) return error(); var char = text[index]; if (char === ' ') andOrWhiteSpace(); else error(); }; var or = function () { result.tokens.push(createToken(TokenType.Or, index)); index += 2; if (endOfFile()) return error(); var char = text[index]; if (char === ' ') andOrWhiteSpace(); else error(); }; var andOrWhiteSpace = function () { index++; if (endOfFile()) return error(); var char = text[index]; switch (char) { case ' ': { andOrWhiteSpace(); break; } case '{': { openBracket(); break; } case '(': { openParentheses(); break; } default: { error(); break; } } }; var openParentheses = function () { result.tokens.push(createToken(TokenType.OpenParentheses, index)); index++; if (endOfFile()) return error(); var char = text[index]; switch (char) { case '(': { openParentheses(); break; } case ' ': { index++; openParenthesesWhiteSpace(); break; } case '{': { openBracket(); break; } } }; var openParenthesesWhiteSpace = function () { if (endOfFile()) return error(); var char = text[index]; switch (char) { case ' ': { index++; openParenthesesWhiteSpace(); break; } case '(': { openParentheses(); break; } case '{': { openBracket(); break; } } }; var closeParentheses = function () { result.tokens.push(createToken(TokenType.CloseParentheses, index)); index++; if (endOfFile()) return result; var char = text[index]; if (char === ' ') { index++; closeParenthesesWhiteSpace(); } else if (char === ')') closeParentheses(); else if (isAnd(index)) { and(); } else if (isOr(index)) { or(); } else error(); }; var closeParenthesesWhiteSpace = function () { if (endOfFile()) return result; var char = text[index]; if (char === ' ') { index++; closeParenthesesWhiteSpace(); } else if (char === ')') closeParentheses(); else if (isAnd(index)) { and(); } else if (isOr(index)) { or(); } else error(); }; start(); return result; }; var ParseTreeNodeType; (function (ParseTreeNodeType) { ParseTreeNodeType["BinaryOperator"] = "BinaryOperator"; ParseTreeNodeType["ID"] = "ID"; })(ParseTreeNodeType || (ParseTreeNodeType = {})); var createParseTreeNode = function (type, token, left, right) { var result = { type: type, token: token, isEnabled: true, }; if (left) { result.left = left; } if (right) { result.right = right; } return result; }; var parse = function (lexerResult) { var _a; var result = { root: null, isError: false, errors: [], }; var tokens = lexerResult.tokens; var length = tokens.length; if (!lexerResult || lexerResult.isError) { (_a = result.errors).push.apply(_a, lexerResult.errors); result.isError = true; return result; } if (!lexerResult.tokens || lexerResult.tokens.length <= 0) return result; var error = function () { var _a; result.isError = true; var token = tokens[index]; result.errors.push("ERROR: unexpected token: " + ((_a = token === null || token === void 0 ? void 0 : token.value) !== null && _a !== void 0 ? _a : '') + ", index: " + index); }; var index = 0; var expr = function () { if (index >= length) { error(); return null; } var termNode = term(); if (index >= length) { return termNode; } if (tokens[index].type === TokenType.Or) { var token = tokens[index]; index++; var rightNode = expr(); return createParseTreeNode(ParseTreeNodeType.BinaryOperator, token, termNode, rightNode); } else { return termNode; } }; var term = function () { if (index >= length) { error(); return null; } var factorNode = factor(); if (index >= length) { return factorNode; } if (tokens[index].type === TokenType.And) { var token = tokens[index]; index++; var rightNode = term(); return createParseTreeNode(ParseTreeNodeType.BinaryOperator, token, factorNode, rightNode); } else { return factorNode; } }; var factor = function () { if (index >= length) { error(); return null; } if (tokens[index].type === TokenType.ID) { var tokenNode = createParseTreeNode(ParseTreeNodeType.ID, tokens[index]); index++; return tokenNode; } if (tokens[index].type === TokenType.OpenParentheses) { index++; var exprNode = expr(); if (tokens[index].type === TokenType.CloseParentheses) { index++; return exprNode; } else { error(); return null; } } else { error(); return null; } }; var start = function () { result = { root: null, isError: false, errors: [], }; result.root = expr(); }; start(); return result; }; var printTree = function (parserResult) { if (!parserResult || !parserResult.root) return ''; var helper = function (root) { if (!root) return ''; if (!root.left && !root.right) { return "{" + root.token.value + "}"; } var left = root.left ? helper(root.left) : ''; var right = root.right ? helper(root.right) : ''; return "(" + left + " " + root.token.type.toLowerCase() + " " + right + ")"; }; return helper(parserResult.root); }; var filter_spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var textFilter = function ($girdItems, text, path, mode, skip) { if (path === void 0) { path = ''; } if (mode === void 0) { mode = 'contains'; } if (skip === void 0) { skip = '[^a-zA-Z0-9.-]+'; } var filtered = []; if (!$girdItems) return []; if (text === undefined || text.trim() === '') return $girdItems; var formattedText = text.replace(new RegExp(skip, 'ig'), '').toLowerCase().trim(); for (var _i = 0, $girdItems_1 = $girdItems; _i < $girdItems_1.length; _i++) { var item = $girdItems_1[_i]; var $elements = path ? item.querySelectorAll(path) : [item]; if (!$elements) continue; var shouldBeAdded = false; for (var i = 0; i < $elements.length; i++) { var $el = $elements[i]; var elText = $el.textContent.replace(new RegExp(skip, 'ig'), '').toLowerCase().trim(); switch (mode) { case 'greaterThan': { if (parseFloat(elText) >= parseFloat(formattedText)) { shouldBeAdded = true; } break; } case 'lessThan': { if (parseFloat(elText) <= parseFloat(formattedText)) { shouldBeAdded = true; } break; } case 'startsWith': { if (elText.startsWith(formattedText)) { shouldBeAdded = true; } break; } case 'endsWith': { if (elText.endsWith(formattedText)) { shouldBeAdded = true; } break; } case 'equal': { if (elText === formattedText) { shouldBeAdded = true; } break; } default: { if (elText.indexOf(formattedText) !== -1) { shouldBeAdded = true; } break; } } if (shouldBeAdded) break; } if (shouldBeAdded) { filtered.push(item); } } return filtered; }; var pathFilter = function (girdItems, path, isInverted) { if (path === void 0) { path = ''; } if (isInverted === void 0) { isInverted = false; } var filtered = []; if (!girdItems) return []; if (path === '' || !path) return girdItems; for (var _i = 0, girdItems_1 = girdItems; _i < girdItems_1.length; _i++) { var item = girdItems_1[_i]; var el = item.querySelector(path); if (el && !isInverted || !el && isInverted) { filtered.push(item); } } return filtered; }; var evaluate = function (parserResult, filterActionsMap, $girdItems) { if (!parserResult || !parserResult.root) return null; var helper = function (root) { if (!root) return null; if (!root.left && !root.right) { if (!root.token.value) return null; var currentAction = filterActionsMap.get(root.token.value.toString()); if (!currentAction) return null; var hasValue = currentAction.value !== undefined && currentAction.value !== null; if (hasValue) { root.isEnabled = currentAction.value !== undefined && currentAction.value.trim() !== ''; if (root.isEnabled) { root.$girdItems = textFilter($girdItems, currentAction.value, currentAction.path, currentAction.mode, currentAction.skip); } } else { root.isEnabled = currentAction.path !== '' && !!currentAction.path; if (root.isEnabled) { root.$girdItems = pathFilter($girdItems, currentAction.path, currentAction.inverted); } } return root; } var leftNode = root.left ? helper(root.left) : null; var rightNode = root.right ? helper(root.right) : null; var isLeftEnabled = !!leftNode && leftNode.isEnabled; var isRightEnabled = !!rightNode && rightNode.isEnabled; if (root.token.type === TokenType.Or) { if (!isLeftEnabled && !isRightEnabled) { root.isEnabled = false; root.$girdItems = []; return root; } if (!isLeftEnabled) { root.isEnabled = isRightEnabled; root.$girdItems = rightNode.$girdItems || []; return root; } if (!isRightEnabled) { root.isEnabled = isLeftEnabled; root.$girdItems = leftNode.$girdItems || []; return root; } root.isEnabled = true; root.$girdItems = Array.from(new Set(filter_spreadArray(filter_spreadArray([], leftNode.$girdItems || [], true), rightNode.$girdItems || [], true))); return root; } if (!isLeftEnabled && !isRightEnabled) { root.isEnabled = false; root.$girdItems = $girdItems; return root; } if (!isLeftEnabled) { root.isEnabled = isRightEnabled; root.$girdItems = rightNode.$girdItems || $girdItems; return root; } if (!isRightEnabled) { root.isEnabled = isLeftEnabled; root.$girdItems = leftNode.$girdItems || $girdItems; return root; } root.isEnabled = true; root.$girdItems = []; var intersectionMap = new Map(); for (var _i = 0, _a = leftNode.$girdItems || $girdItems; _i < _a.length; _i++) { var $item = _a[_i]; intersectionMap.set($item, true); } for (var _b = 0, _c = rightNode.$girdItems || $girdItems; _b < _c.length; _b++) { var $item = _c[_b]; if (intersectionMap.has($item)) { root.$girdItems.push($item); } } return root; }; return helper(parserResult.root); }; var checkAllFiltersAreUsed = function (filterActions, lexerResult) { var tokens = lexerResult.tokens; var notUsedFilters = []; var set = new Set(); for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) { var token = tokens_1[_i]; if (token.type !== TokenType.ID) continue; set.add(token.value.toString().trim()); } for (var _a = 0, filterActions_1 = filterActions; _a < filterActions_1.length; _a++) { var action = filterActions_1[_a]; var dataID = action.dataID.toString().trim(); if (!set.has(dataID)) { notUsedFilters.push(dataID); } } return notUsedFilters; }; var customAndOrFilter = function (customFilter, filterActions, $girdItems) { if (!$girdItems) return []; var filterActionsMap = new Map(); for (var _i = 0, filterActions_2 = filterActions; _i < filterActions_2.length; _i++) { var filterAction = filterActions_2[_i]; filterActionsMap.set(filterAction.dataID, filterAction); } try { var lexerResult = scan(customFilter); if (lexerResult.isError) { 1; 1; return $girdItems; } var notUsedFilters = checkAllFiltersAreUsed(filterActions, lexerResult); if (notUsedFilters.length > 0) { 1; 1; } var parserResult = parse(lexerResult); if (parserResult.isError) { 1; return $girdItems; } var result = evaluate(parserResult, filterActionsMap, $girdItems); if (!result || !result.$girdItems) return []; return result.$girdItems || []; } catch (ex) { 1; return $girdItems; } }; var pagination = function (currentPage, pageSize, totalSize, pagesRange) { totalSize = Number(totalSize) || 0; pageSize = Number.isInteger(pageSize) ? Number(pageSize) : totalSize; if (pageSize === 0) { pageSize = totalSize; } var pagesNumber = pageSize === 0 ? 0 : Math.ceil(totalSize / pageSize); currentPage = Number(currentPage) || 0; if (currentPage > pagesNumber - 1) { currentPage = 0; } var firstItemIndex = currentPage * pageSize; var lastItemIndex = firstItemIndex + pageSize; if (lastItemIndex > totalSize) { lastItemIndex = totalSize; } var prevPage = currentPage <= 0 ? 0 : currentPage - 1; var nextPage = pagesNumber === 0 ? 0 : (currentPage >= pagesNumber - 1 ? pagesNumber - 1 : currentPage + 1); pagesRange = Number(pagesRange) || 10; var halfRange = Math.ceil((pagesRange - 1) / 2); var pagesRangeStart = currentPage - halfRange; var pagesRangeEnd = Math.min(pagesRangeStart + pagesRange - 1, pagesNumber - 1); if (pagesRangeStart <= 0) { pagesRangeStart = 0; pagesRangeEnd = Math.min(pagesRange - 1, pagesNumber - 1); } if (pagesRangeEnd >= pagesNumber - 1) { pagesRangeStart = Math.max(pagesNumber - pagesRange, 0); pagesRangeEnd = pagesNumber - 1; } return { currentPage: currentPage, pageSize: pageSize, totalSize: totalSize, pagesNumber: pagesNumber, firstItemIndex: firstItemIndex, lastItemIndex: lastItemIndex, prevPage: prevPage, nextPage: nextPage, pagesRange: pagesRange, pagesRangeStart: pagesRangeStart, pagesRangeEnd: pagesRangeEnd }; }; var log = function (msg) { 1; }; var HIDE_ITEM_CLASS_NAME = 'data-grid-hide'; var getGrid = function ($root) { var GRID_DATA_ATTR = 'data-grid'; var ITEM_DATA_ATTR = 'data-grid-item'; var $grid = $root.querySelector("[" + GRID_DATA_ATTR + "]"); if (!$grid) { log("The container element with 'data-grid' attribute doesn't exist. Please check documentation https://docs.getdatagrid.com/"); return; } var $items = Array.from($grid.querySelectorAll("[" + ITEM_DATA_ATTR + "]")); for (var i = 0; i < $items.length; i++) { $items[i].order = i; } return { $grid: $grid, $items: $items }; }; var applySort = function (sortActions, $visibleItems, $grid) { $visibleItems = sort($visibleItems, sortActions); for (var i = 0; i < $visibleItems.length; i++) { var $item = $visibleItems[i]; $grid.appendChild($item); } return $visibleItems; }; var applyPagination = function (state, $visibleItems, totalSize) { var itemsAfterPaging = []; var paging = pagination(state.currentPage, state.pageSize, totalSize, state.pagesRange); for (var j = 0; j < $visibleItems.length; j++) { var $item = $visibleItems[j]; if (j >= paging.firstItemIndex && j < paging.lastItemIndex) { itemsAfterPaging.push($item); } } return itemsAfterPaging; }; var applyFilter = function (filterActions, $visibleItems, customFilter) { if (customFilter) { return customAndOrFilter(customFilter, filterActions, $visibleItems); } for (var i = 0; i < filterActions.length; i++) { var item = filterActions[i]; var hasValue = item.value !== undefined && item.value !== null; if (hasValue) { $visibleItems = textFilter($visibleItems, item.value, item.path, item.mode, item.skip); } else { $visibleItems = pathFilter($visibleItems, item.path, item.inverted); } } return $visibleItems; }; var showHideGridItems = function ($allItems, $visibleItems) { for (var i = 0; i < $allItems.length; i++) { var $item = $allItems[i]; $item.classList.add(HIDE_ITEM_CLASS_NAME); } for (var i = 0; i < $visibleItems.length; i++) { var $item = $visibleItems[i]; $item.classList.remove(HIDE_ITEM_CLASS_NAME); } window.dispatchEvent(new Event('resize')); }; var updateGridItems = function (store, rootSlice) { var state = store.getState(); var grid = state.grid; var $visibleItems = grid.$items; var filterActions = getActionsByType(state.actions, 'filter'); $visibleItems = applyFilter(filterActions, $visibleItems, state.defaults.customFilter); var newTotalSize = $visibleItems.length; var sortActions = getActionsByType(state.actions, 'sort'); $visibleItems = applySort(sortActions, $visibleItems, grid.$grid); $visibleItems = applyPagination(state, $visibleItems, newTotalSize); showHideGridItems(grid.$items, $visibleItems); if (state.totalSize !== newTotalSize) { var actions = rootSlice.actions; var updateTotalSize = actions.updateTotalSize; store.dispatch(updateTotalSize({ totalSize: newTotalSize })); } return $visibleItems; }; var getControls = function ($root) { var controls = []; var DATA_ATTR = 'data-grid-control'; var $controls = $root.querySelectorAll("[" + DATA_ATTR + "]"); for (var i = 0; i < $controls.length; i++) { var $control = $controls[i]; var type = $control.getAttribute(DATA_ATTR).trim(); if (!type) continue; controls.push({ type: type, $control: $control }); } return controls; }; var handleDataID = function (controls) { var index = 0; for (var i = 0; i < controls.length; i++) { var control = controls[i]; var dataID = control.$control.getAttribute('data-id'); if (dataID === null || dataID === undefined) { control.$control.setAttribute('data-id', index.toString()); index++; } } }; var renderControls = function (store, rootSlice) { var state = store.getState(); for (var i = 0; i < state.controls.length; i++) { var control = state.controls[i]; var controlFunc = window.datagridControls && window.datagridControls[control.type]; if (!controlFunc) continue; control.$control.datagrid = controlFunc(control, store, rootSlice); } }; var stateToDeepLink = function (state) { if (!state || !window.URLSearchParams) return ''; var params = { currentPage: state.currentPage, pageSize: state.pageSize, pagesRange: state.pagesRange }; if (state.actions) { for (var _i = 0, _a = Object.values(state.actions); _i < _a.length; _i++) { var action = _a[_i]; var dataID = action.dataID; if (dataID === undefined || dataID === null) continue; for (var _b = 0, _c = Object.entries(action); _b < _c.length; _b++) { var _d = _c[_b], key = _d[0], value = _d[1]; if (key == 'value') { params[dataID] = value; } } } } return new URLSearchParams(params).toString(); }; var parseValue = function (value) { if (isNumeric(value)) { value = Number(value); } if (value === 'true') { value = true; } if (value === 'false') { value = false; } return value; }; var deepLinkToDefaults = function (deepLink) { var pairs = []; var actions = {}; var parts = deepLink.replace('?', '').split('&'); for (var i = 0; i < parts.length; i++) { var part = parts[i].split('='); if (part.length !== 2) continue; var key = part[0]; var value = part[1]; if (key === 'currentPage' || key === 'pageSize' || key === 'pagesRange') { pairs.push({ key: key, value: parseValue(value) }); } else { var index = key.lastIndexOf('-'); if (index === -1) continue; var dataID = key.substring(index + 1); var propertyName = key.substring(0, index); if (actions[dataID] === undefined) { actions[dataID] = { dataID: dataID }; } actions[dataID][propertyName] = parseValue(value); } } pairs.push({ key: 'actions', value: actions }); return pairs; }; var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var ajax_generator = (undefined && undefined.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var last_url, last_response; var bringData = function (state) { return __awaiter(void 0, void 0, void 0, function () { var deepLink, url, response; return ajax_generator(this, function (_a) { switch (_a.label) { case 0: if (!('URL' in window)) return [2 ]; deepLink = stateToDeepLink(state); url = state.defaults.dataSourceURL; if (deepLink) { if (url.indexOf('?') > 0) { var result = []; var query = url.split('?')[1]; query.split("&").forEach(function(part) { var item = part.split("="); var skip = false; var key = decodeURIComponent(item[0]).replace(/\+/, ' '); if (state.actions[key]) { 1; skip = true; } if (! skip) { result.push(item[0] + '=' + decodeURIComponent(item[1])); } }); url = url.split('?')[0] + '?' + result.join('&'); if (Object.keys(state.actions).length > 0) { Object.keys(state.actions).forEach(key => { if (state.actions[key].value && state.actions[key].value != '') { result.push(encodeURIComponent(key) + '=' + encodeURIComponent(state.actions[key].value)); } }); url = url + '&' + result.join('&'); } url += '&' + deepLink; } else { 1; url += '?' + deepLink; } } if (last_url == url) { return [4, last_response]; } state.grid.$grid.dispatchEvent(new Event("datagrid-fetch", {bubbles: true})); last_url = url; last_response = fetch(url); return [4 , last_response]; case 1: response = _a.sent(); return [2 , response.clone().json()]; } }); }); }; var __assign = (undefined && undefined.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var main_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var main_generator = (undefined && undefined.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var getDefaults = function (settings) { var defaults = { currentPage: 0, pageSize: Infinity, pagesRange: 10, actions: {}, initialActions: {}, deepLink: false, storage: '', storageName: 'datagrid', dataSource: 'html', dataSourceURL: '', customFilter: '', dataToHTML: function (data) { return data.map(function (item) { return "\n
\n
\n
\n
" + item.title + "
\n

" + item.body + "

\n
\n
\n
\n "; }).join(''); }, onChange: function () { } }; defaults = deepMerge(defaults, settings); if (defaults.storage !== '') { var storageString = getFromStorage(defaults.storage, defaults.storageName); var storageData = storageString ? deepLinkToDefaults(storageString) : []; for (var i = 0; i < storageData.length; i++) { var pair = storageData[i]; defaults[pair.key] = pair.value; } } if (defaults.deepLink) { var deepLinkData = window.location.search ? deepLinkToDefaults(window.location.search) : []; for (var i = 0; i < deepLinkData.length; i++) { var pair = deepLinkData[i]; defaults[pair.key] = pair.value; } } return defaults; }; var buildInitialState = function (settings, $root) { var defaults = getDefaults(settings); var initialState = { defaults: defaults, $root: $root }; initialState.grid = getGrid($root); if (!initialState.grid) { return null; } initialState.actions = defaults.actions || {}; initialState.initialActions = JSON.parse(JSON.stringify(defaults.actions || {})); initialState.currentPage = defaults.currentPage; initialState.pageSize = defaults.pageSize; initialState.pagesRange = defaults.pagesRange; initialState.totalSize = undefined; if (defaults.dataSource === 'html') { initialState.totalSize = initialState.grid.$items.length; } initialState.controls = getControls($root); handleDataID(initialState.controls); return initialState; }; var update = function (state, store, rootSlice) { return main_awaiter(void 0, void 0, void 0, function () { var dataSource, $visibleItems, data, totalSize, actions, updateTotalSize, deepLink, url, deepLink; return main_generator(this, function (_a) { switch (_a.label) { case 0: dataSource = state.defaults.dataSource; state.grid.$grid.classList.add("data-grid-" + dataSource); if (dataSource === 'html') { $visibleItems = updateGridItems(store, rootSlice); state.grid.$grid.classList.toggle("data-grid-empty", $visibleItems.length <= 0); } if (!(dataSource === 'ajax')) return [3 , 2]; return [4 , bringData(state)]; case 1: data = _a.sent(); totalSize = data.length; if (state.totalSize === undefined || state.totalSize !== totalSize) { actions = rootSlice.actions; updateTotalSize = actions.updateTotalSize; store.dispatch(updateTotalSize({ totalSize: totalSize })); } if (typeof state.defaults.dataToHTML === 'function') { state.grid.$grid.innerHTML = state.defaults.dataToHTML(data); } else { 1; } _a.label = 2; case 2: if (dataSource !== 'ajax' || dataSource === 'ajax' && state.totalSize !== undefined) { if (state.defaults.deepLink) { deepLink = stateToDeepLink(state); if (window.location.search !== deepLink && 'URL' in window) { url = new URL(window.location.href); url.search = deepLink; window.history.replaceState('', '', url.href); } } if (state.defaults.storage !== '') { deepLink = stateToDeepLink(state); saveToStorage(state.defaults.storage, state.defaults.storageName, deepLink); } } if (typeof state.defaults.onChange === 'function') { state.defaults.onChange(state); } state.grid.$grid.dispatchEvent(new Event("datagrid-update", {bubbles: true})); return [2 ]; } }); }); }; var main = function (settings, $root) { return main_awaiter(void 0, void 0, void 0, function () { var initialState, rootSlice, store; return main_generator(this, function (_a) { switch (_a.label) { case 0: initialState = buildInitialState(settings, $root); if (!initialState) return [2 ]; rootSlice = createSlice({ name: 'root', initialState: initialState, reducers: { updateTotalSize: function (state, action) { return __assign(__assign({}, state), { totalSize: action.payload.totalSize }); }, updatePagination: function (state, action) { var currentPage = action.payload.currentPage; var pageSize = action.payload.pageSize; var pagesRange = action.payload.pagesRange; return __assign(__assign({}, state), { currentPage: currentPage, pageSize: pageSize, pagesRange: pagesRange }); }, updateActions: function (state, action) { var dataID = action.payload.dataID; var actions = __assign({}, state.actions); actions[dataID] = action.payload; return __assign(__assign({}, state), { actions: actions, currentPage: 0 }); } } }); store = configureStore({ reducer: rootSlice.reducer }); renderControls(store, rootSlice); return [4 , update(initialState, store, rootSlice)]; case 1: _a.sent(); store.subscribe(function () { return main_awaiter(void 0, void 0, void 0, function () { var state; return main_generator(this, function (_a) { switch (_a.label) { case 0: state = store.getState(); return [4 , update(state, store, rootSlice)]; case 1: _a.sent(); return [2 ]; } }); }); }); return [2 ]; } }); }); }; window.datagridControls = window.datagridControls || {}; var render = function (state, $control) { var currentPage = state.currentPage; if (! render.init) { if (state.totalSize) { render.init = true; } currentPage = state.defaults.currentPage; } var paging = pagination(currentPage, state.pageSize, state.totalSize, state.pagesRange); $control.classList.toggle('dg-pagination-empty', paging.pagesNumber <= 0); if (state.totalSize <= 0) return ''; var isFirstPage = paging.currentPage === 0; var isLastPage = paging.currentPage === paging.pagesNumber - 1; var buttons = []; for (var i = paging.pagesRangeStart; i <= paging.pagesRangeEnd; i++) { buttons.push({ index: i, title: i + 1 }); } var firstText = $control.getAttribute('data-first') || 'First'; var lastText = $control.getAttribute('data-last') || 'Last'; var prevText = $control.getAttribute('data-prev') || '«'; var nextText = $control.getAttribute('data-next') || '»'; var hidePrevNext = $control.getAttribute('data-hide-prev-next') === 'true'; var hideFirstLast = $control.getAttribute('data-hide-first-last') === 'true'; var ulClass = $control.getAttribute('data-ul-class') || 'pagination'; var liClass = $control.getAttribute('data-li-class') || 'page-item'; var linkClass = $control.getAttribute('data-link-class') || 'page-link'; var disabledClass = $control.getAttribute('data-disabled-class') || 'disabled'; var activeClass = $control.getAttribute('data-active-class') || 'active'; var prevClass = $control.getAttribute('data-prev-class') || 'page-prev'; var nextClass = $control.getAttribute('data-next-class') || 'page-next'; var firstClass = $control.getAttribute('data-first-class') || 'page-first'; var lastClass = $control.getAttribute('data-last-class') || 'page-last'; return "\n
    \n\n" + (!hideFirstLast ? "
  • \n" + (isFirstPage ? "" + firstText + "" : "" + firstText + "") + "\n
  • " : '') + (!hidePrevNext ? "\n\n
  • \n" + (isFirstPage ? "" + prevText + "" : "" + prevText + "") + "\n
  • \n\n" : '') + buttons.map(function (button) { var isCurrentPage = paging.currentPage === button.index; return "\n
  • \n" + (!isCurrentPage ? "" + button.title + "" : '') + "\n" + (isCurrentPage ? "" + button.title + "(current)" : '') + "\n
  • \n"; }).join('') + (!hidePrevNext ? "\n\n
  • \n" + (isLastPage ? "" + nextText + "" : "" + nextText + "") + "\n
  • \n\n" : '') + (!hideFirstLast ? "
  • \n" + (isLastPage ? "" + lastText + "" : "" + lastText + "") + "\n
  • " : '') + "\n
\n"; }; var init = function (control, store, rootSlice) { var state = store.getState(); var actions = rootSlice.actions; var updatePagination = actions.updatePagination; control.$control.innerHTML = typeof state.defaults.renderPaginationControl === 'function' ? state.defaults.renderPaginationControl(state, control.$control) : render(state, control.$control); var $buttons = control.$control.querySelectorAll('[data-grid-page]'); var shouldScrollTop = control.$control.hasAttribute('data-scroll-top'); for (var i = 0; i < $buttons.length; i++) { var $button = $buttons[i]; $button.addEventListener('click', function (evt) { evt.preventDefault(); var $target = evt.currentTarget; $target.dispatchEvent(new Event("datagrid-page", {bubbles: true})); var currentPage = Number($target.getAttribute('data-grid-page')) || 0; store.dispatch(updatePagination({ currentPage: currentPage, pageSize: state.pageSize, pagesRange: state.pagesRange })); if (shouldScrollTop) { scrollTop(); } }); } }; window.datagridControls.pagination = function (control, store, rootSlice) { var state = store.getState(); var initialCurrentPage = state.currentPage; store.subscribe(function () { init(control, store, rootSlice); }); init(control, store, rootSlice); return { reset: function () { var state = store.getState(); var actions = rootSlice.actions; var updatePagination = actions.updatePagination; store.dispatch(updatePagination({ currentPage: initialCurrentPage, pageSize: state.pageSize, pagesRange: state.pagesRange })); }, }; }; window.datagridControls = window.datagridControls || {}; var onChange = function (evt) { var $control = evt.currentTarget; var store = $control.store; var state = store.getState(); var rootSlice = $control.rootSlice; var actions = rootSlice.actions; var updatePagination = actions.updatePagination; var pageSize = Number($control.value); if ($control.shouldScrollTop) { scrollTop(); } store.dispatch(updatePagination({ currentPage: 0, pageSize: pageSize, pagesRange: state.pagesRange })); }; window.datagridControls['page-size'] = function (control, store, rootSlice) { store.subscribe(function () { var state = store.getState(); $control.value = state.pageSize; }); var state = store.getState(); var $control = control.$control; $control.store = store; $control.rootSlice = rootSlice; $control.shouldScrollTop = control.$control.hasAttribute('data-scroll-top'); $control.value = state.pageSize; var initialPageSize = state.pageSize; $control.removeEventListener('change', onChange); $control.addEventListener('change', onChange); return { reset: function () { var state = store.getState(); var actions = rootSlice.actions; var updatePagination = actions.updatePagination; store.dispatch(updatePagination({ currentPage: state.currentPage, pageSize: initialPageSize, pagesRange: state.pagesRange })); }, }; }; window.datagridControls = window.datagridControls || {}; var label_control_render = function (state, $control) { var paging = pagination(state.currentPage, state.pageSize, state.totalSize, state.pagesRange); var type = $control.getAttribute('data-type'); var text = $control.getAttribute('data-text'); if (type === 'pagination-pages') { $control.classList.toggle('dg-label-empty', paging.pagesNumber <= 0); return paging.pagesNumber > 0 ? "Page " + (paging.currentPage + 1) + " of " + paging.pagesNumber : ''; } if (type === 'pagination-items') { $control.classList.toggle('dg-label-empty', paging.pagesNumber <= 0); return paging.totalSize > 0 ? paging.firstItemIndex + 1 + " - " + paging.lastItemIndex + " of " + paging.totalSize : ''; } if (type === 'no-results') { $control.classList.toggle('dg-label-empty', state.totalSize != 0); return $control.innerHTML ? $control.innerHTML : 'No results found'; } return ''; }; var label_control_init = function (control, store, rootSlice) { var state = store.getState(); control.$control.innerHTML = typeof state.defaults.renderLabelControl === 'function' ? state.defaults.renderLabelControl(state, control.$control) : label_control_render(state, control.$control); }; window.datagridControls['label'] = function (control, store, rootSlice) { store.subscribe(function () { label_control_init(control, store, rootSlice); }); label_control_init(control, store, rootSlice); }; window.datagridControls = window.datagridControls || {}; var sort_dropdown_update = function ($control) { var $option = $control.options[$control.selectedIndex]; var path = $option.getAttribute('data-path'); var direction = $option.getAttribute('data-direction') || 'asc'; var type = $option.getAttribute('data-type') || 'text'; var skip = $option.getAttribute('data-skip'); var control = $control.control; var store = $control.store; var rootSlice = $control.rootSlice; var actions = rootSlice.actions; var updateActions = actions.updateActions; var action = { value: $control.value, control: control.type, dataID: $control.dataID, path: path, direction: direction, type: type }; if (skip) { action.skip = skip; } $control.dispatchEvent(new Event("datagrid-sort", {bubbles: true})); store.dispatch(updateActions(action)); }; var sort_dropdown_onChange = function (evt) { sort_dropdown_update(evt.currentTarget); }; var restore = function (control, store, action) { if (!action) return; var $control = control.$control; var path = action.path; var direction = action.direction || 'asc'; var type = action.type || 'text'; var optionIndex = Array.from($control.options).findIndex(function ($option) { var oPath = $option.getAttribute('data-path'); var oDirection = $option.getAttribute('data-direction') || 'asc'; var oType = $option.getAttribute('data-type') || 'text'; return oPath === path && oDirection === direction && oType === type; }); if (optionIndex !== -1) { $control.selectedIndex = optionIndex; } }; window.datagridControls.sort = function (control, store, rootSlice) { store.subscribe(function () { var state = store.getState(); restore(control, store, state.actions[$control.dataID]); }); var $control = control.$control; $control.control = control; $control.store = store; $control.rootSlice = rootSlice; $control.dataID = $control.getAttribute('data-id'); var state = store.getState(); if ($control.dataID !== undefined && state.actions[$control.dataID] !== undefined) { restore(control, store, state.actions[$control.dataID]); } else { sort_dropdown_update($control); } var initialIndex = $control.selectedIndex; $control.removeEventListener('change', sort_dropdown_onChange); $control.addEventListener('change', sort_dropdown_onChange); return { reset: function () { $control.selectedIndex = initialIndex; sort_dropdown_update($control); }, }; }; window.datagridControls = window.datagridControls || {}; var ASC = 'dg-asc'; var DESC = 'dg-desc'; var CHECKED = 'dg-sort-selected'; var updateClasses = function ($control, path) { $control.classList.remove(ASC); $control.classList.remove(DESC); $control.classList.remove(CHECKED); if ($control.path === path) { $control.classList.add(CHECKED); } if ($control.direction === 'asc') { $control.classList.add(ASC); } if ($control.direction === 'desc') { $control.classList.add(DESC); } }; var sort_button_update = function ($control) { var skip = $control.getAttribute('data-skip'); var control = $control.control; var store = $control.store; var rootSlice = $control.rootSlice; var actions = rootSlice.actions; var updateActions = actions.updateActions; var action = { value: $control.value, control: control.type, dataID: $control.dataID, path: $control.path, direction: $control.direction, type: $control.type }; if (skip) { action.skip = skip; } $control.dispatchEvent(new Event("datagrid-sort", {bubbles: true})); store.dispatch(updateActions(action)); updateClasses($control, $control.path); }; var onClick = function (evt) { evt.preventDefault(); var $control = evt.currentTarget; if ($control.toggleDirection) { $control.direction = $control.direction === 'asc' ? 'desc' : 'asc'; } sort_button_update($control); }; var sort_button_restore = function (control, store, action) { if (!action) return; var $control = control.$control; $control.direction = action.direction || 'asc'; updateClasses($control, action.path); }; window.datagridControls['sort-button'] = function (control, store, rootSlice) { store.subscribe(function () { var state = store.getState(); sort_button_restore(control, store, state.actions[$control.dataID]); }); var $control = control.$control; $control.control = control; $control.store = store; $control.rootSlice = rootSlice; $control.dataID = $control.getAttribute('data-id'); $control.direction = $control.getAttribute('data-direction') || 'asc'; $control.toggleDirection = $control.hasAttribute('data-toggle-direction'); $control.path = $control.getAttribute('data-path'); $control.type = $control.getAttribute('data-type') || 'text'; var state = store.getState(); var initialDirection = $control.direction; if ($control.dataID !== undefined && state.actions[$control.dataID] !== undefined) { sort_button_restore(control, store, state.actions[$control.dataID]); } else { sort_button_update($control); } $control.removeEventListener('click', onClick); $control.addEventListener('click', onClick); return { reset: function () { if ($control.dataID && state.initialActions && state.actions[$control.dataID] !== undefined) { sort_button_restore(control, store, state.actions[$control.dataID]); } else { $control.direction = initialDirection; sort_button_update($control); } }, }; }; window.datagridControls = window.datagridControls || {}; var text_filter_update = function ($control) { var path = $control.getAttribute('data-path'); var mode = $control.getAttribute('data-mode') || 'contains'; var skip = $control.getAttribute('data-skip'); var control = $control.control; var store = $control.store; var rootSlice = $control.rootSlice; var actions = rootSlice.actions; var updateActions = actions.updateActions; var action = { control: control.type, dataID: $control.dataID, value: $control.value, path: path, mode: mode }; if (skip !== undefined && skip !== null) { action.skip = skip; } store.dispatch(updateActions(action)); }; var onInput = function (evt) { var $control = evt.currentTarget; clearTimeout(onInput.timer || null); onInput.timer = setTimeout(function() { text_filter_update($control); }, 600); }; var text_filter_restore = function (control, store, action) { if (!action) return; var $control = control.$control; $control.value = action.value; }; window.datagridControls['text-filter'] = function (control, store, rootSlice) { store.subscribe(function () { var state = store.getState(); text_filter_restore(control, store, state.actions[$control.dataID]); }); var $control = control.$control; $control.control = control; $control.store = store; $control.rootSlice = rootSlice; $control.dataID = $control.getAttribute('data-id'); var state = store.getState(); if ($control.dataID !== undefined && state.actions[$control.dataID] !== undefined) { text_filter_restore(control, store, state.actions[$control.dataID]); } else { text_filter_update($control); } $control.removeEventListener('input', onInput); $control.addEventListener('input', onInput); return { reset: function () { var _a; if ($control.dataID && state.initialActions && state.actions[$control.dataID] !== undefined) { text_filter_restore(control, store, state.actions[$control.dataID]); } else { $control.value = (_a = $control.getAttribute('value')) !== null && _a !== void 0 ? _a : ''; text_filter_update($control); } }, }; }; window.datagridControls = window.datagridControls || {}; var select_filter_update = function ($control) { var $option = $control.options[$control.selectedIndex]; var path = $option.getAttribute('data-path'); var inverted = $option.getAttribute('data-inverted') === 'true'; var value = $option.getAttribute('value'); var control = $control.control; var store = $control.store; var rootSlice = $control.rootSlice; var actions = rootSlice.actions; var updateActions = actions.updateActions; var action = { control: control.type, dataID: $control.dataID, path: path }; if (inverted) { action.inverted = inverted; } if (value !== undefined && value !== null) { action.value = value; action.mode = $option.getAttribute('data-mode') || 'equal'; var skip = $option.getAttribute('data-skip'); if (skip !== undefined && skip !== null) { action.skip = skip; } } store.dispatch(updateActions(action)); }; var select_filter_onChange = function (evt) { select_filter_update(evt.currentTarget); }; var select_filter_restore = function (control, store, action) { if (!action) return; var $control = control.$control; var path = action.path; var inverted = action.inverted; var optionIndex = Array.from($control.options).findIndex(function ($option) { var oPath = $option.getAttribute('data-path'); var oInverted = $option.getAttribute('data-inverted') === 'true'; return oInverted ? (oPath === path && oInverted === inverted) : oPath === path; }); if (optionIndex !== -1) { $control.selectedIndex = optionIndex; } }; window.datagridControls['select-filter'] = function (control, store, rootSlice) { store.subscribe(function () { var state = store.getState(); select_filter_restore(control, store, state.actions[$control.dataID]); }); var $control = control.$control; $control.control = control; $control.store = store; $control.rootSlice = rootSlice; $control.dataID = $control.getAttribute('data-id'); var state = store.getState(); if ($control.dataID !== undefined && state.actions[$control.dataID] !== undefined) { select_filter_restore(control, store, state.actions[$control.dataID]); } else { select_filter_update($control); } $control.removeEventListener('change', select_filter_onChange); $control.addEventListener('change', select_filter_onChange); return { reset: function () { var _a; if ($control.dataID && state.initialActions && state.initialActions[$control.dataID] !== undefined) { select_filter_restore(control, store, state.initialActions[$control.dataID]); } else { var index = Array.from((_a = $control.options) !== null && _a !== void 0 ? _a : []).findIndex(function ($option) { return $option.hasAttribute('selected'); }); $control.selectedIndex = index == -1 ? 0 : index; select_filter_update($control); } }, }; }; window.datagridControls = window.datagridControls || {}; var checkbox_filter_update = function ($control) { var path = $control.getAttribute('data-path'); var inverted = $control.getAttribute('data-inverted') === 'true'; var value = $control.getAttribute('data-value') || $control.getAttribute('value'); var control = $control.control; var store = $control.store; var rootSlice = $control.rootSlice; var actions = rootSlice.actions; var updateActions = actions.updateActions; var action = { control: control.type, dataID: $control.dataID, path: $control.checked ? path : '' }; if (inverted) { action.inverted = inverted; } if ($control.checked && value !== undefined && value !== null) { action.value = value; action.mode = $control.getAttribute('data-mode') || 'equal'; var skip = $control.getAttribute('data-skip'); if (skip !== undefined && skip !== null) { action.skip = skip; } } store.dispatch(updateActions(action)); }; var checkbox_filter_onChange = function (evt) { checkbox_filter_update(evt.currentTarget); }; var checkbox_filter_restore = function (control, store, action) { if (!action) return; var $control = control.$control; var path = action.path; $control.checked = path !== undefined && path !== null && path.trim() !== ''; }; window.datagridControls['checkbox-filter'] = function (control, store, rootSlice) { store.subscribe(function () { var state = store.getState(); checkbox_filter_restore(control, store, state.actions[$control.dataID]); }); var $control = control.$control; $control.control = control; $control.store = store; $control.rootSlice = rootSlice; $control.dataID = $control.getAttribute('data-id'); var state = store.getState(); if ($control.dataID !== undefined && state.actions[$control.dataID] !== undefined) { checkbox_filter_restore(control, store, state.actions[$control.dataID]); } else { checkbox_filter_update($control); } $control.removeEventListener('change', checkbox_filter_onChange); $control.addEventListener('change', checkbox_filter_onChange); return { reset: function () { if ($control.dataID && state.initialActions && state.initialActions[$control.dataID] !== undefined) { checkbox_filter_restore(control, store, state.initialActions[$control.dataID]); } else { $control.checked = $control.getAttribute('data-checked') === 'true'; checkbox_filter_update($control); } }, }; }; window.datagridControls = window.datagridControls || {}; var radio_filter_update = function ($control) { var path = $control.getAttribute('data-path'); var inverted = $control.getAttribute('data-inverted') === 'true'; var value = $control.getAttribute('data-value') || $control.getAttribute('value'); var control = $control.control; var store = $control.store; var rootSlice = $control.rootSlice; var actions = rootSlice.actions; var updateActions = actions.updateActions; var action = { control: control.type, dataID: $control.name, path: $control.checked ? path : '' }; if (inverted) { action.inverted = inverted; } if (value !== undefined && value !== null) { action.value = value; action.mode = $control.getAttribute('data-mode') || 'equal'; var skip = $control.getAttribute('data-skip'); if (skip !== undefined && skip !== null) { action.skip = skip; } } if ($control.checked) { 1; store.dispatch(updateActions(action)); } }; var radio_filter_onChange = function (evt) { radio_filter_update(evt.currentTarget); }; var radio_filter_restore = function (control, store, action) { }; window.datagridControls['radio-filter'] = function (control, store, rootSlice) { store.subscribe(function () { var state = store.getState(); radio_filter_restore(control, store, state.actions[$control.dataID]); }); var $control = control.$control; $control.control = control; $control.store = store; $control.rootSlice = rootSlice; $control.dataID = $control.name; var state = store.getState(); if ($control.dataID !== undefined && state.actions[$control.dataID] !== undefined) { radio_filter_restore(control, store, state.actions[$control.dataID]); } else { radio_filter_update($control); } var isInitialChecked = $control.checked; $control.removeEventListener('change', radio_filter_onChange); $control.addEventListener('change', radio_filter_onChange); return { reset: function () { if ($control.dataID && state.initialActions && state.initialActions[$control.dataID] !== undefined) { radio_filter_restore(control, store, state.initialActions[$control.dataID]); } else { if (isInitialChecked) { $control.checked = isInitialChecked; radio_filter_update($control); } } }, }; }; window.datagridControls = window.datagridControls || {}; var button_filter_update = function ($control) { var path = $control.getAttribute('data-path'); var inverted = $control.getAttribute('data-inverted') === 'true'; var value = $control.getAttribute('data-value') || $control.innerText; var control = $control.control; var store = $control.store; var rootSlice = $control.rootSlice; var actions = rootSlice.actions; var updateActions = actions.updateActions; var action = { control: control.type, dataID: $control.dataID, path: $control.checked ? path : '' }; if (inverted) { action.inverted = inverted; } if ($control.checked && value !== undefined && value !== null) { action.value = value; action.mode = $control.getAttribute('data-mode') || 'equal'; var skip = $control.getAttribute('data-skip'); if (skip !== undefined && skip !== null) { action.skip = skip; } } store.dispatch(updateActions(action)); }; var button_filter_onClick = function (evt) { evt.preventDefault(); var $control = evt.currentTarget; $control.checked = !$control.checked; $control.classList.toggle('dg-checked', $control.checked); button_filter_update($control); }; var button_filter_restore = function (control, store, action) { if (!action) return; var $control = control.$control; var path = action.path; $control.checked = path !== undefined && path !== null && path.trim() !== ''; $control.classList.toggle('dg-checked', $control.checked); }; window.datagridControls['button-filter'] = function (control, store, rootSlice) { store.subscribe(function () { var state = store.getState(); button_filter_restore(control, store, state.actions[$control.dataID]); }); var $control = control.$control; $control.control = control; $control.store = store; $control.rootSlice = rootSlice; $control.dataID = $control.getAttribute('data-id'); $control.checked = $control.getAttribute('data-checked') === 'true'; var state = store.getState(); if ($control.dataID !== undefined && state.actions[$control.dataID] !== undefined) { button_filter_restore(control, store, state.actions[$control.dataID]); } else { button_filter_update($control); } $control.removeEventListener('click', button_filter_onClick); $control.addEventListener('click', button_filter_onClick); return { reset: function () { if ($control.dataID && state.initialActions && state.initialActions[$control.dataID] !== undefined) { button_filter_restore(control, store, state.initialActions[$control.dataID]); } else { $control.checked = $control.getAttribute('data-checked') === 'true'; button_filter_update($control); } }, }; }; window.datagridControls = window.datagridControls || {}; var reset_button_control_onClick = function (evt) { var $control = evt.currentTarget; var store = $control.store; var state = store.getState(); if (!state.controls) return; for (var _i = 0, _a = state.controls; _i < _a.length; _i++) { var control = _a[_i]; var $control_1 = control.$control; if (!$control_1.datagrid || !$control_1.datagrid.reset || typeof $control_1.datagrid.reset !== 'function') continue; $control_1.datagrid.reset(); } }; window.datagridControls['reset-button'] = function (control, store, rootSlice) { var $control = control.$control; $control.control = control; $control.store = store; $control.rootSlice = rootSlice; $control.dataID = $control.getAttribute('data-id'); $control.removeEventListener('click', reset_button_control_onClick); $control.addEventListener('click', reset_button_control_onClick); }; window.datagrid = function (param1, param2) { var $roots; var settings = ((typeof param1 === 'object' ? param1 : param2) || {}); if (!param1 || typeof param1 === 'object') { $roots = [document.body]; } else { $roots = document.querySelectorAll(param1); } for (var i = 0; i < $roots.length; i++) { var $root = $roots[i]; main(settings, $root); } }; }) ]);