{"version":3,"file":"913.0db86a10385a7232f06e.js","mappings":"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","sources":["webpack://sitecore-platform/./node_modules/immer/dist/immer.esm.mjs","webpack://sitecore-platform/./node_modules/redux-thunk/es/index.js","webpack://sitecore-platform/../src/devtoolsExtension.ts","webpack://sitecore-platform/../src/isPlainObject.ts","webpack://sitecore-platform/../src/utils.ts","webpack://sitecore-platform/../src/configureStore.ts","webpack://sitecore-platform/../src/getDefaultMiddleware.ts","webpack://sitecore-platform/../src/createAction.ts","webpack://sitecore-platform/../src/mapBuilders.ts","webpack://sitecore-platform/../src/createSlice.ts","webpack://sitecore-platform/../src/createReducer.ts","webpack://sitecore-platform/../src/nanoid.ts","webpack://sitecore-platform/../src/createAsyncThunk.ts","webpack://sitecore-platform/../src/tsHelpers.ts","webpack://sitecore-platform/../src/matchers.ts","webpack://sitecore-platform/../src/listenerMiddleware/utils.ts","webpack://sitecore-platform/../src/listenerMiddleware/exceptions.ts","webpack://sitecore-platform/../src/listenerMiddleware/task.ts","webpack://sitecore-platform/../src/listenerMiddleware/index.ts","webpack://sitecore-platform/../src/autoBatchEnhancer.ts","webpack://sitecore-platform/../src/index.ts","webpack://sitecore-platform/./node_modules/clsx/dist/clsx.m.js","webpack://sitecore-platform/./node_modules/expose-loader/dist/runtime/getGlobalThis.js","webpack://sitecore-platform/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://sitecore-platform/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://sitecore-platform/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://sitecore-platform/./node_modules/http-status/lib/index.js","webpack://sitecore-platform/./node_modules/object-assign/index.js","webpack://sitecore-platform/./node_modules/object-path/index.js","webpack://sitecore-platform/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://sitecore-platform/./node_modules/prop-types/index.js","webpack://sitecore-platform/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://sitecore-platform/./node_modules/react-redux/es/components/Context.js","webpack://sitecore-platform/./node_modules/react-redux/es/utils/batch.js","webpack://sitecore-platform/./node_modules/react-redux/es/utils/Subscription.js","webpack://sitecore-platform/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://sitecore-platform/./node_modules/react-redux/es/components/Provider.js","webpack://sitecore-platform/./node_modules/react-redux/es/components/connectAdvanced.js","webpack://sitecore-platform/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://sitecore-platform/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://sitecore-platform/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://sitecore-platform/./node_modules/react-redux/es/utils/bindActionCreators.js","webpack://sitecore-platform/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://sitecore-platform/./node_modules/react-redux/es/connect/mergeProps.js","webpack://sitecore-platform/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://sitecore-platform/./node_modules/react-redux/es/connect/connect.js","webpack://sitecore-platform/./node_modules/react-redux/es/hooks/useReduxContext.js","webpack://sitecore-platform/./node_modules/react-redux/es/hooks/useStore.js","webpack://sitecore-platform/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://sitecore-platform/./node_modules/react-redux/es/hooks/useSelector.js","webpack://sitecore-platform/./node_modules/react-redux/es/index.js","webpack://sitecore-platform/./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack://sitecore-platform/./node_modules/react-redux/node_modules/react-is/index.js","webpack://sitecore-platform/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://sitecore-platform/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://sitecore-platform/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://sitecore-platform/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://sitecore-platform/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://sitecore-platform/./node_modules/redux/es/redux.js","webpack://sitecore-platform/./node_modules/reselect/es/defaultMemoize.js","webpack://sitecore-platform/./node_modules/reselect/es/index.js","webpack://sitecore-platform/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://sitecore-platform/./node_modules/scheduler/index.js","webpack://sitecore-platform/./node_modules/uuid/dist/esm-browser/native.js","webpack://sitecore-platform/./node_modules/uuid/dist/esm-browser/rng.js","webpack://sitecore-platform/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://sitecore-platform/./node_modules/uuid/dist/esm-browser/v4.js","webpack://sitecore-platform/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://sitecore-platform/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/bind.js","webpack://sitecore-platform/./node_modules/axios/lib/utils.js","webpack://sitecore-platform/./node_modules/axios/lib/core/AxiosError.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/toFormData.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/buildURL.js","webpack://sitecore-platform/./node_modules/axios/lib/core/InterceptorManager.js","webpack://sitecore-platform/./node_modules/axios/lib/defaults/transitional.js","webpack://sitecore-platform/./node_modules/axios/lib/platform/browser/index.js","webpack://sitecore-platform/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://sitecore-platform/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://sitecore-platform/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://sitecore-platform/./node_modules/axios/lib/platform/common/utils.js","webpack://sitecore-platform/./node_modules/axios/lib/platform/index.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://sitecore-platform/./node_modules/axios/lib/defaults/index.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://sitecore-platform/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://sitecore-platform/./node_modules/axios/lib/core/transformData.js","webpack://sitecore-platform/./node_modules/axios/lib/cancel/isCancel.js","webpack://sitecore-platform/./node_modules/axios/lib/cancel/CanceledError.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/cookies.js","webpack://sitecore-platform/./node_modules/axios/lib/core/buildFullPath.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/combineURLs.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://sitecore-platform/./node_modules/axios/lib/adapters/xhr.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/speedometer.js","webpack://sitecore-platform/./node_modules/axios/lib/adapters/adapters.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/null.js","webpack://sitecore-platform/./node_modules/axios/lib/core/settle.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://sitecore-platform/./node_modules/axios/lib/core/dispatchRequest.js","webpack://sitecore-platform/./node_modules/axios/lib/core/mergeConfig.js","webpack://sitecore-platform/./node_modules/axios/lib/env/data.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/validator.js","webpack://sitecore-platform/./node_modules/axios/lib/core/Axios.js","webpack://sitecore-platform/./node_modules/axios/lib/cancel/CancelToken.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://sitecore-platform/./node_modules/axios/lib/axios.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/spread.js","webpack://sitecore-platform/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://sitecore-platform/./node_modules/ssr-window/ssr-window.esm.js","webpack://sitecore-platform/./node_modules/dom7/dom7.esm.js","webpack://sitecore-platform/./node_modules/swiper/shared/dom.js","webpack://sitecore-platform/./node_modules/swiper/shared/utils.js","webpack://sitecore-platform/./node_modules/swiper/shared/get-support.js","webpack://sitecore-platform/./node_modules/swiper/shared/get-device.js","webpack://sitecore-platform/./node_modules/swiper/shared/get-browser.js","webpack://sitecore-platform/./node_modules/swiper/core/events-emitter.js","webpack://sitecore-platform/./node_modules/swiper/core/update/index.js","webpack://sitecore-platform/./node_modules/swiper/core/update/updateSize.js","webpack://sitecore-platform/./node_modules/swiper/core/update/updateSlides.js","webpack://sitecore-platform/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://sitecore-platform/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://sitecore-platform/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://sitecore-platform/./node_modules/swiper/core/update/updateProgress.js","webpack://sitecore-platform/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://sitecore-platform/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://sitecore-platform/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://sitecore-platform/./node_modules/swiper/core/transition/transitionEmit.js","webpack://sitecore-platform/./node_modules/swiper/core/slide/index.js","webpack://sitecore-platform/./node_modules/swiper/core/slide/slideTo.js","webpack://sitecore-platform/./node_modules/swiper/core/slide/slideToLoop.js","webpack://sitecore-platform/./node_modules/swiper/core/slide/slideNext.js","webpack://sitecore-platform/./node_modules/swiper/core/slide/slidePrev.js","webpack://sitecore-platform/./node_modules/swiper/core/slide/slideReset.js","webpack://sitecore-platform/./node_modules/swiper/core/slide/slideToClosest.js","webpack://sitecore-platform/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://sitecore-platform/./node_modules/swiper/core/events/onTouchStart.js","webpack://sitecore-platform/./node_modules/swiper/core/events/onTouchMove.js","webpack://sitecore-platform/./node_modules/swiper/core/events/onTouchEnd.js","webpack://sitecore-platform/./node_modules/swiper/core/events/onResize.js","webpack://sitecore-platform/./node_modules/swiper/core/events/onClick.js","webpack://sitecore-platform/./node_modules/swiper/core/events/onScroll.js","webpack://sitecore-platform/./node_modules/swiper/core/events/index.js","webpack://sitecore-platform/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://sitecore-platform/./node_modules/swiper/core/classes/index.js","webpack://sitecore-platform/./node_modules/swiper/core/classes/addClasses.js","webpack://sitecore-platform/./node_modules/swiper/core/classes/removeClasses.js","webpack://sitecore-platform/./node_modules/swiper/core/defaults.js","webpack://sitecore-platform/./node_modules/swiper/core/moduleExtendParams.js","webpack://sitecore-platform/./node_modules/swiper/core/core.js","webpack://sitecore-platform/./node_modules/swiper/core/translate/index.js","webpack://sitecore-platform/./node_modules/swiper/core/translate/getTranslate.js","webpack://sitecore-platform/./node_modules/swiper/core/translate/setTranslate.js","webpack://sitecore-platform/./node_modules/swiper/core/translate/minTranslate.js","webpack://sitecore-platform/./node_modules/swiper/core/translate/maxTranslate.js","webpack://sitecore-platform/./node_modules/swiper/core/translate/translateTo.js","webpack://sitecore-platform/./node_modules/swiper/core/transition/index.js","webpack://sitecore-platform/./node_modules/swiper/core/transition/setTransition.js","webpack://sitecore-platform/./node_modules/swiper/core/transition/transitionStart.js","webpack://sitecore-platform/./node_modules/swiper/core/transition/transitionEnd.js","webpack://sitecore-platform/./node_modules/swiper/core/loop/index.js","webpack://sitecore-platform/./node_modules/swiper/core/loop/loopCreate.js","webpack://sitecore-platform/./node_modules/swiper/core/loop/loopFix.js","webpack://sitecore-platform/./node_modules/swiper/core/loop/loopDestroy.js","webpack://sitecore-platform/./node_modules/swiper/core/grab-cursor/index.js","webpack://sitecore-platform/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://sitecore-platform/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://sitecore-platform/./node_modules/swiper/core/breakpoints/index.js","webpack://sitecore-platform/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://sitecore-platform/./node_modules/swiper/core/check-overflow/index.js","webpack://sitecore-platform/./node_modules/swiper/core/images/index.js","webpack://sitecore-platform/./node_modules/swiper/core/images/loadImage.js","webpack://sitecore-platform/./node_modules/swiper/core/images/preloadImages.js","webpack://sitecore-platform/./node_modules/swiper/core/modules/resize/resize.js","webpack://sitecore-platform/./node_modules/swiper/core/modules/observer/observer.js","webpack://sitecore-platform/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://sitecore-platform/./node_modules/swiper/modules/navigation/navigation.js","webpack://sitecore-platform/./node_modules/swiper/shared/classes-to-selector.js","webpack://sitecore-platform/./node_modules/swiper/modules/pagination/pagination.js","webpack://sitecore-platform/./node_modules/swiper/modules/lazy/lazy.js","webpack://sitecore-platform/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://sitecore-platform/./node_modules/underscore/modules/_collectNonEnumProps.js","webpack://sitecore-platform/./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack://sitecore-platform/./node_modules/underscore/modules/_getByteLength.js","webpack://sitecore-platform/./node_modules/underscore/modules/_has.js","webpack://sitecore-platform/./node_modules/underscore/modules/_setup.js","webpack://sitecore-platform/./node_modules/underscore/modules/_shallowProperty.js","webpack://sitecore-platform/./node_modules/underscore/modules/_hasObjectTag.js","webpack://sitecore-platform/./node_modules/underscore/modules/_stringTagBug.js","webpack://sitecore-platform/./node_modules/underscore/modules/_tagTester.js","webpack://sitecore-platform/./node_modules/underscore/modules/constant.js","webpack://sitecore-platform/./node_modules/underscore/modules/isArrayBuffer.js","webpack://sitecore-platform/./node_modules/underscore/modules/isDataView.js","webpack://sitecore-platform/./node_modules/underscore/modules/_toBufferView.js","webpack://sitecore-platform/./node_modules/underscore/modules/isEqual.js","webpack://sitecore-platform/./node_modules/underscore/modules/isFunction.js","webpack://sitecore-platform/./node_modules/underscore/modules/isObject.js","webpack://sitecore-platform/./node_modules/underscore/modules/_isBufferLike.js","webpack://sitecore-platform/./node_modules/underscore/modules/isTypedArray.js","webpack://sitecore-platform/./node_modules/underscore/modules/keys.js","webpack://sitecore-platform/./node_modules/underscore/modules/underscore.js","webpack://sitecore-platform/./node_modules/react-toastify/dist/react-toastify.esm.mjs"],"sourcesContent":["function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?n.add(t):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}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 r=rn(n);delete r[Q];for(var t=nn(r),e=0;e1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0)),n}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function g(n){O(n),n.p.forEach(S),n.p=null}function O(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.g=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.O||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(g(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),g(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;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,u=o,a=!1;3===e.i&&(u=new Set(o),o.clear(),a=!0),i(u,(function(r,i){return A(n,e,o,r,i,t,a)})),x(n,o,!1),t&&n.u&&b(\"Patches\").N(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s,v){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var p=M(e,c,s&&i&&3!==i.i&&!u(i.R,a)?s.concat(a):void 0);if(f(o,a,p),!r(p))return;e.m=!1}else v&&o.add(c);if(t(c)&&!y(c)){if(!e.h.D&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),!n.l&&n.h.D&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function N(n,r,t){var e=s(r)?b(\"MapSet\").F(r,t):v(r)?b(\"MapSet\").T(r,t):n.O?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function R(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=D(r,c),u.I=!1}else e=D(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function D(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function F(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e1?t-1:0),o=1;o1?t-1:0),o=1;o=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},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);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,R as current,J as enableAllPlugins,F as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import type { Action, ActionCreator, StoreEnhancer } from 'redux'\r\nimport { compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface DevToolsEnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator[] | { [key: string]: ActionCreator }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\r\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\r\n * functions.\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n /**\r\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n * - `false` - will handle also circular references.\r\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n * For each of them you can indicate if to include (by setting as `true`).\r\n * For `function` key you can also specify a custom function which handles serialization.\r\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n */\r\n options?:\r\n | undefined\r\n | boolean\r\n | {\r\n date?: true\r\n regex?: true\r\n undefined?: true\r\n error?: true\r\n symbol?: true\r\n map?: true\r\n set?: true\r\n function?: true | ((fn: (...args: any[]) => any) => string)\r\n }\r\n /**\r\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\r\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\r\n * key. So you can deserialize it back while importing or persisting data.\r\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\r\n */\r\n replacer?: (key: string, value: unknown) => any\r\n /**\r\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\r\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\r\n * as an example on how to serialize special data types and get them back.\r\n */\r\n reviver?: (key: string, value: unknown) => any\r\n /**\r\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\r\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\r\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\r\n */\r\n immutable?: any\r\n /**\r\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\r\n */\r\n refs?: any\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: (action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: (state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsDenylist instead.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsAllowlist instead.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsDenylist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsAllowlist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\r\n */\r\n predicate?: (state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | ((action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\ntype Compose = typeof compose\r\n\r\ninterface ComposeWithDevTools {\r\n (options: DevToolsEnhancerOptions): Compose\r\n (...funcs: StoreEnhancer[]): StoreEnhancer\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: ComposeWithDevTools =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function () {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, arguments as any as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: DevToolsEnhancerOptions): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function () {\r\n return function (noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * prototype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = Object.getPrototypeOf(value)\r\n if (proto === null) return true\r\n\r\n let baseProto = proto\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto)\r\n }\r\n\r\n return proto === baseProto\r\n}\r\n","import createNextState, { isDraftable } from 'immer'\r\nimport type { Middleware, StoreEnhancer } from 'redux'\r\n\r\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\r\n let elapsed = 0\r\n return {\r\n measureTime(fn: () => T): T {\r\n const started = Date.now()\r\n try {\r\n return fn()\r\n } finally {\r\n const finished = Date.now()\r\n elapsed += finished - started\r\n }\r\n },\r\n warnIfExceeded() {\r\n if (elapsed > maxDelay) {\r\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \r\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\r\nIt is disabled in production builds, so you don't need to worry about that.`)\r\n }\r\n },\r\n }\r\n}\r\n\r\nexport function delay(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms))\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class MiddlewareArray<\r\n Middlewares extends Middleware[]\r\n> extends Array {\r\n constructor(...items: Middlewares)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, MiddlewareArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return MiddlewareArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n\r\n concat>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new MiddlewareArray(...arr[0].concat(this))\r\n }\r\n return new MiddlewareArray(...arr.concat(this))\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class EnhancerArray<\r\n Enhancers extends StoreEnhancer[]\r\n> extends Array {\r\n constructor(...items: Enhancers)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, EnhancerArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return EnhancerArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n\r\n concat>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new EnhancerArray(...arr[0].concat(this))\r\n }\r\n return new EnhancerArray(...arr.concat(this))\r\n }\r\n}\r\n\r\nexport function freezeDraftable(val: T) {\r\n return isDraftable(val) ? createNextState(val, () => {}) : val\r\n}\r\n","import type {\r\n Reducer,\r\n ReducersMapObject,\r\n Middleware,\r\n Action,\r\n AnyAction,\r\n StoreEnhancer,\r\n Store,\r\n Dispatch,\r\n PreloadedState,\r\n CombinedState,\r\n} from 'redux'\r\nimport { createStore, compose, applyMiddleware, combineReducers } from 'redux'\r\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension'\r\nimport { composeWithDevTools } from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport type {\r\n ThunkMiddlewareFor,\r\n CurriedGetDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nimport { curryGetDefaultMiddleware } from './getDefaultMiddleware'\r\nimport type {\r\n NoInfer,\r\n ExtractDispatchExtensions,\r\n ExtractStoreExtensions,\r\n ExtractStateExtensions,\r\n} from './tsHelpers'\r\nimport { EnhancerArray } from './utils'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback = (\r\n defaultEnhancers: EnhancerArray<[StoreEnhancer<{}, {}>]>\r\n) => E\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> {\r\n /**\r\n * A single reducer function that will be used as the root reducer, or an\r\n * object of slice reducers that will be passed to `combineReducers()`.\r\n */\r\n reducer: Reducer | ReducersMapObject\r\n\r\n /**\r\n * An array of Redux middleware to install. If not supplied, defaults to\r\n * the set of middleware returned by `getDefaultMiddleware()`.\r\n *\r\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\r\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\r\n */\r\n middleware?: ((getDefaultMiddleware: CurriedGetDefaultMiddleware) => M) | M\r\n\r\n /**\r\n * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n *\r\n * Additional configuration can be done by passing Redux DevTools options\r\n */\r\n devTools?: boolean | DevToolsOptions\r\n\r\n /**\r\n * The initial state, same as Redux's createStore.\r\n * You may optionally specify it to hydrate the state\r\n * from the server in universal apps, or to restore a previously serialized\r\n * user session. If you use `combineReducers()` to produce the root reducer\r\n * function (either directly or indirectly by passing an object as `reducer`),\r\n * this must be an object with the same shape as the reducer map keys.\r\n */\r\n /*\r\n Not 100% correct but the best approximation we can get:\r\n - if S is a `CombinedState` applying a second `CombinedState` on it does not change anything.\r\n - if it is not, there could be two cases:\r\n - `ReducersMapObject` is being passed in. In this case, we will call `combineReducers` on it and `CombinedState` is correct\r\n - `Reducer` is being passed in. In this case, actually `CombinedState` is wrong and `S` would be correct.\r\n As we cannot distinguish between those two cases without adding another generic parameter,\r\n we just make the pragmatic assumption that the latter almost never happens.\r\n */\r\n preloadedState?: PreloadedState>>\r\n\r\n /**\r\n * The store enhancers to apply. See Redux's `createStore()`.\r\n * All enhancers will be included before the DevTools Extension enhancer.\r\n * If you need to customize the order of enhancers, supply a callback\r\n * function that will receive the original array (ie, `[applyMiddleware]`),\r\n * and should return a new array (such as `[applyMiddleware, offline]`).\r\n * If you only need to add middleware, you can use the `middleware` parameter instead.\r\n */\r\n enhancers?: E | ConfigureEnhancersCallback\r\n}\r\n\r\ntype Middlewares = ReadonlyArray>\r\n\r\ntype Enhancers = ReadonlyArray\r\n\r\nexport interface ToolkitStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares\r\n> extends Store {\r\n /**\r\n * The `dispatch` method of your store, enhanced by all its middlewares.\r\n *\r\n * @inheritdoc\r\n */\r\n dispatch: ExtractDispatchExtensions & Dispatch\r\n}\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport type EnhancedStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> = ToolkitStore, A, M> &\r\n ExtractStoreExtensions\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param options The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = [ThunkMiddlewareFor],\r\n E extends Enhancers = [StoreEnhancer]\r\n>(options: ConfigureStoreOptions): EnhancedStore {\r\n const curriedGetDefaultMiddleware = curryGetDefaultMiddleware()\r\n\r\n const {\r\n reducer = undefined,\r\n middleware = curriedGetDefaultMiddleware(),\r\n devTools = true,\r\n preloadedState = undefined,\r\n enhancers = undefined,\r\n } = options || {}\r\n\r\n let rootReducer: Reducer\r\n\r\n if (typeof reducer === 'function') {\r\n rootReducer = reducer\r\n } else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer) as unknown as Reducer\r\n } else {\r\n throw new Error(\r\n '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n )\r\n }\r\n\r\n let finalMiddleware = middleware\r\n if (typeof finalMiddleware === 'function') {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware)\r\n\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\r\n 'when using a middleware builder function, an array of middleware must be returned'\r\n )\r\n }\r\n }\r\n if (\r\n !IS_PRODUCTION &&\r\n finalMiddleware.some((item: any) => typeof item !== 'function')\r\n ) {\r\n throw new Error(\r\n 'each middleware provided to configureStore must be a function'\r\n )\r\n }\r\n\r\n const middlewareEnhancer: StoreEnhancer = applyMiddleware(...finalMiddleware)\r\n\r\n let finalCompose = compose\r\n\r\n if (devTools) {\r\n finalCompose = composeWithDevTools({\r\n // Enable capture of stack traces for dispatched Redux actions\r\n trace: !IS_PRODUCTION,\r\n ...(typeof devTools === 'object' && devTools),\r\n })\r\n }\r\n\r\n const defaultEnhancers = new EnhancerArray(middlewareEnhancer)\r\n let storeEnhancers: Enhancers = defaultEnhancers\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(defaultEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as StoreEnhancer\r\n\r\n return createStore(rootReducer, preloadedState, composedEnhancer)\r\n}\r\n","import type { Middleware, AnyAction } from 'redux'\r\nimport type { ThunkMiddleware } from 'redux-thunk'\r\nimport thunkMiddleware from 'redux-thunk'\r\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'\r\n/* PROD_START_REMOVE_UMD */\r\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'\r\n/* PROD_STOP_REMOVE_UMD */\r\n\r\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'\r\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'\r\nimport type { ExcludeFromTuple } from './tsHelpers'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware\r\n : ThunkMiddleware\r\n\r\nexport type CurriedGetDefaultMiddleware = <\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n }\r\n>(\r\n options?: O\r\n) => MiddlewareArray], never>>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n S = any\r\n>(): CurriedGetDefaultMiddleware {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options)\r\n }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n *\r\n * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`\r\n * to access a pre-typed `getDefaultMiddleware` instead.\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n }\r\n>(\r\n options: O = {} as O\r\n): MiddlewareArray], never>> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true,\r\n } = options\r\n\r\n let middlewareArray = new MiddlewareArray()\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import type { Action } from 'redux'\r\nimport type {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny,\r\n} from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction

=\r\n | ((...args: any[]) => { payload: P })\r\n | ((...args: any[]) => { payload: P; meta: any })\r\n | ((...args: any[]) => { payload: P; error: any })\r\n | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n PA extends PrepareAction | void,\r\n T extends string = string\r\n> = PA extends PrepareAction\r\n ? ActionCreatorWithPreparedPayload<\r\n Parameters,\r\n P,\r\n T,\r\n ReturnType extends {\r\n error: infer E\r\n }\r\n ? E\r\n : never,\r\n ReturnType extends {\r\n meta: infer M\r\n }\r\n ? M\r\n : never\r\n >\r\n : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\nexport interface BaseActionCreator {\r\n type: T\r\n match: (action: Action) => action is PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n Args extends unknown[],\r\n P,\r\n T extends string = string,\r\n E = never,\r\n M = never\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\r\n (...args: Args): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\r\n (payload?: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\r\n (noArgument: void): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\r\n (payload: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n T extends string = string\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\r\n (payload: PT): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n P = void,\r\n T extends string = string,\r\n PA extends PrepareAction

| void = void\r\n> = IfPrepareActionMethodProvided<\r\n PA,\r\n _ActionCreatorWithPreparedPayload,\r\n // else\r\n IsAny<\r\n P,\r\n ActionCreatorWithPayload,\r\n IsUnknownOrNonInferrable<\r\n P,\r\n ActionCreatorWithNonInferrablePayload,\r\n // else\r\n IfVoid<\r\n P,\r\n ActionCreatorWithoutPayload,\r\n // else\r\n IfMaybeUndefined<\r\n P,\r\n ActionCreatorWithOptionalPayload,\r\n // else\r\n ActionCreatorWithPayload\r\n >\r\n >\r\n >\r\n >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction

= PayloadActionCreator

\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers\r\n\r\n /**\r\n * Provides access to the initial state value given to the slice.\r\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n */\r\n getInitialState: () => State\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n */\r\n initialState: State | (() => State)\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers\r\n\r\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * \r\n * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n})\r\n```\r\n */\r\n extraReducers?:\r\n | CaseReducers, any>\r\n | ((builder: ActionReducerMapBuilder>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare = {\r\n reducer: CaseReducer\r\n prepare: PrepareAction\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers = {\r\n [K: string]:\r\n | CaseReducer>\r\n | CaseReducerWithPrepare>\r\n}\r\n\r\ntype SliceActionType<\r\n SliceName extends string,\r\n ActionName extends keyof any\r\n> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions<\r\n CaseReducers extends SliceCaseReducers,\r\n SliceName extends string\r\n> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n : ActionCreatorForCaseReducer<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n CR extends { prepare: any },\r\n Type extends string\r\n> = _ActionCreatorWithPreparedPayload\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator\r\n : ActionCreatorWithoutPayload\r\n : ActionCreatorWithoutPayload\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions\r\n): Slice {\r\n const { name } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (options.initialState === undefined) {\r\n console.error(\r\n 'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`'\r\n )\r\n }\r\n }\r\n\r\n const initialState =\r\n typeof options.initialState == 'function'\r\n ? options.initialState\r\n : freezeDraftable(options.initialState)\r\n\r\n const reducers = options.reducers || {}\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record = {}\r\n const sliceCaseReducersByType: Record = {}\r\n const actionCreators: Record = {}\r\n\r\n reducerNames.forEach((reducerName) => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer\r\n let prepareCallback: PrepareAction | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n function buildReducer() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof options.extraReducers === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\"\r\n )\r\n }\r\n }\r\n }\r\n const [\r\n extraReducers = {},\r\n actionMatchers = [],\r\n defaultCaseReducer = undefined,\r\n ] =\r\n typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : [options.extraReducers]\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n\r\n return createReducer(initialState, (builder) => {\r\n for (let key in finalCaseReducers) {\r\n builder.addCase(key, finalCaseReducers[key] as CaseReducer)\r\n }\r\n for (let m of actionMatchers) {\r\n builder.addMatcher(m.matcher, m.reducer)\r\n }\r\n if (defaultCaseReducer) {\r\n builder.addDefaultCase(defaultCaseReducer)\r\n }\r\n })\r\n }\r\n\r\n let _reducer: ReducerWithInitialState\r\n\r\n return {\r\n name,\r\n reducer(state, action) {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer(state, action)\r\n },\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any,\r\n getInitialState() {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer.getInitialState()\r\n },\r\n }\r\n}\r\n","import type { Draft } from 'immer'\r\nimport createNextState, { isDraft, isDraftable } from 'immer'\r\nimport type { AnyAction, Action, Reducer } from 'redux'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions = Record\r\n\r\n/**\r\n * @deprecated use `TypeGuard` instead\r\n */\r\nexport interface ActionMatcher {\r\n (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription = {\r\n matcher: ActionMatcher\r\n reducer: CaseReducer>\r\n}\r\n\r\nexport type ReadonlyActionMatcherDescriptionCollection = ReadonlyArray<\r\n ActionMatcherDescription\r\n>\r\n\r\nexport type ActionMatcherDescriptionCollection = Array<\r\n ActionMatcherDescription\r\n>\r\n\r\n/**\r\n * A *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer = (\r\n state: Draft,\r\n action: A\r\n) => NoInfer | void | Draft>\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer : void\r\n}\r\n\r\nexport type NotFunction = T extends Function ? never : T\r\n\r\nfunction isStateFunction(x: unknown): x is () => S {\r\n return typeof x === 'function'\r\n}\r\n\r\nexport type ReducerWithInitialState> = Reducer & {\r\n getInitialState: () => S\r\n}\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AnyAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction(\"increment\");\r\nconst decrement = createAction(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: AnyAction\r\n): action is PayloadAction {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): ReducerWithInitialState\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n * All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n\r\n// Alternately, use a \"lazy initializer\" to provide the initial state\r\n// (works with either form of createReducer)\r\nconst initialState = () => 0\r\nconst counterReducer = createReducer(initialState, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n [increment]: (state, action) => state + action.payload,\r\n [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n S extends NotFunction,\r\n CR extends CaseReducers = CaseReducers\r\n>(\r\n initialState: S | (() => S),\r\n actionsMap: CR,\r\n actionMatchers?: ActionMatcherDescriptionCollection,\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState\r\n\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n mapOrBuilderCallback:\r\n | CaseReducers\r\n | ((builder: ActionReducerMapBuilder) => void),\r\n actionMatchers: ReadonlyActionMatcherDescriptionCollection = [],\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof mapOrBuilderCallback === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\"\r\n )\r\n }\r\n }\r\n }\r\n\r\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n // Ensure the initial state gets frozen either way (if draftable)\r\n let getInitialState: () => S\r\n if (isStateFunction(initialState)) {\r\n getInitialState = () => freezeDraftable(initialState())\r\n } else {\r\n const frozenInitialState = freezeDraftable(initialState)\r\n getInitialState = () => frozenInitialState\r\n }\r\n\r\n function reducer(state = getInitialState(), action: any): S {\r\n let caseReducers = [\r\n actionsMap[action.type],\r\n ...finalActionMatchers\r\n .filter(({ matcher }) => matcher(action))\r\n .map(({ reducer }) => reducer),\r\n ]\r\n if (caseReducers.filter((cr) => !!cr).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer]\r\n }\r\n\r\n return caseReducers.reduce((previousState, caseReducer): S => {\r\n if (caseReducer) {\r\n if (isDraft(previousState)) {\r\n // If it's already a draft, we must already be inside a `createNextState` call,\r\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n const draft = previousState as Draft // We can assume this is already a draft\r\n const result = caseReducer(draft, action)\r\n\r\n if (result === undefined) {\r\n return previousState\r\n }\r\n\r\n return result as S\r\n } else if (!isDraftable(previousState)) {\r\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n // return the caseReducer func and not wrap it with produce.\r\n const result = caseReducer(previousState as any, action)\r\n\r\n if (result === undefined) {\r\n if (previousState === null) {\r\n return previousState\r\n }\r\n throw Error(\r\n 'A case reducer on a non-draftable value must not return undefined'\r\n )\r\n }\r\n\r\n return result as S\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable> rather\r\n // than an Immutable, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(previousState, (draft: Draft) => {\r\n return caseReducer(draft, action)\r\n })\r\n }\r\n }\r\n\r\n return previousState\r\n }, state)\r\n }\r\n\r\n reducer.getInitialState = getInitialState\r\n\r\n return reducer as ReducerWithInitialState\r\n}\r\n","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\r\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\r\n// optimize the gzip compression for this alphabet.\r\nlet urlAlphabet =\r\n 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\r\n\r\n/**\r\n *\r\n * @public\r\n */\r\nexport let nanoid = (size = 21) => {\r\n let id = ''\r\n // A compact alternative for `for (var i = 0; i < step; i++)`.\r\n let i = size\r\n while (i--) {\r\n // `| 0` is more compact and faster than `Math.floor()`.\r\n id += urlAlphabet[(Math.random() * 64) | 0]\r\n }\r\n return id\r\n}\r\n","import type { Dispatch, AnyAction } from 'redux'\r\nimport type {\r\n PayloadAction,\r\n ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown } from './tsHelpers'\r\nimport { nanoid } from './nanoid'\r\n\r\n// @ts-ignore we need the import of these types due to a bundling issue.\r\ntype _Keep = PayloadAction | ActionCreatorWithPreparedPayload\r\n\r\nexport type BaseThunkAPI<\r\n S,\r\n E,\r\n D extends Dispatch = Dispatch,\r\n RejectedValue = undefined,\r\n RejectedMeta = unknown,\r\n FulfilledMeta = unknown\r\n> = {\r\n dispatch: D\r\n getState: () => S\r\n extra: E\r\n requestId: string\r\n signal: AbortSignal\r\n abort: (reason?: string) => void\r\n rejectWithValue: IsUnknown<\r\n RejectedMeta,\r\n (value: RejectedValue) => RejectWithValue,\r\n (\r\n value: RejectedValue,\r\n meta: RejectedMeta\r\n ) => RejectWithValue\r\n >\r\n fulfillWithValue: IsUnknown<\r\n FulfilledMeta,\r\n (value: FulfilledValue) => FulfilledValue,\r\n (\r\n value: FulfilledValue,\r\n meta: FulfilledMeta\r\n ) => FulfillWithMeta\r\n >\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SerializedError {\r\n name?: string\r\n message?: string\r\n stack?: string\r\n code?: string\r\n}\r\n\r\nconst commonProperties: Array = [\r\n 'name',\r\n 'message',\r\n 'stack',\r\n 'code',\r\n]\r\n\r\nclass RejectWithValue {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'RejectWithValue'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: RejectedMeta\r\n ) {}\r\n}\r\n\r\nclass FulfillWithMeta {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'FulfillWithMeta'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: FulfilledMeta\r\n ) {}\r\n}\r\n\r\n/**\r\n * Serializes an error into a plain object.\r\n * Reworked from https://github.com/sindresorhus/serialize-error\r\n *\r\n * @public\r\n */\r\nexport const miniSerializeError = (value: any): SerializedError => {\r\n if (typeof value === 'object' && value !== null) {\r\n const simpleError: SerializedError = {}\r\n for (const property of commonProperties) {\r\n if (typeof value[property] === 'string') {\r\n simpleError[property] = value[property]\r\n }\r\n }\r\n\r\n return simpleError\r\n }\r\n\r\n return { message: String(value) }\r\n}\r\n\r\ntype AsyncThunkConfig = {\r\n state?: unknown\r\n dispatch?: Dispatch\r\n extra?: unknown\r\n rejectValue?: unknown\r\n serializedErrorType?: unknown\r\n pendingMeta?: unknown\r\n fulfilledMeta?: unknown\r\n rejectedMeta?: unknown\r\n}\r\n\r\ntype GetState = ThunkApiConfig extends {\r\n state: infer State\r\n}\r\n ? State\r\n : unknown\r\ntype GetExtra = ThunkApiConfig extends { extra: infer Extra }\r\n ? Extra\r\n : unknown\r\ntype GetDispatch = ThunkApiConfig extends {\r\n dispatch: infer Dispatch\r\n}\r\n ? FallbackIfUnknown<\r\n Dispatch,\r\n ThunkDispatch<\r\n GetState,\r\n GetExtra,\r\n AnyAction\r\n >\r\n >\r\n : ThunkDispatch, GetExtra, AnyAction>\r\n\r\ntype GetThunkAPI = BaseThunkAPI<\r\n GetState,\r\n GetExtra,\r\n GetDispatch,\r\n GetRejectValue,\r\n GetRejectedMeta,\r\n GetFulfilledMeta\r\n>\r\n\r\ntype GetRejectValue = ThunkApiConfig extends {\r\n rejectValue: infer RejectValue\r\n}\r\n ? RejectValue\r\n : unknown\r\n\r\ntype GetPendingMeta = ThunkApiConfig extends {\r\n pendingMeta: infer PendingMeta\r\n}\r\n ? PendingMeta\r\n : unknown\r\n\r\ntype GetFulfilledMeta = ThunkApiConfig extends {\r\n fulfilledMeta: infer FulfilledMeta\r\n}\r\n ? FulfilledMeta\r\n : unknown\r\n\r\ntype GetRejectedMeta = ThunkApiConfig extends {\r\n rejectedMeta: infer RejectedMeta\r\n}\r\n ? RejectedMeta\r\n : unknown\r\n\r\ntype GetSerializedErrorType = ThunkApiConfig extends {\r\n serializedErrorType: infer GetSerializedErrorType\r\n}\r\n ? GetSerializedErrorType\r\n : SerializedError\r\n\r\ntype MaybePromise = T | Promise | (T extends any ? Promise : never)\r\n\r\n/**\r\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreatorReturnValue<\r\n Returned,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = MaybePromise<\r\n | IsUnknown<\r\n GetFulfilledMeta,\r\n Returned,\r\n FulfillWithMeta>\r\n >\r\n | RejectWithValue<\r\n GetRejectValue,\r\n GetRejectedMeta\r\n >\r\n>\r\n/**\r\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = (\r\n arg: ThunkArg,\r\n thunkAPI: GetThunkAPI\r\n) => AsyncThunkPayloadCreatorReturnValue\r\n\r\n/**\r\n * A ThunkAction created by `createAsyncThunk`.\r\n * Dispatching it returns a Promise for either a\r\n * fulfilled or rejected action.\r\n * Also, the returned value contains an `abort()` method\r\n * that allows the asyncAction to be cancelled from the outside.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkAction<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = (\r\n dispatch: GetDispatch,\r\n getState: () => GetState,\r\n extra: GetExtra\r\n) => Promise<\r\n | ReturnType>\r\n | ReturnType>\r\n> & {\r\n abort: (reason?: string) => void\r\n requestId: string\r\n arg: ThunkArg\r\n unwrap: () => Promise\r\n}\r\n\r\ntype AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = IsAny<\r\n ThunkArg,\r\n // any handling\r\n (arg: ThunkArg) => AsyncThunkAction,\r\n // unknown handling\r\n unknown extends ThunkArg\r\n ? (arg: ThunkArg) => AsyncThunkAction // argument not specified or specified as void or undefined\r\n : [ThunkArg] extends [void] | [undefined]\r\n ? () => AsyncThunkAction // argument contains void\r\n : [void] extends [ThunkArg] // make optional\r\n ? (arg?: ThunkArg) => AsyncThunkAction // argument contains undefined\r\n : [undefined] extends [ThunkArg]\r\n ? WithStrictNullChecks<\r\n // with strict nullChecks: make optional\r\n (\r\n arg?: ThunkArg\r\n ) => AsyncThunkAction,\r\n // without strict null checks this will match everything, so don't make it optional\r\n (arg: ThunkArg) => AsyncThunkAction\r\n > // default case: normal argument\r\n : (arg: ThunkArg) => AsyncThunkAction\r\n>\r\n\r\n/**\r\n * Options object for `createAsyncThunk`.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkOptions<\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = {\r\n /**\r\n * A method to control whether the asyncThunk should be executed. Has access to the\r\n * `arg`, `api.getState()` and `api.extra` arguments.\r\n *\r\n * @returns `false` if it should be skipped\r\n */\r\n condition?(\r\n arg: ThunkArg,\r\n api: Pick, 'getState' | 'extra'>\r\n ): MaybePromise\r\n /**\r\n * If `condition` returns `false`, the asyncThunk will be skipped.\r\n * This option allows you to control whether a `rejected` action with `meta.condition == false`\r\n * will be dispatched or not.\r\n *\r\n * @default `false`\r\n */\r\n dispatchConditionRejection?: boolean\r\n\r\n serializeError?: (x: unknown) => GetSerializedErrorType\r\n\r\n /**\r\n * A function to use when generating the `requestId` for the request sequence.\r\n *\r\n * @default `nanoid`\r\n */\r\n idGenerator?: (arg: ThunkArg) => string\r\n} & IsUnknown<\r\n GetPendingMeta,\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n *\r\n * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\r\n * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\r\n */\r\n getPendingMeta?(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n },\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n */\r\n getPendingMeta(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n }\r\n>\r\n\r\nexport type AsyncThunkPendingActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [string, ThunkArg, GetPendingMeta?],\r\n undefined,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'pending'\r\n } & GetPendingMeta\r\n>\r\n\r\nexport type AsyncThunkRejectedActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [\r\n Error | null,\r\n string,\r\n ThunkArg,\r\n GetRejectValue?,\r\n GetRejectedMeta?\r\n ],\r\n GetRejectValue | undefined,\r\n string,\r\n GetSerializedErrorType,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'rejected'\r\n aborted: boolean\r\n condition: boolean\r\n } & (\r\n | ({ rejectedWithValue: false } & {\r\n [K in keyof GetRejectedMeta]?: undefined\r\n })\r\n | ({ rejectedWithValue: true } & GetRejectedMeta)\r\n )\r\n>\r\n\r\nexport type AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [Returned, string, ThunkArg, GetFulfilledMeta?],\r\n Returned,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'fulfilled'\r\n } & GetFulfilledMeta\r\n>\r\n\r\n/**\r\n * A type describing the return value of `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = AsyncThunkActionCreator & {\r\n pending: AsyncThunkPendingActionCreator\r\n rejected: AsyncThunkRejectedActionCreator\r\n fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >\r\n typePrefix: string\r\n}\r\n\r\ntype OverrideThunkApiConfigs = Id<\r\n NewConfig & Omit\r\n>\r\n\r\ntype CreateAsyncThunk = {\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n // separate signature without `AsyncThunkConfig` for better inference\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n CurriedThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk\r\n\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >,\r\n options?: AsyncThunkOptions<\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n ): AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n\r\n withTypes(): CreateAsyncThunk<\r\n OverrideThunkApiConfigs\r\n >\r\n}\r\n\r\nexport const createAsyncThunk = (() => {\r\n function createAsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n >(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk {\r\n type RejectedValue = GetRejectValue\r\n type PendingMeta = GetPendingMeta\r\n type FulfilledMeta = GetFulfilledMeta\r\n type RejectedMeta = GetRejectedMeta\r\n\r\n const fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n > = createAction(\r\n typePrefix + '/fulfilled',\r\n (\r\n payload: Returned,\r\n requestId: string,\r\n arg: ThunkArg,\r\n meta?: FulfilledMeta\r\n ) => ({\r\n payload,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'fulfilled' as const,\r\n },\r\n })\r\n )\r\n\r\n const pending: AsyncThunkPendingActionCreator =\r\n createAction(\r\n typePrefix + '/pending',\r\n (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\r\n payload: undefined,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'pending' as const,\r\n },\r\n })\r\n )\r\n\r\n const rejected: AsyncThunkRejectedActionCreator =\r\n createAction(\r\n typePrefix + '/rejected',\r\n (\r\n error: Error | null,\r\n requestId: string,\r\n arg: ThunkArg,\r\n payload?: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => ({\r\n payload,\r\n error: ((options && options.serializeError) || miniSerializeError)(\r\n error || 'Rejected'\r\n ) as GetSerializedErrorType,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: 'rejected' as const,\r\n aborted: error?.name === 'AbortError',\r\n condition: error?.name === 'ConditionError',\r\n },\r\n })\r\n )\r\n\r\n let displayedWarning = false\r\n\r\n const AC =\r\n typeof AbortController !== 'undefined'\r\n ? AbortController\r\n : class implements AbortController {\r\n signal = {\r\n aborted: false,\r\n addEventListener() {},\r\n dispatchEvent() {\r\n return false\r\n },\r\n onabort() {},\r\n removeEventListener() {},\r\n reason: undefined,\r\n throwIfAborted() {},\r\n }\r\n abort() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!displayedWarning) {\r\n displayedWarning = true\r\n console.info(\r\n `This platform does not implement AbortController. \r\nIf you want to use the AbortController to react to \\`abort\\` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.`\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n function actionCreator(\r\n arg: ThunkArg\r\n ): AsyncThunkAction {\r\n return (dispatch, getState, extra) => {\r\n const requestId = options?.idGenerator\r\n ? options.idGenerator(arg)\r\n : nanoid()\r\n\r\n const abortController = new AC()\r\n let abortReason: string | undefined\r\n\r\n let started = false\r\n function abort(reason?: string) {\r\n abortReason = reason\r\n abortController.abort()\r\n }\r\n\r\n const promise = (async function () {\r\n let finalAction: ReturnType\r\n try {\r\n let conditionResult = options?.condition?.(arg, { getState, extra })\r\n if (isThenable(conditionResult)) {\r\n conditionResult = await conditionResult\r\n }\r\n\r\n if (conditionResult === false || abortController.signal.aborted) {\r\n // eslint-disable-next-line no-throw-literal\r\n throw {\r\n name: 'ConditionError',\r\n message: 'Aborted due to condition callback returning false.',\r\n }\r\n }\r\n started = true\r\n\r\n const abortedPromise = new Promise((_, reject) =>\r\n abortController.signal.addEventListener('abort', () =>\r\n reject({\r\n name: 'AbortError',\r\n message: abortReason || 'Aborted',\r\n })\r\n )\r\n )\r\n dispatch(\r\n pending(\r\n requestId,\r\n arg,\r\n options?.getPendingMeta?.(\r\n { requestId, arg },\r\n { getState, extra }\r\n )\r\n )\r\n )\r\n finalAction = await Promise.race([\r\n abortedPromise,\r\n Promise.resolve(\r\n payloadCreator(arg, {\r\n dispatch,\r\n getState,\r\n extra,\r\n requestId,\r\n signal: abortController.signal,\r\n abort,\r\n rejectWithValue: ((\r\n value: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => {\r\n return new RejectWithValue(value, meta)\r\n }) as any,\r\n fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\r\n return new FulfillWithMeta(value, meta)\r\n }) as any,\r\n })\r\n ).then((result) => {\r\n if (result instanceof RejectWithValue) {\r\n throw result\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta)\r\n }\r\n return fulfilled(result as any, requestId, arg)\r\n }),\r\n ])\r\n } catch (err) {\r\n finalAction =\r\n err instanceof RejectWithValue\r\n ? rejected(null, requestId, arg, err.payload, err.meta)\r\n : rejected(err as any, requestId, arg)\r\n }\r\n // We dispatch the result action _after_ the catch, to avoid having any errors\r\n // here get swallowed by the try/catch block,\r\n // per https://twitter.com/dan_abramov/status/770914221638942720\r\n // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\r\n\r\n const skipDispatch =\r\n options &&\r\n !options.dispatchConditionRejection &&\r\n rejected.match(finalAction) &&\r\n (finalAction as any).meta.condition\r\n\r\n if (!skipDispatch) {\r\n dispatch(finalAction)\r\n }\r\n return finalAction\r\n })()\r\n return Object.assign(promise as Promise, {\r\n abort,\r\n requestId,\r\n arg,\r\n unwrap() {\r\n return promise.then(unwrapResult)\r\n },\r\n })\r\n }\r\n }\r\n\r\n return Object.assign(\r\n actionCreator as AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n {\r\n pending,\r\n rejected,\r\n fulfilled,\r\n typePrefix,\r\n }\r\n )\r\n }\r\n createAsyncThunk.withTypes = () => createAsyncThunk\r\n\r\n return createAsyncThunk as CreateAsyncThunk\r\n})()\r\n\r\ninterface UnwrappableAction {\r\n payload: any\r\n meta?: any\r\n error?: any\r\n}\r\n\r\ntype UnwrappedActionPayload = Exclude<\r\n T,\r\n { error: any }\r\n>['payload']\r\n\r\n/**\r\n * @public\r\n */\r\nexport function unwrapResult(\r\n action: R\r\n): UnwrappedActionPayload {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload\r\n }\r\n if (action.error) {\r\n throw action.error\r\n }\r\n return action.payload\r\n}\r\n\r\ntype WithStrictNullChecks = undefined extends boolean\r\n ? False\r\n : True\r\n\r\nfunction isThenable(value: any): value is PromiseLike {\r\n return (\r\n value !== null &&\r\n typeof value === 'object' &&\r\n typeof value.then === 'function'\r\n )\r\n}\r\n","import type { Middleware, StoreEnhancer } from 'redux'\r\nimport type { EnhancerArray, MiddlewareArray } from './utils'\r\n\r\n/**\r\n * return True if T is `any`, otherwise return False\r\n * taken from https://github.com/joonhocho/tsdef\r\n *\r\n * @internal\r\n */\r\nexport type IsAny =\r\n // test if we are going the left AND right path in the condition\r\n true | false extends (T extends never ? true : false) ? True : False\r\n\r\n/**\r\n * return True if T is `unknown`, otherwise return False\r\n * taken from https://github.com/joonhocho/tsdef\r\n *\r\n * @internal\r\n */\r\nexport type IsUnknown = unknown extends T\r\n ? IsAny\r\n : False\r\n\r\nexport type FallbackIfUnknown = IsUnknown\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IfMaybeUndefined = [undefined] extends [P]\r\n ? True\r\n : False\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IfVoid = [void] extends [P] ? True : False\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IsEmptyObj = T extends any\r\n ? keyof T extends never\r\n ? IsUnknown>>\r\n : False\r\n : never\r\n\r\n/**\r\n * returns True if TS version is above 3.5, False if below.\r\n * uses feature detection to detect TS version >= 3.5\r\n * * versions below 3.5 will return `{}` for unresolvable interference\r\n * * versions above will return `unknown`\r\n *\r\n * @internal\r\n */\r\nexport type AtLeastTS35 = [True, False][IsUnknown<\r\n ReturnType<() => T>,\r\n 0,\r\n 1\r\n>]\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IsUnknownOrNonInferrable = AtLeastTS35<\r\n IsUnknown,\r\n IsEmptyObj>\r\n>\r\n\r\n/**\r\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\r\n */\r\nexport type UnionToIntersection = (\r\n U extends any ? (k: U) => void : never\r\n) extends (k: infer I) => void\r\n ? I\r\n : never\r\n\r\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\r\nexport type ExcludeFromTuple = T extends [\r\n infer Head,\r\n ...infer Tail\r\n]\r\n ? ExcludeFromTuple\r\n : Acc\r\n\r\ntype ExtractDispatchFromMiddlewareTuple<\r\n MiddlewareTuple extends any[],\r\n Acc extends {}\r\n> = MiddlewareTuple extends [infer Head, ...infer Tail]\r\n ? ExtractDispatchFromMiddlewareTuple<\r\n Tail,\r\n Acc & (Head extends Middleware ? IsAny : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractDispatchExtensions = M extends MiddlewareArray<\r\n infer MiddlewareTuple\r\n>\r\n ? ExtractDispatchFromMiddlewareTuple\r\n : M extends ReadonlyArray\r\n ? ExtractDispatchFromMiddlewareTuple<[...M], {}>\r\n : never\r\n\r\ntype ExtractStoreExtensionsFromEnhancerTuple<\r\n EnhancerTuple extends any[],\r\n Acc extends {}\r\n> = EnhancerTuple extends [infer Head, ...infer Tail]\r\n ? ExtractStoreExtensionsFromEnhancerTuple<\r\n Tail,\r\n Acc & (Head extends StoreEnhancer ? IsAny : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractStoreExtensions = E extends EnhancerArray<\r\n infer EnhancerTuple\r\n>\r\n ? ExtractStoreExtensionsFromEnhancerTuple\r\n : E extends ReadonlyArray\r\n ? UnionToIntersection<\r\n E[number] extends StoreEnhancer\r\n ? Ext extends {}\r\n ? IsAny\r\n : {}\r\n : {}\r\n >\r\n : never\r\n\r\ntype ExtractStateExtensionsFromEnhancerTuple<\r\n EnhancerTuple extends any[],\r\n Acc extends {}\r\n> = EnhancerTuple extends [infer Head, ...infer Tail]\r\n ? ExtractStateExtensionsFromEnhancerTuple<\r\n Tail,\r\n Acc &\r\n (Head extends StoreEnhancer\r\n ? IsAny\r\n : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractStateExtensions = E extends EnhancerArray<\r\n infer EnhancerTuple\r\n>\r\n ? ExtractStateExtensionsFromEnhancerTuple\r\n : E extends ReadonlyArray\r\n ? UnionToIntersection<\r\n E[number] extends StoreEnhancer\r\n ? StateExt extends {}\r\n ? IsAny\r\n : {}\r\n : {}\r\n >\r\n : never\r\n\r\n/**\r\n * Helper type. Passes T out again, but boxes it in a way that it cannot\r\n * \"widen\" the type by accident if it is a generic that should be inferred\r\n * from elsewhere.\r\n *\r\n * @internal\r\n */\r\nexport type NoInfer = [T][T extends any ? 0 : never]\r\n\r\nexport type Omit = Pick>\r\n\r\nexport interface TypeGuard {\r\n (value: any): value is T\r\n}\r\n\r\nexport interface HasMatchFunction {\r\n match: TypeGuard\r\n}\r\n\r\nexport const hasMatchFunction = (\r\n v: Matcher\r\n): v is HasMatchFunction => {\r\n return v && typeof (v as HasMatchFunction).match === 'function'\r\n}\r\n\r\n/** @public */\r\nexport type Matcher = HasMatchFunction | TypeGuard\r\n\r\n/** @public */\r\nexport type ActionFromMatcher> = M extends Matcher<\r\n infer T\r\n>\r\n ? T\r\n : never\r\n\r\nexport type Id = { [K in keyof T]: T[K] } & {}\r\n","import type {\r\n ActionFromMatcher,\r\n Matcher,\r\n UnionToIntersection,\r\n} from './tsHelpers'\r\nimport { hasMatchFunction } from './tsHelpers'\r\nimport type {\r\n AsyncThunk,\r\n AsyncThunkFulfilledActionCreator,\r\n AsyncThunkPendingActionCreator,\r\n AsyncThunkRejectedActionCreator,\r\n} from './createAsyncThunk'\r\n\r\n/** @public */\r\nexport type ActionMatchingAnyOf[]]> =\r\n ActionFromMatcher\r\n\r\n/** @public */\r\nexport type ActionMatchingAllOf[]]> =\r\n UnionToIntersection>\r\n\r\nconst matches = (matcher: Matcher, action: any) => {\r\n if (hasMatchFunction(matcher)) {\r\n return matcher.match(action)\r\n } else {\r\n return matcher(action)\r\n }\r\n}\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action matches any one of the supplied type guards or action\r\n * creators.\r\n *\r\n * @param matchers The type guards or action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAnyOf[]]>(\r\n ...matchers: Matchers\r\n) {\r\n return (action: any): action is ActionMatchingAnyOf => {\r\n return matchers.some((matcher) => matches(matcher, action))\r\n }\r\n}\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action matches all of the supplied type guards or action\r\n * creators.\r\n *\r\n * @param matchers The type guards or action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAllOf[]]>(\r\n ...matchers: Matchers\r\n) {\r\n return (action: any): action is ActionMatchingAllOf => {\r\n return matchers.every((matcher) => matches(matcher, action))\r\n }\r\n}\r\n\r\n/**\r\n * @param action A redux action\r\n * @param validStatus An array of valid meta.requestStatus values\r\n *\r\n * @internal\r\n */\r\nexport function hasExpectedRequestMetadata(\r\n action: any,\r\n validStatus: readonly string[]\r\n) {\r\n if (!action || !action.meta) return false\r\n\r\n const hasValidRequestId = typeof action.meta.requestId === 'string'\r\n const hasValidRequestStatus =\r\n validStatus.indexOf(action.meta.requestStatus) > -1\r\n\r\n return hasValidRequestId && hasValidRequestStatus\r\n}\r\n\r\nfunction isAsyncThunkArray(a: [any] | AnyAsyncThunk[]): a is AnyAsyncThunk[] {\r\n return (\r\n typeof a[0] === 'function' &&\r\n 'pending' in a[0] &&\r\n 'fulfilled' in a[0] &&\r\n 'rejected' in a[0]\r\n )\r\n}\r\n\r\nexport type UnknownAsyncThunkPendingAction = ReturnType<\r\n AsyncThunkPendingActionCreator\r\n>\r\n\r\nexport type PendingActionFromAsyncThunk =\r\n ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is pending.\r\n *\r\n * @public\r\n */\r\nexport function isPending(): (\r\n action: any\r\n) => action is UnknownAsyncThunkPendingAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is pending.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isPending<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is PendingActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a pending thunk action\r\n * @public\r\n */\r\nexport function isPending(action: any): action is UnknownAsyncThunkPendingAction\r\nexport function isPending<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['pending'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isPending()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is PendingActionFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.pending\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkRejectedAction = ReturnType<\r\n AsyncThunkRejectedActionCreator\r\n>\r\n\r\nexport type RejectedActionFromAsyncThunk =\r\n ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is rejected.\r\n *\r\n * @public\r\n */\r\nexport function isRejected(): (\r\n action: any\r\n) => action is UnknownAsyncThunkRejectedAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is rejected.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isRejected<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is RejectedActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a rejected thunk action\r\n * @public\r\n */\r\nexport function isRejected(\r\n action: any\r\n): action is UnknownAsyncThunkRejectedAction\r\nexport function isRejected<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['rejected'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejected()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is RejectedActionFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.rejected\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkRejectedWithValueAction = ReturnType<\r\n AsyncThunkRejectedActionCreator\r\n>\r\n\r\nexport type RejectedWithValueActionFromAsyncThunk =\r\n ActionFromMatcher &\r\n (T extends AsyncThunk\r\n ? { payload: RejectedValue }\r\n : unknown)\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is rejected with value.\r\n *\r\n * @public\r\n */\r\nexport function isRejectedWithValue(): (\r\n action: any\r\n) => action is UnknownAsyncThunkRejectedAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is rejected with value.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isRejectedWithValue<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (\r\n action: any\r\n) => action is RejectedWithValueActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a rejected thunk action with value\r\n * @public\r\n */\r\nexport function isRejectedWithValue(\r\n action: any\r\n): action is UnknownAsyncThunkRejectedAction\r\nexport function isRejectedWithValue<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n const hasFlag = (action: any): action is any => {\r\n return action && action.meta && action.meta.rejectedWithValue\r\n }\r\n\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => {\r\n const combinedMatcher = isAllOf(isRejected(...asyncThunks), hasFlag)\r\n\r\n return combinedMatcher(action)\r\n }\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejectedWithValue()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is RejectedActionFromAsyncThunk => {\r\n const combinedMatcher = isAllOf(isRejected(...asyncThunks), hasFlag)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkFulfilledAction = ReturnType<\r\n AsyncThunkFulfilledActionCreator\r\n>\r\n\r\nexport type FulfilledActionFromAsyncThunk =\r\n ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is fulfilled.\r\n *\r\n * @public\r\n */\r\nexport function isFulfilled(): (\r\n action: any\r\n) => action is UnknownAsyncThunkFulfilledAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is fulfilled.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isFulfilled<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is FulfilledActionFromAsyncThunk\r\n/**\r\n * Tests if `action` is a fulfilled thunk action\r\n * @public\r\n */\r\nexport function isFulfilled(\r\n action: any\r\n): action is UnknownAsyncThunkFulfilledAction\r\nexport function isFulfilled<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['fulfilled'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isFulfilled()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is FulfilledActionFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.fulfilled\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkAction =\r\n | UnknownAsyncThunkPendingAction\r\n | UnknownAsyncThunkRejectedAction\r\n | UnknownAsyncThunkFulfilledAction\r\n\r\nexport type AnyAsyncThunk = {\r\n pending: { match: (action: any) => action is any }\r\n fulfilled: { match: (action: any) => action is any }\r\n rejected: { match: (action: any) => action is any }\r\n}\r\n\r\nexport type ActionsFromAsyncThunk =\r\n | ActionFromMatcher\r\n | ActionFromMatcher\r\n | ActionFromMatcher\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator.\r\n *\r\n * @public\r\n */\r\nexport function isAsyncThunkAction(): (\r\n action: any\r\n) => action is UnknownAsyncThunkAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAsyncThunkAction<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is ActionsFromAsyncThunk\r\n/**\r\n * Tests if `action` is a thunk action\r\n * @public\r\n */\r\nexport function isAsyncThunkAction(\r\n action: any\r\n): action is UnknownAsyncThunkAction\r\nexport function isAsyncThunkAction<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) =>\r\n hasExpectedRequestMetadata(action, ['pending', 'fulfilled', 'rejected'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isAsyncThunkAction()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is ActionsFromAsyncThunk => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher, ...Matcher[]] = [] as any\r\n\r\n for (const asyncThunk of asyncThunks) {\r\n matchers.push(\r\n asyncThunk.pending,\r\n asyncThunk.rejected,\r\n asyncThunk.fulfilled\r\n )\r\n }\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n","import type { AbortSignalWithReason } from './types'\r\n\r\nexport const assertFunction: (\r\n func: unknown,\r\n expected: string\r\n) => asserts func is (...args: unknown[]) => unknown = (\r\n func: unknown,\r\n expected: string\r\n) => {\r\n if (typeof func !== 'function') {\r\n throw new TypeError(`${expected} is not a function`)\r\n }\r\n}\r\n\r\nexport const noop = () => {}\r\n\r\nexport const catchRejection = (\r\n promise: Promise,\r\n onError = noop\r\n): Promise => {\r\n promise.catch(onError)\r\n\r\n return promise\r\n}\r\n\r\nexport const addAbortSignalListener = (\r\n abortSignal: AbortSignal,\r\n callback: (evt: Event) => void\r\n) => {\r\n abortSignal.addEventListener('abort', callback, { once: true })\r\n return () => abortSignal.removeEventListener('abort', callback)\r\n}\r\n\r\n/**\r\n * Calls `abortController.abort(reason)` and patches `signal.reason`.\r\n * if it is not supported.\r\n *\r\n * At the time of writing `signal.reason` is available in FF chrome, edge node 17 and deno.\r\n * @param abortController\r\n * @param reason\r\n * @returns\r\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/reason\r\n */\r\nexport const abortControllerWithReason = (\r\n abortController: AbortController,\r\n reason: T\r\n): void => {\r\n type Consumer = (val: T) => void\r\n\r\n const signal = abortController.signal as AbortSignalWithReason\r\n\r\n if (signal.aborted) {\r\n return\r\n }\r\n\r\n // Patch `reason` if necessary.\r\n // - We use defineProperty here because reason is a getter of `AbortSignal.__proto__`.\r\n // - We need to patch 'reason' before calling `.abort()` because listeners to the 'abort'\r\n // event are are notified immediately.\r\n if (!('reason' in signal)) {\r\n Object.defineProperty(signal, 'reason', {\r\n enumerable: true,\r\n value: reason,\r\n configurable: true,\r\n writable: true,\r\n })\r\n }\r\n\r\n ;(abortController.abort as Consumer)(reason)\r\n}\r\n","import type { SerializedError } from '@reduxjs/toolkit'\r\n\r\nconst task = 'task'\r\nconst listener = 'listener'\r\nconst completed = 'completed'\r\nconst cancelled = 'cancelled'\r\n\r\n/* TaskAbortError error codes */\r\nexport const taskCancelled = `task-${cancelled}` as const\r\nexport const taskCompleted = `task-${completed}` as const\r\nexport const listenerCancelled = `${listener}-${cancelled}` as const\r\nexport const listenerCompleted = `${listener}-${completed}` as const\r\n\r\nexport class TaskAbortError implements SerializedError {\r\n name = 'TaskAbortError'\r\n message: string\r\n constructor(public code: string | undefined) {\r\n this.message = `${task} ${cancelled} (reason: ${code})`\r\n }\r\n}\r\n","import { TaskAbortError } from './exceptions'\r\nimport type { AbortSignalWithReason, TaskResult } from './types'\r\nimport { addAbortSignalListener, catchRejection, noop } from './utils'\r\n\r\n/**\r\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\r\n * @param signal\r\n * @param reason\r\n * @see {TaskAbortError}\r\n */\r\nexport const validateActive = (signal: AbortSignal): void => {\r\n if (signal.aborted) {\r\n throw new TaskAbortError((signal as AbortSignalWithReason).reason)\r\n }\r\n}\r\n\r\n/**\r\n * Generates a race between the promise(s) and the AbortSignal\r\n * This avoids `Promise.race()`-related memory leaks:\r\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\r\n */\r\nexport function raceWithSignal(\r\n signal: AbortSignalWithReason,\r\n promise: Promise\r\n): Promise {\r\n let cleanup = noop\r\n return new Promise((resolve, reject) => {\r\n const notifyRejection = () => reject(new TaskAbortError(signal.reason))\r\n\r\n if (signal.aborted) {\r\n notifyRejection()\r\n return\r\n }\r\n\r\n cleanup = addAbortSignalListener(signal, notifyRejection)\r\n promise.finally(() => cleanup()).then(resolve, reject)\r\n }).finally(() => {\r\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\r\n cleanup = noop\r\n })\r\n}\r\n\r\n/**\r\n * Runs a task and returns promise that resolves to {@link TaskResult}.\r\n * Second argument is an optional `cleanUp` function that always runs after task.\r\n *\r\n * **Note:** `runTask` runs the executor in the next microtask.\r\n * @returns\r\n */\r\nexport const runTask = async (\r\n task: () => Promise,\r\n cleanUp?: () => void\r\n): Promise> => {\r\n try {\r\n await Promise.resolve()\r\n const value = await task()\r\n return {\r\n status: 'ok',\r\n value,\r\n }\r\n } catch (error: any) {\r\n return {\r\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\r\n error,\r\n }\r\n } finally {\r\n cleanUp?.()\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and a promise returns another promise that resolves\r\n * as soon the input promise is provided or rejects as soon as\r\n * `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createPause = (signal: AbortSignal) => {\r\n return (promise: Promise): Promise => {\r\n return catchRejection(\r\n raceWithSignal(signal, promise).then((output) => {\r\n validateActive(signal)\r\n return output\r\n })\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\r\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createDelay = (signal: AbortSignal) => {\r\n const pause = createPause(signal)\r\n return (timeoutMs: number): Promise => {\r\n return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)))\r\n }\r\n}\r\n","import type { Dispatch, AnyAction, MiddlewareAPI } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport { createAction, isAction } from '../createAction'\r\nimport { nanoid } from '../nanoid'\r\n\r\nimport type {\r\n ListenerMiddleware,\r\n ListenerMiddlewareInstance,\r\n AddListenerOverloads,\r\n AnyListenerPredicate,\r\n CreateListenerMiddlewareOptions,\r\n TypedAddListener,\r\n TypedCreateListenerEntry,\r\n FallbackAddListenerOptions,\r\n ListenerEntry,\r\n ListenerErrorHandler,\r\n UnsubscribeListener,\r\n TakePattern,\r\n ListenerErrorInfo,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n TypedRemoveListener,\r\n TaskResult,\r\n AbortSignalWithReason,\r\n UnsubscribeListenerOptions,\r\n} from './types'\r\nimport {\r\n abortControllerWithReason,\r\n addAbortSignalListener,\r\n assertFunction,\r\n catchRejection,\r\n} from './utils'\r\nimport {\r\n listenerCancelled,\r\n listenerCompleted,\r\n TaskAbortError,\r\n taskCancelled,\r\n taskCompleted,\r\n} from './exceptions'\r\nimport {\r\n runTask,\r\n validateActive,\r\n createPause,\r\n createDelay,\r\n raceWithSignal,\r\n} from './task'\r\nexport { TaskAbortError } from './exceptions'\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './types'\r\n\r\n//Overly-aggressive byte-shaving\r\nconst { assign } = Object\r\n/**\r\n * @internal\r\n */\r\nconst INTERNAL_NIL_TOKEN = {} as const\r\n\r\nconst alm = 'listenerMiddleware' as const\r\n\r\nconst createFork = (parentAbortSignal: AbortSignalWithReason) => {\r\n const linkControllers = (controller: AbortController) =>\r\n addAbortSignalListener(parentAbortSignal, () =>\r\n abortControllerWithReason(controller, parentAbortSignal.reason)\r\n )\r\n\r\n return (taskExecutor: ForkedTaskExecutor): ForkedTask => {\r\n assertFunction(taskExecutor, 'taskExecutor')\r\n const childAbortController = new AbortController()\r\n\r\n linkControllers(childAbortController)\r\n\r\n const result = runTask(\r\n async (): Promise => {\r\n validateActive(parentAbortSignal)\r\n validateActive(childAbortController.signal)\r\n const result = (await taskExecutor({\r\n pause: createPause(childAbortController.signal),\r\n delay: createDelay(childAbortController.signal),\r\n signal: childAbortController.signal,\r\n })) as T\r\n validateActive(childAbortController.signal)\r\n return result\r\n },\r\n () => abortControllerWithReason(childAbortController, taskCompleted)\r\n )\r\n\r\n return {\r\n result: createPause>(parentAbortSignal)(result),\r\n cancel() {\r\n abortControllerWithReason(childAbortController, taskCancelled)\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst createTakePattern = (\r\n startListening: AddListenerOverloads<\r\n UnsubscribeListener,\r\n S,\r\n Dispatch\r\n >,\r\n signal: AbortSignal\r\n): TakePattern => {\r\n /**\r\n * A function that takes a ListenerPredicate and an optional timeout,\r\n * and resolves when either the predicate returns `true` based on an action\r\n * state combination or when the timeout expires.\r\n * If the parent listener is canceled while waiting, this will throw a\r\n * TaskAbortError.\r\n */\r\n const take = async

>(\r\n predicate: P,\r\n timeout: number | undefined\r\n ) => {\r\n validateActive(signal)\r\n\r\n // Placeholder unsubscribe function until the listener is added\r\n let unsubscribe: UnsubscribeListener = () => {}\r\n\r\n const tuplePromise = new Promise<[AnyAction, S, S]>((resolve, reject) => {\r\n // Inside the Promise, we synchronously add the listener.\r\n let stopListening = startListening({\r\n predicate: predicate as any,\r\n effect: (action, listenerApi): void => {\r\n // One-shot listener that cleans up as soon as the predicate passes\r\n listenerApi.unsubscribe()\r\n // Resolve the promise with the same arguments the predicate saw\r\n resolve([\r\n action,\r\n listenerApi.getState(),\r\n listenerApi.getOriginalState(),\r\n ])\r\n },\r\n })\r\n unsubscribe = () => {\r\n stopListening()\r\n reject()\r\n }\r\n })\r\n\r\n const promises: (Promise | Promise<[AnyAction, S, S]>)[] = [\r\n tuplePromise,\r\n ]\r\n\r\n if (timeout != null) {\r\n promises.push(\r\n new Promise((resolve) => setTimeout(resolve, timeout, null))\r\n )\r\n }\r\n\r\n try {\r\n const output = await raceWithSignal(signal, Promise.race(promises))\r\n\r\n validateActive(signal)\r\n return output\r\n } finally {\r\n // Always clean up the listener\r\n unsubscribe()\r\n }\r\n }\r\n\r\n return ((predicate: AnyListenerPredicate, timeout: number | undefined) =>\r\n catchRejection(take(predicate, timeout))) as TakePattern\r\n}\r\n\r\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\r\n let { type, actionCreator, matcher, predicate, effect } = options\r\n\r\n if (type) {\r\n predicate = createAction(type).match\r\n } else if (actionCreator) {\r\n type = actionCreator!.type\r\n predicate = actionCreator.match\r\n } else if (matcher) {\r\n predicate = matcher\r\n } else if (predicate) {\r\n // pass\r\n } else {\r\n throw new Error(\r\n 'Creating or removing a listener requires one of the known fields for matching an action'\r\n )\r\n }\r\n\r\n assertFunction(effect, 'options.listener')\r\n\r\n return { predicate, type, effect }\r\n}\r\n\r\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\r\nexport const createListenerEntry: TypedCreateListenerEntry = (\r\n options: FallbackAddListenerOptions\r\n) => {\r\n const { type, predicate, effect } = getListenerEntryPropsFrom(options)\r\n\r\n const id = nanoid()\r\n const entry: ListenerEntry = {\r\n id,\r\n effect,\r\n type,\r\n predicate,\r\n pending: new Set(),\r\n unsubscribe: () => {\r\n throw new Error('Unsubscribe not initialized')\r\n },\r\n }\r\n\r\n return entry\r\n}\r\n\r\nconst cancelActiveListeners = (\r\n entry: ListenerEntry>\r\n) => {\r\n entry.pending.forEach((controller) => {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n })\r\n}\r\n\r\nconst createClearListenerMiddleware = (\r\n listenerMap: Map\r\n) => {\r\n return () => {\r\n listenerMap.forEach(cancelActiveListeners)\r\n\r\n listenerMap.clear()\r\n }\r\n}\r\n\r\n/**\r\n * Safely reports errors to the `errorHandler` provided.\r\n * Errors that occur inside `errorHandler` are notified in a new task.\r\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\r\n * @param errorHandler\r\n * @param errorToNotify\r\n */\r\nconst safelyNotifyError = (\r\n errorHandler: ListenerErrorHandler,\r\n errorToNotify: unknown,\r\n errorInfo: ListenerErrorInfo\r\n): void => {\r\n try {\r\n errorHandler(errorToNotify, errorInfo)\r\n } catch (errorHandlerError) {\r\n // We cannot let an error raised here block the listener queue.\r\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\r\n setTimeout(() => {\r\n throw errorHandlerError\r\n }, 0)\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const addListener = createAction(\r\n `${alm}/add`\r\n) as TypedAddListener\r\n\r\n/**\r\n * @public\r\n */\r\nexport const clearAllListeners = createAction(`${alm}/removeAll`)\r\n\r\n/**\r\n * @public\r\n */\r\nexport const removeListener = createAction(\r\n `${alm}/remove`\r\n) as TypedRemoveListener\r\n\r\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\r\n console.error(`${alm}/error`, ...args)\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport function createListenerMiddleware<\r\n S = unknown,\r\n D extends Dispatch = ThunkDispatch,\r\n ExtraArgument = unknown\r\n>(middlewareOptions: CreateListenerMiddlewareOptions = {}) {\r\n const listenerMap = new Map()\r\n const { extra, onError = defaultErrorHandler } = middlewareOptions\r\n\r\n assertFunction(onError, 'onError')\r\n\r\n const insertEntry = (entry: ListenerEntry) => {\r\n entry.unsubscribe = () => listenerMap.delete(entry!.id)\r\n\r\n listenerMap.set(entry.id, entry)\r\n return (cancelOptions?: UnsubscribeListenerOptions) => {\r\n entry.unsubscribe()\r\n if (cancelOptions?.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n }\r\n\r\n const findListenerEntry = (\r\n comparator: (entry: ListenerEntry) => boolean\r\n ): ListenerEntry | undefined => {\r\n for (const entry of Array.from(listenerMap.values())) {\r\n if (comparator(entry)) {\r\n return entry\r\n }\r\n }\r\n\r\n return undefined\r\n }\r\n\r\n const startListening = (options: FallbackAddListenerOptions) => {\r\n let entry = findListenerEntry(\r\n (existingEntry) => existingEntry.effect === options.effect\r\n )\r\n\r\n if (!entry) {\r\n entry = createListenerEntry(options as any)\r\n }\r\n\r\n return insertEntry(entry)\r\n }\r\n\r\n const stopListening = (\r\n options: FallbackAddListenerOptions & UnsubscribeListenerOptions\r\n ): boolean => {\r\n const { type, effect, predicate } = getListenerEntryPropsFrom(options)\r\n\r\n const entry = findListenerEntry((entry) => {\r\n const matchPredicateOrType =\r\n typeof type === 'string'\r\n ? entry.type === type\r\n : entry.predicate === predicate\r\n\r\n return matchPredicateOrType && entry.effect === effect\r\n })\r\n\r\n if (entry) {\r\n entry.unsubscribe()\r\n if (options.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n\r\n return !!entry\r\n }\r\n\r\n const notifyListener = async (\r\n entry: ListenerEntry>,\r\n action: AnyAction,\r\n api: MiddlewareAPI,\r\n getOriginalState: () => S\r\n ) => {\r\n const internalTaskController = new AbortController()\r\n const take = createTakePattern(\r\n startListening,\r\n internalTaskController.signal\r\n )\r\n\r\n try {\r\n entry.pending.add(internalTaskController)\r\n await Promise.resolve(\r\n entry.effect(\r\n action,\r\n // Use assign() rather than ... to avoid extra helper functions added to bundle\r\n assign({}, api, {\r\n getOriginalState,\r\n condition: (\r\n predicate: AnyListenerPredicate,\r\n timeout?: number\r\n ) => take(predicate, timeout).then(Boolean),\r\n take,\r\n delay: createDelay(internalTaskController.signal),\r\n pause: createPause(internalTaskController.signal),\r\n extra,\r\n signal: internalTaskController.signal,\r\n fork: createFork(internalTaskController.signal),\r\n unsubscribe: entry.unsubscribe,\r\n subscribe: () => {\r\n listenerMap.set(entry.id, entry)\r\n },\r\n cancelActiveListeners: () => {\r\n entry.pending.forEach((controller, _, set) => {\r\n if (controller !== internalTaskController) {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n set.delete(controller)\r\n }\r\n })\r\n },\r\n })\r\n )\r\n )\r\n } catch (listenerError) {\r\n if (!(listenerError instanceof TaskAbortError)) {\r\n safelyNotifyError(onError, listenerError, {\r\n raisedBy: 'effect',\r\n })\r\n }\r\n } finally {\r\n abortControllerWithReason(internalTaskController, listenerCompleted) // Notify that the task has completed\r\n entry.pending.delete(internalTaskController)\r\n }\r\n }\r\n\r\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap)\r\n\r\n const middleware: ListenerMiddleware =\r\n (api) => (next) => (action) => {\r\n if (!isAction(action)) {\r\n // we only want to notify listeners for action objects\r\n return next(action)\r\n }\r\n\r\n if (addListener.match(action)) {\r\n return startListening(action.payload)\r\n }\r\n\r\n if (clearAllListeners.match(action)) {\r\n clearListenerMiddleware()\r\n return\r\n }\r\n\r\n if (removeListener.match(action)) {\r\n return stopListening(action.payload)\r\n }\r\n\r\n // Need to get this state _before_ the reducer processes the action\r\n let originalState: S | typeof INTERNAL_NIL_TOKEN = api.getState()\r\n\r\n // `getOriginalState` can only be called synchronously.\r\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\r\n const getOriginalState = (): S => {\r\n if (originalState === INTERNAL_NIL_TOKEN) {\r\n throw new Error(\r\n `${alm}: getOriginalState can only be called synchronously`\r\n )\r\n }\r\n\r\n return originalState as S\r\n }\r\n\r\n let result: unknown\r\n\r\n try {\r\n // Actually forward the action to the reducer before we handle listeners\r\n result = next(action)\r\n\r\n if (listenerMap.size > 0) {\r\n let currentState = api.getState()\r\n // Work around ESBuild+TS transpilation issue\r\n const listenerEntries = Array.from(listenerMap.values())\r\n for (let entry of listenerEntries) {\r\n let runListener = false\r\n\r\n try {\r\n runListener = entry.predicate(action, currentState, originalState)\r\n } catch (predicateError) {\r\n runListener = false\r\n\r\n safelyNotifyError(onError, predicateError, {\r\n raisedBy: 'predicate',\r\n })\r\n }\r\n\r\n if (!runListener) {\r\n continue\r\n }\r\n\r\n notifyListener(entry, action, api, getOriginalState)\r\n }\r\n }\r\n } finally {\r\n // Remove `originalState` store from this scope.\r\n originalState = INTERNAL_NIL_TOKEN\r\n }\r\n\r\n return result\r\n }\r\n\r\n return {\r\n middleware,\r\n startListening,\r\n stopListening,\r\n clearListeners: clearListenerMiddleware,\r\n } as ListenerMiddlewareInstance\r\n}\r\n","import type { StoreEnhancer } from 'redux'\r\n\r\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch'\r\n\r\nexport const prepareAutoBatched =\r\n () =>\r\n (payload: T): { payload: T; meta: unknown } => ({\r\n payload,\r\n meta: { [SHOULD_AUTOBATCH]: true },\r\n })\r\n\r\n// TODO Remove this in 2.0\r\n// Copied from https://github.com/feross/queue-microtask\r\nlet promise: Promise\r\nconst queueMicrotaskShim =\r\n typeof queueMicrotask === 'function'\r\n ? queueMicrotask.bind(\r\n typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : globalThis\r\n )\r\n : // reuse resolved promise, and allocate it lazily\r\n (cb: () => void) =>\r\n (promise || (promise = Promise.resolve())).then(cb).catch((err: any) =>\r\n setTimeout(() => {\r\n throw err\r\n }, 0)\r\n )\r\n\r\nconst createQueueWithTimer = (timeout: number) => {\r\n return (notify: () => void) => {\r\n setTimeout(notify, timeout)\r\n }\r\n}\r\n\r\n// requestAnimationFrame won't exist in SSR environments.\r\n// Fall back to a vague approximation just to keep from erroring.\r\nconst rAF =\r\n typeof window !== 'undefined' && window.requestAnimationFrame\r\n ? window.requestAnimationFrame\r\n : createQueueWithTimer(10)\r\n\r\nexport type AutoBatchOptions =\r\n | { type: 'tick' }\r\n | { type: 'timer'; timeout: number }\r\n | { type: 'raf' }\r\n | { type: 'callback'; queueNotification: (notify: () => void) => void }\r\n\r\n/**\r\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\r\n * notifying subscribers until either the queued callback executes or the\r\n * next \"standard-priority\" action is dispatched.\r\n *\r\n * This allows dispatching multiple \"low-priority\" actions in a row with only\r\n * a single subscriber notification to the UI after the sequence of actions\r\n * is finished, thus improving UI re-render performance.\r\n *\r\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\r\n * This can be added to `action.meta` manually, or by using the\r\n * `prepareAutoBatched` helper.\r\n *\r\n * By default, it will queue a notification for the end of the event loop tick.\r\n * However, you can pass several other options to configure the behavior:\r\n * - `{type: 'tick'}: queues using `queueMicrotask` (default)\r\n * - `{type: 'timer, timeout: number}`: queues using `setTimeout`\r\n * - `{type: 'raf'}`: queues using `requestAnimationFrame`\r\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}: lets you provide your own callback\r\n *\r\n *\r\n */\r\nexport const autoBatchEnhancer =\r\n (options: AutoBatchOptions = { type: 'raf' }): StoreEnhancer =>\r\n (next) =>\r\n (...args) => {\r\n const store = next(...args)\r\n\r\n let notifying = true\r\n let shouldNotifyAtEndOfTick = false\r\n let notificationQueued = false\r\n\r\n const listeners = new Set<() => void>()\r\n\r\n const queueCallback =\r\n options.type === 'tick'\r\n ? queueMicrotaskShim\r\n : options.type === 'raf'\r\n ? rAF\r\n : options.type === 'callback'\r\n ? options.queueNotification\r\n : createQueueWithTimer(options.timeout)\r\n\r\n const notifyListeners = () => {\r\n // We're running at the end of the event loop tick.\r\n // Run the real listener callbacks to actually update the UI.\r\n notificationQueued = false\r\n if (shouldNotifyAtEndOfTick) {\r\n shouldNotifyAtEndOfTick = false\r\n listeners.forEach((l) => l())\r\n }\r\n }\r\n\r\n return Object.assign({}, store, {\r\n // Override the base `store.subscribe` method to keep original listeners\r\n // from running if we're delaying notifications\r\n subscribe(listener: () => void) {\r\n // Each wrapped listener will only call the real listener if\r\n // the `notifying` flag is currently active when it's called.\r\n // This lets the base store work as normal, while the actual UI\r\n // update becomes controlled by this enhancer.\r\n const wrappedListener: typeof listener = () => notifying && listener()\r\n const unsubscribe = store.subscribe(wrappedListener)\r\n listeners.add(listener)\r\n return () => {\r\n unsubscribe()\r\n listeners.delete(listener)\r\n }\r\n },\r\n // Override the base `store.dispatch` method so that we can check actions\r\n // for the `shouldAutoBatch` flag and determine if batching is active\r\n dispatch(action: any) {\r\n try {\r\n // If the action does _not_ have the `shouldAutoBatch` flag,\r\n // we resume/continue normal notify-after-each-dispatch behavior\r\n notifying = !action?.meta?.[SHOULD_AUTOBATCH]\r\n // If a `notifyListeners` microtask was queued, you can't cancel it.\r\n // Instead, we set a flag so that it's a no-op when it does run\r\n shouldNotifyAtEndOfTick = !notifying\r\n if (shouldNotifyAtEndOfTick) {\r\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\r\n // a microtask to notify listeners at the end of the event loop tick.\r\n // Make sure we only enqueue this _once_ per tick.\r\n if (!notificationQueued) {\r\n notificationQueued = true\r\n queueCallback(notifyListeners)\r\n }\r\n }\r\n // Go ahead and process the action as usual, including reducers.\r\n // If normal notification behavior is enabled, the store will notify\r\n // all of its own listeners, and the wrapper callbacks above will\r\n // see `notifying` is true and pass on to the real listener callbacks.\r\n // If we're \"batching\" behavior, then the wrapped callbacks will\r\n // bail out, causing the base store notification behavior to be no-ops.\r\n return store.dispatch(action)\r\n } finally {\r\n // Assume we're back to normal behavior after each action\r\n notifying = true\r\n }\r\n },\r\n })\r\n }\r\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\nexport {\r\n default as createNextState,\r\n current,\r\n freeze,\r\n original,\r\n isDraft,\r\n} from 'immer'\r\nexport type { Draft } from 'immer'\r\nexport { createSelector } from 'reselect'\r\nexport type {\r\n Selector,\r\n OutputParametricSelector,\r\n OutputSelector,\r\n ParametricSelector,\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments. In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n // js\r\n configureStore,\r\n} from './configureStore'\r\nexport type {\r\n // types\r\n ConfigureEnhancersCallback,\r\n ConfigureStoreOptions,\r\n EnhancedStore,\r\n} from './configureStore'\r\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension'\r\nexport {\r\n // js\r\n createAction,\r\n getType,\r\n isAction,\r\n isFSA as isFluxStandardAction,\r\n} from './createAction'\r\nexport type {\r\n // types\r\n PayloadAction,\r\n PayloadActionCreator,\r\n ActionCreatorWithNonInferrablePayload,\r\n ActionCreatorWithOptionalPayload,\r\n ActionCreatorWithPayload,\r\n ActionCreatorWithoutPayload,\r\n ActionCreatorWithPreparedPayload,\r\n PrepareAction,\r\n} from './createAction'\r\nexport {\r\n // js\r\n createReducer,\r\n} from './createReducer'\r\nexport type {\r\n // types\r\n Actions,\r\n CaseReducer,\r\n CaseReducers,\r\n} from './createReducer'\r\nexport {\r\n // js\r\n createSlice,\r\n} from './createSlice'\r\n\r\nexport type {\r\n // types\r\n CreateSliceOptions,\r\n Slice,\r\n CaseReducerActions,\r\n SliceCaseReducers,\r\n ValidateSliceCaseReducers,\r\n CaseReducerWithPrepare,\r\n SliceActionCreator,\r\n} from './createSlice'\r\nexport {\r\n // js\r\n createImmutableStateInvariantMiddleware,\r\n isImmutableDefault,\r\n} from './immutableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n ImmutableStateInvariantMiddlewareOptions,\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n createSerializableStateInvariantMiddleware,\r\n findNonSerializableValue,\r\n isPlain,\r\n} from './serializableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n SerializableStateInvariantMiddlewareOptions,\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n getDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nexport type {\r\n // types\r\n ActionReducerMapBuilder,\r\n} from './mapBuilders'\r\nexport { MiddlewareArray, EnhancerArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport type {\r\n Dictionary,\r\n EntityState,\r\n EntityAdapter,\r\n EntitySelectors,\r\n EntityStateAdapter,\r\n EntityId,\r\n Update,\r\n IdSelector,\r\n Comparer,\r\n} from './entities/models'\r\n\r\nexport {\r\n createAsyncThunk,\r\n unwrapResult,\r\n miniSerializeError,\r\n} from './createAsyncThunk'\r\nexport type {\r\n AsyncThunk,\r\n AsyncThunkOptions,\r\n AsyncThunkAction,\r\n AsyncThunkPayloadCreatorReturnValue,\r\n AsyncThunkPayloadCreator,\r\n SerializedError,\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n // js\r\n isAllOf,\r\n isAnyOf,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n isAsyncThunkAction,\r\n isRejectedWithValue,\r\n} from './matchers'\r\nexport type {\r\n // types\r\n ActionMatchingAllOf,\r\n ActionMatchingAnyOf,\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './listenerMiddleware/index'\r\nexport type { AnyListenerPredicate } from './listenerMiddleware/types'\r\n\r\nexport {\r\n createListenerMiddleware,\r\n addListener,\r\n removeListener,\r\n clearAllListeners,\r\n TaskAbortError,\r\n} from './listenerMiddleware/index'\r\n\r\nexport {\r\n SHOULD_AUTOBATCH,\r\n prepareAutoBatched,\r\n autoBatchEnhancer,\r\n} from './autoBatchEnhancer'\r\nexport type { AutoBatchOptions } from './autoBatchEnhancer'\r\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state, nextOwnProps, ownProps);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return

\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n 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. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n 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.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function dependenciesChecker() {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.8\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionStart(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, transitionStart, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Lazy({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n });\n swiper.lazy = {};\n let scrollHandlerAttached = false;\n let initialImageLoaded = false;\n\n function loadInSlide(index, loadInDuplicate = true) {\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(imageEl => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(sourceEl => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n const {\n $wrapperEl,\n params: swiperParams,\n slides,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = Math.ceil(slidesPerView);\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (let i = activeIndex + spv; i < maxIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n } // Prev Slides\n\n\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n const window = getWindow();\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n const isWindow = $scrollElement[0] === window;\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const {\n rtlTranslate: rtl\n } = swiper;\n let inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', () => {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', () => {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', () => {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', () => {\n const {\n lazy,\n cssMode,\n watchSlidesProgress,\n touchReleaseOnEdges,\n resistanceRatio\n } = swiper.params;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n on('destroy', () => {\n if (!swiper.$el) return;\n swiper.$el.find(`.${swiper.params.lazy.loadingClass}`).removeClass(swiper.params.lazy.loadingClass);\n });\n Object.assign(swiper.lazy, {\n load,\n loadInSlide\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n if (!swiper.size) {\n swiper.autoplay.running = false;\n swiper.autoplay.paused = false;\n return;\n }\n\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit('autoplayPause');\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key] === true; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n","// Current version.\nexport var VERSION = '1.13.6';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = (typeof self == 'object' && self.self === self && self) ||\n (typeof global == 'object' && global.global === global && global) ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nexport var hasStringTagBug = (\n supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n return function() {\n return value;\n };\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasStringTagBug ? ie10IsDataView : isDataView);\n","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasStringTagBug && className == '[object Object]' && isDataView(a)) {\n if (!isDataView(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n return eq(a, b);\n}\n","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nexport default isFunction;\n","// Is a given variable an object?\nexport default function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || (type === 'object' && !!obj);\n}\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n","'use client';\nimport t,{isValidElement as e,useRef as n,useLayoutEffect as o,useEffect as s,cloneElement as a,useReducer as r,useState as i,forwardRef as l}from\"react\";import c from\"clsx\";const u=t=>\"number\"==typeof t&&!isNaN(t),d=t=>\"string\"==typeof t,p=t=>\"function\"==typeof t,m=t=>d(t)||p(t)?t:null,f=t=>e(t)||d(t)||p(t)||u(t);function g(t,e,n){void 0===n&&(n=300);const{scrollHeight:o,style:s}=t;requestAnimationFrame(()=>{s.minHeight=\"initial\",s.height=o+\"px\",s.transition=`all ${n}ms`,requestAnimationFrame(()=>{s.height=\"0\",s.padding=\"0\",s.margin=\"0\",setTimeout(e,n)})})}function h(e){let{enter:a,exit:r,appendPosition:i=!1,collapse:l=!0,collapseDuration:c=300}=e;return function(e){let{children:u,position:d,preventExitTransition:p,done:m,nodeRef:f,isIn:h}=e;const y=i?`${a}--${d}`:a,v=i?`${r}--${d}`:r,T=n(0);return o(()=>{const t=f.current,e=y.split(\" \"),n=o=>{o.target===f.current&&(t.dispatchEvent(new Event(\"d\")),t.removeEventListener(\"animationend\",n),t.removeEventListener(\"animationcancel\",n),0===T.current&&\"animationcancel\"!==o.type&&t.classList.remove(...e))};t.classList.add(...e),t.addEventListener(\"animationend\",n),t.addEventListener(\"animationcancel\",n)},[]),s(()=>{const t=f.current,e=()=>{t.removeEventListener(\"animationend\",e),l?g(t,m,c):m()};h||(p?e():(T.current=1,t.className+=` ${v}`,t.addEventListener(\"animationend\",e)))},[h]),t.createElement(t.Fragment,null,u)}}function y(t,e){return null!=t?{content:t.content,containerId:t.props.containerId,id:t.props.toastId,theme:t.props.theme,type:t.props.type,data:t.props.data||{},isLoading:t.props.isLoading,icon:t.props.icon,status:e}:{}}const v={list:new Map,emitQueue:new Map,on(t,e){return this.list.has(t)||this.list.set(t,[]),this.list.get(t).push(e),this},off(t,e){if(e){const n=this.list.get(t).filter(t=>t!==e);return this.list.set(t,n),this}return this.list.delete(t),this},cancelEmit(t){const e=this.emitQueue.get(t);return e&&(e.forEach(clearTimeout),this.emitQueue.delete(t)),this},emit(t){this.list.has(t)&&this.list.get(t).forEach(e=>{const n=setTimeout(()=>{e(...[].slice.call(arguments,1))},0);this.emitQueue.has(t)||this.emitQueue.set(t,[]),this.emitQueue.get(t).push(n)})}},T=e=>{let{theme:n,type:o,...s}=e;return t.createElement(\"svg\",{viewBox:\"0 0 24 24\",width:\"100%\",height:\"100%\",fill:\"colored\"===n?\"currentColor\":`var(--toastify-icon-color-${o})`,...s})},E={info:function(e){return t.createElement(T,{...e},t.createElement(\"path\",{d:\"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z\"}))},warning:function(e){return t.createElement(T,{...e},t.createElement(\"path\",{d:\"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z\"}))},success:function(e){return t.createElement(T,{...e},t.createElement(\"path\",{d:\"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z\"}))},error:function(e){return t.createElement(T,{...e},t.createElement(\"path\",{d:\"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z\"}))},spinner:function(){return t.createElement(\"div\",{className:\"Toastify__spinner\"})}};function C(t){const[,o]=r(t=>t+1,0),[l,c]=i([]),g=n(null),h=n(new Map).current,T=t=>-1!==l.indexOf(t),C=n({toastKey:1,displayedToast:0,count:0,queue:[],props:t,containerId:null,isToastActive:T,getToast:t=>h.get(t)}).current;function b(t){let{containerId:e}=t;const{limit:n}=C.props;!n||e&&C.containerId!==e||(C.count-=C.queue.length,C.queue=[])}function I(t){c(e=>null==t?[]:e.filter(e=>e!==t))}function _(){const{toastContent:t,toastProps:e,staleId:n}=C.queue.shift();O(t,e,n)}function L(t,n){let{delay:s,staleId:r,...i}=n;if(!f(t)||function(t){return!g.current||C.props.enableMultiContainer&&t.containerId!==C.props.containerId||h.has(t.toastId)&&null==t.updateId}(i))return;const{toastId:l,updateId:c,data:T}=i,{props:b}=C,L=()=>I(l),N=null==c;N&&C.count++;const M={...b,style:b.toastStyle,key:C.toastKey++,...Object.fromEntries(Object.entries(i).filter(t=>{let[e,n]=t;return null!=n})),toastId:l,updateId:c,data:T,closeToast:L,isIn:!1,className:m(i.className||b.toastClassName),bodyClassName:m(i.bodyClassName||b.bodyClassName),progressClassName:m(i.progressClassName||b.progressClassName),autoClose:!i.isLoading&&(R=i.autoClose,w=b.autoClose,!1===R||u(R)&&R>0?R:w),deleteToast(){const t=y(h.get(l),\"removed\");h.delete(l),v.emit(4,t);const e=C.queue.length;if(C.count=null==l?C.count-C.displayedToast:C.count-1,C.count<0&&(C.count=0),e>0){const t=null==l?C.props.limit:1;if(1===e||1===t)C.displayedToast++,_();else{const n=t>e?e:t;C.displayedToast=n;for(let t=0;tt in E)(o)&&(i=E[o](l))),i}(M),p(i.onOpen)&&(M.onOpen=i.onOpen),p(i.onClose)&&(M.onClose=i.onClose),M.closeButton=b.closeButton,!1===i.closeButton||f(i.closeButton)?M.closeButton=i.closeButton:!0===i.closeButton&&(M.closeButton=!f(b.closeButton)||b.closeButton);let x=t;e(t)&&!d(t.type)?x=a(t,{closeToast:L,toastProps:M,data:T}):p(t)&&(x=t({closeToast:L,toastProps:M,data:T})),b.limit&&b.limit>0&&C.count>b.limit&&N?C.queue.push({toastContent:x,toastProps:M,staleId:r}):u(s)?setTimeout(()=>{O(x,M,r)},s):O(x,M,r)}function O(t,e,n){const{toastId:o}=e;n&&h.delete(n);const s={content:t,props:e};h.set(o,s),c(t=>[...t,o].filter(t=>t!==n)),v.emit(4,y(s,null==s.props.updateId?\"added\":\"updated\"))}return s(()=>(C.containerId=t.containerId,v.cancelEmit(3).on(0,L).on(1,t=>g.current&&I(t)).on(5,b).emit(2,C),()=>{h.clear(),v.emit(3,C)}),[]),s(()=>{C.props=t,C.isToastActive=T,C.displayedToast=l.length}),{getToastToRender:function(e){const n=new Map,o=Array.from(h.values());return t.newestOnTop&&o.reverse(),o.forEach(t=>{const{position:e}=t.props;n.has(e)||n.set(e,[]),n.get(e).push(t)}),Array.from(n,t=>e(t[0],t[1]))},containerRef:g,isToastActive:T}}function b(t){return t.targetTouches&&t.targetTouches.length>=1?t.targetTouches[0].clientX:t.clientX}function I(t){return t.targetTouches&&t.targetTouches.length>=1?t.targetTouches[0].clientY:t.clientY}function _(t){const[o,a]=i(!1),[r,l]=i(!1),c=n(null),u=n({start:0,x:0,y:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,boundingRect:null,didMove:!1}).current,d=n(t),{autoClose:m,pauseOnHover:f,closeToast:g,onClick:h,closeOnClick:y}=t;function v(e){if(t.draggable){\"touchstart\"===e.nativeEvent.type&&e.nativeEvent.preventDefault(),u.didMove=!1,document.addEventListener(\"mousemove\",_),document.addEventListener(\"mouseup\",L),document.addEventListener(\"touchmove\",_),document.addEventListener(\"touchend\",L);const n=c.current;u.canCloseOnClick=!0,u.canDrag=!0,u.boundingRect=n.getBoundingClientRect(),n.style.transition=\"\",u.x=b(e.nativeEvent),u.y=I(e.nativeEvent),\"x\"===t.draggableDirection?(u.start=u.x,u.removalDistance=n.offsetWidth*(t.draggablePercent/100)):(u.start=u.y,u.removalDistance=n.offsetHeight*(80===t.draggablePercent?1.5*t.draggablePercent:t.draggablePercent/100))}}function T(e){if(u.boundingRect){const{top:n,bottom:o,left:s,right:a}=u.boundingRect;\"touchend\"!==e.nativeEvent.type&&t.pauseOnHover&&u.x>=s&&u.x<=a&&u.y>=n&&u.y<=o?C():E()}}function E(){a(!0)}function C(){a(!1)}function _(e){const n=c.current;u.canDrag&&n&&(u.didMove=!0,o&&C(),u.x=b(e),u.y=I(e),u.delta=\"x\"===t.draggableDirection?u.x-u.start:u.y-u.start,u.start!==u.x&&(u.canCloseOnClick=!1),n.style.transform=`translate${t.draggableDirection}(${u.delta}px)`,n.style.opacity=\"\"+(1-Math.abs(u.delta/u.removalDistance)))}function L(){document.removeEventListener(\"mousemove\",_),document.removeEventListener(\"mouseup\",L),document.removeEventListener(\"touchmove\",_),document.removeEventListener(\"touchend\",L);const e=c.current;if(u.canDrag&&u.didMove&&e){if(u.canDrag=!1,Math.abs(u.delta)>u.removalDistance)return l(!0),void t.closeToast();e.style.transition=\"transform 0.2s, opacity 0.2s\",e.style.transform=`translate${t.draggableDirection}(0)`,e.style.opacity=\"1\"}}s(()=>{d.current=t}),s(()=>(c.current&&c.current.addEventListener(\"d\",E,{once:!0}),p(t.onOpen)&&t.onOpen(e(t.children)&&t.children.props),()=>{const t=d.current;p(t.onClose)&&t.onClose(e(t.children)&&t.children.props)}),[]),s(()=>(t.pauseOnFocusLoss&&(document.hasFocus()||C(),window.addEventListener(\"focus\",E),window.addEventListener(\"blur\",C)),()=>{t.pauseOnFocusLoss&&(window.removeEventListener(\"focus\",E),window.removeEventListener(\"blur\",C))}),[t.pauseOnFocusLoss]);const O={onMouseDown:v,onTouchStart:v,onMouseUp:T,onTouchEnd:T};return m&&f&&(O.onMouseEnter=C,O.onMouseLeave=E),y&&(O.onClick=t=>{h&&h(t),u.canCloseOnClick&&g()}),{playToast:E,pauseToast:C,isRunning:o,preventExitTransition:r,toastRef:c,eventHandlers:O}}function L(e){let{closeToast:n,theme:o,ariaLabel:s=\"close\"}=e;return t.createElement(\"button\",{className:`Toastify__close-button Toastify__close-button--${o}`,type:\"button\",onClick:t=>{t.stopPropagation(),n(t)},\"aria-label\":s},t.createElement(\"svg\",{\"aria-hidden\":\"true\",viewBox:\"0 0 14 16\"},t.createElement(\"path\",{fillRule:\"evenodd\",d:\"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z\"})))}function O(e){let{delay:n,isRunning:o,closeToast:s,type:a=\"default\",hide:r,className:i,style:l,controlledProgress:u,progress:d,rtl:m,isIn:f,theme:g}=e;const h=r||u&&0===d,y={...l,animationDuration:`${n}ms`,animationPlayState:o?\"running\":\"paused\",opacity:h?0:1};u&&(y.transform=`scaleX(${d})`);const v=c(\"Toastify__progress-bar\",u?\"Toastify__progress-bar--controlled\":\"Toastify__progress-bar--animated\",`Toastify__progress-bar-theme--${g}`,`Toastify__progress-bar--${a}`,{\"Toastify__progress-bar--rtl\":m}),T=p(i)?i({rtl:m,type:a,defaultClassName:v}):c(v,i);return t.createElement(\"div\",{role:\"progressbar\",\"aria-hidden\":h?\"true\":\"false\",\"aria-label\":\"notification timer\",className:T,style:y,[u&&d>=1?\"onTransitionEnd\":\"onAnimationEnd\"]:u&&d<1?null:()=>{f&&s()}})}const N=n=>{const{isRunning:o,preventExitTransition:s,toastRef:r,eventHandlers:i}=_(n),{closeButton:l,children:u,autoClose:d,onClick:m,type:f,hideProgressBar:g,closeToast:h,transition:y,position:v,className:T,style:E,bodyClassName:C,bodyStyle:b,progressClassName:I,progressStyle:N,updateId:M,role:R,progress:w,rtl:x,toastId:$,deleteToast:k,isIn:P,isLoading:B,iconOut:D,closeOnClick:A,theme:z}=n,F=c(\"Toastify__toast\",`Toastify__toast-theme--${z}`,`Toastify__toast--${f}`,{\"Toastify__toast--rtl\":x},{\"Toastify__toast--close-on-click\":A}),H=p(T)?T({rtl:x,position:v,type:f,defaultClassName:F}):c(F,T),S=!!w||!d,q={closeToast:h,type:f,theme:z};let Q=null;return!1===l||(Q=p(l)?l(q):e(l)?a(l,q):L(q)),t.createElement(y,{isIn:P,done:k,position:v,preventExitTransition:s,nodeRef:r},t.createElement(\"div\",{id:$,onClick:m,className:H,...i,style:E,ref:r},t.createElement(\"div\",{...P&&{role:R},className:p(C)?C({type:f}):c(\"Toastify__toast-body\",C),style:b},null!=D&&t.createElement(\"div\",{className:c(\"Toastify__toast-icon\",{\"Toastify--animate-icon Toastify__zoom-enter\":!B})},D),t.createElement(\"div\",null,u)),Q,t.createElement(O,{...M&&!S?{key:`pb-${M}`}:{},rtl:x,theme:z,delay:d,isRunning:o,isIn:P,closeToast:h,hide:g,type:f,style:N,className:I,controlledProgress:S,progress:w||0})))},M=function(t,e){return void 0===e&&(e=!1),{enter:`Toastify--animate Toastify__${t}-enter`,exit:`Toastify--animate Toastify__${t}-exit`,appendPosition:e}},R=h(M(\"bounce\",!0)),w=h(M(\"slide\",!0)),x=h(M(\"zoom\")),$=h(M(\"flip\")),k=l((e,n)=>{const{getToastToRender:o,containerRef:a,isToastActive:r}=C(e),{className:i,style:l,rtl:u,containerId:d}=e;function f(t){const e=c(\"Toastify__toast-container\",`Toastify__toast-container--${t}`,{\"Toastify__toast-container--rtl\":u});return p(i)?i({position:t,rtl:u,defaultClassName:e}):c(e,m(i))}return s(()=>{n&&(n.current=a.current)},[]),t.createElement(\"div\",{ref:a,className:\"Toastify\",id:d},o((e,n)=>{const o=n.length?{...l}:{...l,pointerEvents:\"none\"};return t.createElement(\"div\",{className:f(e),style:o,key:`container-${e}`},n.map((e,o)=>{let{content:s,props:a}=e;return t.createElement(N,{...a,isIn:r(a.toastId),style:{...a.style,\"--nth\":o+1,\"--len\":n.length},key:`toast-${a.key}`},s)}))}))});k.displayName=\"ToastContainer\",k.defaultProps={position:\"top-right\",transition:R,autoClose:5e3,closeButton:L,pauseOnHover:!0,pauseOnFocusLoss:!0,closeOnClick:!0,draggable:!0,draggablePercent:80,draggableDirection:\"x\",role:\"alert\",theme:\"light\"};let P,B=new Map,D=[],A=1;function z(){return\"\"+A++}function F(t){return t&&(d(t.toastId)||u(t.toastId))?t.toastId:z()}function H(t,e){return B.size>0?v.emit(0,t,e):D.push({content:t,options:e}),e.toastId}function S(t,e){return{...e,type:e&&e.type||t,toastId:F(e)}}function q(t){return(e,n)=>H(e,S(t,n))}function Q(t,e){return H(t,S(\"default\",e))}Q.loading=(t,e)=>H(t,S(\"default\",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...e})),Q.promise=function(t,e,n){let o,{pending:s,error:a,success:r}=e;s&&(o=d(s)?Q.loading(s,n):Q.loading(s.render,{...n,...s}));const i={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},l=(t,e,s)=>{if(null==e)return void Q.dismiss(o);const a={type:t,...i,...n,data:s},r=d(e)?{render:e}:e;return o?Q.update(o,{...a,...r}):Q(r.render,{...a,...r}),s},c=p(t)?t():t;return c.then(t=>l(\"success\",r,t)).catch(t=>l(\"error\",a,t)),c},Q.success=q(\"success\"),Q.info=q(\"info\"),Q.error=q(\"error\"),Q.warning=q(\"warning\"),Q.warn=Q.warning,Q.dark=(t,e)=>H(t,S(\"default\",{theme:\"dark\",...e})),Q.dismiss=t=>{B.size>0?v.emit(1,t):D=D.filter(e=>null!=t&&e.options.toastId!==t)},Q.clearWaitingQueue=function(t){return void 0===t&&(t={}),v.emit(5,t)},Q.isActive=t=>{let e=!1;return B.forEach(n=>{n.isToastActive&&n.isToastActive(t)&&(e=!0)}),e},Q.update=function(t,e){void 0===e&&(e={}),setTimeout(()=>{const n=function(t,e){let{containerId:n}=e;const o=B.get(n||P);return o&&o.getToast(t)}(t,e);if(n){const{props:o,content:s}=n,a={delay:100,...o,...e,toastId:e.toastId||t,updateId:z()};a.toastId!==t&&(a.staleId=t);const r=a.render||s;delete a.render,H(r,a)}},0)},Q.done=t=>{Q.update(t,{progress:1})},Q.onChange=t=>(v.on(4,t),()=>{v.off(4,t)}),Q.POSITION={TOP_LEFT:\"top-left\",TOP_RIGHT:\"top-right\",TOP_CENTER:\"top-center\",BOTTOM_LEFT:\"bottom-left\",BOTTOM_RIGHT:\"bottom-right\",BOTTOM_CENTER:\"bottom-center\"},Q.TYPE={INFO:\"info\",SUCCESS:\"success\",WARNING:\"warning\",ERROR:\"error\",DEFAULT:\"default\"},v.on(2,t=>{P=t.containerId||t,B.set(P,t),D.forEach(t=>{v.emit(0,t.content,t.options)}),D=[]}).on(3,t=>{B.delete(t.containerId||t),0===B.size&&v.off(0).off(1).off(5)});export{R as Bounce,$ as Flip,E as Icons,w as Slide,k as ToastContainer,x as Zoom,g as collapseToast,h as cssTransition,Q as toast,_ as useToast,C as useToastContainer};\n//# sourceMappingURL=react-toastify.esm.mjs.map\n"],"names":["n","r","arguments","length","t","Array","e","Error","map","join","Q","Object","getPrototypeOf","hasOwnProperty","call","constructor","Function","toString","Z","isArray","L","s","v","i","o","keys","nn","forEach","u","has","prototype","f","set","add","c","X","Map","q","Set","p","l","slice","rn","writable","configurable","get","enumerable","value","create","d","y","clear","delete","h","freeze","isFrozen","b","tn","_","U","j","g","O","S","w","m","P","M","x","H","A","I","k","a","N","R","concat","D","z","getOwnPropertyDescriptor","E","F","T","C","en","on","Proxy","revocable","revoke","proxy","J","push","K","from","G","W","Symbol","B","Reflect","for","iterator","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","getOwnPropertyDescriptors","Number","isNaN","deleteProperty","defineProperty","setPrototypeOf","apply","this","un","produce","Promise","then","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","path","op","$","an","fn","bind","createThunkMiddleware","extraArgument","_ref","dispatch","getState","next","action","thunk","withExtraArgument","composeWithDevTools","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","isPlainObject","proto","baseProto","__REDUX_DEVTOOLS_EXTENSION__","MiddlewareArray","_super","args","_i","_this","__extends","species","arr","prepend","__spreadArray","EnhancerArray","freezeDraftable","val","isDraftable","createNextState","IS_PRODUCTION","process","configureStore","options","rootReducer","curriedGetDefaultMiddleware","_c","middlewareArray","immutableCheck","serializableCheck","isBoolean","thunkMiddleware","getDefaultMiddleware","_d","reducer","_e","middleware","_f","devTools","_g","preloadedState","_h","enhancers","combineReducers","finalMiddleware","some","item","middlewareEnhancer","applyMiddleware","finalCompose","compose2","__spreadValues","trace","defaultEnhancers","storeEnhancers","composedEnhancer","createStore","createAction","type","prepareAction","actionCreator","prepared","payload","meta","error","match","executeReducerBuilderCallback","builderCallback","defaultCaseReducer","actionsMap","actionMatchers","builder","addCase","typeOrActionCreator","addMatcher","matcher","addDefaultCase","createSlice","name","_reducer","initialState","reducers","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","buildReducer","extraReducers","finalCaseReducers","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","isStateFunction","frozenInitialState_1","state","caseReducers","filter","cr","reduce","previousState","caseReducer","result","isDraft2","isDraftable2","createNextState2","draft","createReducer","key","actionMatchers_1","reducerName","prepareCallback","maybeReducerWithPrepare","prepare","actions","nanoid","size","id","Math","random","commonProperties","RejectWithValue","FulfillWithMeta","miniSerializeError","simpleError","commonProperties_1","property","message","String","createAsyncThunk","createAsyncThunk2","typePrefix","payloadCreator","fulfilled","requestId","arg","__spreadProps","requestStatus","pending","rejected","serializeError","rejectedWithValue","aborted","condition","AC","AbortController","class_1","signal","addEventListener","dispatchEvent","onabort","removeEventListener","reason","throwIfAborted","abort","assign","extra","abortReason","idGenerator","abortController","promise2","__async","conditionResult","_a","sent","abortedPromise","reject","_b","getPendingMeta","race","resolve","rejectWithValue","fulfillWithValue","finalAction","err_1","dispatchConditionRejection","unwrap","unwrapResult","withTypes","matches","hasMatchFunction","isAnyOf","matchers","hasExpectedRequestMetadata","validStatus","hasValidRequestId","hasValidRequestStatus","indexOf","isAsyncThunkArray","isRejected","asyncThunks","asyncThunk","combinedMatcher","isFulfilled","assertFunction","func","expected","TypeError","noop","catchRejection","onError","catch","addAbortSignalListener","abortSignal","callback","once","abortControllerWithReason","listener","completed","cancelled","taskCancelled","taskCompleted","listenerCancelled","listenerCompleted","TaskAbortError","code","task","validateActive","raceWithSignal","cleanup","notifyRejection","finally","createPause","output","createDelay","pause","timeoutMs","setTimeout","INTERNAL_NIL_TOKEN","alm","createFork","parentAbortSignal","taskExecutor","controller","childAbortController","task2","cleanUp","delay","result2","status","error_1","cancel","createTakePattern","startListening","predicate","timeout","unsubscribe","tuplePromise","stopListening","effect","listenerApi","getOriginalState","promises","take","getListenerEntryPropsFrom","createListenerEntry","cancelActiveListeners","entry","createClearListenerMiddleware","listenerMap","safelyNotifyError","errorHandler","errorToNotify","errorInfo","errorHandlerError","addListener","clearAllListeners","removeListener","defaultErrorHandler","console","createListenerMiddleware","middlewareOptions","findListenerEntry","comparator","values","existingEntry","cancelOptions","cancelActive","insertEntry","entry2","notifyListener","api","internalTaskController","Boolean","fork","subscribe","listenerError_1","raisedBy","clearListenerMiddleware","isAction","originalState","currentState","listenerEntries","listenerEntries_1","runListener","predicateError","clearListeners","queueMicrotask","global","globalThis","requestAnimationFrame","min","enableES5","module","exports","self","reactIs","require","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","$$typeof","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","classes","INFORMATIONAL","SUCCESSFUL","REDIRECTION","CLIENT_ERROR","SERVER_ERROR","CONTINUE","SWITCHING_PROTOCOLS","PROCESSING","EARLY_HINTS","OK","CREATED","ACCEPTED","NON_AUTHORITATIVE_INFORMATION","NO_CONTENT","RESET_CONTENT","PARTIAL_CONTENT","MULTI_STATUS","ALREADY_REPORTED","IM_USED","MULTIPLE_CHOICES","MOVED_PERMANENTLY","FOUND","SEE_OTHER","NOT_MODIFIED","USE_PROXY","SWITCH_PROXY","TEMPORARY_REDIRECT","PERMANENT_REDIRECT","BAD_REQUEST","UNAUTHORIZED","PAYMENT_REQUIRED","FORBIDDEN","NOT_FOUND","METHOD_NOT_ALLOWED","NOT_ACCEPTABLE","PROXY_AUTHENTICATION_REQUIRED","REQUEST_TIMEOUT","CONFLICT","GONE","LENGTH_REQUIRED","PRECONDITION_FAILED","REQUEST_ENTITY_TOO_LARGE","REQUEST_URI_TOO_LONG","UNSUPPORTED_MEDIA_TYPE","REQUESTED_RANGE_NOT_SATISFIABLE","EXPECTATION_FAILED","IM_A_TEAPOT","MISDIRECTED_REQUEST","UNPROCESSABLE_ENTITY","LOCKED","FAILED_DEPENDENCY","UPGRADE_REQUIRED","PRECONDITION_REQUIRED","TOO_MANY_REQUESTS","REQUEST_HEADER_FIELDS_TOO_LARGE","UNAVAILABLE_FOR_LEGAL_REASONS","INTERNAL_SERVER_ERROR","NOT_IMPLEMENTED","BAD_GATEWAY","SERVICE_UNAVAILABLE","GATEWAY_TIMEOUT","HTTP_VERSION_NOT_SUPPORTED","VARIANT_ALSO_NEGOTIATES","INSUFFICIENT_STORAGE","LOOP_DETECTED","NOT_EXTENDED","NETWORK_AUTHENTICATION_REQUIRED","unofficial","CHECKPOINT","PAGE_EXPIRED","THIS_IS_FINE","ENHANCE_YOUR_CALM","BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS","INVALID_TOKEN","TOKEN_REQUIRED","BANDWIDTH_LIMIT_EXCEEDED","SITE_IS_FROZEN","NETWORK_READ_TIMEOUT_ERROR","iis","LOGIN_TIME_OUT","RETRY_WITH","REDIRECT","nginx","NO_RESPONSE","REQUEST_HEADER_TOO_LARGE","SSL_CERTIFICATE_ERROR","SSL_CERTIFICATE_REQUIRED","HTTP_REQUEST_SENT_TO_HTTPS_PORT","CLIENT_CLOSED_REQUEST","cloudflare","UNKNOWN_ERROR","WEB_SERVER_IS_DOWN","CONNECTION_TIMED_OUT","ORIGIN_IS_UNREACHABLE","A_TIMEOUT_OCCURRED","SSL_HANDSHAKE_FAILED","INVALID_SSL_CERTIFICATE","RAILGUN_ERROR","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","split","letter","err","shouldUseNative","target","source","symbols","to","toObject","root","factory","define","toStr","obj","prop","isEmpty","getKey","intKey","parseInt","hasShallowProperty","getShallowPropertySafely","objectPath","getShallowProperty","doNotReplace","currentPath","currentValue","includeInheritedProps","ensureExists","insert","at","splice","empty","isObject","coalesce","paths","defaultValue","len","nextObj","del","mod","withInheritedProps","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","ReactReduxContext","React","batch","getBatch","nullListeners","notify","createSubscription","store","parentSub","listeners","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","first","last","isSubscribed","prev","createListenerCollection","notifyNestedSubs","tryUnsubscribe","undefined","getListeners","useIsomorphicLayoutEffect","document","createElement","useLayoutEffect","useEffect","context","children","contextValue","useMemo","Context","Provider","_excluded","_excluded2","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","updateCount","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","current","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","initStateUpdates","connectAdvanced","selectorFactory","_ref2","_ref2$getDisplayName","getDisplayName","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","forwardRef","_ref2$context","connectOptions","_objectWithoutPropertiesLoose","WrappedComponent","wrappedComponentName","selectorFactoryOptions","_extends","pure","usePureOnlyMemo","ConnectFunction","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","Consumer","useContext","didStoreComeFromProps","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","useReducer","previousStateUpdateResult","useRef","renderedWrappedComponent","ref","Connect","forwarded","hoistStatics","is","shallowEqual","objA","objB","keysA","keysB","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","stateOrDispatch","ownProps","mapDispatchToProps","boundActionCreators","_loop","bindActionCreators","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","nextState","nextOwnProps","nextStateProps","statePropsChanged","propsChanged","stateChanged","handleSubsequentCalls","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","factories","strictEqual","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","defaultMapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","defaultMapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","defaultMergePropsFactories","_ref$selectorFactory","defaultSelectorFactory","_ref3","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","useReduxContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","useDispatch","refEquality","createSelectorHook","selector","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","latestSubscriptionCallbackError","latestSelector","latestSelectedState","storeState","newSelectedState","stack","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","useDebugValue","newBatch","useSelector","_typeof","_defineProperty","input","hint","prim","toPrimitive","res","toPropertyKey","enumerableOnly","sym","_objectSpread2","defineProperties","formatProdErrorMessage","$$observable","observable","randomString","substring","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","enhancer","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","index","replaceReducer","nextReducer","outerSubscribe","observer","observeState","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","_key","previousStateForKey","nextStateForKey","_len","funcs","middlewares","_dispatch","middlewareAPI","chain","_objectSpread","defaultEqualityCheck","defaultMemoize","equalityCheckOrOptions","equals","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","maxSize","resultEqualityCheck","createCacheKeyComparator","cache","put","getEntries","entries","cacheIndex","findIndex","unshift","pop","createLruCache","memoized","matchingEntry","find","clearCache","createSelectorCreator","memoize","memoizeOptionsFromArgs","_len2","_key2","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption2","finalMemoizeOptions","every","dep","dependencyTypes","getDependencies","memoizedResultFunc","params","lastResult","recomputations","resetRecomputations","createSelector","createStructuredSelector","selectors","selectorCreator","objectKeys","resultSelector","_len3","_key3","composition","performance","now","unstable_now","Date","MessageChannel","clearTimeout","unstable_shouldYield","unstable_forceFrameRate","cancelAnimationFrame","floor","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","V","priorityLevel","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","unstable_wrapCallback","randomUUID","crypto","getRandomValues","rnds8","Uint8Array","rng","byteToHex","buf","offset","native","rnds","toLowerCase","unsafeStringify","excluded","sourceKeys","thisArg","kindOf","thing","str","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isFunction","isNumber","toStringTag","isDate","isFile","isBlob","isFileList","isURLSearchParams","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","descriptors","reducedDescriptors","ret","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","toUpperCase","isAsyncFn","isBuffer","isFormData","kind","FormData","append","isArrayBufferView","ArrayBuffer","isView","buffer","isStream","pipe","merge","caseless","assignValue","targetKey","extend","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","position","lastIndex","toArray","forEachEntry","done","pair","matchAll","regExp","exec","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","delimiter","toCamelCase","p1","p2","toFiniteNumber","isFinite","generateString","alphabet","isSpecCompliantForm","toJSONObject","visit","reducedValue","isThenable","AxiosError","config","request","response","captureStackTrace","utils","toJSON","description","fileName","lineNumber","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","token","predicates","test","formData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","isFlatArray","el","exposedHelpers","build","encode","charMap","encodeURIComponent","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","url","serializeFn","serialize","serializedParams","hashmarkIndex","handlers","use","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","navigator","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","platform","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","transitionalDefaults","adapter","transformRequest","data","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","parseHeaders","tokens","tokensRE","parseTokens","deleted","deleteHeader","normalize","format","normalized","char","formatHeader","targets","asStrings","static","computed","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","accessor","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","write","expires","domain","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","userAgent","urlParsingNode","originURL","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","requestURL","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","samplesCount","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","round","speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","knownAdapters","http","xhr","XMLHttpRequest","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","settle","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","onerror","ontimeout","timeoutErrorMessage","isURLSameOrigin","xsrfValue","cookies","setRequestHeader","withCredentials","onDownloadProgress","onUploadProgress","upload","parseProtocol","send","renderReason","isResolvedHandle","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","warn","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","InterceptorManager","async","configOrUrl","_request","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","instance","VERSION","Cancel","all","spread","isAxiosError","formToJSON","default","src","ssrDocument","body","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","childNodes","style","getElementsByTagName","createElementNS","importNode","origin","getDocument","doc","ssrWindow","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","matchMedia","getWindow","win","Dom7","items","super","__proto__","makeReactive","arrayFlat","arrayFilter","html","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","shortcut","trigger","Methods","addClass","classNames","classList","removeClass","hasClass","className","contains","toggleClass","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","eventType","targetSelector","capture","handleLiveEvent","eventData","dom7EventData","parents","handleEvent","events","dom7LiveListeners","proxyListener","dom7Listeners","off","handler","dom7proxy","evt","detail","bubbles","cancelable","dataIndex","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","offsetHeight","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","each","text","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","els","newChild","tempDiv","firstChild","appendChild","insertBefore","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","parent","parentNode","closest","foundElements","found","removeChild","nextTick","noExtend","nextSource","HTMLElement","keysArray","nextIndex","nextKey","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","animate","getTime","max","easeProgress","cos","PI","currentPosition","scrollTo","overflow","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","supportsPassive","gestures","calcSupport","priority","eventsListeners","destroyed","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","updateSize","width","height","$el","clientWidth","clientHeight","isHorizontal","isVertical","updateSlides","getDirectionLabel","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","ceil","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","transitionEmit","runCallbacks","direction","step","slideTo","internal","initial","indexAsNumber","animating","preventInteractionOnTransition","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","setTranslate","transitionStart","isH","_immediateVirtual","_swiperImmediateVirtual","behavior","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","getTranslate","allowMomentumBounce","grabCursor","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","newProgress","previousTranslate","dummyEventAttached","dummyEventListener","touchEvents","device","domMethod","swiperMethod","start","passiveListeners","passive","move","end","updateOnWindowResize","ios","android","attachEvents","detachEvents","isGridEnabled","addClasses","suffixes","prefix","resultClasses","prepareClasses","fill","emitContainerClasses","removeClasses","init","initialSlide","resizeObserver","createElements","virtualTranslate","breakpointsBase","simulateTouch","uniqueNavElements","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlidesLimit","loopFillGroupWithBlank","slideBlankClass","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","update","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","translateTo","translateBounds","newTranslate","onTranslateToWrapperTransitionEnd","loopCreate","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","wasLocked","lastSlideIndex","lastSlideRightEdge","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","overrides","ua","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getDevice","isSafari","isWebView","calcBrowser","modules","__modules__","extendParams","swiperParams","passedParams","eventName","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","destroy","deleteInstance","cleanStyles","deleteProps","newDefaults","installModule","prototypeGroup","protoMethod","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","createElementIfNotDefined","checkProps","Navigation","getEl","toggleEl","disabled","disabledClass","tagName","lockClass","$nextEl","$prevEl","onPrevClick","onNextClick","hideOnClick","hiddenClass","navigationDisabledClass","_s","targetEl","pagination","clickable","isHidden","classesToSelector","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scale","scaleX","scaleY","paginationHTML","numberOfBullets","lazy","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$slideEl","$images","$imageEl","background","$pictureEl","sourceEl","$source","slideOriginalIndex","load","slideExist","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","swiperOffset","inView","swiperCoord","sticky","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","stop","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","pauseOnMouseEnter","collectNonEnumProps","emulatedSet","nonEnumIdx","nonEnumerableProps","ObjProto","createSizePropertyCheck","getSizeProperty","collection","sizeProperty","MAX_ARRAY_INDEX","shallowProperty","ArrayProto","SymbolProto","supportsArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","_isNaN","_isFinite","hasEnumBug","pow","tagTester","hasStringTagBug","hasObjectTag","isIE11","tag","isDataView","getInt8","toBufferView","bufferSource","byteOffset","getByteLength","tagDataView","aStack","bStack","deepEq","_wrapped","areArrays","aCtor","bCtor","_keys","isEqual","nodelist","Int8Array","typedArrayPattern","isBufferLike","valueOf","enter","exit","appendPosition","collapse","collapseDuration","preventExitTransition","nodeRef","isIn","Event","scrollHeight","minHeight","padding","margin","containerId","toastId","theme","isLoading","icon","list","emitQueue","cancelEmit","viewBox","info","warning","success","spinner","toastKey","displayedToast","count","queue","isToastActive","getToast","limit","toastContent","toastProps","staleId","shift","enableMultiContainer","updateId","toastStyle","fromEntries","closeToast","toastClassName","bodyClassName","progressClassName","autoClose","deleteToast","iconOut","onOpen","onClose","closeButton","getToastToRender","newestOnTop","reverse","containerRef","clientX","clientY","delta","removalDistance","canCloseOnClick","canDrag","boundingRect","didMove","pauseOnHover","closeOnClick","draggable","nativeEvent","draggableDirection","draggablePercent","bottom","right","opacity","pauseOnFocusLoss","hasFocus","onMouseDown","onMouseUp","playToast","pauseToast","isRunning","toastRef","eventHandlers","ariaLabel","fillRule","hide","controlledProgress","animationDuration","animationPlayState","defaultClassName","role","hideProgressBar","bodyStyle","progressStyle","pointerEvents","loading","dismiss","dark","clearWaitingQueue","isActive","onChange","POSITION","TOP_LEFT","TOP_RIGHT","TOP_CENTER","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_CENTER","TYPE","INFO","SUCCESS","WARNING","ERROR","DEFAULT"],"sourceRoot":""}

(\r\n type: T\r\n): PayloadActionCreator\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error }),\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\n/**\r\n * Returns true if value is a plain object with a `type` property.\r\n */\r\nexport function isAction(action: unknown): action is Action {\r\n return isPlainObject(action) && 'type' in action\r\n}\r\n\r\n/**\r\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\r\n */\r\nexport function isFSA(action: unknown): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isAction(action) &&\r\n typeof action.type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType(\r\n actionCreator: PayloadActionCreator\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import type { Action, AnyAction } from 'redux'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n} from './createReducer'\r\nimport type { TypeGuard } from './tsHelpers'\r\n\r\nexport interface TypedActionCreator {\r\n (...args: any[]): Action\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder {\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer>\r\n ): ActionReducerMapBuilder\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n type: Type,\r\n reducer: CaseReducer\r\n ): ActionReducerMapBuilder\r\n\r\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/advanced-types.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk;\r\n\r\ntype PendingAction = ReturnType;\r\ntype RejectedAction = ReturnType;\r\ntype FulfilledAction = ReturnType;\r\n\r\nconst initialState: Record = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n});\r\n```\r\n */\r\n addMatcher(\r\n matcher: TypeGuard | ((action: any) => boolean),\r\n reducer: CaseReducer\r\n ): Omit, 'addCase'>\r\n\r\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n})\r\n```\r\n */\r\n addDefaultCase(reducer: CaseReducer): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback(\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): [\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n CaseReducer | undefined\r\n] {\r\n const actionsMap: CaseReducers = {}\r\n const actionMatchers: ActionMatcherDescriptionCollection = []\r\n let defaultCaseReducer: CaseReducer | undefined\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n /*\r\n to keep the definition by the user in line with actual behavior, \r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n )\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (type in actionsMap) {\r\n throw new Error(\r\n 'addCase cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n },\r\n addMatcher(\r\n matcher: TypeGuard,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n actionMatchers.push({ matcher, reducer })\r\n return builder\r\n },\r\n addDefaultCase(reducer: CaseReducer) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error('`builder.addDefaultCase` can only be called once')\r\n }\r\n }\r\n defaultCaseReducer = reducer\r\n return builder\r\n },\r\n }\r\n builderCallback(builder)\r\n return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import type { AnyAction, Reducer } from 'redux'\r\nimport { createNextState } from '.'\r\nimport type {\r\n ActionCreatorWithoutPayload,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ReducerWithInitialState,\r\n} from './createReducer'\r\nimport { createReducer, NotFunction } from './createReducer'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator