{"version":3,"file":"static/js/main.596ab465.js","mappings":"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AA,EACAA,EACAA,EAEAE,EAEAC,EAEAC,EAEAC,EACAmD,GACAA,GACAA,GACAA,GAEAlD,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAC,EAEAC,EAEAC,GAEAC,GACA8C,GACAA,GACAA,GACAA,GAEA5I,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAgG,GAEAC,GAEAC,GAEAC,GACAyC,GACAA,GACAA,GAEAxC,GAEAnG,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAoG,GAEAC,GAEAC,GAEAC,GAEAoC,GACAA,GACAA,GACAnC,GAEAvG,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAwG,GAEAC,GAEAC,GAEAC,GAEA+B,GACAA,GACAA,GACA9B,GAEA3G,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEA4G,GAEAC,GAEAC,GAEAC,GACA0B,GACAA,GACAA,GAEAzB,GAEAC,GAEAA,GAEAA,GAEAA,GAEAA,GAEAA,GAEAK,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAA,GACAA,GACAA,GAEAI,GACAC,GA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AAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,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","sources":["../../src/agent/api.ts","../../src/errors.ts","../../src/utils/buffer.ts","../../src/utils/hash.ts","../../src/utils/leb128.ts","../../src/idl.ts","../../src/request_id.ts","../../src/auth.ts","../../src/cbor.ts","../../src/agent/http/types.ts","../../src/agent/http/transforms.ts","../../src/agent/http/index.ts","../../src/agent/proxy.ts","../../src/agent/index.ts","../../src/canisters/management_idl.ts","../../src/canisters/management.ts","../../src/vendor/bls/bls.ts","../../src/utils/bls.ts","../../src/certificate.ts","../../src/polling/strategy.ts","../../src/polling/index.ts","../../src/actor.ts","../../src/canisters/asset_idl.ts","../../src/canisters/asset.ts","../../src/utils/base32.ts","../../src/utils/getCrc.ts","../../src/index.ts","../../src/utils/sha224.ts","../../src/config.ts","../../src/declarations/cap/root.did.ts","../../src/declarations/cap/router.did.ts","../../src/index.ts","../../src/kyasshu/index.ts","../../src/utils.ts","../node_modules/@psychedelic/cap-js/node_modules/axios/index.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/adapters/xhr.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/axios.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/cancel/Cancel.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/cancel/CancelToken.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/cancel/isCancel.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/core/Axios.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/core/InterceptorManager.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/core/buildFullPath.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/core/createError.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/core/dispatchRequest.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/core/enhanceError.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/core/mergeConfig.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/core/settle.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/core/transformData.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/defaults.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/env/data.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/helpers/bind.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/helpers/buildURL.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/helpers/combineURLs.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/helpers/cookies.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/helpers/spread.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/helpers/validator.js","../node_modules/@psychedelic/cap-js/node_modules/axios/lib/utils.js","../../src/big-number.ts","../../src/declarations/constants.ts","../../src/declarations/did/favorite.did.js","../../src/declarations/did/index.ts","../../src/declarations/did/models/index.ts","../../src/declarations/did/registrar.did.js","../../src/declarations/did/registry.did.js","../../src/declarations/did/resolver.did.js","../../src/declarations/did/reverse_registrar.did.js","../../src/declarations/did/wicp.did.js","../../src/declarations/index.ts","../../src/integrations/actor/adapter.ts","../../src/integrations/actor/factory.ts","../../src/integrations/actor/index.ts","../../src/integrations/canisters/index.ts","../../src/integrations/canisters/registrar/controller.ts","../../src/integrations/canisters/registry/controller.ts","../../src/integrations/canisters/resolver/controller.ts","../../src/integrations/canisters/reverse-registrar/controller.ts","../../src/integrations/canisters/utils.ts","../../src/integrations/index.ts","../../src/utils/format.ts","../../src/utils/index.ts","../node_modules/@react-icons/all-files/ai/AiFillPicture.js","../node_modules/@react-icons/all-files/fa/FaArrowCircleLeft.js","../node_modules/@react-icons/all-files/fa/FaArrowLeft.js","../node_modules/@react-icons/all-files/fa/FaCheck.js","../node_modules/@react-icons/all-files/fa/FaChevronDown.js","../node_modules/@react-icons/all-files/fa/FaChevronUp.js","../node_modules/@react-icons/all-files/fa/FaDiscord.js","../node_modules/@react-icons/all-files/fa/FaEllipsisH.js","../node_modules/@react-icons/all-files/fa/FaExchangeAlt.js","../node_modules/@react-icons/all-files/fa/FaExclamationCircle.js","../node_modules/@react-icons/all-files/fa/FaInfoCircle.js","../node_modules/@react-icons/all-files/fa/FaList.js","../node_modules/@react-icons/all-files/fa/FaMoneyBillWave.js","../node_modules/@react-icons/all-files/fa/FaMoon.js","../node_modules/@react-icons/all-files/fa/FaRegClone.js","../node_modules/@react-icons/all-files/fa/FaRegHandPaper.js","../node_modules/@react-icons/all-files/fa/FaSearch.js","../node_modules/@react-icons/all-files/fa/FaSeedling.js","../node_modules/@react-icons/all-files/fa/FaShare.js","../node_modules/@react-icons/all-files/fa/FaSignOutAlt.js","../node_modules/@react-icons/all-files/fa/FaSun.js","../node_modules/@react-icons/all-files/fa/FaTag.js","../node_modules/@react-icons/all-files/fa/FaTwitter.js","../node_modules/@react-icons/all-files/fi/FiActivity.js","../node_modules/@react-icons/all-files/fi/FiDownload.js","../node_modules/@react-icons/all-files/fi/FiGrid.js","../node_modules/@react-icons/all-files/fi/FiUpload.js","../node_modules/@react-icons/all-files/go/GoVerified.js","../node_modules/@react-icons/all-files/io5/IoWarningOutline.js","../node_modules/@react-icons/all-files/lib/esm/iconsManifest.js","../node_modules/@react-icons/all-files/lib/esm/iconContext.js","../node_modules/@react-icons/all-files/lib/esm/iconBase.js","../node_modules/@react-icons/all-files/ri/RiCloseCircleLine.js","../node_modules/@react-icons/all-files/ri/RiCloseLine.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","../node_modules/base64-js/index.js","../node_modules/bignumber.js/bignumber.js","../node_modules/borc/src/constants.js","../node_modules/borc/src/decoder.asm.js","../node_modules/borc/src/decoder.js","../node_modules/borc/src/diagnose.js","../node_modules/borc/src/encoder.js","../node_modules/borc/src/index.js","../node_modules/borc/src/simple.js","../node_modules/borc/src/tagged.js","../node_modules/borc/src/utils.js","../node_modules/buffer-crc32/index.js","../node_modules/buffer/index.js","../node_modules/copy-to-clipboard/index.js","../node_modules/core-js/library/fn/object/assign.js","../node_modules/core-js/library/fn/object/create.js","../node_modules/core-js/library/fn/object/define-property.js","../node_modules/core-js/library/fn/object/get-prototype-of.js","../node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/core-js/library/fn/symbol/index.js","../node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/core-js/library/modules/_a-function.js","../node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/core-js/library/modules/_an-object.js","../node_modules/core-js/library/modules/_array-includes.js","../node_modules/core-js/library/modules/_cof.js","../node_modules/core-js/library/modules/_core.js","../node_modules/core-js/library/modules/_ctx.js","../node_modules/core-js/library/modules/_defined.js","../node_modules/core-js/library/modules/_descriptors.js","../node_modules/core-js/library/modules/_dom-create.js","../node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/core-js/library/modules/_enum-keys.js","../node_modules/core-js/library/modules/_export.js","../node_modules/core-js/library/modules/_fails.js","../node_modules/core-js/library/modules/_global.js","../node_modules/core-js/library/modules/_has.js","../node_modules/core-js/library/modules/_hide.js","../node_modules/core-js/library/modules/_html.js","../node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/core-js/library/modules/_iobject.js","../node_modules/core-js/library/modules/_is-array.js","../node_modules/core-js/library/modules/_is-object.js","../node_modules/core-js/library/modules/_iter-create.js","../node_modules/core-js/library/modules/_iter-define.js","../node_modules/core-js/library/modules/_iter-step.js","../node_modules/core-js/library/modules/_iterators.js","../node_modules/core-js/library/modules/_library.js","../node_modules/core-js/library/modules/_meta.js","../node_modules/core-js/library/modules/_object-assign.js","../node_modules/core-js/library/modules/_object-create.js","../node_modules/core-js/library/modules/_object-dp.js","../node_modules/core-js/library/modules/_object-dps.js","../node_modules/core-js/library/modules/_object-gopd.js","../node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/core-js/library/modules/_object-gopn.js","../node_modules/core-js/library/modules/_object-gops.js","../node_modules/core-js/library/modules/_object-gpo.js","../node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/core-js/library/modules/_object-keys.js","../node_modules/core-js/library/modules/_object-pie.js","../node_modules/core-js/library/modules/_object-sap.js","../node_modules/core-js/library/modules/_property-desc.js","../node_modules/core-js/library/modules/_redefine.js","../node_modules/core-js/library/modules/_set-proto.js","../node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/core-js/library/modules/_shared-key.js","../node_modules/core-js/library/modules/_shared.js","../node_modules/core-js/library/modules/_string-at.js","../node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/core-js/library/modules/_to-integer.js","../node_modules/core-js/library/modules/_to-iobject.js","../node_modules/core-js/library/modules/_to-length.js","../node_modules/core-js/library/modules/_to-object.js","../node_modules/core-js/library/modules/_to-primitive.js","../node_modules/core-js/library/modules/_uid.js","../node_modules/core-js/library/modules/_wks-define.js","../node_modules/core-js/library/modules/_wks-ext.js","../node_modules/core-js/library/modules/_wks.js","../node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/core-js/library/modules/es6.object.create.js","../node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/core-js/library/modules/es6.symbol.js","../node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/cross-fetch/dist/browser-ponyfill.js","../node_modules/crypto-js/aes.js","../node_modules/crypto-js/cipher-core.js","../node_modules/crypto-js/core.js","../node_modules/crypto-js/enc-base64.js","../node_modules/crypto-js/enc-base64url.js","../node_modules/crypto-js/enc-utf16.js","../node_modules/crypto-js/evpkdf.js","../node_modules/crypto-js/format-hex.js","../node_modules/crypto-js/hmac.js","../node_modules/crypto-js/index.js","../node_modules/crypto-js/lib-typedarrays.js","../node_modules/crypto-js/md5.js","../node_modules/crypto-js/mode-cfb.js","../node_modules/crypto-js/mode-ctr-gladman.js","../node_modules/crypto-js/mode-ctr.js","../node_modules/crypto-js/mode-ecb.js","../node_modules/crypto-js/mode-ofb.js","../node_modules/crypto-js/pad-ansix923.js","../node_modules/crypto-js/pad-iso10126.js","../node_modules/crypto-js/pad-iso97971.js","../node_modules/crypto-js/pad-nopadding.js","../node_modules/crypto-js/pad-zeropadding.js","../node_modules/crypto-js/pbkdf2.js","../node_modules/crypto-js/rabbit-legacy.js","../node_modules/crypto-js/rabbit.js","../node_modules/crypto-js/rc4.js","../node_modules/crypto-js/ripemd160.js","../node_modules/crypto-js/sha1.js","../node_modules/crypto-js/sha224.js","../node_modules/crypto-js/sha256.js","../node_modules/crypto-js/sha3.js","../node_modules/crypto-js/sha384.js","../node_modules/crypto-js/sha512.js","../node_modules/crypto-js/tripledes.js","../node_modules/crypto-js/x64-core.js","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/relativeTime.js","../node_modules/dayjs/plugin/timezone.js","../node_modules/dayjs/plugin/utc.js","../node_modules/events/events.js","../node_modules/fast-deep-equal/react.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/ieee754/index.js","../node_modules/iso-url/index.js","../node_modules/iso-url/src/relative.js","../node_modules/iso-url/src/url-browser.js","../node_modules/js-sha256/src/sha256.js","../node_modules/json-bigint/index.js","../node_modules/json-bigint/lib/parse.js","../node_modules/json-bigint/lib/stringify.js","../node_modules/lodash.debounce/index.js","../node_modules/lodash.throttle/index.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-infinite-scroller/dist/InfiniteScroll.js","../node_modules/react-infinite-scroller/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-lottie/dist/index.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/react-table/src/publicUtils.js","../node_modules/react-table/src/utils.js","../node_modules/react-table/src/makeDefaultPluginHooks.js","../node_modules/react-table/src/hooks/useColumnVisibility.js","../node_modules/react-table/src/hooks/useTable.js","../node_modules/react-table/src/plugin-hooks/useExpanded.js","../node_modules/react-table/src/filterTypes.js","../node_modules/react-table/src/plugin-hooks/useFilters.js","../node_modules/react-table/src/plugin-hooks/useGlobalFilter.js","../node_modules/react-table/src/aggregations.js","../node_modules/react-table/src/plugin-hooks/useGroupBy.js","../node_modules/react-table/src/sortTypes.js","../node_modules/react-table/src/plugin-hooks/useSortBy.js","../node_modules/react-table/src/plugin-hooks/usePagination.js","../node_modules/react-table/src/plugin-hooks/_UNSTABLE_usePivotColumns.js","../node_modules/react-table/src/plugin-hooks/useRowSelect.js","../node_modules/react-table/src/plugin-hooks/useRowState.js","../node_modules/react-table/src/plugin-hooks/useColumnOrder.js","../node_modules/react-table/src/plugin-hooks/useResizeColumns.js","../node_modules/react-table/src/plugin-hooks/useAbsoluteLayout.js","../node_modules/react-table/src/plugin-hooks/useBlockLayout.js","../node_modules/react-table/src/plugin-hooks/useFlexLayout.js","../node_modules/react-table/src/plugin-hooks/useGridLayout.js","../node_modules/react-table/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../index.ts","../serializer.ts","../value.ts","../node_modules/toggle-selection/index.js","../node_modules/tsparticles-plugin-polygon-mask/esm/pathseg.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/regenerator/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../../packages/react-router-dom/index.tsx","../node_modules/@stitches/react/dist/index.mjs","stitches.config.ts","components/core/buttons/styles.ts","components/core/buttons/action-button.tsx","components/core/buttons/link-button.tsx","components/core/buttons/icon-action-button.tsx","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/utils.ts","../node_modules/@reduxjs/toolkit/src/index.ts","constants/plug.ts","constants/traits.ts","constants/operations.ts","store/features/plug/plug-slice.ts","store/hooks.ts","store/features/plug/use-plug-store.ts","declarations/nft.did.ts","declarations/wicp.did.ts","declarations/marketplace.did.ts","declarations/cap.did.ts","config/env.ts","utils/log.ts","integrations/actor/actor.utils.ts","hooks/use-theme.ts","utils/styles.ts","constants/common.ts","utils/formatters.ts","integrations/kyasshu/utils.ts","integrations/kyasshu/kyasshu-urls.ts","integrations/kyasshu/index.ts","hooks/use-update-effect.ts","store/features/notifications/notifications-slice.ts","store/features/filters/async-thunks/get-filter-traits.ts","utils/traits.ts","integrations/marketplace/price.utils.ts","constants/sort-options.ts","store/features/filters/async-thunks/get-search-results.tsx","store/features/filters/filter-slice.ts","store/features/filters/use-filter-store.ts","store/features/theme/theme-slice.ts","store/features/theme/use-theme-store.ts","utils/nfts.ts","utils/common.ts","constants/response-status.ts","store/features/nfts/async-thunks/get-nfts.ts","store/features/nfts/async-thunks/get-nft-details.ts","utils/error.ts","store/features/marketplace/async-thunks/make-listing.ts","store/features/marketplace/async-thunks/direct-buy.ts","store/features/marketplace/async-thunks/cancel-listing.ts","store/features/marketplace/async-thunks/cancel-offer.ts","store/features/marketplace/async-thunks/make-offer.ts","store/features/marketplace/async-thunks/accept-offer.ts","integrations/functions/date.ts","utils/sorting.ts","utils/parser.ts","store/features/marketplace/async-thunks/get-buyer-offers.ts","store/features/marketplace/async-thunks/get-token-offers.ts","store/features/marketplace/async-thunks/get-token-listing.ts","store/features/marketplace/async-thunks/get-floor-price.ts","store/features/marketplace/async-thunks/get-collections.ts","store/features/settings/settings-slice.ts","store/features/settings/use-settings-store.ts","store/features/marketplace/async-thunks/get-assets-to-withdraw.ts","store/features/marketplace/async-thunks/withdraw-fungible.ts","store/features/marketplace/marketplace-slice.ts","store/features/nfts/async-thunks/get-collection-data.ts","store/features/nfts/nfts-slice.ts","store/features/nfts/use-nfts-store.ts","store/features/tables/async-thunks/get-cap-activity.ts","store/features/tables/async-thunks/get-token-metadata.ts","store/features/tables/async-thunks/get-token-transactions.ts","store/features/tables/async-thunks/get-user-activity.ts","store/features/tables/table-slice.ts","store/features/tables/use-table-store.ts","store/features/crowns/async-thunks/get-owner-token-identifiers.ts","store/features/crowns/crowns-slice.ts","store/features/cap/async-thunks/get-token-contract-root-bucket.ts","store/features/cap/cap-slice.ts","store/features/cap/use-cap-store.ts","store/features/wicp/wicp-slice.ts","store/store.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","store/features/wicp/index.ts","../node_modules/@radix-ui/react-use-layout-effect/dist/packages/react/use-layout-effect/src/useLayoutEffect.tsx","../node_modules/@radix-ui/react-id/dist/packages/react/id/src/id.tsx","../node_modules/@radix-ui/react-focus-guards/dist/packages/react/focus-guards/src/FocusGuards.tsx","../node_modules/@radix-ui/react-use-callback-ref/dist/packages/react/use-callback-ref/src/useCallbackRef.tsx","../node_modules/@radix-ui/react-use-controllable-state/dist/packages/react/use-controllable-state/src/useControllableState.tsx","../node_modules/@radix-ui/react-compose-refs/dist/packages/react/compose-refs/src/composeRefs.tsx","../node_modules/@radix-ui/react-slot/dist/packages/react/slot/src/Slot.tsx","../node_modules/@radix-ui/react-primitive/dist/packages/react/primitive/src/Primitive.tsx","../node_modules/@radix-ui/react-context/dist/packages/react/context/src/createContext.tsx","../node_modules/@radix-ui/react-collection/dist/packages/react/collection/src/Collection.tsx","../node_modules/@radix-ui/primitive/dist/packages/core/primitive/src/primitive.tsx","../node_modules/@radix-ui/react-roving-focus/dist/packages/react/roving-focus/src/RovingFocusGroup.tsx","../node_modules/@radix-ui/react-portal/dist/packages/react/portal/src/Portal.tsx","../node_modules/@radix-ui/react-arrow/dist/packages/react/arrow/src/Arrow.tsx","../node_modules/@radix-ui/react-use-size/dist/packages/react/use-size/src/useSize.tsx","../node_modules/@radix-ui/rect/dist/packages/core/rect/src/observeElementRect.ts","../node_modules/@radix-ui/react-use-rect/dist/packages/react/use-rect/src/useRect.tsx","../node_modules/@radix-ui/popper/dist/packages/core/popper/src/popper.ts","../node_modules/@radix-ui/react-popper/dist/packages/react/popper/src/Popper.tsx","../node_modules/@radix-ui/react-presence/dist/packages/react/presence/src/Presence.tsx","../node_modules/@radix-ui/react-presence/dist/packages/react/presence/src/useStateMachine.tsx","../node_modules/@radix-ui/react-focus-scope/dist/packages/react/focus-scope/src/FocusScope.tsx","../node_modules/@radix-ui/react-use-escape-keydown/dist/packages/react/use-escape-keydown/src/useEscapeKeydown.tsx","../node_modules/@radix-ui/react-use-body-pointer-events/dist/packages/react/use-body-pointer-events/src/useBodyPointerEvents.tsx","../node_modules/@radix-ui/react-dismissable-layer/dist/packages/react/dismissable-layer/src/DismissableLayer.tsx","../node_modules/aria-hidden/dist/es2015/index.js","../node_modules/tslib/tslib.es6.js","../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../node_modules/use-callback-ref/dist/es2015/useRef.js","../node_modules/use-callback-ref/dist/es2015/assignRef.js","../node_modules/use-sidecar/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/UI.js","../node_modules/use-sidecar/dist/es2015/exports.js","../node_modules/get-nonce/dist/es2015/index.js","../node_modules/react-style-singleton/dist/es2015/singleton.js","../node_modules/react-style-singleton/dist/es2015/component.js","../node_modules/react-style-singleton/dist/es2015/hook.js","../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../node_modules/react-remove-scroll/dist/es2015/Combination.js","../node_modules/@radix-ui/react-menu/dist/packages/react/menu/src/Menu.tsx","../node_modules/@radix-ui/react-use-direction/dist/packages/react/use-direction/src/useDirection.tsx","../node_modules/@radix-ui/react-dropdown-menu/dist/packages/react/dropdown-menu/src/DropdownMenu.tsx","components/icons/custom/plug-icon.tsx","components/icons/custom/spinner-icon.tsx","components/icons/styles.ts","components/icons/icon.tsx","components/icons/index.ts","components/icons/custom/app-name.tsx","components/core/dropdown/styles.ts","components/core/dropdown/price-filter-dropdown.tsx","components/core/dropdown/card-options-dropdown.tsx","components/core/input-field-set/styles.ts","components/core/input-field-set/search-input.tsx","components/core/input-field-set/input-validator.tsx","components/core/input-field-set/filter-input.tsx","assets/wicp.svg","components/core/input-field-set/modal-input.tsx","components/core/chips/styles.ts","components/core/chips/filtered-count-chip.tsx","components/core/chips/filtered-traits-chip.tsx","components/core/chips/nft-traits-chip.tsx","../node_modules/@radix-ui/react-collapsible/dist/packages/react/collapsible/src/Collapsible.tsx","../node_modules/@radix-ui/react-accordion/dist/packages/react/accordion/src/Accordion.tsx","components/core/checkbox/styles.ts","components/core/checkbox/checkbox.tsx","components/core/skeleton/styles.ts","components/core/accordions/styles.ts","components/core/accordions/checkbox-filter-accordion.tsx","assets/plug-circle.svg","utils/icns.ts","components/core/accordions/about-accordion.tsx","utils/addresses.ts","components/tables/styles.ts","components/tables/table-skeletons.tsx","components/tables/table-layout.tsx","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","utils/account-id.ts","components/tables/activity-table.tsx","components/tables/nft-activity-table.tsx","hooks/use-marketplace-store.ts","../node_modules/@radix-ui/react-dialog/dist/packages/react/dialog/src/Dialog.tsx","components/modals/styles.ts","constants/listing.ts","../node_modules/tsparticles-engine/esm/Utils/EventDispatcher.js","../node_modules/tsparticles-engine/esm/Core/Utils/Vector.js","../node_modules/tsparticles-engine/esm/Utils/NumberUtils.js","../node_modules/tsparticles-engine/esm/Utils/Utils.js","../node_modules/tsparticles-engine/esm/Core/Utils/Constants.js","../node_modules/tsparticles-engine/esm/Utils/ColorUtils.js","../node_modules/tsparticles-engine/esm/Utils/CanvasUtils.js","../node_modules/tsparticles-engine/esm/Core/Canvas.js","../node_modules/tsparticles-engine/esm/Core/Utils/EventListeners.js","../node_modules/tsparticles-engine/esm/Core/Utils/FrameManager.js","../node_modules/tsparticles-engine/esm/Options/Classes/OptionsColor.js","../node_modules/tsparticles-engine/esm/Options/Classes/Background/Background.js","../node_modules/tsparticles-engine/esm/Options/Classes/BackgroundMask/BackgroundMaskCover.js","../node_modules/tsparticles-engine/esm/Options/Classes/BackgroundMask/BackgroundMask.js","../node_modules/tsparticles-engine/esm/Options/Classes/FullScreen/FullScreen.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/ClickEvent.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/DivEvent.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/Parallax.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/HoverEvent.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/Events.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Attract.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Bounce.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/BubbleBase.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/BubbleDiv.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Bubble.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/ConnectLinks.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Connect.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/GrabLinks.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Grab.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/LightGradient.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/LightArea.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/LightShadow.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Light.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Push.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Remove.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/RepulseBase.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/RepulseDiv.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Repulse.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Slow.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Trail.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Modes.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Interactivity.js","../node_modules/tsparticles-engine/esm/Options/Classes/ManualParticle.js","../node_modules/tsparticles-engine/esm/Options/Classes/Motion/MotionReduce.js","../node_modules/tsparticles-engine/esm/Options/Classes/Motion/Motion.js","../node_modules/tsparticles-engine/esm/Options/Classes/Responsive.js","../node_modules/tsparticles-engine/esm/Options/Classes/Theme/ThemeDefault.js","../node_modules/tsparticles-engine/esm/Options/Classes/Theme/Theme.js","../node_modules/tsparticles-engine/esm/Options/Classes/ColorAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/HslAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/AnimatableColor.js","../node_modules/tsparticles-engine/esm/Options/Classes/Gradients/GradientColorOpacityAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Gradients/GradientColorOpacity.js","../node_modules/tsparticles-engine/esm/Options/Classes/Gradients/AnimatableGradientColor.js","../node_modules/tsparticles-engine/esm/Options/Classes/Gradients/GradientAngleAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Gradients/GradientAngle.js","../node_modules/tsparticles-engine/esm/Options/Classes/Gradients/AnimatableGradient.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Collisions/CollisionsOverlap.js","../node_modules/tsparticles-engine/esm/Options/Classes/Random.js","../node_modules/tsparticles-engine/esm/Options/Classes/ValueWithRandom.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Bounce/ParticlesBounce.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Collisions/Collisions.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Destroy/SplitFactor.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Destroy/SplitRate.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Destroy/Split.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Destroy/Destroy.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Links/LinksShadow.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Links/LinksTriangle.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Links/Links.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveAngle.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveAttract.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveGravity.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Path/MovePathDelay.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Path/MovePath.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveTrail.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/OutModes.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Spin.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Move.js","../node_modules/tsparticles-engine/esm/Options/Classes/AnimationOptions.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Opacity/Opacity.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Number/ParticlesDensity.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Number/ParticlesNumber.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Repulse/ParticlesRepulse.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Rotate/RotateAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Rotate/Rotate.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Shadow.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Shape/Shape.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Size/SizeAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Size/Size.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Stroke.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/ZIndex/ZIndex.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/ParticlesOptions.js","../node_modules/tsparticles-engine/esm/Utils/OptionsUtils.js","../node_modules/tsparticles-engine/esm/Options/Classes/Options.js","../node_modules/tsparticles-engine/esm/Core/Utils/InteractionManager.js","../node_modules/tsparticles-engine/esm/Core/Utils/Vector3d.js","../node_modules/tsparticles-engine/esm/Core/Particle.js","../node_modules/tsparticles-engine/esm/Core/Utils/Point.js","../node_modules/tsparticles-engine/esm/Core/Utils/Range.js","../node_modules/tsparticles-engine/esm/Core/Utils/Circle.js","../node_modules/tsparticles-engine/esm/Core/Utils/Rectangle.js","../node_modules/tsparticles-engine/esm/Core/Utils/CircleWarp.js","../node_modules/tsparticles-engine/esm/Core/Utils/QuadTree.js","../node_modules/tsparticles-engine/esm/Core/Particles.js","../node_modules/tsparticles-engine/esm/Core/Retina.js","../node_modules/tsparticles-engine/esm/Core/Container.js","../node_modules/tsparticles-engine/esm/Core/Loader.js","../node_modules/tsparticles-engine/esm/Core/Utils/Plugins.js","../node_modules/tsparticles-engine/esm/engine.js","../node_modules/tsparticles-engine/esm/Core/Utils/ExternalInteractorBase.js","../node_modules/tsparticles-engine/esm/Core/Utils/ParticlesInteractorBase.js","../node_modules/tsparticles-engine/esm/index.js","../node_modules/react-tsparticles/esm/Particles.js","../node_modules/react-tsparticles/esm/index.js","../node_modules/tsparticles-plugin-absorbers/esm/Options/Classes/AbsorberSizeLimit.js","../node_modules/tsparticles-plugin-absorbers/esm/Options/Classes/AbsorberSize.js","../node_modules/tsparticles-plugin-absorbers/esm/Options/Classes/Absorber.js","../node_modules/tsparticles-plugin-absorbers/esm/AbsorberInstance.js","../node_modules/tsparticles-plugin-absorbers/esm/Absorbers.js","../node_modules/tsparticles-plugin-absorbers/esm/index.js","../node_modules/tsparticles-plugin-emitters/esm/Shapes/Circle/CircleShape.js","../node_modules/tsparticles-plugin-emitters/esm/Options/Classes/EmitterLife.js","../node_modules/tsparticles-plugin-emitters/esm/Options/Classes/EmitterRate.js","../node_modules/tsparticles-plugin-emitters/esm/Options/Classes/EmitterSize.js","../node_modules/tsparticles-plugin-emitters/esm/Options/Classes/Emitter.js","../node_modules/tsparticles-plugin-emitters/esm/EmitterInstance.js","../node_modules/tsparticles-plugin-emitters/esm/Emitters.js","../node_modules/tsparticles-plugin-emitters/esm/ShapeManager.js","../node_modules/tsparticles-plugin-emitters/esm/Shapes/Square/SquareShape.js","../node_modules/tsparticles-plugin-emitters/esm/index.js","../node_modules/tsparticles-interaction-external-trail/esm/TrailMaker.js","../node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMaskDrawStroke.js","../node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMaskDraw.js","../node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMaskInline.js","../node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMaskLocalSvg.js","../node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMaskMove.js","../node_modules/tsparticles-plugin-polygon-mask/esm/Options/Classes/PolygonMask.js","../node_modules/tsparticles-plugin-polygon-mask/esm/utils.js","../node_modules/tsparticles-plugin-polygon-mask/esm/PolygonMaskInstance.js","../node_modules/tsparticles-plugin-polygon-mask/esm/index.js","../node_modules/tsparticles-updater-roll/esm/Options/Classes/RollLight.js","../node_modules/tsparticles-updater-roll/esm/Options/Classes/Roll.js","../node_modules/tsparticles-updater-roll/esm/RollUpdater.js","../node_modules/tsparticles-updater-angle/esm/AngleUpdater.js","../node_modules/tsparticles-move-base/esm/BaseMover.js","../node_modules/tsparticles-move-base/esm/Utils.js","../node_modules/tsparticles-shape-circle/esm/CircleDrawer.js","../node_modules/tsparticles-updater-color/esm/ColorUpdater.js","../node_modules/tsparticles-interaction-external-attract/esm/Attractor.js","../node_modules/tsparticles-interaction-external-bounce/esm/Bouncer.js","../node_modules/tsparticles-interaction-external-bubble/esm/Bubbler.js","../node_modules/tsparticles-interaction-external-connect/esm/Connector.js","../node_modules/tsparticles-interaction-external-grab/esm/Grabber.js","../node_modules/tsparticles-interaction-external-pause/esm/Pauser.js","../node_modules/tsparticles-interaction-external-push/esm/Pusher.js","../node_modules/tsparticles-interaction-external-remove/esm/Remover.js","../node_modules/tsparticles-interaction-external-repulse/esm/Repulser.js","../node_modules/tsparticles-shape-image/esm/Utils.js","../node_modules/tsparticles-shape-image/esm/ImageDrawer.js","../node_modules/tsparticles-updater-life/esm/Options/Classes/LifeDelay.js","../node_modules/tsparticles-updater-life/esm/Options/Classes/LifeDuration.js","../node_modules/tsparticles-updater-life/esm/Options/Classes/Life.js","../node_modules/tsparticles-updater-life/esm/LifeUpdater.js","../node_modules/tsparticles-shape-line/esm/LineDrawer.js","../node_modules/tsparticles-updater-opacity/esm/OpacityUpdater.js","../node_modules/tsparticles-updater-out-modes/esm/BounceOutMode.js","../node_modules/tsparticles-updater-out-modes/esm/Utils.js","../node_modules/tsparticles-updater-out-modes/esm/DestroyOutMode.js","../node_modules/tsparticles-updater-out-modes/esm/NoneOutMode.js","../node_modules/tsparticles-updater-out-modes/esm/OutOutMode.js","../node_modules/tsparticles-updater-out-modes/esm/OutOfCanvasUpdater.js","../node_modules/tsparticles-move-parallax/esm/ParallaxMover.js","../node_modules/tsparticles-interaction-particles-attract/esm/Attractor.js","../node_modules/tsparticles-interaction-particles-collisions/esm/Bounce.js","../node_modules/tsparticles-interaction-particles-collisions/esm/ResolveCollision.js","../node_modules/tsparticles-interaction-particles-collisions/esm/Absorb.js","../node_modules/tsparticles-interaction-particles-collisions/esm/Destroy.js","../node_modules/tsparticles-interaction-particles-collisions/esm/Collider.js","../node_modules/tsparticles-interaction-particles-links/esm/Linker.js","../node_modules/tsparticles-interaction-particles-links/esm/LinkInstance.js","../node_modules/tsparticles-interaction-particles-links/esm/Utils.js","../node_modules/tsparticles-interaction-particles-links/esm/plugin.js","../node_modules/tsparticles-interaction-particles-links/esm/index.js","../node_modules/tsparticles-interaction-particles-links/esm/interaction.js","../node_modules/tsparticles-shape-polygon/esm/PolygonDrawerBase.js","../node_modules/tsparticles-shape-polygon/esm/PolygonDrawer.js","../node_modules/tsparticles-shape-polygon/esm/TriangleDrawer.js","../node_modules/tsparticles-shape-polygon/esm/index.js","../node_modules/tsparticles-updater-size/esm/SizeUpdater.js","../node_modules/tsparticles-shape-square/esm/SquareDrawer.js","../node_modules/tsparticles-shape-star/esm/StarDrawer.js","../node_modules/tsparticles-updater-stroke-color/esm/StrokeColorUpdater.js","../node_modules/tsparticles-shape-text/esm/TextDrawer.js","../node_modules/tsparticles-slim/esm/index.js","../node_modules/tsparticles-move-base/esm/index.js","../node_modules/tsparticles-move-parallax/esm/index.js","../node_modules/tsparticles-interaction-external-attract/esm/index.js","../node_modules/tsparticles-interaction-external-bounce/esm/index.js","../node_modules/tsparticles-interaction-external-bubble/esm/index.js","../node_modules/tsparticles-interaction-external-connect/esm/index.js","../node_modules/tsparticles-interaction-external-grab/esm/index.js","../node_modules/tsparticles-interaction-external-pause/esm/index.js","../node_modules/tsparticles-interaction-external-push/esm/index.js","../node_modules/tsparticles-interaction-external-remove/esm/index.js","../node_modules/tsparticles-interaction-external-repulse/esm/index.js","../node_modules/tsparticles-interaction-particles-attract/esm/index.js","../node_modules/tsparticles-interaction-particles-collisions/esm/index.js","../node_modules/tsparticles-shape-circle/esm/index.js","../node_modules/tsparticles-shape-image/esm/index.js","../node_modules/tsparticles-shape-line/esm/index.js","../node_modules/tsparticles-shape-square/esm/index.js","../node_modules/tsparticles-shape-star/esm/index.js","../node_modules/tsparticles-shape-text/esm/index.js","../node_modules/tsparticles-updater-life/esm/index.js","../node_modules/tsparticles-updater-opacity/esm/index.js","../node_modules/tsparticles-updater-size/esm/index.js","../node_modules/tsparticles-updater-angle/esm/index.js","../node_modules/tsparticles-updater-color/esm/index.js","../node_modules/tsparticles-updater-stroke-color/esm/index.js","../node_modules/tsparticles-updater-out-modes/esm/index.js","../node_modules/tsparticles-particles.js/esm/index.js","../node_modules/tsparticles-updater-tilt/esm/Options/Classes/TiltAnimation.js","../node_modules/tsparticles-updater-tilt/esm/Options/Classes/Tilt.js","../node_modules/tsparticles-updater-tilt/esm/TiltUpdater.js","../node_modules/tsparticles-updater-twinkle/esm/Options/Classes/TwinkleValues.js","../node_modules/tsparticles-updater-twinkle/esm/Options/Classes/Twinkle.js","../node_modules/tsparticles-updater-twinkle/esm/TwinkleUpdater.js","../node_modules/tsparticles-updater-wobble/esm/Options/Classes/WobbleSpeed.js","../node_modules/tsparticles-updater-wobble/esm/Options/Classes/Wobble.js","../node_modules/tsparticles-updater-wobble/esm/WobbleUpdater.js","../node_modules/tsparticles/esm/index.js","../node_modules/tsparticles-updater-roll/esm/index.js","../node_modules/tsparticles-updater-tilt/esm/index.js","../node_modules/tsparticles-updater-twinkle/esm/index.js","../node_modules/tsparticles-updater-wobble/esm/index.js","../node_modules/tsparticles-interaction-external-trail/esm/index.js","components/particles/options.ts","components/particles/confetti.tsx","components/modals/modal-overlay.tsx","components/modals/sell-modal.tsx","components/modals/cancel-listing-modal.tsx","constants/direct-buy.ts","constants/urls.ts","utils/handle-redirect-urls.ts","components/modals/steps/insufficient-balance.tsx","utils/balance.ts","components/modals/buy-now-modal.tsx","components/modals/cancel-offer-modal.tsx","components/modals/change-price-modal.tsx","components/modals/make-offer-modal.tsx","components/modals/accept-offer-modal.tsx","../node_modules/@radix-ui/react-popover/dist/packages/react/popover/src/Popover.tsx","integrations/plug/plug.utils.ts","components/plug/styles.ts","components/plug/plug-balance.tsx","components/plug/plug-button.tsx","components/plug/plug.tsx","components/modals/connect-to-plug-modal.tsx","components/modals/withdraw-assets-modal.tsx","constants/my-offers.ts","components/tables/my-offers-table.tsx","components/tables/nft-offers-table.tsx","components/tables/user-activity-table.tsx","components/core/accordions/offer-accordion.tsx","components/core/table-cells/styles.ts","components/core/table-cells/item-details-cell.tsx","components/core/table-cells/type-details-cell.tsx","components/core/table-cells/price-details-cell.tsx","components/core/table-cells/text-cell.tsx","components/core/table-cells/text-link-cell.tsx","hooks/use-history-back.ts","components/nft-action-bar/styles.ts","components/nft-action-bar/nft-action-bar.tsx","components/core/status-indicators/styles.ts","components/core/status-indicators/completed.tsx","components/core/status-indicators/pending.tsx","utils/image-cache.ts","components/image-preload/styles.ts","components/image-preload/image-preload.tsx","../node_modules/@radix-ui/react-visually-hidden/dist/packages/react/visually-hidden/src/VisuallyHidden.tsx","../node_modules/@radix-ui/react-use-previous/dist/packages/react/use-previous/src/usePrevious.tsx","../node_modules/@radix-ui/react-tooltip/dist/packages/react/tooltip/src/Tooltip.tsx","components/number-tooltip/styles.ts","components/number-tooltip/number-tooltip.tsx","utils/video-cache.ts","components/video-preload/styles.ts","components/video-preload/video-preload.tsx","components/core/cards/nft-card/styles.ts","components/core/cards/nft-card/media.tsx","components/core/cards/nft-card/nft-card.tsx","components/core/cards/nft-skeleton/styles.ts","components/core/cards/nft-skeleton/nft-skeleton.tsx","components/core/tooltip/styles.ts","components/core/tooltip/tooltip.tsx","constants/empty-states.ts","components/core/empty-states/styles.ts","components/core/empty-states/empty-state.tsx","../node_modules/react-cool-virtual/src/types/index.ts","../node_modules/react-cool-virtual/src/utils/findNearestBinarySearch.ts","../node_modules/react-cool-virtual/src/utils/isNumber.ts","../node_modules/react-cool-virtual/src/utils/now.ts","../node_modules/react-cool-virtual/src/utils/useLatest.ts","../node_modules/react-cool-virtual/src/utils/useIsoLayoutEffect.ts","../node_modules/react-cool-virtual/src/useVirtual.ts","../node_modules/react-cool-virtual/src/utils/useDebounce.ts","../node_modules/react-cool-virtual/src/utils/shouldUpdate.ts","../node_modules/react-cool-virtual/src/utils/useResizeEffect.ts","components/core/infinite-list/styles.ts","components/core/infinite-list/virtualized-grid.tsx","components/nft-list/nft-list.tsx","components/nft-skeleton-list/nft-skeleton-list.tsx","components/items/styles.ts","components/items/collection-items.tsx","../node_modules/@radix-ui/react-tabs/dist/packages/react/tabs/src/Tabs.tsx","components/tabs/styles.ts","utils/window.ts","components/filters/styles.ts","components/core/accordions/checkbox-accordion-skeleton.tsx","components/filters/filters.tsx","components/tabs/collection-tabs.tsx","components/nft-metadata/styles.ts","components/nft-metadata/nft-metadata.tsx","components/collection-overview/styles.ts","assets/crown.svg","components/collection-overview/collection-overview.tsx","components/search/styles.ts","components/search/global-search.tsx","assets/jelly-full-image.svg","assets/jelly-full-image-dark.svg","components/navbar/styles.ts","components/navbar/navbar.tsx","hooks/use-buyer-offers.ts","components/nft-details/styles.ts","components/nft-details/TraitsListLoader.tsx","components/nft-details/nft-details-skeleton.tsx","components/nft-details/nft-details.tsx","../node_modules/@radix-ui/react-toast/dist/packages/react/toast/src/Toast.tsx","components/toast/styles.ts","components/toast/toast-handler.tsx","store/features/notifications/use-notifications-store.ts","components/alerts/styles.ts","components/alerts/index.tsx","hooks/use-assets-to-withdraw.ts","views/CollectionView/styles.ts","views/CollectionView/index.tsx","views/NFTView/styles.ts","views/NFTView/index.tsx","views/OffersView/styles.ts","views/OffersView/index.tsx","views/UserActivityView/styles.ts","views/UserActivityView/index.tsx","App.tsx","hooks/use-theme-globals.ts","locales/index.ts","reportWebVitals.ts","index.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var 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 if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\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 var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: 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(createError('Request aborted', config, 'ECONNABORTED', 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(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\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 (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\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', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : 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 if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\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\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(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) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function 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\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var 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 */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(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 {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\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 // filter out skipped interceptors\n var requestInterceptorChain = [];\n var 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 var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\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: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\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 */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: 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 */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\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 */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\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 * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\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 {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\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 * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = 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 response.data,\n response.headers,\n config.transformResponse\n );\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 reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.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: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\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 * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(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(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var 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 '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 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\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 */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\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\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n 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 setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\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 validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.24.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\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 * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return 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 * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = 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 * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\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 var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var 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 var 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);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\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} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\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 * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\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 * @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 function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\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 * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\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 && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\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 */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\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 */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\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 (var 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 for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\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 * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n 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 * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\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 * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.AiFillPicture = function AiFillPicture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM338 304c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm513.9 437.1a8.11 8.11 0 0 1-5.2 1.9H177.2c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2l170.3-202c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l99.4 118 158.1-187.5c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l229.6 271.6c2.6 3.3 2.2 8.4-1.2 11.2z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaArrowCircleLeft = function FaArrowCircleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaArrowLeft = function FaArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaCheck = function FaCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaChevronDown = function FaChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaChevronUp = function FaChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaDiscord = function FaDiscord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaEllipsisH = function FaEllipsisH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaExchangeAlt = function FaExchangeAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaExclamationCircle = function FaExclamationCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaInfoCircle = function FaInfoCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaList = function FaList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaMoneyBillWave = function FaMoneyBillWave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaMoon = function FaMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaRegClone = function FaRegClone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaRegHandPaper = function FaRegHandPaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaSearch = function FaSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaSeedling = function FaSeedling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaShare = function FaShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaSignOutAlt = function FaSignOutAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaSun = function FaSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaTag = function FaTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaTwitter = function FaTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FiActivity = function FiActivity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 18 12 15 21 9 3 6 12 2 12\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FiDownload = function FiDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 10 12 15 17 10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"3\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FiGrid = function FiGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FiUpload = function FiUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 8 12 3 7 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"3\",\"x2\":\"12\",\"y2\":\"15\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.GoVerified = function GoVerified (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 16 16\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M15.67 7.066l-1.08-1.34a1.5 1.5 0 0 1-.309-.77l-.19-1.698a1.51 1.51 0 0 0-1.329-1.33l-1.699-.19c-.3-.03-.56-.159-.78-.329L8.945.33a1.504 1.504 0 0 0-1.878 0l-1.34 1.08a1.5 1.5 0 0 1-.77.31l-1.698.19c-.7.08-1.25.63-1.33 1.329l-.19 1.699c-.03.3-.159.56-.329.78L.33 7.055a1.504 1.504 0 0 0 0 1.878l1.08 1.34c.17.22.28.48.31.77l.19 1.698c.08.7.63 1.25 1.329 1.33l1.699.19c.3.03.56.159.78.329l1.339 1.08c.55.439 1.329.439 1.878 0l1.34-1.08c.22-.17.48-.28.77-.31l1.698-.19c.7-.08 1.25-.63 1.33-1.329l.19-1.699c.03-.3.159-.56.329-.78l1.08-1.339a1.504 1.504 0 0 0 0-1.878zM6.5 12.01L3 8.51l1.5-1.5 2 2 5-5L13 5.56l-6.5 6.45z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.IoWarningOutline = function IoWarningOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M85.57 446.25h340.86a32 32 0 0028.17-47.17L284.18 82.58c-12.09-22.44-44.27-22.44-56.36 0L57.4 399.08a32 32 0 0028.17 47.17z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M250.26 195.39l5.74 122 5.73-121.95a5.74 5.74 0 00-5.79-6h0a5.74 5.74 0 00-5.68 5.95z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 397.25a20 20 0 1120-20 20 20 0 01-20 20z\"}}]})(props);\n};\n","export var IconsManifest = [\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/refactoringui/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"CC BY 4.0 License\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n }\n]","import React from 'react';\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && React.createContext(DefaultContext);","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport React from 'react';\nimport { IconContext, DefaultContext } from './iconContext';\n\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return React.createElement(node.tag, __assign({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\n\nexport function GenIcon(data) {\n return function (props) {\n return React.createElement(IconBase, __assign({\n attr: __assign({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nexport function IconBase(props) {\n var elem = function (conf) {\n var attr = props.attr,\n size = props.size,\n title = props.title,\n svgProps = __rest(props, [\"attr\", \"size\", \"title\"]);\n\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + ' ' : '') + props.className;\n return React.createElement(\"svg\", __assign({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: __assign(__assign({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && React.createElement(\"title\", null, title), props.children);\n };\n\n return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\n}","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.RiCloseCircleLine = function RiCloseCircleLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-9.414l2.828-2.829 1.415 1.415L13.414 12l2.829 2.828-1.415 1.415L12 13.414l-2.828 2.829-1.415-1.415L10.586 12 7.757 9.172l1.415-1.415L12 10.586z\"}}]}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.RiCloseLine = function RiCloseLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z\"}}]}]})(props);\n};\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var 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 if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\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 var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: 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(createError('Request aborted', config, 'ECONNABORTED', 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(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\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 (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\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', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : 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 if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\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\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(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) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function 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\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var 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 */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(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 {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function 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 // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\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 // filter out skipped interceptors\n var requestInterceptorChain = [];\n var 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 var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\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: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\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 */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: 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 */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\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 */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\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 * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\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 {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\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 * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = 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 response.data,\n response.headers,\n config.transformResponse\n );\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 reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.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: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\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 * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(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(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var 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 '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 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\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 */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\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\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n 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 setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\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 validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.26.1\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\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 * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return 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 * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = 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\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\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 var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var 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 var 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);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\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} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\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 * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\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 * @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 function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\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 * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\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 && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var 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 {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\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 */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\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 */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\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 (var 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 for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\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 * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n 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 * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\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 * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(){\n \"use strict\";\n\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n // Use a lookup table to find the index.\n var lookup = new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i, len = bytes.length, base64 = \"\";\n\n for (i = 0; i < len; i+=3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i+1)];\n encoded3 = lookup[base64.charCodeAt(i+2)];\n encoded4 = lookup[base64.charCodeAt(i+3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})();\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n",";(function (globalObject) {\r\n 'use strict';\r\n\r\n/*\r\n * bignumber.js v9.0.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2021 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\n var BigNumber,\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n /*\r\n * Create and return a BigNumber constructor.\r\n */\r\n function clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, P.lt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, P.gt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = n / pows10[d - j - 1] % 10 | 0;\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s;\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) t = yc, yc = xc, xc = t, b = a;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) i = g1, g1 = g2, g2 = i, len -= i;\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n }\r\n\r\n\r\n // PRIVATE HELPER FUNCTIONS\r\n\r\n // These functions don't need access to variables,\r\n // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n function bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n }\r\n\r\n\r\n // Return a coefficient array as a string of base 10 digits.\r\n function coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n }\r\n\r\n\r\n // Compare the value of BigNumbers x and y.\r\n function compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n }\r\n\r\n\r\n /*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\n function intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n }\r\n\r\n\r\n // Assumes finite n.\r\n function isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n }\r\n\r\n\r\n function toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n }\r\n\r\n\r\n function toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // EXPORT\r\n\r\n\r\n BigNumber = clone();\r\n BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () { return BigNumber; });\r\n\r\n // Node.js and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = BigNumber;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalObject) {\r\n globalObject = typeof self != 'undefined' && self ? self : window;\r\n }\r\n\r\n globalObject.BigNumber = BigNumber;\r\n }\r\n})(this);\r\n","'use strict'\n\nconst Bignumber = require('bignumber.js').BigNumber\n\nexports.MT = {\n POS_INT: 0,\n NEG_INT: 1,\n BYTE_STRING: 2,\n UTF8_STRING: 3,\n ARRAY: 4,\n MAP: 5,\n TAG: 6,\n SIMPLE_FLOAT: 7\n}\n\nexports.TAG = {\n DATE_STRING: 0,\n DATE_EPOCH: 1,\n POS_BIGINT: 2,\n NEG_BIGINT: 3,\n DECIMAL_FRAC: 4,\n BIGFLOAT: 5,\n BASE64URL_EXPECTED: 21,\n BASE64_EXPECTED: 22,\n BASE16_EXPECTED: 23,\n CBOR: 24,\n URI: 32,\n BASE64URL: 33,\n BASE64: 34,\n REGEXP: 35,\n MIME: 36\n}\n\nexports.NUMBYTES = {\n ZERO: 0,\n ONE: 24,\n TWO: 25,\n FOUR: 26,\n EIGHT: 27,\n INDEFINITE: 31\n}\n\nexports.SIMPLE = {\n FALSE: 20,\n TRUE: 21,\n NULL: 22,\n UNDEFINED: 23\n}\n\nexports.SYMS = {\n NULL: Symbol('null'),\n UNDEFINED: Symbol('undef'),\n PARENT: Symbol('parent'),\n BREAK: Symbol('break'),\n STREAM: Symbol('stream')\n}\n\nexports.SHIFT32 = Math.pow(2, 32)\nexports.SHIFT16 = Math.pow(2, 16)\n\nexports.MAX_SAFE_HIGH = 0x1fffff\nexports.NEG_ONE = new Bignumber(-1)\nexports.TEN = new Bignumber(10)\nexports.TWO = new Bignumber(2)\n\nexports.PARENT = {\n ARRAY: 0,\n OBJECT: 1,\n MAP: 2,\n TAG: 3,\n BYTE_STRING: 4,\n UTF8_STRING: 5\n}\n","/* eslint-disable */\n\nmodule.exports = function decodeAsm (stdlib, foreign, buffer) {\n 'use asm'\n\n // -- Imports\n\n var heap = new stdlib.Uint8Array(buffer)\n // var log = foreign.log\n var pushInt = foreign.pushInt\n var pushInt32 = foreign.pushInt32\n var pushInt32Neg = foreign.pushInt32Neg\n var pushInt64 = foreign.pushInt64\n var pushInt64Neg = foreign.pushInt64Neg\n var pushFloat = foreign.pushFloat\n var pushFloatSingle = foreign.pushFloatSingle\n var pushFloatDouble = foreign.pushFloatDouble\n var pushTrue = foreign.pushTrue\n var pushFalse = foreign.pushFalse\n var pushUndefined = foreign.pushUndefined\n var pushNull = foreign.pushNull\n var pushInfinity = foreign.pushInfinity\n var pushInfinityNeg = foreign.pushInfinityNeg\n var pushNaN = foreign.pushNaN\n var pushNaNNeg = foreign.pushNaNNeg\n\n var pushArrayStart = foreign.pushArrayStart\n var pushArrayStartFixed = foreign.pushArrayStartFixed\n var pushArrayStartFixed32 = foreign.pushArrayStartFixed32\n var pushArrayStartFixed64 = foreign.pushArrayStartFixed64\n var pushObjectStart = foreign.pushObjectStart\n var pushObjectStartFixed = foreign.pushObjectStartFixed\n var pushObjectStartFixed32 = foreign.pushObjectStartFixed32\n var pushObjectStartFixed64 = foreign.pushObjectStartFixed64\n\n var pushByteString = foreign.pushByteString\n var pushByteStringStart = foreign.pushByteStringStart\n var pushUtf8String = foreign.pushUtf8String\n var pushUtf8StringStart = foreign.pushUtf8StringStart\n\n var pushSimpleUnassigned = foreign.pushSimpleUnassigned\n\n var pushTagStart = foreign.pushTagStart\n var pushTagStart4 = foreign.pushTagStart4\n var pushTagStart8 = foreign.pushTagStart8\n var pushTagUnassigned = foreign.pushTagUnassigned\n\n var pushBreak = foreign.pushBreak\n\n var pow = stdlib.Math.pow\n\n // -- Constants\n\n\n // -- Mutable Variables\n\n var offset = 0\n var inputLength = 0\n var code = 0\n\n // Decode a cbor string represented as Uint8Array\n // which is allocated on the heap from 0 to inputLength\n //\n // input - Int\n //\n // Returns Code - Int,\n // Success = 0\n // Error > 0\n function parse (input) {\n input = input | 0\n\n offset = 0\n inputLength = input\n\n while ((offset | 0) < (inputLength | 0)) {\n code = jumpTable[heap[offset] & 255](heap[offset] | 0) | 0\n\n if ((code | 0) > 0) {\n break\n }\n }\n\n return code | 0\n }\n\n // -- Helper Function\n\n function checkOffset (n) {\n n = n | 0\n\n if ((((offset | 0) + (n | 0)) | 0) < (inputLength | 0)) {\n return 0\n }\n\n return 1\n }\n\n function readUInt16 (n) {\n n = n | 0\n\n return (\n (heap[n | 0] << 8) | heap[(n + 1) | 0]\n ) | 0\n }\n\n function readUInt32 (n) {\n n = n | 0\n\n return (\n (heap[n | 0] << 24) | (heap[(n + 1) | 0] << 16) | (heap[(n + 2) | 0] << 8) | heap[(n + 3) | 0]\n ) | 0\n }\n\n // -- Initial Byte Handlers\n\n function INT_P (octet) {\n octet = octet | 0\n\n pushInt(octet | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function UINT_P_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushInt(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function UINT_P_16 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushInt(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function UINT_P_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushInt32(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function UINT_P_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushInt64(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function INT_N (octet) {\n octet = octet | 0\n\n pushInt((-1 - ((octet - 32) | 0)) | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function UINT_N_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushInt(\n (-1 - (heap[(offset + 1) | 0] | 0)) | 0\n )\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function UINT_N_16 (octet) {\n octet = octet | 0\n\n var val = 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n val = readUInt16((offset + 1) | 0) | 0\n pushInt((-1 - (val | 0)) | 0)\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function UINT_N_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushInt32Neg(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function UINT_N_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushInt64Neg(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function BYTE_STRING (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var step = 0\n\n step = (octet - 64) | 0\n if (checkOffset(step | 0) | 0) {\n return 1\n }\n\n start = (offset + 1) | 0\n end = (((offset + 1) | 0) + (step | 0)) | 0\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_8 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n length = heap[(offset + 1) | 0] | 0\n start = (offset + 2) | 0\n end = (((offset + 2) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 1) | 0) | 0) {\n return 1\n }\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_16 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n length = readUInt16((offset + 1) | 0) | 0\n start = (offset + 3) | 0\n end = (((offset + 3) | 0) + (length | 0)) | 0\n\n\n if (checkOffset((length + 2) | 0) | 0) {\n return 1\n }\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_32 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n length = readUInt32((offset + 1) | 0) | 0\n start = (offset + 5) | 0\n end = (((offset + 5) | 0) + (length | 0)) | 0\n\n\n if (checkOffset((length + 4) | 0) | 0) {\n return 1\n }\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_64 (octet) {\n // NOT IMPLEMENTED\n octet = octet | 0\n\n return 1\n }\n\n function BYTE_STRING_BREAK (octet) {\n octet = octet | 0\n\n pushByteStringStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function UTF8_STRING (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var step = 0\n\n step = (octet - 96) | 0\n\n if (checkOffset(step | 0) | 0) {\n return 1\n }\n\n start = (offset + 1) | 0\n end = (((offset + 1) | 0) + (step | 0)) | 0\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_8 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n length = heap[(offset + 1) | 0] | 0\n start = (offset + 2) | 0\n end = (((offset + 2) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 1) | 0) | 0) {\n return 1\n }\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_16 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n length = readUInt16((offset + 1) | 0) | 0\n start = (offset + 3) | 0\n end = (((offset + 3) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 2) | 0) | 0) {\n return 1\n }\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_32 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n length = readUInt32((offset + 1) | 0) | 0\n start = (offset + 5) | 0\n end = (((offset + 5) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 4) | 0) | 0) {\n return 1\n }\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_64 (octet) {\n // NOT IMPLEMENTED\n octet = octet | 0\n\n return 1\n }\n\n function UTF8_STRING_BREAK (octet) {\n octet = octet | 0\n\n pushUtf8StringStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function ARRAY (octet) {\n octet = octet | 0\n\n pushArrayStartFixed((octet - 128) | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function ARRAY_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushArrayStartFixed(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function ARRAY_16 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushArrayStartFixed(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function ARRAY_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushArrayStartFixed32(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function ARRAY_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushArrayStartFixed64(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function ARRAY_BREAK (octet) {\n octet = octet | 0\n\n pushArrayStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function MAP (octet) {\n octet = octet | 0\n\n var step = 0\n\n step = (octet - 160) | 0\n\n if (checkOffset(step | 0) | 0) {\n return 1\n }\n\n pushObjectStartFixed(step | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function MAP_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushObjectStartFixed(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function MAP_16 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushObjectStartFixed(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function MAP_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushObjectStartFixed32(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function MAP_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushObjectStartFixed64(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function MAP_BREAK (octet) {\n octet = octet | 0\n\n pushObjectStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function TAG_KNOWN (octet) {\n octet = octet | 0\n\n pushTagStart((octet - 192| 0) | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BIGNUM_POS (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BIGNUM_NEG (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_FRAC (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BIGNUM_FLOAT (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_UNASSIGNED (octet) {\n octet = octet | 0\n\n pushTagStart((octet - 192| 0) | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BASE64_URL (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BASE64 (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BASE16 (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_MORE_1 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushTagStart(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2 | 0)\n\n return 0\n }\n\n function TAG_MORE_2 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushTagStart(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3 | 0)\n\n return 0\n }\n\n function TAG_MORE_4 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushTagStart4(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5 | 0)\n\n return 0\n }\n\n function TAG_MORE_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushTagStart8(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9 | 0)\n\n return 0\n }\n\n function SIMPLE_UNASSIGNED (octet) {\n octet = octet | 0\n\n pushSimpleUnassigned(((octet | 0) - 224) | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_FALSE (octet) {\n octet = octet | 0\n\n pushFalse()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_TRUE (octet) {\n octet = octet | 0\n\n pushTrue()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_NULL (octet) {\n octet = octet | 0\n\n pushNull()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_UNDEFINED (octet) {\n octet = octet | 0\n\n pushUndefined()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_BYTE (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushSimpleUnassigned(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function SIMPLE_FLOAT_HALF (octet) {\n octet = octet | 0\n\n var f = 0\n var g = 0\n var sign = 1.0\n var exp = 0.0\n var mant = 0.0\n var r = 0.0\n if (checkOffset(2) | 0) {\n return 1\n }\n\n f = heap[(offset + 1) | 0] | 0\n g = heap[(offset + 2) | 0] | 0\n\n if ((f | 0) & 0x80) {\n sign = -1.0\n }\n\n exp = +(((f | 0) & 0x7C) >> 2)\n mant = +((((f | 0) & 0x03) << 8) | g)\n\n if (+exp == 0.0) {\n pushFloat(+(\n (+sign) * +5.9604644775390625e-8 * (+mant)\n ))\n } else if (+exp == 31.0) {\n if (+sign == 1.0) {\n if (+mant > 0.0) {\n pushNaN()\n } else {\n pushInfinity()\n }\n } else {\n if (+mant > 0.0) {\n pushNaNNeg()\n } else {\n pushInfinityNeg()\n }\n }\n } else {\n pushFloat(+(\n +sign * pow(+2, +(+exp - 25.0)) * +(1024.0 + mant)\n ))\n }\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function SIMPLE_FLOAT_SINGLE (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushFloatSingle(\n heap[(offset + 1) | 0] | 0,\n heap[(offset + 2) | 0] | 0,\n heap[(offset + 3) | 0] | 0,\n heap[(offset + 4) | 0] | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function SIMPLE_FLOAT_DOUBLE (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushFloatDouble(\n heap[(offset + 1) | 0] | 0,\n heap[(offset + 2) | 0] | 0,\n heap[(offset + 3) | 0] | 0,\n heap[(offset + 4) | 0] | 0,\n heap[(offset + 5) | 0] | 0,\n heap[(offset + 6) | 0] | 0,\n heap[(offset + 7) | 0] | 0,\n heap[(offset + 8) | 0] | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function ERROR (octet) {\n octet = octet | 0\n\n return 1\n }\n\n function BREAK (octet) {\n octet = octet | 0\n\n pushBreak()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n // -- Jump Table\n\n var jumpTable = [\n // Integer 0x00..0x17 (0..23)\n INT_P, // 0x00\n INT_P, // 0x01\n INT_P, // 0x02\n INT_P, // 0x03\n INT_P, // 0x04\n INT_P, // 0x05\n INT_P, // 0x06\n INT_P, // 0x07\n INT_P, // 0x08\n INT_P, // 0x09\n INT_P, // 0x0A\n INT_P, // 0x0B\n INT_P, // 0x0C\n INT_P, // 0x0D\n INT_P, // 0x0E\n INT_P, // 0x0F\n INT_P, // 0x10\n INT_P, // 0x11\n INT_P, // 0x12\n INT_P, // 0x13\n INT_P, // 0x14\n INT_P, // 0x15\n INT_P, // 0x16\n INT_P, // 0x17\n // Unsigned integer (one-byte uint8_t follows)\n UINT_P_8, // 0x18\n // Unsigned integer (two-byte uint16_t follows)\n UINT_P_16, // 0x19\n // Unsigned integer (four-byte uint32_t follows)\n UINT_P_32, // 0x1a\n // Unsigned integer (eight-byte uint64_t follows)\n UINT_P_64, // 0x1b\n ERROR, // 0x1c\n ERROR, // 0x1d\n ERROR, // 0x1e\n ERROR, // 0x1f\n // Negative integer -1-0x00..-1-0x17 (-1..-24)\n INT_N, // 0x20\n INT_N, // 0x21\n INT_N, // 0x22\n INT_N, // 0x23\n INT_N, // 0x24\n INT_N, // 0x25\n INT_N, // 0x26\n INT_N, // 0x27\n INT_N, // 0x28\n INT_N, // 0x29\n INT_N, // 0x2A\n INT_N, // 0x2B\n INT_N, // 0x2C\n INT_N, // 0x2D\n INT_N, // 0x2E\n INT_N, // 0x2F\n INT_N, // 0x30\n INT_N, // 0x31\n INT_N, // 0x32\n INT_N, // 0x33\n INT_N, // 0x34\n INT_N, // 0x35\n INT_N, // 0x36\n INT_N, // 0x37\n // Negative integer -1-n (one-byte uint8_t for n follows)\n UINT_N_8, // 0x38\n // Negative integer -1-n (two-byte uint16_t for n follows)\n UINT_N_16, // 0x39\n // Negative integer -1-n (four-byte uint32_t for nfollows)\n UINT_N_32, // 0x3a\n // Negative integer -1-n (eight-byte uint64_t for n follows)\n UINT_N_64, // 0x3b\n ERROR, // 0x3c\n ERROR, // 0x3d\n ERROR, // 0x3e\n ERROR, // 0x3f\n // byte string (0x00..0x17 bytes follow)\n BYTE_STRING, // 0x40\n BYTE_STRING, // 0x41\n BYTE_STRING, // 0x42\n BYTE_STRING, // 0x43\n BYTE_STRING, // 0x44\n BYTE_STRING, // 0x45\n BYTE_STRING, // 0x46\n BYTE_STRING, // 0x47\n BYTE_STRING, // 0x48\n BYTE_STRING, // 0x49\n BYTE_STRING, // 0x4A\n BYTE_STRING, // 0x4B\n BYTE_STRING, // 0x4C\n BYTE_STRING, // 0x4D\n BYTE_STRING, // 0x4E\n BYTE_STRING, // 0x4F\n BYTE_STRING, // 0x50\n BYTE_STRING, // 0x51\n BYTE_STRING, // 0x52\n BYTE_STRING, // 0x53\n BYTE_STRING, // 0x54\n BYTE_STRING, // 0x55\n BYTE_STRING, // 0x56\n BYTE_STRING, // 0x57\n // byte string (one-byte uint8_t for n, and then n bytes follow)\n BYTE_STRING_8, // 0x58\n // byte string (two-byte uint16_t for n, and then n bytes follow)\n BYTE_STRING_16, // 0x59\n // byte string (four-byte uint32_t for n, and then n bytes follow)\n BYTE_STRING_32, // 0x5a\n // byte string (eight-byte uint64_t for n, and then n bytes follow)\n BYTE_STRING_64, // 0x5b\n ERROR, // 0x5c\n ERROR, // 0x5d\n ERROR, // 0x5e\n // byte string, byte strings follow, terminated by \"break\"\n BYTE_STRING_BREAK, // 0x5f\n // UTF-8 string (0x00..0x17 bytes follow)\n UTF8_STRING, // 0x60\n UTF8_STRING, // 0x61\n UTF8_STRING, // 0x62\n UTF8_STRING, // 0x63\n UTF8_STRING, // 0x64\n UTF8_STRING, // 0x65\n UTF8_STRING, // 0x66\n UTF8_STRING, // 0x67\n UTF8_STRING, // 0x68\n UTF8_STRING, // 0x69\n UTF8_STRING, // 0x6A\n UTF8_STRING, // 0x6B\n UTF8_STRING, // 0x6C\n UTF8_STRING, // 0x6D\n UTF8_STRING, // 0x6E\n UTF8_STRING, // 0x6F\n UTF8_STRING, // 0x70\n UTF8_STRING, // 0x71\n UTF8_STRING, // 0x72\n UTF8_STRING, // 0x73\n UTF8_STRING, // 0x74\n UTF8_STRING, // 0x75\n UTF8_STRING, // 0x76\n UTF8_STRING, // 0x77\n // UTF-8 string (one-byte uint8_t for n, and then n bytes follow)\n UTF8_STRING_8, // 0x78\n // UTF-8 string (two-byte uint16_t for n, and then n bytes follow)\n UTF8_STRING_16, // 0x79\n // UTF-8 string (four-byte uint32_t for n, and then n bytes follow)\n UTF8_STRING_32, // 0x7a\n // UTF-8 string (eight-byte uint64_t for n, and then n bytes follow)\n UTF8_STRING_64, // 0x7b\n // UTF-8 string, UTF-8 strings follow, terminated by \"break\"\n ERROR, // 0x7c\n ERROR, // 0x7d\n ERROR, // 0x7e\n UTF8_STRING_BREAK, // 0x7f\n // array (0x00..0x17 data items follow)\n ARRAY, // 0x80\n ARRAY, // 0x81\n ARRAY, // 0x82\n ARRAY, // 0x83\n ARRAY, // 0x84\n ARRAY, // 0x85\n ARRAY, // 0x86\n ARRAY, // 0x87\n ARRAY, // 0x88\n ARRAY, // 0x89\n ARRAY, // 0x8A\n ARRAY, // 0x8B\n ARRAY, // 0x8C\n ARRAY, // 0x8D\n ARRAY, // 0x8E\n ARRAY, // 0x8F\n ARRAY, // 0x90\n ARRAY, // 0x91\n ARRAY, // 0x92\n ARRAY, // 0x93\n ARRAY, // 0x94\n ARRAY, // 0x95\n ARRAY, // 0x96\n ARRAY, // 0x97\n // array (one-byte uint8_t fo, and then n data items follow)\n ARRAY_8, // 0x98\n // array (two-byte uint16_t for n, and then n data items follow)\n ARRAY_16, // 0x99\n // array (four-byte uint32_t for n, and then n data items follow)\n ARRAY_32, // 0x9a\n // array (eight-byte uint64_t for n, and then n data items follow)\n ARRAY_64, // 0x9b\n // array, data items follow, terminated by \"break\"\n ERROR, // 0x9c\n ERROR, // 0x9d\n ERROR, // 0x9e\n ARRAY_BREAK, // 0x9f\n // map (0x00..0x17 pairs of data items follow)\n MAP, // 0xa0\n MAP, // 0xa1\n MAP, // 0xa2\n MAP, // 0xa3\n MAP, // 0xa4\n MAP, // 0xa5\n MAP, // 0xa6\n MAP, // 0xa7\n MAP, // 0xa8\n MAP, // 0xa9\n MAP, // 0xaA\n MAP, // 0xaB\n MAP, // 0xaC\n MAP, // 0xaD\n MAP, // 0xaE\n MAP, // 0xaF\n MAP, // 0xb0\n MAP, // 0xb1\n MAP, // 0xb2\n MAP, // 0xb3\n MAP, // 0xb4\n MAP, // 0xb5\n MAP, // 0xb6\n MAP, // 0xb7\n // map (one-byte uint8_t for n, and then n pairs of data items follow)\n MAP_8, // 0xb8\n // map (two-byte uint16_t for n, and then n pairs of data items follow)\n MAP_16, // 0xb9\n // map (four-byte uint32_t for n, and then n pairs of data items follow)\n MAP_32, // 0xba\n // map (eight-byte uint64_t for n, and then n pairs of data items follow)\n MAP_64, // 0xbb\n ERROR, // 0xbc\n ERROR, // 0xbd\n ERROR, // 0xbe\n // map, pairs of data items follow, terminated by \"break\"\n MAP_BREAK, // 0xbf\n // Text-based date/time (data item follows; see Section 2.4.1)\n TAG_KNOWN, // 0xc0\n // Epoch-based date/time (data item follows; see Section 2.4.1)\n TAG_KNOWN, // 0xc1\n // Positive bignum (data item \"byte string\" follows)\n TAG_KNOWN, // 0xc2\n // Negative bignum (data item \"byte string\" follows)\n TAG_KNOWN, // 0xc3\n // Decimal Fraction (data item \"array\" follows; see Section 2.4.3)\n TAG_KNOWN, // 0xc4\n // Bigfloat (data item \"array\" follows; see Section 2.4.3)\n TAG_KNOWN, // 0xc5\n // (tagged item)\n TAG_UNASSIGNED, // 0xc6\n TAG_UNASSIGNED, // 0xc7\n TAG_UNASSIGNED, // 0xc8\n TAG_UNASSIGNED, // 0xc9\n TAG_UNASSIGNED, // 0xca\n TAG_UNASSIGNED, // 0xcb\n TAG_UNASSIGNED, // 0xcc\n TAG_UNASSIGNED, // 0xcd\n TAG_UNASSIGNED, // 0xce\n TAG_UNASSIGNED, // 0xcf\n TAG_UNASSIGNED, // 0xd0\n TAG_UNASSIGNED, // 0xd1\n TAG_UNASSIGNED, // 0xd2\n TAG_UNASSIGNED, // 0xd3\n TAG_UNASSIGNED, // 0xd4\n // Expected Conversion (data item follows; see Section 2.4.4.2)\n TAG_UNASSIGNED, // 0xd5\n TAG_UNASSIGNED, // 0xd6\n TAG_UNASSIGNED, // 0xd7\n // (more tagged items, 1/2/4/8 bytes and then a data item follow)\n TAG_MORE_1, // 0xd8\n TAG_MORE_2, // 0xd9\n TAG_MORE_4, // 0xda\n TAG_MORE_8, // 0xdb\n ERROR, // 0xdc\n ERROR, // 0xdd\n ERROR, // 0xde\n ERROR, // 0xdf\n // (simple value)\n SIMPLE_UNASSIGNED, // 0xe0\n SIMPLE_UNASSIGNED, // 0xe1\n SIMPLE_UNASSIGNED, // 0xe2\n SIMPLE_UNASSIGNED, // 0xe3\n SIMPLE_UNASSIGNED, // 0xe4\n SIMPLE_UNASSIGNED, // 0xe5\n SIMPLE_UNASSIGNED, // 0xe6\n SIMPLE_UNASSIGNED, // 0xe7\n SIMPLE_UNASSIGNED, // 0xe8\n SIMPLE_UNASSIGNED, // 0xe9\n SIMPLE_UNASSIGNED, // 0xea\n SIMPLE_UNASSIGNED, // 0xeb\n SIMPLE_UNASSIGNED, // 0xec\n SIMPLE_UNASSIGNED, // 0xed\n SIMPLE_UNASSIGNED, // 0xee\n SIMPLE_UNASSIGNED, // 0xef\n SIMPLE_UNASSIGNED, // 0xf0\n SIMPLE_UNASSIGNED, // 0xf1\n SIMPLE_UNASSIGNED, // 0xf2\n SIMPLE_UNASSIGNED, // 0xf3\n // False\n SIMPLE_FALSE, // 0xf4\n // True\n SIMPLE_TRUE, // 0xf5\n // Null\n SIMPLE_NULL, // 0xf6\n // Undefined\n SIMPLE_UNDEFINED, // 0xf7\n // (simple value, one byte follows)\n SIMPLE_BYTE, // 0xf8\n // Half-Precision Float (two-byte IEEE 754)\n SIMPLE_FLOAT_HALF, // 0xf9\n // Single-Precision Float (four-byte IEEE 754)\n SIMPLE_FLOAT_SINGLE, // 0xfa\n // Double-Precision Float (eight-byte IEEE 754)\n SIMPLE_FLOAT_DOUBLE, // 0xfb\n ERROR, // 0xfc\n ERROR, // 0xfd\n ERROR, // 0xfe\n // \"break\" stop code\n BREAK // 0xff\n ]\n\n // --\n\n return {\n parse: parse\n }\n}\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst ieee754 = require('ieee754')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst parser = require('./decoder.asm')\nconst utils = require('./utils')\nconst c = require('./constants')\nconst Simple = require('./simple')\nconst Tagged = require('./tagged')\nconst { URL } = require('iso-url')\n\n/**\n * Transform binary cbor data into JavaScript objects.\n */\nclass Decoder {\n /**\n * @param {Object} [opts={}]\n * @param {number} [opts.size=65536] - Size of the allocated heap.\n */\n constructor (opts) {\n opts = opts || {}\n\n if (!opts.size || opts.size < 0x10000) {\n opts.size = 0x10000\n } else {\n // Ensure the size is a power of 2\n opts.size = utils.nextPowerOf2(opts.size)\n }\n\n // Heap use to share the input with the parser\n this._heap = new ArrayBuffer(opts.size)\n this._heap8 = new Uint8Array(this._heap)\n this._buffer = Buffer.from(this._heap)\n\n this._reset()\n\n // Known tags\n this._knownTags = Object.assign({\n 0: (val) => new Date(val),\n 1: (val) => new Date(val * 1000),\n 2: (val) => utils.arrayBufferToBignumber(val),\n 3: (val) => c.NEG_ONE.minus(utils.arrayBufferToBignumber(val)),\n 4: (v) => {\n // const v = new Uint8Array(val)\n return c.TEN.pow(v[0]).times(v[1])\n },\n 5: (v) => {\n // const v = new Uint8Array(val)\n return c.TWO.pow(v[0]).times(v[1])\n },\n 32: (val) => new URL(val),\n 35: (val) => new RegExp(val)\n }, opts.tags)\n\n // Initialize asm based parser\n this.parser = parser(global, {\n // eslint-disable-next-line no-console\n log: console.log.bind(console),\n pushInt: this.pushInt.bind(this),\n pushInt32: this.pushInt32.bind(this),\n pushInt32Neg: this.pushInt32Neg.bind(this),\n pushInt64: this.pushInt64.bind(this),\n pushInt64Neg: this.pushInt64Neg.bind(this),\n pushFloat: this.pushFloat.bind(this),\n pushFloatSingle: this.pushFloatSingle.bind(this),\n pushFloatDouble: this.pushFloatDouble.bind(this),\n pushTrue: this.pushTrue.bind(this),\n pushFalse: this.pushFalse.bind(this),\n pushUndefined: this.pushUndefined.bind(this),\n pushNull: this.pushNull.bind(this),\n pushInfinity: this.pushInfinity.bind(this),\n pushInfinityNeg: this.pushInfinityNeg.bind(this),\n pushNaN: this.pushNaN.bind(this),\n pushNaNNeg: this.pushNaNNeg.bind(this),\n pushArrayStart: this.pushArrayStart.bind(this),\n pushArrayStartFixed: this.pushArrayStartFixed.bind(this),\n pushArrayStartFixed32: this.pushArrayStartFixed32.bind(this),\n pushArrayStartFixed64: this.pushArrayStartFixed64.bind(this),\n pushObjectStart: this.pushObjectStart.bind(this),\n pushObjectStartFixed: this.pushObjectStartFixed.bind(this),\n pushObjectStartFixed32: this.pushObjectStartFixed32.bind(this),\n pushObjectStartFixed64: this.pushObjectStartFixed64.bind(this),\n pushByteString: this.pushByteString.bind(this),\n pushByteStringStart: this.pushByteStringStart.bind(this),\n pushUtf8String: this.pushUtf8String.bind(this),\n pushUtf8StringStart: this.pushUtf8StringStart.bind(this),\n pushSimpleUnassigned: this.pushSimpleUnassigned.bind(this),\n pushTagUnassigned: this.pushTagUnassigned.bind(this),\n pushTagStart: this.pushTagStart.bind(this),\n pushTagStart4: this.pushTagStart4.bind(this),\n pushTagStart8: this.pushTagStart8.bind(this),\n pushBreak: this.pushBreak.bind(this)\n }, this._heap)\n }\n\n get _depth () {\n return this._parents.length\n }\n\n get _currentParent () {\n return this._parents[this._depth - 1]\n }\n\n get _ref () {\n return this._currentParent.ref\n }\n\n // Finish the current parent\n _closeParent () {\n var p = this._parents.pop()\n\n if (p.length > 0) {\n throw new Error(`Missing ${p.length} elements`)\n }\n\n switch (p.type) {\n case c.PARENT.TAG:\n this._push(\n this.createTag(p.ref[0], p.ref[1])\n )\n break\n case c.PARENT.BYTE_STRING:\n this._push(this.createByteString(p.ref, p.length))\n break\n case c.PARENT.UTF8_STRING:\n this._push(this.createUtf8String(p.ref, p.length))\n break\n case c.PARENT.MAP:\n if (p.values % 2 > 0) {\n throw new Error('Odd number of elements in the map')\n }\n this._push(this.createMap(p.ref, p.length))\n break\n case c.PARENT.OBJECT:\n if (p.values % 2 > 0) {\n throw new Error('Odd number of elements in the map')\n }\n this._push(this.createObject(p.ref, p.length))\n break\n case c.PARENT.ARRAY:\n this._push(this.createArray(p.ref, p.length))\n break\n default:\n break\n }\n\n if (this._currentParent && this._currentParent.type === c.PARENT.TAG) {\n this._dec()\n }\n }\n\n // Reduce the expected length of the current parent by one\n _dec () {\n const p = this._currentParent\n // The current parent does not know the epxected child length\n\n if (p.length < 0) {\n return\n }\n\n p.length--\n\n // All children were seen, we can close the current parent\n if (p.length === 0) {\n this._closeParent()\n }\n }\n\n // Push any value to the current parent\n _push (val, hasChildren) {\n const p = this._currentParent\n p.values++\n\n switch (p.type) {\n case c.PARENT.ARRAY:\n case c.PARENT.BYTE_STRING:\n case c.PARENT.UTF8_STRING:\n if (p.length > -1) {\n this._ref[this._ref.length - p.length] = val\n } else {\n this._ref.push(val)\n }\n this._dec()\n break\n case c.PARENT.OBJECT:\n if (p.tmpKey != null) {\n this._ref[p.tmpKey] = val\n p.tmpKey = null\n this._dec()\n } else {\n p.tmpKey = val\n\n if (typeof p.tmpKey !== 'string') {\n // too bad, convert to a Map\n p.type = c.PARENT.MAP\n p.ref = utils.buildMap(p.ref)\n }\n }\n break\n case c.PARENT.MAP:\n if (p.tmpKey != null) {\n this._ref.set(p.tmpKey, val)\n p.tmpKey = null\n this._dec()\n } else {\n p.tmpKey = val\n }\n break\n case c.PARENT.TAG:\n this._ref.push(val)\n if (!hasChildren) {\n this._dec()\n }\n break\n default:\n throw new Error('Unknown parent type')\n }\n }\n\n // Create a new parent in the parents list\n _createParent (obj, type, len) {\n this._parents[this._depth] = {\n type: type,\n length: len,\n ref: obj,\n values: 0,\n tmpKey: null\n }\n }\n\n // Reset all state back to the beginning, also used for initiatlization\n _reset () {\n this._res = []\n this._parents = [{\n type: c.PARENT.ARRAY,\n length: -1,\n ref: this._res,\n values: 0,\n tmpKey: null\n }]\n }\n\n // -- Interface to customize deoding behaviour\n createTag (tagNumber, value) {\n const typ = this._knownTags[tagNumber]\n\n if (!typ) {\n return new Tagged(tagNumber, value)\n }\n\n return typ(value)\n }\n\n createMap (obj, len) {\n return obj\n }\n\n createObject (obj, len) {\n return obj\n }\n\n createArray (arr, len) {\n return arr\n }\n\n createByteString (raw, len) {\n return Buffer.concat(raw)\n }\n\n createByteStringFromHeap (start, end) {\n if (start === end) {\n return Buffer.alloc(0)\n }\n\n return Buffer.from(this._heap.slice(start, end))\n }\n\n createInt (val) {\n return val\n }\n\n createInt32 (f, g) {\n return utils.buildInt32(f, g)\n }\n\n createInt64 (f1, f2, g1, g2) {\n return utils.buildInt64(f1, f2, g1, g2)\n }\n\n createFloat (val) {\n return val\n }\n\n createFloatSingle (a, b, c, d) {\n return ieee754.read([a, b, c, d], 0, false, 23, 4)\n }\n\n createFloatDouble (a, b, c, d, e, f, g, h) {\n return ieee754.read([a, b, c, d, e, f, g, h], 0, false, 52, 8)\n }\n\n createInt32Neg (f, g) {\n return -1 - utils.buildInt32(f, g)\n }\n\n createInt64Neg (f1, f2, g1, g2) {\n const f = utils.buildInt32(f1, f2)\n const g = utils.buildInt32(g1, g2)\n\n if (f > c.MAX_SAFE_HIGH) {\n return c.NEG_ONE.minus(new Bignumber(f).times(c.SHIFT32).plus(g))\n }\n\n return -1 - ((f * c.SHIFT32) + g)\n }\n\n createTrue () {\n return true\n }\n\n createFalse () {\n return false\n }\n\n createNull () {\n return null\n }\n\n createUndefined () {\n return undefined\n }\n\n createInfinity () {\n return Infinity\n }\n\n createInfinityNeg () {\n return -Infinity\n }\n\n createNaN () {\n return NaN\n }\n\n createNaNNeg () {\n return -NaN\n }\n\n createUtf8String (raw, len) {\n return raw.join('')\n }\n\n createUtf8StringFromHeap (start, end) {\n if (start === end) {\n return ''\n }\n\n return this._buffer.toString('utf8', start, end)\n }\n\n createSimpleUnassigned (val) {\n return new Simple(val)\n }\n\n // -- Interface for decoder.asm.js\n\n pushInt (val) {\n this._push(this.createInt(val))\n }\n\n pushInt32 (f, g) {\n this._push(this.createInt32(f, g))\n }\n\n pushInt64 (f1, f2, g1, g2) {\n this._push(this.createInt64(f1, f2, g1, g2))\n }\n\n pushFloat (val) {\n this._push(this.createFloat(val))\n }\n\n pushFloatSingle (a, b, c, d) {\n this._push(this.createFloatSingle(a, b, c, d))\n }\n\n pushFloatDouble (a, b, c, d, e, f, g, h) {\n this._push(this.createFloatDouble(a, b, c, d, e, f, g, h))\n }\n\n pushInt32Neg (f, g) {\n this._push(this.createInt32Neg(f, g))\n }\n\n pushInt64Neg (f1, f2, g1, g2) {\n this._push(this.createInt64Neg(f1, f2, g1, g2))\n }\n\n pushTrue () {\n this._push(this.createTrue())\n }\n\n pushFalse () {\n this._push(this.createFalse())\n }\n\n pushNull () {\n this._push(this.createNull())\n }\n\n pushUndefined () {\n this._push(this.createUndefined())\n }\n\n pushInfinity () {\n this._push(this.createInfinity())\n }\n\n pushInfinityNeg () {\n this._push(this.createInfinityNeg())\n }\n\n pushNaN () {\n this._push(this.createNaN())\n }\n\n pushNaNNeg () {\n this._push(this.createNaNNeg())\n }\n\n pushArrayStart () {\n this._createParent([], c.PARENT.ARRAY, -1)\n }\n\n pushArrayStartFixed (len) {\n this._createArrayStartFixed(len)\n }\n\n pushArrayStartFixed32 (len1, len2) {\n const len = utils.buildInt32(len1, len2)\n this._createArrayStartFixed(len)\n }\n\n pushArrayStartFixed64 (len1, len2, len3, len4) {\n const len = utils.buildInt64(len1, len2, len3, len4)\n this._createArrayStartFixed(len)\n }\n\n pushObjectStart () {\n this._createObjectStartFixed(-1)\n }\n\n pushObjectStartFixed (len) {\n this._createObjectStartFixed(len)\n }\n\n pushObjectStartFixed32 (len1, len2) {\n const len = utils.buildInt32(len1, len2)\n this._createObjectStartFixed(len)\n }\n\n pushObjectStartFixed64 (len1, len2, len3, len4) {\n const len = utils.buildInt64(len1, len2, len3, len4)\n this._createObjectStartFixed(len)\n }\n\n pushByteStringStart () {\n this._parents[this._depth] = {\n type: c.PARENT.BYTE_STRING,\n length: -1,\n ref: [],\n values: 0,\n tmpKey: null\n }\n }\n\n pushByteString (start, end) {\n this._push(this.createByteStringFromHeap(start, end))\n }\n\n pushUtf8StringStart () {\n this._parents[this._depth] = {\n type: c.PARENT.UTF8_STRING,\n length: -1,\n ref: [],\n values: 0,\n tmpKey: null\n }\n }\n\n pushUtf8String (start, end) {\n this._push(this.createUtf8StringFromHeap(start, end))\n }\n\n pushSimpleUnassigned (val) {\n this._push(this.createSimpleUnassigned(val))\n }\n\n pushTagStart (tag) {\n this._parents[this._depth] = {\n type: c.PARENT.TAG,\n length: 1,\n ref: [tag]\n }\n }\n\n pushTagStart4 (f, g) {\n this.pushTagStart(utils.buildInt32(f, g))\n }\n\n pushTagStart8 (f1, f2, g1, g2) {\n this.pushTagStart(utils.buildInt64(f1, f2, g1, g2))\n }\n\n pushTagUnassigned (tagNumber) {\n this._push(this.createTag(tagNumber))\n }\n\n pushBreak () {\n if (this._currentParent.length > -1) {\n throw new Error('Unexpected break')\n }\n\n this._closeParent()\n }\n\n _createObjectStartFixed (len) {\n if (len === 0) {\n this._push(this.createObject({}))\n return\n }\n\n this._createParent({}, c.PARENT.OBJECT, len)\n }\n\n _createArrayStartFixed (len) {\n if (len === 0) {\n this._push(this.createArray([]))\n return\n }\n\n this._createParent(new Array(len), c.PARENT.ARRAY, len)\n }\n\n _decode (input) {\n if (input.byteLength === 0) {\n throw new Error('Input too short')\n }\n\n this._reset()\n this._heap8.set(input)\n const code = this.parser.parse(input.byteLength)\n\n if (this._depth > 1) {\n while (this._currentParent.length === 0) {\n this._closeParent()\n }\n if (this._depth > 1) {\n throw new Error('Undeterminated nesting')\n }\n }\n\n if (code > 0) {\n throw new Error('Failed to parse')\n }\n\n if (this._res.length === 0) {\n throw new Error('No valid result')\n }\n }\n\n // -- Public Interface\n\n decodeFirst (input) {\n this._decode(input)\n\n return this._res[0]\n }\n\n decodeAll (input) {\n this._decode(input)\n\n return this._res\n }\n\n /**\n * Decode the first cbor object.\n *\n * @param {Buffer|string} input\n * @param {string} [enc='hex'] - Encoding used if a string is passed.\n * @returns {*}\n */\n static decode (input, enc) {\n if (typeof input === 'string') {\n input = Buffer.from(input, enc || 'hex')\n }\n\n const dec = new Decoder({ size: input.length })\n return dec.decodeFirst(input)\n }\n\n /**\n * Decode all cbor objects.\n *\n * @param {Buffer|string} input\n * @param {string} [enc='hex'] - Encoding used if a string is passed.\n * @returns {Array<*>}\n */\n static decodeAll (input, enc) {\n if (typeof input === 'string') {\n input = Buffer.from(input, enc || 'hex')\n }\n\n const dec = new Decoder({ size: input.length })\n return dec.decodeAll(input)\n }\n}\n\nDecoder.decodeFirst = Decoder.decode\n\nmodule.exports = Decoder\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst Decoder = require('./decoder')\nconst utils = require('./utils')\n\n/**\n * Output the diagnostic format from a stream of CBOR bytes.\n *\n */\nclass Diagnose extends Decoder {\n createTag (tagNumber, value) {\n return `${tagNumber}(${value})`\n }\n\n createInt (val) {\n return super.createInt(val).toString()\n }\n\n createInt32 (f, g) {\n return super.createInt32(f, g).toString()\n }\n\n createInt64 (f1, f2, g1, g2) {\n return super.createInt64(f1, f2, g1, g2).toString()\n }\n\n createInt32Neg (f, g) {\n return super.createInt32Neg(f, g).toString()\n }\n\n createInt64Neg (f1, f2, g1, g2) {\n return super.createInt64Neg(f1, f2, g1, g2).toString()\n }\n\n createTrue () {\n return 'true'\n }\n\n createFalse () {\n return 'false'\n }\n\n createFloat (val) {\n const fl = super.createFloat(val)\n if (utils.isNegativeZero(val)) {\n return '-0_1'\n }\n\n return `${fl}_1`\n }\n\n createFloatSingle (a, b, c, d) {\n const fl = super.createFloatSingle(a, b, c, d)\n return `${fl}_2`\n }\n\n createFloatDouble (a, b, c, d, e, f, g, h) {\n const fl = super.createFloatDouble(a, b, c, d, e, f, g, h)\n return `${fl}_3`\n }\n\n createByteString (raw, len) {\n const val = raw.join(', ')\n\n if (len === -1) {\n return `(_ ${val})`\n }\n return `h'${val}`\n }\n\n createByteStringFromHeap (start, end) {\n const val = (Buffer.from(\n super.createByteStringFromHeap(start, end)\n )).toString('hex')\n\n return `h'${val}'`\n }\n\n createInfinity () {\n return 'Infinity_1'\n }\n\n createInfinityNeg () {\n return '-Infinity_1'\n }\n\n createNaN () {\n return 'NaN_1'\n }\n\n createNaNNeg () {\n return '-NaN_1'\n }\n\n createNull () {\n return 'null'\n }\n\n createUndefined () {\n return 'undefined'\n }\n\n createSimpleUnassigned (val) {\n return `simple(${val})`\n }\n\n createArray (arr, len) {\n const val = super.createArray(arr, len)\n\n if (len === -1) {\n // indefinite\n return `[_ ${val.join(', ')}]`\n }\n\n return `[${val.join(', ')}]`\n }\n\n createMap (map, len) {\n const val = super.createMap(map)\n const list = Array.from(val.keys())\n .reduce(collectObject(val), '')\n\n if (len === -1) {\n return `{_ ${list}}`\n }\n\n return `{${list}}`\n }\n\n createObject (obj, len) {\n const val = super.createObject(obj)\n const map = Object.keys(val)\n .reduce(collectObject(val), '')\n\n if (len === -1) {\n return `{_ ${map}}`\n }\n\n return `{${map}}`\n }\n\n createUtf8String (raw, len) {\n const val = raw.join(', ')\n\n if (len === -1) {\n return `(_ ${val})`\n }\n\n return `\"${val}\"`\n }\n\n createUtf8StringFromHeap (start, end) {\n const val = (Buffer.from(\n super.createUtf8StringFromHeap(start, end)\n )).toString('utf8')\n\n return `\"${val}\"`\n }\n\n static diagnose (input, enc) {\n if (typeof input === 'string') {\n input = Buffer.from(input, enc || 'hex')\n }\n\n const dec = new Diagnose()\n return dec.decodeFirst(input)\n }\n}\n\nmodule.exports = Diagnose\n\nfunction collectObject (val) {\n return (acc, key) => {\n if (acc) {\n return `${acc}, ${key}: ${val[key]}`\n }\n return `${key}: ${val[key]}`\n }\n}\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst { URL } = require('iso-url')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst utils = require('./utils')\nconst constants = require('./constants')\nconst MT = constants.MT\nconst NUMBYTES = constants.NUMBYTES\nconst SHIFT32 = constants.SHIFT32\nconst SYMS = constants.SYMS\nconst TAG = constants.TAG\nconst HALF = (constants.MT.SIMPLE_FLOAT << 5) | constants.NUMBYTES.TWO\nconst FLOAT = (constants.MT.SIMPLE_FLOAT << 5) | constants.NUMBYTES.FOUR\nconst DOUBLE = (constants.MT.SIMPLE_FLOAT << 5) | constants.NUMBYTES.EIGHT\nconst TRUE = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.TRUE\nconst FALSE = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.FALSE\nconst UNDEFINED = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.UNDEFINED\nconst NULL = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.NULL\n\nconst MAXINT_BN = new Bignumber('0x20000000000000')\nconst BUF_NAN = Buffer.from('f97e00', 'hex')\nconst BUF_INF_NEG = Buffer.from('f9fc00', 'hex')\nconst BUF_INF_POS = Buffer.from('f97c00', 'hex')\n\nfunction toType (obj) {\n // [object Type]\n // --------8---1\n return ({}).toString.call(obj).slice(8, -1)\n}\n\n/**\n * Transform JavaScript values into CBOR bytes\n *\n */\nclass Encoder {\n /**\n * @param {Object} [options={}]\n * @param {function(Buffer)} options.stream\n */\n constructor (options) {\n options = options || {}\n\n this.streaming = typeof options.stream === 'function'\n this.onData = options.stream\n\n this.semanticTypes = [\n [URL, this._pushUrl],\n [Bignumber, this._pushBigNumber]\n ]\n\n const addTypes = options.genTypes || []\n const len = addTypes.length\n for (let i = 0; i < len; i++) {\n this.addSemanticType(\n addTypes[i][0],\n addTypes[i][1]\n )\n }\n\n this._reset()\n }\n\n addSemanticType (type, fun) {\n const len = this.semanticTypes.length\n for (let i = 0; i < len; i++) {\n const typ = this.semanticTypes[i][0]\n if (typ === type) {\n const old = this.semanticTypes[i][1]\n this.semanticTypes[i][1] = fun\n return old\n }\n }\n this.semanticTypes.push([type, fun])\n return null\n }\n\n push (val) {\n if (!val) {\n return true\n }\n\n this.result[this.offset] = val\n this.resultMethod[this.offset] = 0\n this.resultLength[this.offset] = val.length\n this.offset++\n\n if (this.streaming) {\n this.onData(this.finalize())\n }\n\n return true\n }\n\n pushWrite (val, method, len) {\n this.result[this.offset] = val\n this.resultMethod[this.offset] = method\n this.resultLength[this.offset] = len\n this.offset++\n\n if (this.streaming) {\n this.onData(this.finalize())\n }\n\n return true\n }\n\n _pushUInt8 (val) {\n return this.pushWrite(val, 1, 1)\n }\n\n _pushUInt16BE (val) {\n return this.pushWrite(val, 2, 2)\n }\n\n _pushUInt32BE (val) {\n return this.pushWrite(val, 3, 4)\n }\n\n _pushDoubleBE (val) {\n return this.pushWrite(val, 4, 8)\n }\n\n _pushNaN () {\n return this.push(BUF_NAN)\n }\n\n _pushInfinity (obj) {\n const half = (obj < 0) ? BUF_INF_NEG : BUF_INF_POS\n return this.push(half)\n }\n\n _pushFloat (obj) {\n const b2 = Buffer.allocUnsafe(2)\n\n if (utils.writeHalf(b2, obj)) {\n if (utils.parseHalf(b2) === obj) {\n return this._pushUInt8(HALF) && this.push(b2)\n }\n }\n\n const b4 = Buffer.allocUnsafe(4)\n b4.writeFloatBE(obj, 0)\n if (b4.readFloatBE(0) === obj) {\n return this._pushUInt8(FLOAT) && this.push(b4)\n }\n\n return this._pushUInt8(DOUBLE) && this._pushDoubleBE(obj)\n }\n\n _pushInt (obj, mt, orig) {\n const m = mt << 5\n if (obj < 24) {\n return this._pushUInt8(m | obj)\n }\n\n if (obj <= 0xff) {\n return this._pushUInt8(m | NUMBYTES.ONE) && this._pushUInt8(obj)\n }\n\n if (obj <= 0xffff) {\n return this._pushUInt8(m | NUMBYTES.TWO) && this._pushUInt16BE(obj)\n }\n\n if (obj <= 0xffffffff) {\n return this._pushUInt8(m | NUMBYTES.FOUR) && this._pushUInt32BE(obj)\n }\n\n if (obj <= Number.MAX_SAFE_INTEGER) {\n return this._pushUInt8(m | NUMBYTES.EIGHT) &&\n this._pushUInt32BE(Math.floor(obj / SHIFT32)) &&\n this._pushUInt32BE(obj % SHIFT32)\n }\n\n if (mt === MT.NEG_INT) {\n return this._pushFloat(orig)\n }\n\n return this._pushFloat(obj)\n }\n\n _pushIntNum (obj) {\n if (obj < 0) {\n return this._pushInt(-obj - 1, MT.NEG_INT, obj)\n } else {\n return this._pushInt(obj, MT.POS_INT)\n }\n }\n\n _pushNumber (obj) {\n switch (false) {\n case (obj === obj): // eslint-disable-line\n return this._pushNaN(obj)\n case isFinite(obj):\n return this._pushInfinity(obj)\n case ((obj % 1) !== 0):\n return this._pushIntNum(obj)\n default:\n return this._pushFloat(obj)\n }\n }\n\n _pushString (obj) {\n const len = Buffer.byteLength(obj, 'utf8')\n return this._pushInt(len, MT.UTF8_STRING) && this.pushWrite(obj, 5, len)\n }\n\n _pushBoolean (obj) {\n return this._pushUInt8(obj ? TRUE : FALSE)\n }\n\n _pushUndefined (obj) {\n return this._pushUInt8(UNDEFINED)\n }\n\n _pushArray (gen, obj) {\n const len = obj.length\n if (!gen._pushInt(len, MT.ARRAY)) {\n return false\n }\n for (let j = 0; j < len; j++) {\n if (!gen.pushAny(obj[j])) {\n return false\n }\n }\n return true\n }\n\n _pushTag (tag) {\n return this._pushInt(tag, MT.TAG)\n }\n\n _pushDate (gen, obj) {\n // Round date, to get seconds since 1970-01-01 00:00:00 as defined in\n // Sec. 2.4.1 and get a possibly more compact encoding. Note that it is\n // still allowed to encode fractions of seconds which can be achieved by\n // changing overwriting the encode function for Date objects.\n return gen._pushTag(TAG.DATE_EPOCH) && gen.pushAny(Math.round(obj / 1000))\n }\n\n _pushBuffer (gen, obj) {\n return gen._pushInt(obj.length, MT.BYTE_STRING) && gen.push(obj)\n }\n\n _pushNoFilter (gen, obj) {\n return gen._pushBuffer(gen, obj.slice())\n }\n\n _pushRegexp (gen, obj) {\n return gen._pushTag(TAG.REGEXP) && gen.pushAny(obj.source)\n }\n\n _pushSet (gen, obj) {\n if (!gen._pushInt(obj.size, MT.ARRAY)) {\n return false\n }\n for (const x of obj) {\n if (!gen.pushAny(x)) {\n return false\n }\n }\n return true\n }\n\n _pushUrl (gen, obj) {\n return gen._pushTag(TAG.URI) && gen.pushAny(obj.format())\n }\n\n _pushBigint (obj) {\n let tag = TAG.POS_BIGINT\n if (obj.isNegative()) {\n obj = obj.negated().minus(1)\n tag = TAG.NEG_BIGINT\n }\n let str = obj.toString(16)\n if (str.length % 2) {\n str = '0' + str\n }\n const buf = Buffer.from(str, 'hex')\n return this._pushTag(tag) && this._pushBuffer(this, buf)\n }\n\n _pushBigNumber (gen, obj) {\n if (obj.isNaN()) {\n return gen._pushNaN()\n }\n if (!obj.isFinite()) {\n return gen._pushInfinity(obj.isNegative() ? -Infinity : Infinity)\n }\n if (obj.isInteger()) {\n return gen._pushBigint(obj)\n }\n if (!(gen._pushTag(TAG.DECIMAL_FRAC) &&\n gen._pushInt(2, MT.ARRAY))) {\n return false\n }\n\n const dec = obj.decimalPlaces()\n const slide = obj.multipliedBy(new Bignumber(10).pow(dec))\n if (!gen._pushIntNum(-dec)) {\n return false\n }\n if (slide.abs().isLessThan(MAXINT_BN)) {\n return gen._pushIntNum(slide.toNumber())\n } else {\n return gen._pushBigint(slide)\n }\n }\n\n _pushMap (gen, obj) {\n if (!gen._pushInt(obj.size, MT.MAP)) {\n return false\n }\n\n return this._pushRawMap(\n obj.size,\n Array.from(obj)\n )\n }\n\n _pushObject (obj) {\n if (!obj) {\n return this._pushUInt8(NULL)\n }\n\n var len = this.semanticTypes.length\n for (var i = 0; i < len; i++) {\n if (obj instanceof this.semanticTypes[i][0]) {\n return this.semanticTypes[i][1].call(obj, this, obj)\n }\n }\n\n var f = obj.encodeCBOR\n if (typeof f === 'function') {\n return f.call(obj, this)\n }\n\n var keys = Object.keys(obj)\n var keyLength = keys.length\n if (!this._pushInt(keyLength, MT.MAP)) {\n return false\n }\n\n return this._pushRawMap(\n keyLength,\n keys.map((k) => [k, obj[k]])\n )\n }\n\n _pushRawMap (len, map) {\n // Sort keys for canoncialization\n // 1. encode key\n // 2. shorter key comes before longer key\n // 3. same length keys are sorted with lower\n // byte value before higher\n\n map = map.map(function (a) {\n a[0] = Encoder.encode(a[0])\n return a\n }).sort(utils.keySorter)\n\n for (var j = 0; j < len; j++) {\n if (!this.push(map[j][0])) {\n return false\n }\n\n if (!this.pushAny(map[j][1])) {\n return false\n }\n }\n\n return true\n }\n\n /**\n * Alias for `.pushAny`\n *\n * @param {*} obj\n * @returns {boolean} true on success\n */\n write (obj) {\n return this.pushAny(obj)\n }\n\n /**\n * Push any supported type onto the encoded stream\n *\n * @param {any} obj\n * @returns {boolean} true on success\n */\n pushAny (obj) {\n var typ = toType(obj)\n\n switch (typ) {\n case 'Number':\n return this._pushNumber(obj)\n case 'String':\n return this._pushString(obj)\n case 'Boolean':\n return this._pushBoolean(obj)\n case 'Object':\n return this._pushObject(obj)\n case 'Array':\n return this._pushArray(this, obj)\n case 'Uint8Array':\n return this._pushBuffer(this, Buffer.isBuffer(obj) ? obj : Buffer.from(obj))\n case 'Null':\n return this._pushUInt8(NULL)\n case 'Undefined':\n return this._pushUndefined(obj)\n case 'Map':\n return this._pushMap(this, obj)\n case 'Set':\n return this._pushSet(this, obj)\n case 'URL':\n return this._pushUrl(this, obj)\n case 'BigNumber':\n return this._pushBigNumber(this, obj)\n case 'Date':\n return this._pushDate(this, obj)\n case 'RegExp':\n return this._pushRegexp(this, obj)\n case 'Symbol':\n switch (obj) {\n case SYMS.NULL:\n return this._pushObject(null)\n case SYMS.UNDEFINED:\n return this._pushUndefined(undefined)\n // TODO: Add pluggable support for other symbols\n default:\n throw new Error('Unknown symbol: ' + obj.toString())\n }\n default:\n throw new Error('Unknown type: ' + typeof obj + ', ' + (obj ? obj.toString() : ''))\n }\n }\n\n finalize () {\n if (this.offset === 0) {\n return null\n }\n\n var result = this.result\n var resultLength = this.resultLength\n var resultMethod = this.resultMethod\n var offset = this.offset\n\n // Determine the size of the buffer\n var size = 0\n var i = 0\n\n for (; i < offset; i++) {\n size += resultLength[i]\n }\n\n var res = Buffer.allocUnsafe(size)\n var index = 0\n var length = 0\n\n // Write the content into the result buffer\n for (i = 0; i < offset; i++) {\n length = resultLength[i]\n\n switch (resultMethod[i]) {\n case 0:\n result[i].copy(res, index)\n break\n case 1:\n res.writeUInt8(result[i], index, true)\n break\n case 2:\n res.writeUInt16BE(result[i], index, true)\n break\n case 3:\n res.writeUInt32BE(result[i], index, true)\n break\n case 4:\n res.writeDoubleBE(result[i], index, true)\n break\n case 5:\n res.write(result[i], index, length, 'utf8')\n break\n default:\n throw new Error('unkown method')\n }\n\n index += length\n }\n\n var tmp = res\n\n this._reset()\n\n return tmp\n }\n\n _reset () {\n this.result = []\n this.resultMethod = []\n this.resultLength = []\n this.offset = 0\n }\n\n /**\n * Encode the given value\n * @param {*} o\n * @returns {Buffer}\n */\n static encode (o) {\n const enc = new Encoder()\n const ret = enc.pushAny(o)\n if (!ret) {\n throw new Error('Failed to encode input')\n }\n\n return enc.finalize()\n }\n}\n\nmodule.exports = Encoder\n","'use strict'\n\n// exports.Commented = require('./commented')\nexports.Diagnose = require('./diagnose')\nexports.Decoder = require('./decoder')\nexports.Encoder = require('./encoder')\nexports.Simple = require('./simple')\nexports.Tagged = require('./tagged')\n\n// exports.comment = exports.Commented.comment\nexports.decodeAll = exports.Decoder.decodeAll\nexports.decodeFirst = exports.Decoder.decodeFirst\nexports.diagnose = exports.Diagnose.diagnose\nexports.encode = exports.Encoder.encode\nexports.decode = exports.Decoder.decode\n\nexports.leveldb = {\n decode: exports.Decoder.decodeAll,\n encode: exports.Encoder.encode,\n buffer: true,\n name: 'cbor'\n}\n","'use strict'\n\nconst constants = require('./constants')\nconst MT = constants.MT\nconst SIMPLE = constants.SIMPLE\nconst SYMS = constants.SYMS\n\n/**\n * A CBOR Simple Value that does not map onto a known constant.\n */\nclass Simple {\n /**\n * Creates an instance of Simple.\n *\n * @param {integer} value - the simple value's integer value\n */\n constructor (value) {\n if (typeof value !== 'number') {\n throw new Error('Invalid Simple type: ' + (typeof value))\n }\n if ((value < 0) || (value > 255) || ((value | 0) !== value)) {\n throw new Error('value must be a small positive integer: ' + value)\n }\n this.value = value\n }\n\n /**\n * Debug string for simple value\n *\n * @returns {string} simple(value)\n */\n toString () {\n return 'simple(' + this.value + ')'\n }\n\n /**\n * Debug string for simple value\n *\n * @returns {string} simple(value)\n */\n inspect () {\n return 'simple(' + this.value + ')'\n }\n\n /**\n * Push the simple value onto the CBOR stream\n *\n * @param {cbor.Encoder} gen The generator to push onto\n * @returns {number}\n */\n encodeCBOR (gen) {\n return gen._pushInt(this.value, MT.SIMPLE_FLOAT)\n }\n\n /**\n * Is the given object a Simple?\n *\n * @param {any} obj - object to test\n * @returns {bool} - is it Simple?\n */\n static isSimple (obj) {\n return obj instanceof Simple\n }\n\n /**\n * Decode from the CBOR additional information into a JavaScript value.\n * If the CBOR item has no parent, return a \"safe\" symbol instead of\n * `null` or `undefined`, so that the value can be passed through a\n * stream in object mode.\n *\n * @param {Number} val - the CBOR additional info to convert\n * @param {bool} hasParent - Does the CBOR item have a parent?\n * @returns {(null|undefined|Boolean|Symbol)} - the decoded value\n */\n static decode (val, hasParent) {\n if (hasParent == null) {\n hasParent = true\n }\n switch (val) {\n case SIMPLE.FALSE:\n return false\n case SIMPLE.TRUE:\n return true\n case SIMPLE.NULL:\n if (hasParent) {\n return null\n } else {\n return SYMS.NULL\n }\n case SIMPLE.UNDEFINED:\n if (hasParent) {\n return undefined\n } else {\n return SYMS.UNDEFINED\n }\n case -1:\n if (!hasParent) {\n throw new Error('Invalid BREAK')\n }\n return SYMS.BREAK\n default:\n return new Simple(val)\n }\n }\n}\n\nmodule.exports = Simple\n","'use strict'\n\n/**\n * A CBOR tagged item, where the tag does not have semantics specified at the\n * moment, or those semantics threw an error during parsing. Typically this will\n * be an extension point you're not yet expecting.\n */\nclass Tagged {\n /**\n * Creates an instance of Tagged.\n *\n * @param {Number} tag - the number of the tag\n * @param {any} value - the value inside the tag\n * @param {Error} err - the error that was thrown parsing the tag, or null\n */\n constructor (tag, value, err) {\n this.tag = tag\n this.value = value\n this.err = err\n if (typeof this.tag !== 'number') {\n throw new Error('Invalid tag type (' + (typeof this.tag) + ')')\n }\n if ((this.tag < 0) || ((this.tag | 0) !== this.tag)) {\n throw new Error('Tag must be a positive integer: ' + this.tag)\n }\n }\n\n /**\n * Convert to a String\n *\n * @returns {String} string of the form '1(2)'\n */\n toString () {\n return `${this.tag}(${JSON.stringify(this.value)})`\n }\n\n /**\n * Push the simple value onto the CBOR stream\n *\n * @param {cbor.Encoder} gen The generator to push onto\n * @returns {number}\n */\n encodeCBOR (gen) {\n gen._pushTag(this.tag)\n return gen.pushAny(this.value)\n }\n\n /**\n * If we have a converter for this type, do the conversion. Some converters\n * are built-in. Additional ones can be passed in. If you want to remove\n * a built-in converter, pass a converter in whose value is 'null' instead\n * of a function.\n *\n * @param {Object} converters - keys in the object are a tag number, the value\n * is a function that takes the decoded CBOR and returns a JavaScript value\n * of the appropriate type. Throw an exception in the function on errors.\n * @returns {any} - the converted item\n */\n convert (converters) {\n var er, f\n f = converters != null ? converters[this.tag] : undefined\n if (typeof f !== 'function') {\n f = Tagged['_tag' + this.tag]\n if (typeof f !== 'function') {\n return this\n }\n }\n try {\n return f.call(Tagged, this.value)\n } catch (error) {\n er = error\n this.err = er\n return this\n }\n }\n}\n\nmodule.exports = Tagged\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst constants = require('./constants')\nconst SHIFT32 = constants.SHIFT32\nconst SHIFT16 = constants.SHIFT16\nconst MAX_SAFE_HIGH = 0x1fffff\n\nexports.parseHalf = function parseHalf (buf) {\n var exp, mant, sign\n sign = buf[0] & 0x80 ? -1 : 1\n exp = (buf[0] & 0x7C) >> 2\n mant = ((buf[0] & 0x03) << 8) | buf[1]\n if (!exp) {\n return sign * 5.9604644775390625e-8 * mant\n } else if (exp === 0x1f) {\n return sign * (mant ? 0 / 0 : 2e308)\n } else {\n return sign * Math.pow(2, exp - 25) * (1024 + mant)\n }\n}\n\nfunction toHex (n) {\n if (n < 16) {\n return '0' + n.toString(16)\n }\n\n return n.toString(16)\n}\n\nexports.arrayBufferToBignumber = function (buf) {\n const len = buf.byteLength\n let res = ''\n for (let i = 0; i < len; i++) {\n res += toHex(buf[i])\n }\n\n return new Bignumber(res, 16)\n}\n\n// convert an Object into a Map\nexports.buildMap = (obj) => {\n const res = new Map()\n const keys = Object.keys(obj)\n const length = keys.length\n for (let i = 0; i < length; i++) {\n res.set(keys[i], obj[keys[i]])\n }\n return res\n}\n\nexports.buildInt32 = (f, g) => {\n return f * SHIFT16 + g\n}\n\nexports.buildInt64 = (f1, f2, g1, g2) => {\n const f = exports.buildInt32(f1, f2)\n const g = exports.buildInt32(g1, g2)\n\n if (f > MAX_SAFE_HIGH) {\n return new Bignumber(f).times(SHIFT32).plus(g)\n } else {\n return (f * SHIFT32) + g\n }\n}\n\nexports.writeHalf = function writeHalf (buf, half) {\n // assume 0, -0, NaN, Infinity, and -Infinity have already been caught\n\n // HACK: everyone settle in. This isn't going to be pretty.\n // Translate cn-cbor's C code (from Carsten Borman):\n\n // uint32_t be32;\n // uint16_t be16, u16;\n // union {\n // float f;\n // uint32_t u;\n // } u32;\n // u32.f = float_val;\n\n const u32 = Buffer.allocUnsafe(4)\n u32.writeFloatBE(half, 0)\n const u = u32.readUInt32BE(0)\n\n // if ((u32.u & 0x1FFF) == 0) { /* worth trying half */\n\n // hildjj: If the lower 13 bits are 0, we won't lose anything in the conversion\n if ((u & 0x1FFF) !== 0) {\n return false\n }\n\n // int s16 = (u32.u >> 16) & 0x8000;\n // int exp = (u32.u >> 23) & 0xff;\n // int mant = u32.u & 0x7fffff;\n\n var s16 = (u >> 16) & 0x8000 // top bit is sign\n const exp = (u >> 23) & 0xff // then 5 bits of exponent\n const mant = u & 0x7fffff\n\n // if (exp == 0 && mant == 0)\n // ; /* 0.0, -0.0 */\n\n // hildjj: zeros already handled. Assert if you don't believe me.\n\n // else if (exp >= 113 && exp <= 142) /* normalized */\n // s16 += ((exp - 112) << 10) + (mant >> 13);\n if ((exp >= 113) && (exp <= 142)) {\n s16 += ((exp - 112) << 10) + (mant >> 13)\n\n // else if (exp >= 103 && exp < 113) { /* denorm, exp16 = 0 */\n // if (mant & ((1 << (126 - exp)) - 1))\n // goto float32; /* loss of precision */\n // s16 += ((mant + 0x800000) >> (126 - exp));\n } else if ((exp >= 103) && (exp < 113)) {\n if (mant & ((1 << (126 - exp)) - 1)) {\n return false\n }\n s16 += ((mant + 0x800000) >> (126 - exp))\n\n // } else if (exp == 255 && mant == 0) { /* Inf */\n // s16 += 0x7c00;\n\n // hildjj: Infinity already handled\n\n // } else\n // goto float32; /* loss of range */\n } else {\n return false\n }\n\n // ensure_writable(3);\n // u16 = s16;\n // be16 = hton16p((const uint8_t*)&u16);\n buf.writeUInt16BE(s16, 0)\n return true\n}\n\nexports.keySorter = function (a, b) {\n var lenA = a[0].byteLength\n var lenB = b[0].byteLength\n\n if (lenA > lenB) {\n return 1\n }\n\n if (lenB > lenA) {\n return -1\n }\n\n return a[0].compare(b[0])\n}\n\n// Adapted from http://www.2ality.com/2012/03/signedzero.html\nexports.isNegativeZero = (x) => {\n return x === 0 && (1 / x < 0)\n}\n\nexports.nextPowerOf2 = (n) => {\n let count = 0\n // First n in the below condition is for\n // the case where n is 0\n if (n && !(n & (n - 1))) {\n return n\n }\n\n while (n !== 0) {\n n >>= 1\n count += 1\n }\n\n return 1 << count\n}\n","var Buffer = require('buffer').Buffer;\n\nvar CRC_TABLE = [\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419,\n 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4,\n 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07,\n 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,\n 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856,\n 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,\n 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4,\n 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3,\n 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a,\n 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599,\n 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190,\n 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f,\n 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e,\n 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed,\n 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,\n 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3,\n 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,\n 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a,\n 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5,\n 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010,\n 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17,\n 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6,\n 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615,\n 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,\n 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344,\n 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,\n 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a,\n 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1,\n 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c,\n 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef,\n 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe,\n 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31,\n 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c,\n 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b,\n 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,\n 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1,\n 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,\n 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278,\n 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7,\n 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66,\n 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605,\n 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8,\n 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b,\n 0x2d02ef8d\n];\n\nif (typeof Int32Array !== 'undefined') {\n CRC_TABLE = new Int32Array(CRC_TABLE);\n}\n\nfunction ensureBuffer(input) {\n if (Buffer.isBuffer(input)) {\n return input;\n }\n\n var hasNewBufferAPI =\n typeof Buffer.alloc === \"function\" &&\n typeof Buffer.from === \"function\";\n\n if (typeof input === \"number\") {\n return hasNewBufferAPI ? Buffer.alloc(input) : new Buffer(input);\n }\n else if (typeof input === \"string\") {\n return hasNewBufferAPI ? Buffer.from(input) : new Buffer(input);\n }\n else {\n throw new Error(\"input must be buffer, number, or string, received \" +\n typeof input);\n }\n}\n\nfunction bufferizeInt(num) {\n var tmp = ensureBuffer(4);\n tmp.writeInt32BE(num, 0);\n return tmp;\n}\n\nfunction _crc32(buf, previous) {\n buf = ensureBuffer(buf);\n if (Buffer.isBuffer(previous)) {\n previous = previous.readUInt32BE(0);\n }\n var crc = ~~previous ^ -1;\n for (var n = 0; n < buf.length; n++) {\n crc = CRC_TABLE[(crc ^ buf[n]) & 0xff] ^ (crc >>> 8);\n }\n return (crc ^ -1);\n}\n\nfunction crc32() {\n return bufferizeInt(_crc32.apply(null, arguments));\n}\ncrc32.signed = function () {\n return _crc32.apply(null, arguments);\n};\ncrc32.unsigned = function () {\n return _crc32.apply(null, arguments) >>> 0;\n};\n\nmodule.exports = crc32;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64url encoding strategy.\n\t */\n\t var Base64url = C_enc.Base64url = {\n\t /**\n\t * Converts a word array to a Base64url string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {string} The Base64url string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n\t */\n\t stringify: function (wordArray, urlSafe=true) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = urlSafe ? this._safe_map : this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64url string to a word array.\n\t *\n\t * @param {string} base64Str The Base64url string.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n\t */\n\t parse: function (base64Str, urlSafe=true) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = urlSafe ? this._safe_map : this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\t _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\treturn CryptoJS.enc.Base64url;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./enc-base64url\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./enc-base64url\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working varialbes\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t var keystream;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t data.sigBytes = i + 1;\n\t break;\n\t }\n\t }\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA1 = C_algo.SHA1;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA1\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA1,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t var tMsw;\n\t var tLsw;\n\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t var Wil;\n\t var Wih;\n\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t Wih = Wi.high = M[offset + i * 2] | 0;\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t Wil = gamma0l + Wi7l;\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t Wil = Wil + gamma1l;\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t Wil = Wil + Wi16l;\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(v=i),i||!r&&v},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(r=\"undefined\"!=typeof globalThis?globalThis:r||self).dayjs_plugin_relativeTime=e()}(this,(function(){\"use strict\";return function(r,e,t){r=r||{};var n=e.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function i(r,e,t,o){return n.fromToBase(r,e,t,o)}t.en.relativeTime=o,n.fromToBase=function(e,n,i,d,u){for(var f,a,s,l=i.$locale().relativeTime||o,h=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],m=h.length,c=0;c0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,v=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",h=+e;return(o.utc(v).valueOf()-(h-=h%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString(\"en-US\",{timeZone:t}),u=Math.round((i-new Date(a))/1e3/60),f=o(a).$set(\"millisecond\",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-u,!0);if(e){var s=f.utcOffset();f=f.add(n-s,\"minute\")}return f.$x.$timezone=t,f},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"));return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\n\nconst {\n URLWithLegacySupport,\n format,\n URLSearchParams,\n defaultBase\n} = require('./src/url');\nconst relative = require('./src/relative');\n\nmodule.exports = {\n URL: URLWithLegacySupport,\n URLSearchParams,\n format,\n relative,\n defaultBase\n};\n","'use strict';\n\nconst { URLWithLegacySupport, format } = require('./url');\n\nmodule.exports = (url, location = {}, protocolMap = {}, defaultProtocol) => {\n let protocol = location.protocol ?\n location.protocol.replace(':', '') :\n 'http';\n\n // Check protocol map\n protocol = (protocolMap[protocol] || defaultProtocol || protocol) + ':';\n let urlParsed;\n\n try {\n urlParsed = new URLWithLegacySupport(url);\n } catch (err) {\n urlParsed = {};\n }\n\n const base = Object.assign({}, location, {\n protocol: protocol || urlParsed.protocol,\n host: location.host || urlParsed.host\n });\n\n return new URLWithLegacySupport(url, format(base)).toString();\n};\n","'use strict';\n\nconst defaultBase = self.location ?\n self.location.protocol + '//' + self.location.host :\n '';\nconst URL = self.URL;\n\nclass URLWithLegacySupport {\n constructor(url = '', base = defaultBase) {\n this.super = new URL(url, base);\n this.path = this.pathname + this.search;\n this.auth =\n this.username && this.password ?\n this.username + ':' + this.password :\n null;\n\n this.query =\n this.search && this.search.startsWith('?') ?\n this.search.slice(1) :\n null;\n }\n\n get hash() {\n return this.super.hash;\n }\n get host() {\n return this.super.host;\n }\n get hostname() {\n return this.super.hostname;\n }\n get href() {\n return this.super.href;\n }\n get origin() {\n return this.super.origin;\n }\n get password() {\n return this.super.password;\n }\n get pathname() {\n return this.super.pathname;\n }\n get port() {\n return this.super.port;\n }\n get protocol() {\n return this.super.protocol;\n }\n get search() {\n return this.super.search;\n }\n get searchParams() {\n return this.super.searchParams;\n }\n get username() {\n return this.super.username;\n }\n\n set hash(hash) {\n this.super.hash = hash;\n }\n set host(host) {\n this.super.host = host;\n }\n set hostname(hostname) {\n this.super.hostname = hostname;\n }\n set href(href) {\n this.super.href = href;\n }\n set origin(origin) {\n this.super.origin = origin;\n }\n set password(password) {\n this.super.password = password;\n }\n set pathname(pathname) {\n this.super.pathname = pathname;\n }\n set port(port) {\n this.super.port = port;\n }\n set protocol(protocol) {\n this.super.protocol = protocol;\n }\n set search(search) {\n this.super.search = search;\n }\n set searchParams(searchParams) {\n this.super.searchParams = searchParams;\n }\n set username(username) {\n this.super.username = username;\n }\n\n createObjectURL(o) {\n return this.super.createObjectURL(o);\n }\n revokeObjectURL(o) {\n this.super.revokeObjectURL(o);\n }\n toJSON() {\n return this.super.toJSON();\n }\n toString() {\n return this.super.toString();\n }\n format() {\n return this.toString();\n }\n}\n\nfunction format(obj) {\n if (typeof obj === 'string') {\n const url = new URL(obj);\n\n return url.toString();\n }\n\n if (!(obj instanceof URL)) {\n const userPass =\n obj.username && obj.password ?\n `${obj.username}:${obj.password}@` :\n '';\n const auth = obj.auth ? obj.auth + '@' : '';\n const port = obj.port ? ':' + obj.port : '';\n const protocol = obj.protocol ? obj.protocol + '//' : '';\n const host = obj.host || '';\n const hostname = obj.hostname || '';\n const search = obj.search || (obj.query ? '?' + obj.query : '');\n const hash = obj.hash || '';\n const pathname = obj.pathname || '';\n const path = obj.path || pathname + search;\n\n return `${protocol}${userPass || auth}${host ||\n hostname + port}${path}${hash}`;\n }\n}\n\nmodule.exports = {\n URLWithLegacySupport,\n URLSearchParams: self.URLSearchParams,\n defaultBase,\n format\n};\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.9.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var algorithm = is224 ? 'sha224' : 'sha256';\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","var json_stringify = require('./lib/stringify.js').stringify;\nvar json_parse = require('./lib/parse.js');\n\nmodule.exports = function(options) {\n return {\n parse: json_parse(options),\n stringify: json_stringify\n }\n};\n//create the default method members with no options applied for backwards compatibility\nmodule.exports.parse = json_parse();\nmodule.exports.stringify = json_stringify;\n","var BigNumber = null;\n\n// regexpxs extracted from\n// (c) BSD-3-Clause\n// https://github.com/fastify/secure-json-parse/graphs/contributors and https://github.com/hapijs/bourne/graphs/contributors\n\nconst suspectProtoRx = /(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])/;\nconst suspectConstructorRx = /(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)/;\n\n/*\n json_parse.js\n 2012-06-20\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n This file creates a json_parse function.\n During create you can (optionally) specify some behavioural switches\n\n require('json-bigint')(options)\n\n The optional options parameter holds switches that drive certain\n aspects of the parsing process:\n * options.strict = true will warn about duplicate-key usage in the json.\n The default (strict = false) will silently ignore those and overwrite\n values for keys that are in duplicate use.\n\n The resulting function follows this signature:\n json_parse(text, reviver)\n This method parses a JSON text to produce an object or array.\n It can throw a SyntaxError exception.\n\n The optional reviver parameter is a function that can filter and\n transform the results. It receives each of the keys and values,\n and its return value is used instead of the original value.\n If it returns what it received, then the structure is not modified.\n If it returns undefined then the member is deleted.\n\n Example:\n\n // Parse the text. Values that look like ISO date strings will\n // be converted to Date objects.\n\n myData = json_parse(text, function (key, value) {\n var a;\n if (typeof value === 'string') {\n a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n if (a) {\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n +a[5], +a[6]));\n }\n }\n return value;\n });\n\n This is a reference implementation. You are free to copy, modify, or\n redistribute.\n\n This code should be minified before deployment.\n See http://javascript.crockford.com/jsmin.html\n\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n NOT CONTROL.\n*/\n\n/*members \"\", \"\\\"\", \"\\/\", \"\\\\\", at, b, call, charAt, f, fromCharCode,\n hasOwnProperty, message, n, name, prototype, push, r, t, text\n*/\n\nvar json_parse = function (options) {\n 'use strict';\n\n // This is a function that can parse a JSON text, producing a JavaScript\n // data structure. It is a simple, recursive descent parser. It does not use\n // eval or regular expressions, so it can be used as a model for implementing\n // a JSON parser in other languages.\n\n // We are defining the function inside of another function to avoid creating\n // global variables.\n\n // Default options one can override by passing options to the parse()\n var _options = {\n strict: false, // not being strict means do not generate syntax errors for \"duplicate key\"\n storeAsString: false, // toggles whether the values should be stored as BigNumber (default) or a string\n alwaysParseAsBig: false, // toggles whether all numbers should be Big\n useNativeBigInt: false, // toggles whether to use native BigInt instead of bignumber.js\n protoAction: 'error',\n constructorAction: 'error',\n };\n\n // If there are options, then use them to override the default _options\n if (options !== undefined && options !== null) {\n if (options.strict === true) {\n _options.strict = true;\n }\n if (options.storeAsString === true) {\n _options.storeAsString = true;\n }\n _options.alwaysParseAsBig =\n options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false;\n _options.useNativeBigInt =\n options.useNativeBigInt === true ? options.useNativeBigInt : false;\n\n if (typeof options.constructorAction !== 'undefined') {\n if (\n options.constructorAction === 'error' ||\n options.constructorAction === 'ignore' ||\n options.constructorAction === 'preserve'\n ) {\n _options.constructorAction = options.constructorAction;\n } else {\n throw new Error(\n `Incorrect value for constructorAction option, must be \"error\", \"ignore\" or undefined but passed ${options.constructorAction}`\n );\n }\n }\n\n if (typeof options.protoAction !== 'undefined') {\n if (\n options.protoAction === 'error' ||\n options.protoAction === 'ignore' ||\n options.protoAction === 'preserve'\n ) {\n _options.protoAction = options.protoAction;\n } else {\n throw new Error(\n `Incorrect value for protoAction option, must be \"error\", \"ignore\" or undefined but passed ${options.protoAction}`\n );\n }\n }\n }\n\n var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n },\n text,\n error = function (m) {\n // Call error when something is wrong.\n\n throw {\n name: 'SyntaxError',\n message: m,\n at: at,\n text: text,\n };\n },\n next = function (c) {\n // If a c parameter is provided, verify that it matches the current character.\n\n if (c && c !== ch) {\n error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n }\n\n // Get the next character. When there are no more characters,\n // return the empty string.\n\n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n number = function () {\n // Parse a number value.\n\n var number,\n string = '';\n\n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error('Bad number');\n } else {\n if (BigNumber == null) BigNumber = require('bignumber.js');\n //if (number > 9007199254740992 || number < -9007199254740992)\n // Bignumber has stricter check: everything with length > 15 digits disallowed\n if (string.length > 15)\n return _options.storeAsString\n ? string\n : _options.useNativeBigInt\n ? BigInt(string)\n : new BigNumber(string);\n else\n return !_options.alwaysParseAsBig\n ? number\n : _options.useNativeBigInt\n ? BigInt(number)\n : new BigNumber(number);\n }\n },\n string = function () {\n // Parse a string value.\n\n var hex,\n i,\n string = '',\n uffff;\n\n // When parsing for string values, we must look for \" and \\ characters.\n\n if (ch === '\"') {\n var startAt = at;\n while (next()) {\n if (ch === '\"') {\n if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n next();\n return string;\n }\n if (ch === '\\\\') {\n if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n startAt = at;\n }\n }\n }\n error('Bad string');\n },\n white = function () {\n // Skip whitespace.\n\n while (ch && ch <= ' ') {\n next();\n }\n },\n word = function () {\n // true, false, or null.\n\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error(\"Unexpected '\" + ch + \"'\");\n },\n value, // Place holder for the value function.\n array = function () {\n // Parse an array value.\n\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error('Bad array');\n },\n object = function () {\n // Parse an object value.\n\n var key,\n object = Object.create(null);\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (\n _options.strict === true &&\n Object.hasOwnProperty.call(object, key)\n ) {\n error('Duplicate key \"' + key + '\"');\n }\n\n if (suspectProtoRx.test(key) === true) {\n if (_options.protoAction === 'error') {\n error('Object contains forbidden prototype property');\n } else if (_options.protoAction === 'ignore') {\n value();\n } else {\n object[key] = value();\n }\n } else if (suspectConstructorRx.test(key) === true) {\n if (_options.constructorAction === 'error') {\n error('Object contains forbidden constructor property');\n } else if (_options.constructorAction === 'ignore') {\n value();\n } else {\n object[key] = value();\n }\n } else {\n object[key] = value();\n }\n\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error('Bad object');\n };\n\n value = function () {\n // Parse a JSON value. It could be an object, an array, a string, a number,\n // or a word.\n\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n };\n\n // Return the json_parse function. It will have access to all of the above\n // functions and variables.\n\n return function (source, reviver) {\n var result;\n\n text = source + '';\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error('Syntax error');\n }\n\n // If there is a reviver function, we recursively walk the new structure,\n // passing each name/value pair to the reviver function for possible\n // transformation, starting with a temporary root object that holds the result\n // in an empty key. If there is not a reviver function, we simply return the\n // result.\n\n return typeof reviver === 'function'\n ? (function walk(holder, key) {\n var k,\n v,\n value = holder[key];\n if (value && typeof value === 'object') {\n Object.keys(value).forEach(function (k) {\n v = walk(value, k);\n if (v !== undefined) {\n value[k] = v;\n } else {\n delete value[k];\n }\n });\n }\n return reviver.call(holder, key, value);\n })({ '': result }, '')\n : result;\n };\n};\n\nmodule.exports = json_parse;\n","var BigNumber = require('bignumber.js');\n\n/*\n json2.js\n 2013-05-26\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n See http://www.JSON.org/js.html\n\n\n This code should be minified before deployment.\n See http://javascript.crockford.com/jsmin.html\n\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n NOT CONTROL.\n\n\n This file creates a global JSON object containing two methods: stringify\n and parse.\n\n JSON.stringify(value, replacer, space)\n value any JavaScript value, usually an object or array.\n\n replacer an optional parameter that determines how object\n values are stringified for objects. It can be a\n function or an array of strings.\n\n space an optional parameter that specifies the indentation\n of nested structures. If it is omitted, the text will\n be packed without extra whitespace. If it is a number,\n it will specify the number of spaces to indent at each\n level. If it is a string (such as '\\t' or ' '),\n it contains the characters used to indent at each level.\n\n This method produces a JSON text from a JavaScript value.\n\n When an object value is found, if the object contains a toJSON\n method, its toJSON method will be called and the result will be\n stringified. A toJSON method does not serialize: it returns the\n value represented by the name/value pair that should be serialized,\n or undefined if nothing should be serialized. The toJSON method\n will be passed the key associated with the value, and this will be\n bound to the value\n\n For example, this would serialize Dates as ISO strings.\n\n Date.prototype.toJSON = function (key) {\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n return this.getUTCFullYear() + '-' +\n f(this.getUTCMonth() + 1) + '-' +\n f(this.getUTCDate()) + 'T' +\n f(this.getUTCHours()) + ':' +\n f(this.getUTCMinutes()) + ':' +\n f(this.getUTCSeconds()) + 'Z';\n };\n\n You can provide an optional replacer method. It will be passed the\n key and value of each member, with this bound to the containing\n object. The value that is returned from your method will be\n serialized. If your method returns undefined, then the member will\n be excluded from the serialization.\n\n If the replacer parameter is an array of strings, then it will be\n used to select the members to be serialized. It filters the results\n such that only members with keys listed in the replacer array are\n stringified.\n\n Values that do not have JSON representations, such as undefined or\n functions, will not be serialized. Such values in objects will be\n dropped; in arrays they will be replaced with null. You can use\n a replacer function to replace those with JSON values.\n JSON.stringify(undefined) returns undefined.\n\n The optional space parameter produces a stringification of the\n value that is filled with line breaks and indentation to make it\n easier to read.\n\n If the space parameter is a non-empty string, then that string will\n be used for indentation. If the space parameter is a number, then\n the indentation will be that many spaces.\n\n Example:\n\n text = JSON.stringify(['e', {pluribus: 'unum'}]);\n // text is '[\"e\",{\"pluribus\":\"unum\"}]'\n\n\n text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\\t');\n // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\n\n text = JSON.stringify([new Date()], function (key, value) {\n return this[key] instanceof Date ?\n 'Date(' + this[key] + ')' : value;\n });\n // text is '[\"Date(---current time---)\"]'\n\n\n JSON.parse(text, reviver)\n This method parses a JSON text to produce an object or array.\n It can throw a SyntaxError exception.\n\n The optional reviver parameter is a function that can filter and\n transform the results. It receives each of the keys and values,\n and its return value is used instead of the original value.\n If it returns what it received, then the structure is not modified.\n If it returns undefined then the member is deleted.\n\n Example:\n\n // Parse the text. Values that look like ISO date strings will\n // be converted to Date objects.\n\n myData = JSON.parse(text, function (key, value) {\n var a;\n if (typeof value === 'string') {\n a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n if (a) {\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n +a[5], +a[6]));\n }\n }\n return value;\n });\n\n myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\n var d;\n if (typeof value === 'string' &&\n value.slice(0, 5) === 'Date(' &&\n value.slice(-1) === ')') {\n d = new Date(value.slice(5, -1));\n if (d) {\n return d;\n }\n }\n return value;\n });\n\n\n This is a reference implementation. You are free to copy, modify, or\n redistribute.\n*/\n\n/*jslint evil: true, regexp: true */\n\n/*members \"\", \"\\b\", \"\\t\", \"\\n\", \"\\f\", \"\\r\", \"\\\"\", JSON, \"\\\\\", apply,\n call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\n getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\n lastIndex, length, parse, prototype, push, replace, slice, stringify,\n test, toJSON, toString, valueOf\n*/\n\n\n// Create a JSON object only if one does not already exist. We create the\n// methods in a closure to avoid creating global variables.\n\nvar JSON = module.exports;\n\n(function () {\n 'use strict';\n\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n gap,\n indent,\n meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"' : '\\\\\"',\n '\\\\': '\\\\\\\\'\n },\n rep;\n\n\n function quote(string) {\n\n// If the string contains no control characters, no quote characters, and no\n// backslash characters, then we can safely slap some quotes around it.\n// Otherwise we must also replace the offending characters with safe escape\n// sequences.\n\n escapable.lastIndex = 0;\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n var c = meta[a];\n return typeof c === 'string'\n ? c\n : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + string + '\"';\n }\n\n\n function str(key, holder) {\n\n// Produce a string from holder[key].\n\n var i, // The loop counter.\n k, // The member key.\n v, // The member value.\n length,\n mind = gap,\n partial,\n value = holder[key],\n isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value));\n\n// If the value has a toJSON method, call it to obtain a replacement value.\n\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n// If we were called with a replacer function, then call the replacer to\n// obtain a replacement value.\n\n if (typeof rep === 'function') {\n value = rep.call(holder, key, value);\n }\n\n// What happens next depends on the value's type.\n\n switch (typeof value) {\n case 'string':\n if (isBigNumber) {\n return value;\n } else {\n return quote(value);\n }\n\n case 'number':\n\n// JSON numbers must be finite. Encode non-finite numbers as null.\n\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n case 'bigint':\n\n// If the value is a boolean or null, convert it to a string. Note:\n// typeof null does not produce 'null'. The case is included here in\n// the remote chance that this gets fixed someday.\n\n return String(value);\n\n// If the type is 'object', we might be dealing with an object or an array or\n// null.\n\n case 'object':\n\n// Due to a specification blunder in ECMAScript, typeof null is 'object',\n// so watch out for that case.\n\n if (!value) {\n return 'null';\n }\n\n// Make an array to hold the partial results of stringifying this object value.\n\n gap += indent;\n partial = [];\n\n// Is the value an array?\n\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n\n// The value is an array. Stringify every element. Use null as a placeholder\n// for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n// Join all of the elements together, separated with commas, and wrap them in\n// brackets.\n\n v = partial.length === 0\n ? '[]'\n : gap\n ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n : '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n// If the replacer is an array, use it to select the members to be stringified.\n\n if (rep && typeof rep === 'object') {\n length = rep.length;\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === 'string') {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n } else {\n\n// Otherwise, iterate through all of the keys in the object.\n\n Object.keys(value).forEach(function(k) {\n var v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n });\n }\n\n// Join all of the member texts together, separated with commas,\n// and wrap them in braces.\n\n v = partial.length === 0\n ? '{}'\n : gap\n ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n }\n\n// If the JSON object does not yet have a stringify method, give it one.\n\n if (typeof JSON.stringify !== 'function') {\n JSON.stringify = function (value, replacer, space) {\n\n// The stringify method takes a value and an optional replacer, and an optional\n// space parameter, and returns a JSON text. The replacer can be a function\n// that can replace values, or an array of strings that will select the keys.\n// A default replacer method can be provided. Use of the space parameter can\n// produce text that is more easily readable.\n\n var i;\n gap = '';\n indent = '';\n\n// If the space parameter is a number, make an indent string containing that\n// many spaces.\n\n if (typeof space === 'number') {\n for (i = 0; i < space; i += 1) {\n indent += ' ';\n }\n\n// If the space parameter is a string, it will be used as the indent string.\n\n } else if (typeof space === 'string') {\n indent = space;\n }\n\n// If there is a replacer, it must be a function or an array.\n// Otherwise, throw an error.\n\n rep = replacer;\n if (replacer && typeof replacer !== 'function' &&\n (typeof replacer !== 'object' ||\n typeof replacer.length !== 'number')) {\n throw new Error('JSON.stringify');\n }\n\n// Make a fake root object containing our value under the key of ''.\n// Return the result of stringifying the value.\n\n return str('', {'': value});\n };\n }\n}());\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.tt) {\n layers[i - 1].td = layerData.tt;\n }\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n xhr.open('GET', path, true);\n } catch (error) {\n xhr.open('GET', fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n this.setParams(params);\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function () {\n this.renderer.updateContainerSize();\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_pause');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_play');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.renderer = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var PropertyFactory = function () {\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n function getProp(elem, data, type, mult, container) {\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.9.6';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n if (!this.a.k) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index + 1] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isCombinedCharacter = isCombinedCharacter;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _prevValue;\n\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (stringValue !== _prevValue) {\n elem.textProperty.currentData.t = _prevValue;\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n return ob;\n }();\n\n var registeredEffects = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n var filId;\n var fil;\n var gg;\n\n if (this.data.td) {\n if (this.data.td == 3 || this.data.td == 1) {\n // eslint-disable-line eqeqeq\n var masker = createNS('mask');\n masker.setAttribute('id', this.layerId);\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\n masker.appendChild(this.layerElement);\n layerElementParent = masker;\n this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n if (!featureSupport.maskType && this.data.td == 1) {\n // eslint-disable-line eqeqeq\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (this.data.td == 2) {\n // eslint-disable-line eqeqeq\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', this.layerId);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\n /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n maskGrouper.appendChild(this.layerElement);\n layerElementParent = maskGrouper;\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var props;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n props = itemData.transformers[k].mProps.v.props;\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\n } else {\n charactersArray.push(text.charAt(i));\n }\n\n i += 1;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n this.buildItem(pos - 1);\n this.addPendingElement(element);\n } else {\n element.setMatte(elements[pos - 1].layerId);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n element.setMatte(this.elements[i - 1].layerId);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function CVContextData() {\n this.saved = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n this.cO = 1;\n var i;\n var len = 15;\n this.savedOp = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = len;\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var currentSavedOp = this.savedOp;\n this.savedOp = createTypedArray('float32', newLength);\n this.savedOp.set(currentSavedOp);\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.cO = 1;\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n var props;\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n props = sequence.transforms[i].transform.mProps.v.props;\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n function CVEffects() {}\n\n CVEffects.prototype.renderFrame = function () {};\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n this.canvasContext = this.globalData.canvasContext;\n this.renderableEffectsManager = new CVEffects(this);\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n ctx.lineWidth = currentStyle.wi;\n ctx.lineCap = currentStyle.lc;\n ctx.lineJoin = currentStyle.lj;\n ctx.miterLimit = currentStyle.ml || 0;\n } else {\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n ctx.stroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n ctx.fill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n this.globalData.renderer.save();\n this.globalData.renderer.ctxTransform(renderedLetter.p);\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n lastFill = renderedLetter.fc;\n ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.fillStyle = this.data.sc;\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n };\n\n function CanvasRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n return;\n }\n\n this.transformMat.cloneFromProps(props);\n var cProps = this.contextData.cTr.props;\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\n var trProps = this.contextData.cTr.props;\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n /* if(op === 1){\r\n return;\r\n } */\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n return;\n }\n\n this.contextData.cO *= op < 0 ? 0 : op;\n\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n this.canvasContext.globalAlpha = this.contextData.cO;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n }\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.save();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.save();\n }\n\n var props = this.contextData.cTr.props;\n\n if (this.contextData._length <= this.contextData.cArrPos) {\n this.contextData.duplicate();\n }\n\n var i;\n var arr = this.contextData.saved[this.contextData.cArrPos];\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = props[i];\n }\n\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n this.contextData.cArrPos += 1;\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.restore();\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.cArrPos -= 1;\n var popped = this.contextData.saved[this.contextData.cArrPos];\n var i;\n var arr = this.contextData.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = popped[i];\n }\n\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n popped = this.contextData.savedOp[this.contextData.cArrPos];\n this.contextData.cO = popped;\n\n if (this.globalData.currentGlobalAlpha !== popped) {\n this.canvasContext.globalAlpha = popped;\n this.globalData.currentGlobalAlpha = popped;\n }\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function () {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n } else {\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n this.elements[i].destroy();\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$1(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n initialize$2(BMMath);\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof(a);\n\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\n return ob;\n }();\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect(20, SVGTintFilter, true);\n registerEffect(21, SVGFillFilter, true);\n registerEffect(22, SVGStrokeEffect, false);\n registerEffect(23, SVGTritoneFilter, true);\n registerEffect(24, SVGProLevelsFilter, true);\n registerEffect(25, SVGDropShadowEffect, true);\n registerEffect(28, SVGMatte3Effect, false);\n registerEffect(29, SVGGaussianBlurEffect, true);\n\n return lottie;\n\n}));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v17.0.2\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar InfiniteScroll = function (_Component) {\n _inherits(InfiniteScroll, _Component);\n\n function InfiniteScroll(props) {\n _classCallCheck(this, InfiniteScroll);\n\n var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));\n\n _this.scrollListener = _this.scrollListener.bind(_this);\n _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);\n _this.mousewheelListener = _this.mousewheelListener.bind(_this);\n return _this;\n }\n\n _createClass(InfiniteScroll, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.pageLoaded = this.props.pageStart;\n this.options = this.eventListenerOptions();\n this.attachScrollListener();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isReverse && this.loadMore) {\n var parentElement = this.getParentElement(this.scrollComponent);\n parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;\n this.loadMore = false;\n }\n this.attachScrollListener();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.detachScrollListener();\n this.detachMousewheelListener();\n }\n }, {\n key: 'isPassiveSupported',\n value: function isPassiveSupported() {\n var passive = false;\n\n var testOptions = {\n get passive() {\n passive = true;\n }\n };\n\n try {\n document.addEventListener('test', null, testOptions);\n document.removeEventListener('test', null, testOptions);\n } catch (e) {\n // ignore\n }\n return passive;\n }\n }, {\n key: 'eventListenerOptions',\n value: function eventListenerOptions() {\n var options = this.props.useCapture;\n\n if (this.isPassiveSupported()) {\n options = {\n useCapture: this.props.useCapture,\n passive: true\n };\n } else {\n options = {\n passive: false\n };\n }\n return options;\n }\n\n // Set a defaut loader for all your `InfiniteScroll` components\n\n }, {\n key: 'setDefaultLoader',\n value: function setDefaultLoader(loader) {\n this.defaultLoader = loader;\n }\n }, {\n key: 'detachMousewheelListener',\n value: function detachMousewheelListener() {\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = this.scrollComponent.parentNode;\n }\n\n scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'detachScrollListener',\n value: function detachScrollListener() {\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = this.getParentElement(this.scrollComponent);\n }\n\n scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'getParentElement',\n value: function getParentElement(el) {\n var scrollParent = this.props.getScrollParent && this.props.getScrollParent();\n if (scrollParent != null) {\n return scrollParent;\n }\n return el && el.parentNode;\n }\n }, {\n key: 'filterProps',\n value: function filterProps(props) {\n return props;\n }\n }, {\n key: 'attachScrollListener',\n value: function attachScrollListener() {\n var parentElement = this.getParentElement(this.scrollComponent);\n\n if (!this.props.hasMore || !parentElement) {\n return;\n }\n\n var scrollEl = window;\n if (this.props.useWindow === false) {\n scrollEl = parentElement;\n }\n\n scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n\n if (this.props.initialLoad) {\n this.scrollListener();\n }\n }\n }, {\n key: 'mousewheelListener',\n value: function mousewheelListener(e) {\n // Prevents Chrome hangups\n // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257\n if (e.deltaY === 1 && !this.isPassiveSupported()) {\n e.preventDefault();\n }\n }\n }, {\n key: 'scrollListener',\n value: function scrollListener() {\n var el = this.scrollComponent;\n var scrollEl = window;\n var parentNode = this.getParentElement(el);\n\n var offset = void 0;\n if (this.props.useWindow) {\n var doc = document.documentElement || document.body.parentNode || document.body;\n var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;\n if (this.props.isReverse) {\n offset = scrollTop;\n } else {\n offset = this.calculateOffset(el, scrollTop);\n }\n } else if (this.props.isReverse) {\n offset = parentNode.scrollTop;\n } else {\n offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;\n }\n\n // Here we make sure the element is visible as well as checking the offset\n if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {\n this.detachScrollListener();\n this.beforeScrollHeight = parentNode.scrollHeight;\n this.beforeScrollTop = parentNode.scrollTop;\n // Call loadMore after detachScrollListener to allow for non-async loadMore functions\n if (typeof this.props.loadMore === 'function') {\n this.props.loadMore(this.pageLoaded += 1);\n this.loadMore = true;\n }\n }\n }\n }, {\n key: 'calculateOffset',\n value: function calculateOffset(el, scrollTop) {\n if (!el) {\n return 0;\n }\n\n return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);\n }\n }, {\n key: 'calculateTopPosition',\n value: function calculateTopPosition(el) {\n if (!el) {\n return 0;\n }\n return el.offsetTop + this.calculateTopPosition(el.offsetParent);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var renderProps = this.filterProps(this.props);\n\n var children = renderProps.children,\n element = renderProps.element,\n hasMore = renderProps.hasMore,\n initialLoad = renderProps.initialLoad,\n isReverse = renderProps.isReverse,\n loader = renderProps.loader,\n loadMore = renderProps.loadMore,\n pageStart = renderProps.pageStart,\n ref = renderProps.ref,\n threshold = renderProps.threshold,\n useCapture = renderProps.useCapture,\n useWindow = renderProps.useWindow,\n getScrollParent = renderProps.getScrollParent,\n props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);\n\n props.ref = function (node) {\n _this2.scrollComponent = node;\n if (ref) {\n ref(node);\n }\n };\n\n var childrenArray = [children];\n if (hasMore) {\n if (loader) {\n isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);\n } else if (this.defaultLoader) {\n isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);\n }\n }\n return _react2.default.createElement(element, props, childrenArray);\n }\n }]);\n\n return InfiniteScroll;\n}(_react.Component);\n\nInfiniteScroll.propTypes = {\n children: _propTypes2.default.node.isRequired,\n element: _propTypes2.default.node,\n hasMore: _propTypes2.default.bool,\n initialLoad: _propTypes2.default.bool,\n isReverse: _propTypes2.default.bool,\n loader: _propTypes2.default.node,\n loadMore: _propTypes2.default.func.isRequired,\n pageStart: _propTypes2.default.number,\n ref: _propTypes2.default.func,\n getScrollParent: _propTypes2.default.func,\n threshold: _propTypes2.default.number,\n useCapture: _propTypes2.default.bool,\n useWindow: _propTypes2.default.bool\n};\nInfiniteScroll.defaultProps = {\n element: 'div',\n hasMore: false,\n initialLoad: true,\n pageStart: 0,\n ref: null,\n threshold: 250,\n useWindow: true,\n isReverse: false,\n useCapture: false,\n loader: null,\n getScrollParent: null\n};\nexports.default = InfiniteScroll;\nmodule.exports = exports['default'];\n","module.exports = require('./dist/InfiniteScroll')\n","/** @license React v16.13.1\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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _lottieWeb = require('lottie-web');\n\nvar _lottieWeb2 = _interopRequireDefault(_lottieWeb);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Lottie = function (_React$Component) {\n (0, _inherits3.default)(Lottie, _React$Component);\n\n function Lottie() {\n var _ref;\n\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, Lottie);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Lottie.__proto__ || (0, _getPrototypeOf2.default)(Lottie)).call.apply(_ref, [this].concat(args))), _this), _this.handleClickToPause = function () {\n // The pause() method is for handling pausing by passing a prop isPaused\n // This method is for handling the ability to pause by clicking on the animation\n if (_this.anim.isPaused) {\n _this.anim.play();\n } else {\n _this.anim.pause();\n }\n }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n (0, _createClass3.default)(Lottie, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n options = _props.options,\n eventListeners = _props.eventListeners;\n var loop = options.loop,\n autoplay = options.autoplay,\n animationData = options.animationData,\n rendererSettings = options.rendererSettings,\n segments = options.segments;\n\n\n this.options = {\n container: this.el,\n renderer: 'svg',\n loop: loop !== false,\n autoplay: autoplay !== false,\n segments: segments !== false,\n animationData: animationData,\n rendererSettings: rendererSettings\n };\n\n this.options = (0, _extends3.default)({}, this.options, options);\n\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(eventListeners);\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps /* , nextState */) {\n /* Recreate the animation handle if the data is changed */\n if (this.options.animationData !== nextProps.options.animationData) {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options = (0, _extends3.default)({}, this.options, nextProps.options);\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(nextProps.eventListeners);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isStopped) {\n this.stop();\n } else if (this.props.segments) {\n this.playSegments();\n } else {\n this.play();\n }\n\n this.pause();\n this.setSpeed();\n this.setDirection();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options.animationData = null;\n this.anim = null;\n }\n }, {\n key: 'setSpeed',\n value: function setSpeed() {\n this.anim.setSpeed(this.props.speed);\n }\n }, {\n key: 'setDirection',\n value: function setDirection() {\n this.anim.setDirection(this.props.direction);\n }\n }, {\n key: 'play',\n value: function play() {\n this.anim.play();\n }\n }, {\n key: 'playSegments',\n value: function playSegments() {\n this.anim.playSegments(this.props.segments);\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.anim.stop();\n }\n }, {\n key: 'pause',\n value: function pause() {\n if (this.props.isPaused && !this.anim.isPaused) {\n this.anim.pause();\n } else if (!this.props.isPaused && this.anim.isPaused) {\n this.anim.pause();\n }\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.anim.destroy();\n }\n }, {\n key: 'registerEvents',\n value: function registerEvents(eventListeners) {\n var _this2 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this2.anim.addEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'deRegisterEvents',\n value: function deRegisterEvents(eventListeners) {\n var _this3 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this3.anim.removeEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props2 = this.props,\n width = _props2.width,\n height = _props2.height,\n ariaRole = _props2.ariaRole,\n ariaLabel = _props2.ariaLabel,\n isClickToPauseDisabled = _props2.isClickToPauseDisabled,\n title = _props2.title;\n\n\n var getSize = function getSize(initial) {\n var size = void 0;\n\n if (typeof initial === 'number') {\n size = initial + 'px';\n } else {\n size = initial || '100%';\n }\n\n return size;\n };\n\n var lottieStyles = (0, _extends3.default)({\n width: getSize(width),\n height: getSize(height),\n overflow: 'hidden',\n margin: '0 auto',\n outline: 'none'\n }, this.props.style);\n\n var onClickHandler = isClickToPauseDisabled ? function () {\n return null;\n } : this.handleClickToPause;\n\n return (\n // Bug with eslint rules https://github.com/airbnb/javascript/issues/1374\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _react2.default.createElement('div', {\n ref: function ref(c) {\n _this4.el = c;\n },\n style: lottieStyles,\n onClick: onClickHandler,\n title: title,\n role: ariaRole,\n 'aria-label': ariaLabel,\n tabIndex: '0'\n })\n );\n }\n }]);\n return Lottie;\n}(_react2.default.Component);\n\nexports.default = Lottie;\n\n\nLottie.propTypes = {\n eventListeners: _propTypes2.default.arrayOf(_propTypes2.default.object),\n options: _propTypes2.default.object.isRequired,\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n isStopped: _propTypes2.default.bool,\n isPaused: _propTypes2.default.bool,\n speed: _propTypes2.default.number,\n segments: _propTypes2.default.arrayOf(_propTypes2.default.number),\n direction: _propTypes2.default.number,\n ariaRole: _propTypes2.default.string,\n ariaLabel: _propTypes2.default.string,\n isClickToPauseDisabled: _propTypes2.default.bool,\n title: _propTypes2.default.string\n};\n\nLottie.defaultProps = {\n eventListeners: [],\n isStopped: false,\n isPaused: false,\n speed: 1,\n ariaRole: 'button',\n ariaLabel: 'animation',\n isClickToPauseDisabled: false,\n title: ''\n};","/** @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","import React from 'react'\n\nlet renderErr = 'Renderer Error ☝️'\n\nexport const actions = {\n init: 'init',\n}\n\nexport const defaultRenderer = ({ value = '' }) => value;\nexport const emptyRenderer = () => <> ;\n\nexport const defaultColumn = {\n Cell: defaultRenderer,\n width: 150,\n minWidth: 0,\n maxWidth: Number.MAX_SAFE_INTEGER,\n}\n\nfunction mergeProps(...propList) {\n return propList.reduce((props, next) => {\n const { style, className, ...rest } = next\n\n props = {\n ...props,\n ...rest,\n }\n\n if (style) {\n props.style = props.style\n ? { ...(props.style || {}), ...(style || {}) }\n : style\n }\n\n if (className) {\n props.className = props.className\n ? props.className + ' ' + className\n : className\n }\n\n if (props.className === '') {\n delete props.className\n }\n\n return props\n }, {})\n}\n\nfunction handlePropGetter(prevProps, userProps, meta) {\n // Handle a lambda, pass it the previous props\n if (typeof userProps === 'function') {\n return handlePropGetter({}, userProps(prevProps, meta))\n }\n\n // Handle an array, merge each item as separate props\n if (Array.isArray(userProps)) {\n return mergeProps(prevProps, ...userProps)\n }\n\n // Handle an object by default, merge the two objects\n return mergeProps(prevProps, userProps)\n}\n\nexport const makePropGetter = (hooks, meta = {}) => {\n return (userProps = {}) =>\n [...hooks, userProps].reduce(\n (prev, next) =>\n handlePropGetter(prev, next, {\n ...meta,\n userProps,\n }),\n {}\n )\n}\n\nexport const reduceHooks = (hooks, initial, meta = {}, allowUndefined) =>\n hooks.reduce((prev, next) => {\n const nextValue = next(prev, meta)\n if (process.env.NODE_ENV !== 'production') {\n if (!allowUndefined && typeof nextValue === 'undefined') {\n console.info(next)\n throw new Error(\n 'React Table: A reducer hook ☝️ just returned undefined! This is not allowed.'\n )\n }\n }\n return nextValue\n }, initial)\n\nexport const loopHooks = (hooks, context, meta = {}) =>\n hooks.forEach(hook => {\n const nextValue = hook(context, meta)\n if (process.env.NODE_ENV !== 'production') {\n if (typeof nextValue !== 'undefined') {\n console.info(hook, nextValue)\n throw new Error(\n 'React Table: A loop-type hook ☝️ just returned a value! This is not allowed.'\n )\n }\n }\n })\n\nexport function ensurePluginOrder(plugins, befores, pluginName, afters) {\n if (process.env.NODE_ENV !== 'production' && afters) {\n throw new Error(\n `Defining plugins in the \"after\" section of ensurePluginOrder is no longer supported (see plugin ${pluginName})`\n )\n }\n const pluginIndex = plugins.findIndex(\n plugin => plugin.pluginName === pluginName\n )\n\n if (pluginIndex === -1) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`The plugin \"${pluginName}\" was not found in the plugin list!\nThis usually means you need to need to name your plugin hook by setting the 'pluginName' property of the hook function, eg:\n\n ${pluginName}.pluginName = '${pluginName}'\n`)\n }\n }\n\n befores.forEach(before => {\n const beforeIndex = plugins.findIndex(\n plugin => plugin.pluginName === before\n )\n if (beforeIndex > -1 && beforeIndex > pluginIndex) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `React Table: The ${pluginName} plugin hook must be placed after the ${before} plugin hook!`\n )\n }\n }\n })\n}\n\nexport function functionalUpdate(updater, old) {\n return typeof updater === 'function' ? updater(old) : updater\n}\n\nexport function useGetLatest(obj) {\n const ref = React.useRef()\n ref.current = obj\n\n return React.useCallback(() => ref.current, [])\n}\n\n// SSR has issues with useLayoutEffect still, so use useEffect during SSR\nexport const safeUseLayoutEffect =\n typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\nexport function useMountedLayoutEffect(fn, deps) {\n const mountedRef = React.useRef(false)\n\n safeUseLayoutEffect(() => {\n if (mountedRef.current) {\n fn()\n }\n mountedRef.current = true\n // eslint-disable-next-line\n }, deps)\n}\n\nexport function useAsyncDebounce(defaultFn, defaultWait = 0) {\n const debounceRef = React.useRef({})\n\n const getDefaultFn = useGetLatest(defaultFn)\n const getDefaultWait = useGetLatest(defaultWait)\n\n return React.useCallback(\n async (...args) => {\n if (!debounceRef.current.promise) {\n debounceRef.current.promise = new Promise((resolve, reject) => {\n debounceRef.current.resolve = resolve\n debounceRef.current.reject = reject\n })\n }\n\n if (debounceRef.current.timeout) {\n clearTimeout(debounceRef.current.timeout)\n }\n\n debounceRef.current.timeout = setTimeout(async () => {\n delete debounceRef.current.timeout\n try {\n debounceRef.current.resolve(await getDefaultFn()(...args))\n } catch (err) {\n debounceRef.current.reject(err)\n } finally {\n delete debounceRef.current.promise\n }\n }, getDefaultWait())\n\n return debounceRef.current.promise\n },\n [getDefaultFn, getDefaultWait]\n )\n}\n\nexport function makeRenderer(instance, column, meta = {}) {\n return (type, userProps = {}) => {\n const Comp = typeof type === 'string' ? column[type] : type\n\n if (typeof Comp === 'undefined') {\n console.info(column)\n throw new Error(renderErr)\n }\n\n return flexRender(Comp, { ...instance, column, ...meta, ...userProps })\n }\n}\n\nexport function flexRender(Comp, props) {\n return isReactComponent(Comp) ? : Comp\n}\n\nfunction isReactComponent(component) {\n return (\n isClassComponent(component) ||\n typeof component === 'function' ||\n isExoticComponent(component)\n )\n}\n\nfunction isClassComponent(component) {\n return (\n typeof component === 'function' &&\n (() => {\n const proto = Object.getPrototypeOf(component)\n return proto.prototype && proto.prototype.isReactComponent\n })()\n )\n}\n\nfunction isExoticComponent(component) {\n return (\n typeof component === 'object' &&\n typeof component.$$typeof === 'symbol' &&\n ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description)\n )\n}\n","import { defaultColumn, emptyRenderer } from './publicUtils'\n\n// Find the depth of the columns\nexport function findMaxDepth(columns, depth = 0) {\n return columns.reduce((prev, curr) => {\n if (curr.columns) {\n return Math.max(prev, findMaxDepth(curr.columns, depth + 1))\n }\n return depth\n }, 0)\n}\n\n// Build the visible columns, headers and flat column list\nexport function linkColumnStructure(columns, parent, depth = 0) {\n return columns.map(column => {\n column = {\n ...column,\n parent,\n depth,\n }\n\n assignColumnAccessor(column)\n\n if (column.columns) {\n column.columns = linkColumnStructure(column.columns, column, depth + 1)\n }\n return column\n })\n}\n\nexport function flattenColumns(columns) {\n return flattenBy(columns, 'columns')\n}\n\nexport function assignColumnAccessor(column) {\n // First check for string accessor\n let { id, accessor, Header } = column\n\n if (typeof accessor === 'string') {\n id = id || accessor\n const accessorPath = accessor.split('.')\n accessor = row => getBy(row, accessorPath)\n }\n\n if (!id && typeof Header === 'string' && Header) {\n id = Header\n }\n\n if (!id && column.columns) {\n console.error(column)\n throw new Error('A column ID (or unique \"Header\" value) is required!')\n }\n\n if (!id) {\n console.error(column)\n throw new Error('A column ID (or string accessor) is required!')\n }\n\n Object.assign(column, {\n id,\n accessor,\n })\n\n return column\n}\n\nexport function decorateColumn(column, userDefaultColumn) {\n if (!userDefaultColumn) {\n throw new Error()\n }\n Object.assign(column, {\n // Make sure there is a fallback header, just in case\n Header: emptyRenderer,\n Footer: emptyRenderer,\n ...defaultColumn,\n ...userDefaultColumn,\n ...column,\n })\n\n Object.assign(column, {\n originalWidth: column.width,\n })\n\n return column\n}\n\n// Build the header groups from the bottom up\nexport function makeHeaderGroups(\n allColumns,\n defaultColumn,\n additionalHeaderProperties = () => ({})\n) {\n const headerGroups = []\n\n let scanColumns = allColumns\n\n let uid = 0\n const getUID = () => uid++\n\n while (scanColumns.length) {\n // The header group we are creating\n const headerGroup = {\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const parentColumns = []\n\n const hasParents = scanColumns.some(d => d.parent)\n\n // Scan each column for parents\n scanColumns.forEach(column => {\n // What is the latest (last) parent column?\n let latestParentColumn = [...parentColumns].reverse()[0]\n\n let newParent\n\n if (hasParents) {\n // If the column has a parent, add it if necessary\n if (column.parent) {\n newParent = {\n ...column.parent,\n originalId: column.parent.id,\n id: `${column.parent.id}_${getUID()}`,\n headers: [column],\n ...additionalHeaderProperties(column),\n }\n } else {\n // If other columns have parents, we'll need to add a place holder if necessary\n const originalId = `${column.id}_placeholder`\n newParent = decorateColumn(\n {\n originalId,\n id: `${column.id}_placeholder_${getUID()}`,\n placeholderOf: column,\n headers: [column],\n ...additionalHeaderProperties(column),\n },\n defaultColumn\n )\n }\n\n // If the resulting parent columns are the same, just add\n // the column and increment the header span\n if (\n latestParentColumn &&\n latestParentColumn.originalId === newParent.originalId\n ) {\n latestParentColumn.headers.push(column)\n } else {\n parentColumns.push(newParent)\n }\n }\n\n headerGroup.headers.push(column)\n })\n\n headerGroups.push(headerGroup)\n\n // Start scanning the parent columns\n scanColumns = parentColumns\n }\n\n return headerGroups.reverse()\n}\n\nconst pathObjCache = new Map()\n\nexport function getBy(obj, path, def) {\n if (!path) {\n return obj\n }\n const cacheKey = typeof path === 'function' ? path : JSON.stringify(path)\n\n const pathObj =\n pathObjCache.get(cacheKey) ||\n (() => {\n const pathObj = makePathArray(path)\n pathObjCache.set(cacheKey, pathObj)\n return pathObj\n })()\n\n let val\n\n try {\n val = pathObj.reduce((cursor, pathPart) => cursor[pathPart], obj)\n } catch (e) {\n // continue regardless of error\n }\n return typeof val !== 'undefined' ? val : def\n}\n\nexport function getFirstDefined(...args) {\n for (let i = 0; i < args.length; i += 1) {\n if (typeof args[i] !== 'undefined') {\n return args[i]\n }\n }\n}\n\nexport function getElementDimensions(element) {\n const rect = element.getBoundingClientRect()\n const style = window.getComputedStyle(element)\n const margins = {\n left: parseInt(style.marginLeft),\n right: parseInt(style.marginRight),\n }\n const padding = {\n left: parseInt(style.paddingLeft),\n right: parseInt(style.paddingRight),\n }\n return {\n left: Math.ceil(rect.left),\n width: Math.ceil(rect.width),\n outerWidth: Math.ceil(\n rect.width + margins.left + margins.right + padding.left + padding.right\n ),\n marginLeft: margins.left,\n marginRight: margins.right,\n paddingLeft: padding.left,\n paddingRight: padding.right,\n scrollWidth: element.scrollWidth,\n }\n}\n\nexport function isFunction(a) {\n if (typeof a === 'function') {\n return a\n }\n}\n\nexport function flattenBy(arr, key) {\n const flat = []\n\n const recurse = arr => {\n arr.forEach(d => {\n if (!d[key]) {\n flat.push(d)\n } else {\n recurse(d[key])\n }\n })\n }\n\n recurse(arr)\n\n return flat\n}\n\nexport function expandRows(\n rows,\n { manualExpandedKey, expanded, expandSubRows = true }\n) {\n const expandedRows = []\n\n const handleRow = (row, addToExpandedRows = true) => {\n row.isExpanded =\n (row.original && row.original[manualExpandedKey]) || expanded[row.id]\n\n row.canExpand = row.subRows && !!row.subRows.length\n\n if (addToExpandedRows) {\n expandedRows.push(row)\n }\n\n if (row.subRows && row.subRows.length && row.isExpanded) {\n row.subRows.forEach(row => handleRow(row, expandSubRows))\n }\n }\n\n rows.forEach(row => handleRow(row))\n\n return expandedRows\n}\n\nexport function getFilterMethod(filter, userFilterTypes, filterTypes) {\n return (\n isFunction(filter) ||\n userFilterTypes[filter] ||\n filterTypes[filter] ||\n filterTypes.text\n )\n}\n\nexport function shouldAutoRemoveFilter(autoRemove, value, column) {\n return autoRemove ? autoRemove(value, column) : typeof value === 'undefined'\n}\n\nexport function unpreparedAccessWarning() {\n throw new Error(\n 'React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.'\n )\n}\n\nlet passiveSupported = null\nexport function passiveEventSupported() {\n // memoize support to avoid adding multiple test events\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n window.addEventListener('test', null, options)\n window.removeEventListener('test', null, options)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\n//\n\nconst reOpenBracket = /\\[/g\nconst reCloseBracket = /\\]/g\n\nfunction makePathArray(obj) {\n return (\n flattenDeep(obj)\n // remove all periods in parts\n .map(d => String(d).replace('.', '_'))\n // join parts using period\n .join('.')\n // replace brackets with periods\n .replace(reOpenBracket, '.')\n .replace(reCloseBracket, '')\n // split it back out on periods\n .split('.')\n )\n}\n\nfunction flattenDeep(arr, newArr = []) {\n if (!Array.isArray(arr)) {\n newArr.push(arr)\n } else {\n for (let i = 0; i < arr.length; i += 1) {\n flattenDeep(arr[i], newArr)\n }\n }\n return newArr\n}\n","const defaultGetTableProps = props => ({\n role: 'table',\n ...props,\n})\n\nconst defaultGetTableBodyProps = props => ({\n role: 'rowgroup',\n ...props,\n})\n\nconst defaultGetHeaderProps = (props, { column }) => ({\n key: `header_${column.id}`,\n colSpan: column.totalVisibleHeaderCount,\n role: 'columnheader',\n ...props,\n})\n\nconst defaultGetFooterProps = (props, { column }) => ({\n key: `footer_${column.id}`,\n colSpan: column.totalVisibleHeaderCount,\n ...props,\n})\n\nconst defaultGetHeaderGroupProps = (props, { index }) => ({\n key: `headerGroup_${index}`,\n role: 'row',\n ...props,\n})\n\nconst defaultGetFooterGroupProps = (props, { index }) => ({\n key: `footerGroup_${index}`,\n ...props,\n})\n\nconst defaultGetRowProps = (props, { row }) => ({\n key: `row_${row.id}`,\n role: 'row',\n ...props,\n})\n\nconst defaultGetCellProps = (props, { cell }) => ({\n key: `cell_${cell.row.id}_${cell.column.id}`,\n role: 'cell',\n ...props,\n})\n\nexport default function makeDefaultPluginHooks() {\n return {\n useOptions: [],\n stateReducers: [],\n useControlledState: [],\n columns: [],\n columnsDeps: [],\n allColumns: [],\n allColumnsDeps: [],\n accessValue: [],\n materializedColumns: [],\n materializedColumnsDeps: [],\n useInstanceAfterData: [],\n visibleColumns: [],\n visibleColumnsDeps: [],\n headerGroups: [],\n headerGroupsDeps: [],\n useInstanceBeforeDimensions: [],\n useInstance: [],\n prepareRow: [],\n getTableProps: [defaultGetTableProps],\n getTableBodyProps: [defaultGetTableBodyProps],\n getHeaderGroupProps: [defaultGetHeaderGroupProps],\n getFooterGroupProps: [defaultGetFooterGroupProps],\n getHeaderProps: [defaultGetHeaderProps],\n getFooterProps: [defaultGetFooterProps],\n getRowProps: [defaultGetRowProps],\n getCellProps: [defaultGetCellProps],\n useFinalInstance: [],\n }\n}\n","import React from 'react'\n\nimport {\n actions,\n functionalUpdate,\n useGetLatest,\n makePropGetter,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nactions.resetHiddenColumns = 'resetHiddenColumns'\nactions.toggleHideColumn = 'toggleHideColumn'\nactions.setHiddenColumns = 'setHiddenColumns'\nactions.toggleHideAllColumns = 'toggleHideAllColumns'\n\nexport const useColumnVisibility = hooks => {\n hooks.getToggleHiddenProps = [defaultGetToggleHiddenProps]\n hooks.getToggleHideAllColumnsProps = [defaultGetToggleHideAllColumnsProps]\n\n hooks.stateReducers.push(reducer)\n hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions)\n hooks.headerGroupsDeps.push((deps, { instance }) => [\n ...deps,\n instance.state.hiddenColumns,\n ])\n hooks.useInstance.push(useInstance)\n}\n\nuseColumnVisibility.pluginName = 'useColumnVisibility'\n\nconst defaultGetToggleHiddenProps = (props, { column }) => [\n props,\n {\n onChange: e => {\n column.toggleHidden(!e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: column.isVisible,\n title: 'Toggle Column Visible',\n },\n]\n\nconst defaultGetToggleHideAllColumnsProps = (props, { instance }) => [\n props,\n {\n onChange: e => {\n instance.toggleHideAllColumns(!e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: !instance.allColumnsHidden && !instance.state.hiddenColumns.length,\n title: 'Toggle All Columns Hidden',\n indeterminate:\n !instance.allColumnsHidden && instance.state.hiddenColumns.length,\n },\n]\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n hiddenColumns: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetHiddenColumns) {\n return {\n ...state,\n hiddenColumns: instance.initialState.hiddenColumns || [],\n }\n }\n\n if (action.type === actions.toggleHideColumn) {\n const should =\n typeof action.value !== 'undefined'\n ? action.value\n : !state.hiddenColumns.includes(action.columnId)\n\n const hiddenColumns = should\n ? [...state.hiddenColumns, action.columnId]\n : state.hiddenColumns.filter(d => d !== action.columnId)\n\n return {\n ...state,\n hiddenColumns,\n }\n }\n\n if (action.type === actions.setHiddenColumns) {\n return {\n ...state,\n hiddenColumns: functionalUpdate(action.value, state.hiddenColumns),\n }\n }\n\n if (action.type === actions.toggleHideAllColumns) {\n const shouldAll =\n typeof action.value !== 'undefined'\n ? action.value\n : !state.hiddenColumns.length\n\n return {\n ...state,\n hiddenColumns: shouldAll ? instance.allColumns.map(d => d.id) : [],\n }\n }\n}\n\nfunction useInstanceBeforeDimensions(instance) {\n const {\n headers,\n state: { hiddenColumns },\n } = instance\n\n const isMountedRef = React.useRef(false)\n\n if (!isMountedRef.current) {\n }\n\n const handleColumn = (column, parentVisible) => {\n column.isVisible = parentVisible && !hiddenColumns.includes(column.id)\n\n let totalVisibleHeaderCount = 0\n\n if (column.headers && column.headers.length) {\n column.headers.forEach(\n subColumn =>\n (totalVisibleHeaderCount += handleColumn(subColumn, column.isVisible))\n )\n } else {\n totalVisibleHeaderCount = column.isVisible ? 1 : 0\n }\n\n column.totalVisibleHeaderCount = totalVisibleHeaderCount\n\n return totalVisibleHeaderCount\n }\n\n let totalVisibleHeaderCount = 0\n\n headers.forEach(\n subHeader => (totalVisibleHeaderCount += handleColumn(subHeader, true))\n )\n}\n\nfunction useInstance(instance) {\n const {\n columns,\n flatHeaders,\n dispatch,\n allColumns,\n getHooks,\n state: { hiddenColumns },\n autoResetHiddenColumns = true,\n } = instance\n\n const getInstance = useGetLatest(instance)\n\n const allColumnsHidden = allColumns.length === hiddenColumns.length\n\n const toggleHideColumn = React.useCallback(\n (columnId, value) =>\n dispatch({ type: actions.toggleHideColumn, columnId, value }),\n [dispatch]\n )\n\n const setHiddenColumns = React.useCallback(\n value => dispatch({ type: actions.setHiddenColumns, value }),\n [dispatch]\n )\n\n const toggleHideAllColumns = React.useCallback(\n value => dispatch({ type: actions.toggleHideAllColumns, value }),\n [dispatch]\n )\n\n const getToggleHideAllColumnsProps = makePropGetter(\n getHooks().getToggleHideAllColumnsProps,\n { instance: getInstance() }\n )\n\n flatHeaders.forEach(column => {\n column.toggleHidden = value => {\n dispatch({\n type: actions.toggleHideColumn,\n columnId: column.id,\n value,\n })\n }\n\n column.getToggleHiddenProps = makePropGetter(\n getHooks().getToggleHiddenProps,\n {\n instance: getInstance(),\n column,\n }\n )\n })\n\n const getAutoResetHiddenColumns = useGetLatest(autoResetHiddenColumns)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetHiddenColumns()) {\n dispatch({ type: actions.resetHiddenColumns })\n }\n }, [dispatch, columns])\n\n Object.assign(instance, {\n allColumnsHidden,\n toggleHideColumn,\n setHiddenColumns,\n toggleHideAllColumns,\n getToggleHideAllColumnsProps,\n })\n}\n","import React from 'react'\n\n//\n\nimport {\n linkColumnStructure,\n flattenColumns,\n assignColumnAccessor,\n unpreparedAccessWarning,\n makeHeaderGroups,\n decorateColumn,\n} from '../utils'\n\nimport {\n useGetLatest,\n reduceHooks,\n actions,\n loopHooks,\n makePropGetter,\n makeRenderer,\n} from '../publicUtils'\n\nimport makeDefaultPluginHooks from '../makeDefaultPluginHooks'\n\nimport { useColumnVisibility } from './useColumnVisibility'\n\nconst defaultInitialState = {}\nconst defaultColumnInstance = {}\nconst defaultReducer = (state, action, prevState) => state\nconst defaultGetSubRows = (row, index) => row.subRows || []\nconst defaultGetRowId = (row, index, parent) =>\n `${parent ? [parent.id, index].join('.') : index}`\nconst defaultUseControlledState = d => d\n\nfunction applyDefaults(props) {\n const {\n initialState = defaultInitialState,\n defaultColumn = defaultColumnInstance,\n getSubRows = defaultGetSubRows,\n getRowId = defaultGetRowId,\n stateReducer = defaultReducer,\n useControlledState = defaultUseControlledState,\n ...rest\n } = props\n\n return {\n ...rest,\n initialState,\n defaultColumn,\n getSubRows,\n getRowId,\n stateReducer,\n useControlledState,\n }\n}\n\nexport const useTable = (props, ...plugins) => {\n // Apply default props\n props = applyDefaults(props)\n\n // Add core plugins\n plugins = [useColumnVisibility, ...plugins]\n\n // Create the table instance\n let instanceRef = React.useRef({})\n\n // Create a getter for the instance (helps avoid a lot of potential memory leaks)\n const getInstance = useGetLatest(instanceRef.current)\n\n // Assign the props, plugins and hooks to the instance\n Object.assign(getInstance(), {\n ...props,\n plugins,\n hooks: makeDefaultPluginHooks(),\n })\n\n // Allow plugins to register hooks as early as possible\n plugins.filter(Boolean).forEach(plugin => {\n plugin(getInstance().hooks)\n })\n\n // Consume all hooks and make a getter for them\n const getHooks = useGetLatest(getInstance().hooks)\n getInstance().getHooks = getHooks\n delete getInstance().hooks\n\n // Allow useOptions hooks to modify the options coming into the table\n Object.assign(\n getInstance(),\n reduceHooks(getHooks().useOptions, applyDefaults(props))\n )\n\n const {\n data,\n columns: userColumns,\n initialState,\n defaultColumn,\n getSubRows,\n getRowId,\n stateReducer,\n useControlledState,\n } = getInstance()\n\n // Setup user reducer ref\n const getStateReducer = useGetLatest(stateReducer)\n\n // Build the reducer\n const reducer = React.useCallback(\n (state, action) => {\n // Detect invalid actions\n if (!action.type) {\n console.info({ action })\n throw new Error('Unknown Action 👆')\n }\n\n // Reduce the state from all plugin reducers\n return [\n ...getHooks().stateReducers,\n // Allow the user to add their own state reducer(s)\n ...(Array.isArray(getStateReducer())\n ? getStateReducer()\n : [getStateReducer()]),\n ].reduce(\n (s, handler) => handler(s, action, state, getInstance()) || s,\n state\n )\n },\n [getHooks, getStateReducer, getInstance]\n )\n\n // Start the reducer\n const [reducerState, dispatch] = React.useReducer(reducer, undefined, () =>\n reducer(initialState, { type: actions.init })\n )\n\n // Allow the user to control the final state with hooks\n const state = reduceHooks(\n [...getHooks().useControlledState, useControlledState],\n reducerState,\n { instance: getInstance() }\n )\n\n Object.assign(getInstance(), {\n state,\n dispatch,\n })\n\n // Decorate All the columns\n const columns = React.useMemo(\n () =>\n linkColumnStructure(\n reduceHooks(getHooks().columns, userColumns, {\n instance: getInstance(),\n })\n ),\n [\n getHooks,\n getInstance,\n userColumns,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().columnsDeps, [], { instance: getInstance() }),\n ]\n )\n getInstance().columns = columns\n\n // Get the flat list of all columns and allow hooks to decorate\n // those columns (and trigger this memoization via deps)\n let allColumns = React.useMemo(\n () =>\n reduceHooks(getHooks().allColumns, flattenColumns(columns), {\n instance: getInstance(),\n }).map(assignColumnAccessor),\n [\n columns,\n getHooks,\n getInstance,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().allColumnsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n getInstance().allColumns = allColumns\n\n // Access the row model using initial columns\n const [rows, flatRows, rowsById] = React.useMemo(() => {\n let rows = []\n let flatRows = []\n const rowsById = {}\n\n const allColumnsQueue = [...allColumns]\n\n while (allColumnsQueue.length) {\n const column = allColumnsQueue.shift()\n accessRowsForColumn({\n data,\n rows,\n flatRows,\n rowsById,\n column,\n getRowId,\n getSubRows,\n accessValueHooks: getHooks().accessValue,\n getInstance,\n })\n }\n\n return [rows, flatRows, rowsById]\n }, [allColumns, data, getRowId, getSubRows, getHooks, getInstance])\n\n Object.assign(getInstance(), {\n rows,\n initialRows: [...rows],\n flatRows,\n rowsById,\n // materializedColumns,\n })\n\n loopHooks(getHooks().useInstanceAfterData, getInstance())\n\n // Get the flat list of all columns AFTER the rows\n // have been access, and allow hooks to decorate\n // those columns (and trigger this memoization via deps)\n let visibleColumns = React.useMemo(\n () =>\n reduceHooks(getHooks().visibleColumns, allColumns, {\n instance: getInstance(),\n }).map(d => decorateColumn(d, defaultColumn)),\n [\n getHooks,\n allColumns,\n getInstance,\n defaultColumn,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().visibleColumnsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n\n // Combine new visible columns with all columns\n allColumns = React.useMemo(() => {\n const columns = [...visibleColumns]\n\n allColumns.forEach(column => {\n if (!columns.find(d => d.id === column.id)) {\n columns.push(column)\n }\n })\n\n return columns\n }, [allColumns, visibleColumns])\n getInstance().allColumns = allColumns\n\n if (process.env.NODE_ENV !== 'production') {\n const duplicateColumns = allColumns.filter((column, i) => {\n return allColumns.findIndex(d => d.id === column.id) !== i\n })\n\n if (duplicateColumns.length) {\n console.info(allColumns)\n throw new Error(\n `Duplicate columns were found with ids: \"${duplicateColumns\n .map(d => d.id)\n .join(', ')}\" in the columns array above`\n )\n }\n }\n\n // Make the headerGroups\n const headerGroups = React.useMemo(\n () =>\n reduceHooks(\n getHooks().headerGroups,\n makeHeaderGroups(visibleColumns, defaultColumn),\n getInstance()\n ),\n [\n getHooks,\n visibleColumns,\n defaultColumn,\n getInstance,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...reduceHooks(getHooks().headerGroupsDeps, [], {\n instance: getInstance(),\n }),\n ]\n )\n getInstance().headerGroups = headerGroups\n\n // Get the first level of headers\n const headers = React.useMemo(\n () => (headerGroups.length ? headerGroups[0].headers : []),\n [headerGroups]\n )\n getInstance().headers = headers\n\n // Provide a flat header list for utilities\n getInstance().flatHeaders = headerGroups.reduce(\n (all, headerGroup) => [...all, ...headerGroup.headers],\n []\n )\n\n loopHooks(getHooks().useInstanceBeforeDimensions, getInstance())\n\n // Filter columns down to visible ones\n const visibleColumnsDep = visibleColumns\n .filter(d => d.isVisible)\n .map(d => d.id)\n .sort()\n .join('_')\n\n visibleColumns = React.useMemo(\n () => visibleColumns.filter(d => d.isVisible),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [visibleColumns, visibleColumnsDep]\n )\n getInstance().visibleColumns = visibleColumns\n\n // Header Visibility is needed by this point\n const [\n totalColumnsMinWidth,\n totalColumnsWidth,\n totalColumnsMaxWidth,\n ] = calculateHeaderWidths(headers)\n\n getInstance().totalColumnsMinWidth = totalColumnsMinWidth\n getInstance().totalColumnsWidth = totalColumnsWidth\n getInstance().totalColumnsMaxWidth = totalColumnsMaxWidth\n\n loopHooks(getHooks().useInstance, getInstance())\n\n // Each materialized header needs to be assigned a render function and other\n // prop getter properties here.\n ;[...getInstance().flatHeaders, ...getInstance().allColumns].forEach(\n column => {\n // Give columns/headers rendering power\n column.render = makeRenderer(getInstance(), column)\n\n // Give columns/headers a default getHeaderProps\n column.getHeaderProps = makePropGetter(getHooks().getHeaderProps, {\n instance: getInstance(),\n column,\n })\n\n // Give columns/headers a default getFooterProps\n column.getFooterProps = makePropGetter(getHooks().getFooterProps, {\n instance: getInstance(),\n column,\n })\n }\n )\n\n getInstance().headerGroups = React.useMemo(\n () =>\n headerGroups.filter((headerGroup, i) => {\n // Filter out any headers and headerGroups that don't have visible columns\n headerGroup.headers = headerGroup.headers.filter(column => {\n const recurse = headers =>\n headers.filter(column => {\n if (column.headers) {\n return recurse(column.headers)\n }\n return column.isVisible\n }).length\n if (column.headers) {\n return recurse(column.headers)\n }\n return column.isVisible\n })\n\n // Give headerGroups getRowProps\n if (headerGroup.headers.length) {\n headerGroup.getHeaderGroupProps = makePropGetter(\n getHooks().getHeaderGroupProps,\n { instance: getInstance(), headerGroup, index: i }\n )\n\n headerGroup.getFooterGroupProps = makePropGetter(\n getHooks().getFooterGroupProps,\n { instance: getInstance(), headerGroup, index: i }\n )\n\n return true\n }\n\n return false\n }),\n [headerGroups, getInstance, getHooks]\n )\n\n getInstance().footerGroups = [...getInstance().headerGroups].reverse()\n\n // The prepareRow function is absolutely necessary and MUST be called on\n // any rows the user wishes to be displayed.\n\n getInstance().prepareRow = React.useCallback(\n row => {\n row.getRowProps = makePropGetter(getHooks().getRowProps, {\n instance: getInstance(),\n row,\n })\n\n // Build the visible cells for each row\n row.allCells = allColumns.map(column => {\n const value = row.values[column.id]\n\n const cell = {\n column,\n row,\n value,\n }\n\n // Give each cell a getCellProps base\n cell.getCellProps = makePropGetter(getHooks().getCellProps, {\n instance: getInstance(),\n cell,\n })\n\n // Give each cell a renderer function (supports multiple renderers)\n cell.render = makeRenderer(getInstance(), column, {\n row,\n cell,\n value,\n })\n\n return cell\n })\n\n row.cells = visibleColumns.map(column =>\n row.allCells.find(cell => cell.column.id === column.id)\n )\n\n // need to apply any row specific hooks (useExpanded requires this)\n loopHooks(getHooks().prepareRow, row, { instance: getInstance() })\n },\n [getHooks, getInstance, allColumns, visibleColumns]\n )\n\n getInstance().getTableProps = makePropGetter(getHooks().getTableProps, {\n instance: getInstance(),\n })\n\n getInstance().getTableBodyProps = makePropGetter(\n getHooks().getTableBodyProps,\n {\n instance: getInstance(),\n }\n )\n\n loopHooks(getHooks().useFinalInstance, getInstance())\n\n return getInstance()\n}\n\nfunction calculateHeaderWidths(headers, left = 0) {\n let sumTotalMinWidth = 0\n let sumTotalWidth = 0\n let sumTotalMaxWidth = 0\n let sumTotalFlexWidth = 0\n\n headers.forEach(header => {\n let { headers: subHeaders } = header\n\n header.totalLeft = left\n\n if (subHeaders && subHeaders.length) {\n const [\n totalMinWidth,\n totalWidth,\n totalMaxWidth,\n totalFlexWidth,\n ] = calculateHeaderWidths(subHeaders, left)\n header.totalMinWidth = totalMinWidth\n header.totalWidth = totalWidth\n header.totalMaxWidth = totalMaxWidth\n header.totalFlexWidth = totalFlexWidth\n } else {\n header.totalMinWidth = header.minWidth\n header.totalWidth = Math.min(\n Math.max(header.minWidth, header.width),\n header.maxWidth\n )\n header.totalMaxWidth = header.maxWidth\n header.totalFlexWidth = header.canResize ? header.totalWidth : 0\n }\n if (header.isVisible) {\n left += header.totalWidth\n sumTotalMinWidth += header.totalMinWidth\n sumTotalWidth += header.totalWidth\n sumTotalMaxWidth += header.totalMaxWidth\n sumTotalFlexWidth += header.totalFlexWidth\n }\n })\n\n return [sumTotalMinWidth, sumTotalWidth, sumTotalMaxWidth, sumTotalFlexWidth]\n}\n\nfunction accessRowsForColumn({\n data,\n rows,\n flatRows,\n rowsById,\n column,\n getRowId,\n getSubRows,\n accessValueHooks,\n getInstance,\n}) {\n // Access the row's data column-by-column\n // We do it this way so we can incrementally add materialized\n // columns after the first pass and avoid excessive looping\n const accessRow = (originalRow, rowIndex, depth = 0, parent, parentRows) => {\n // Keep the original reference around\n const original = originalRow\n\n const id = getRowId(originalRow, rowIndex, parent)\n\n let row = rowsById[id]\n\n // If the row hasn't been created, let's make it\n if (!row) {\n row = {\n id,\n original,\n index: rowIndex,\n depth,\n cells: [{}], // This is a dummy cell\n }\n\n // Override common array functions (and the dummy cell's getCellProps function)\n // to show an error if it is accessed without calling prepareRow\n row.cells.map = unpreparedAccessWarning\n row.cells.filter = unpreparedAccessWarning\n row.cells.forEach = unpreparedAccessWarning\n row.cells[0].getCellProps = unpreparedAccessWarning\n\n // Create the cells and values\n row.values = {}\n\n // Push this row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n row.originalSubRows = getSubRows(originalRow, rowIndex)\n\n // Then recursively access them\n if (row.originalSubRows) {\n const subRows = []\n row.originalSubRows.forEach((d, i) =>\n accessRow(d, i, depth + 1, row, subRows)\n )\n // Keep the new subRows array on the row\n row.subRows = subRows\n }\n } else if (row.subRows) {\n // If the row exists, then it's already been accessed\n // Keep recursing, but don't worry about passing the\n // accumlator array (those rows already exist)\n row.originalSubRows.forEach((d, i) => accessRow(d, i, depth + 1, row))\n }\n\n // If the column has an accessor, use it to get a value\n if (column.accessor) {\n row.values[column.id] = column.accessor(\n originalRow,\n rowIndex,\n row,\n parentRows,\n data\n )\n }\n\n // Allow plugins to manipulate the column value\n row.values[column.id] = reduceHooks(\n accessValueHooks,\n row.values[column.id],\n {\n row,\n column,\n instance: getInstance(),\n },\n true\n )\n }\n\n data.forEach((originalRow, rowIndex) =>\n accessRow(originalRow, rowIndex, 0, undefined, rows)\n )\n}\n","import React from 'react'\n\nimport { expandRows } from '../utils'\n\nimport {\n useGetLatest,\n actions,\n useMountedLayoutEffect,\n makePropGetter,\n ensurePluginOrder,\n} from '../publicUtils'\n\n// Actions\nactions.resetExpanded = 'resetExpanded'\nactions.toggleRowExpanded = 'toggleRowExpanded'\nactions.toggleAllRowsExpanded = 'toggleAllRowsExpanded'\n\nexport const useExpanded = hooks => {\n hooks.getToggleAllRowsExpandedProps = [defaultGetToggleAllRowsExpandedProps]\n hooks.getToggleRowExpandedProps = [defaultGetToggleRowExpandedProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseExpanded.pluginName = 'useExpanded'\n\nconst defaultGetToggleAllRowsExpandedProps = (props, { instance }) => [\n props,\n {\n onClick: e => {\n instance.toggleAllRowsExpanded()\n },\n style: {\n cursor: 'pointer',\n },\n title: 'Toggle All Rows Expanded',\n },\n]\n\nconst defaultGetToggleRowExpandedProps = (props, { row }) => [\n props,\n {\n onClick: () => {\n row.toggleRowExpanded()\n },\n style: {\n cursor: 'pointer',\n },\n title: 'Toggle Row Expanded',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n expanded: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetExpanded) {\n return {\n ...state,\n expanded: instance.initialState.expanded || {},\n }\n }\n\n if (action.type === actions.toggleAllRowsExpanded) {\n const { value } = action\n const { rowsById } = instance\n\n const isAllRowsExpanded =\n Object.keys(rowsById).length === Object.keys(state.expanded).length\n\n const expandAll = typeof value !== 'undefined' ? value : !isAllRowsExpanded\n\n if (expandAll) {\n const expanded = {}\n\n Object.keys(rowsById).forEach(rowId => {\n expanded[rowId] = true\n })\n\n return {\n ...state,\n expanded,\n }\n }\n\n return {\n ...state,\n expanded: {},\n }\n }\n\n if (action.type === actions.toggleRowExpanded) {\n const { id, value: setExpanded } = action\n const exists = state.expanded[id]\n\n const shouldExist =\n typeof setExpanded !== 'undefined' ? setExpanded : !exists\n\n if (!exists && shouldExist) {\n return {\n ...state,\n expanded: {\n ...state.expanded,\n [id]: true,\n },\n }\n } else if (exists && !shouldExist) {\n const { [id]: _, ...rest } = state.expanded\n return {\n ...state,\n expanded: rest,\n }\n } else {\n return state\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n rowsById,\n manualExpandedKey = 'expanded',\n paginateExpandedRows = true,\n expandSubRows = true,\n autoResetExpanded = true,\n getHooks,\n plugins,\n state: { expanded },\n dispatch,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useSortBy', 'useGroupBy', 'usePivotColumns', 'useGlobalFilter'],\n 'useExpanded'\n )\n\n const getAutoResetExpanded = useGetLatest(autoResetExpanded)\n\n let isAllRowsExpanded = Boolean(\n Object.keys(rowsById).length && Object.keys(expanded).length\n )\n\n if (isAllRowsExpanded) {\n if (Object.keys(rowsById).some(id => !expanded[id])) {\n isAllRowsExpanded = false\n }\n }\n\n // Bypass any effects from firing when this changes\n useMountedLayoutEffect(() => {\n if (getAutoResetExpanded()) {\n dispatch({ type: actions.resetExpanded })\n }\n }, [dispatch, data])\n\n const toggleRowExpanded = React.useCallback(\n (id, value) => {\n dispatch({ type: actions.toggleRowExpanded, id, value })\n },\n [dispatch]\n )\n\n const toggleAllRowsExpanded = React.useCallback(\n value => dispatch({ type: actions.toggleAllRowsExpanded, value }),\n [dispatch]\n )\n\n const expandedRows = React.useMemo(() => {\n if (paginateExpandedRows) {\n return expandRows(rows, { manualExpandedKey, expanded, expandSubRows })\n }\n\n return rows\n }, [paginateExpandedRows, rows, manualExpandedKey, expanded, expandSubRows])\n\n const expandedDepth = React.useMemo(() => findExpandedDepth(expanded), [\n expanded,\n ])\n\n const getInstance = useGetLatest(instance)\n\n const getToggleAllRowsExpandedProps = makePropGetter(\n getHooks().getToggleAllRowsExpandedProps,\n { instance: getInstance() }\n )\n\n Object.assign(instance, {\n preExpandedRows: rows,\n expandedRows,\n rows: expandedRows,\n expandedDepth,\n isAllRowsExpanded,\n toggleRowExpanded,\n toggleAllRowsExpanded,\n getToggleAllRowsExpandedProps,\n })\n}\n\nfunction prepareRow(row, { instance: { getHooks }, instance }) {\n row.toggleRowExpanded = set => instance.toggleRowExpanded(row.id, set)\n\n row.getToggleRowExpandedProps = makePropGetter(\n getHooks().getToggleRowExpandedProps,\n {\n instance,\n row,\n }\n )\n}\n\nfunction findExpandedDepth(expanded) {\n let maxDepth = 0\n\n Object.keys(expanded).forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n}\n","export const text = (rows, ids, filterValue) => {\n rows = rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return String(rowValue)\n .toLowerCase()\n .includes(String(filterValue).toLowerCase())\n })\n })\n return rows\n}\n\ntext.autoRemove = val => !val\n\nexport const exactText = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined\n ? String(rowValue).toLowerCase() === String(filterValue).toLowerCase()\n : true\n })\n })\n}\n\nexactText.autoRemove = val => !val\n\nexport const exactTextCase = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue !== undefined\n ? String(rowValue) === String(filterValue)\n : true\n })\n })\n}\n\nexactTextCase.autoRemove = val => !val\n\nexport const includes = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue.includes(filterValue)\n })\n })\n}\n\nincludes.autoRemove = val => !val || !val.length\n\nexport const includesAll = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.every(val => rowValue.includes(val))\n )\n })\n })\n}\n\nincludesAll.autoRemove = val => !val || !val.length\n\nexport const includesSome = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return (\n rowValue &&\n rowValue.length &&\n filterValue.some(val => rowValue.includes(val))\n )\n })\n })\n}\n\nincludesSome.autoRemove = val => !val || !val.length\n\nexport const includesValue = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return filterValue.includes(rowValue)\n })\n })\n}\n\nincludesValue.autoRemove = val => !val || !val.length\n\nexport const exact = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue === filterValue\n })\n })\n}\n\nexact.autoRemove = val => typeof val === 'undefined'\n\nexport const equals = (rows, ids, filterValue) => {\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n // eslint-disable-next-line eqeqeq\n return rowValue == filterValue\n })\n })\n}\n\nequals.autoRemove = val => val == null\n\nexport const between = (rows, ids, filterValue) => {\n let [min, max] = filterValue || []\n\n min = typeof min === 'number' ? min : -Infinity\n max = typeof max === 'number' ? max : Infinity\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return rows.filter(row => {\n return ids.some(id => {\n const rowValue = row.values[id]\n return rowValue >= min && rowValue <= max\n })\n })\n}\n\nbetween.autoRemove = val =>\n !val || (typeof val[0] !== 'number' && typeof val[1] !== 'number')\n","import React from 'react'\n\nimport {\n getFirstDefined,\n getFilterMethod,\n shouldAutoRemoveFilter,\n} from '../utils'\n\nimport {\n actions,\n useGetLatest,\n functionalUpdate,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport * as filterTypes from '../filterTypes'\n\n// Actions\nactions.resetFilters = 'resetFilters'\nactions.setFilter = 'setFilter'\nactions.setAllFilters = 'setAllFilters'\n\nexport const useFilters = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseFilters.pluginName = 'useFilters'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n filters: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetFilters) {\n return {\n ...state,\n filters: instance.initialState.filters || [],\n }\n }\n\n if (action.type === actions.setFilter) {\n const { columnId, filterValue } = action\n const { allColumns, filterTypes: userFilterTypes } = instance\n\n const column = allColumns.find(d => d.id === columnId)\n\n if (!column) {\n throw new Error(\n `React-Table: Could not find a column with id: ${columnId}`\n )\n }\n\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n const previousfilter = state.filters.find(d => d.id === columnId)\n\n const newFilter = functionalUpdate(\n filterValue,\n previousfilter && previousfilter.value\n )\n\n //\n if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter, column)) {\n return {\n ...state,\n filters: state.filters.filter(d => d.id !== columnId),\n }\n }\n\n if (previousfilter) {\n return {\n ...state,\n filters: state.filters.map(d => {\n if (d.id === columnId) {\n return { id: columnId, value: newFilter }\n }\n return d\n }),\n }\n }\n\n return {\n ...state,\n filters: [...state.filters, { id: columnId, value: newFilter }],\n }\n }\n\n if (action.type === actions.setAllFilters) {\n const { filters } = action\n const { allColumns, filterTypes: userFilterTypes } = instance\n\n return {\n ...state,\n // Filter out undefined values\n filters: functionalUpdate(filters, state.filters).filter(filter => {\n const column = allColumns.find(d => d.id === filter.id)\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (\n shouldAutoRemoveFilter(filterMethod.autoRemove, filter.value, column)\n ) {\n return false\n }\n return true\n }),\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n filterTypes: userFilterTypes,\n manualFilters,\n defaultCanFilter = false,\n disableFilters,\n state: { filters },\n dispatch,\n autoResetFilters = true,\n } = instance\n\n const setFilter = React.useCallback(\n (columnId, filterValue) => {\n dispatch({ type: actions.setFilter, columnId, filterValue })\n },\n [dispatch]\n )\n\n const setAllFilters = React.useCallback(\n filters => {\n dispatch({\n type: actions.setAllFilters,\n filters,\n })\n },\n [dispatch]\n )\n\n allColumns.forEach(column => {\n const {\n id,\n accessor,\n defaultCanFilter: columnDefaultCanFilter,\n disableFilters: columnDisableFilters,\n } = column\n\n // Determine if a column is filterable\n column.canFilter = accessor\n ? getFirstDefined(\n columnDisableFilters === true ? false : undefined,\n disableFilters === true ? false : undefined,\n true\n )\n : getFirstDefined(columnDefaultCanFilter, defaultCanFilter, false)\n\n // Provide the column a way of updating the filter value\n column.setFilter = val => setFilter(column.id, val)\n\n // Provide the current filter value to the column for\n // convenience\n const found = filters.find(d => d.id === id)\n column.filterValue = found && found.value\n })\n\n const [\n filteredRows,\n filteredFlatRows,\n filteredRowsById,\n ] = React.useMemo(() => {\n if (manualFilters || !filters.length) {\n return [rows, flatRows, rowsById]\n }\n\n const filteredFlatRows = []\n const filteredRowsById = {}\n\n // Filters top level and nested rows\n const filterRows = (rows, depth = 0) => {\n let filteredRows = rows\n\n filteredRows = filters.reduce(\n (filteredSoFar, { id: columnId, value: filterValue }) => {\n // Find the filters column\n const column = allColumns.find(d => d.id === columnId)\n\n if (!column) {\n return filteredSoFar\n }\n\n if (depth === 0) {\n column.preFilteredRows = filteredSoFar\n }\n\n const filterMethod = getFilterMethod(\n column.filter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (!filterMethod) {\n console.warn(\n `Could not find a valid 'column.filter' for column with the ID: ${column.id}.`\n )\n return filteredSoFar\n }\n\n // Pass the rows, id, filterValue and column to the filterMethod\n // to get the filtered rows back\n column.filteredRows = filterMethod(\n filteredSoFar,\n [columnId],\n filterValue\n )\n\n return column.filteredRows\n },\n rows\n )\n\n // Apply the filter to any subRows\n // We technically could do this recursively in the above loop,\n // but that would severely hinder the API for the user, since they\n // would be required to do that recursion in some scenarios\n filteredRows.forEach(row => {\n filteredFlatRows.push(row)\n filteredRowsById[row.id] = row\n if (!row.subRows) {\n return\n }\n\n row.subRows =\n row.subRows && row.subRows.length > 0\n ? filterRows(row.subRows, depth + 1)\n : row.subRows\n })\n\n return filteredRows\n }\n\n return [filterRows(rows), filteredFlatRows, filteredRowsById]\n }, [\n manualFilters,\n filters,\n rows,\n flatRows,\n rowsById,\n allColumns,\n userFilterTypes,\n ])\n\n React.useMemo(() => {\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = allColumns.filter(\n column => !filters.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n nonFilteredColumns.forEach(column => {\n column.preFilteredRows = filteredRows\n column.filteredRows = filteredRows\n })\n }, [filteredRows, filters, allColumns])\n\n const getAutoResetFilters = useGetLatest(autoResetFilters)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetFilters()) {\n dispatch({ type: actions.resetFilters })\n }\n }, [dispatch, manualFilters ? null : data])\n\n Object.assign(instance, {\n preFilteredRows: rows,\n preFilteredFlatRows: flatRows,\n preFilteredRowsById: rowsById,\n filteredRows,\n filteredFlatRows,\n filteredRowsById,\n rows: filteredRows,\n flatRows: filteredFlatRows,\n rowsById: filteredRowsById,\n setFilter,\n setAllFilters,\n })\n}\n","import React from 'react'\n\nimport {\n getFilterMethod,\n shouldAutoRemoveFilter,\n getFirstDefined,\n} from '../utils'\n\nimport {\n actions,\n useMountedLayoutEffect,\n functionalUpdate,\n useGetLatest,\n} from '../publicUtils'\n\nimport * as filterTypes from '../filterTypes'\n\n// Actions\nactions.resetGlobalFilter = 'resetGlobalFilter'\nactions.setGlobalFilter = 'setGlobalFilter'\n\nexport const useGlobalFilter = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseGlobalFilter.pluginName = 'useGlobalFilter'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.resetGlobalFilter) {\n return {\n ...state,\n globalFilter: instance.initialState.globalFilter || undefined,\n }\n }\n\n if (action.type === actions.setGlobalFilter) {\n const { filterValue } = action\n const { userFilterTypes } = instance\n\n const filterMethod = getFilterMethod(\n instance.globalFilter,\n userFilterTypes || {},\n filterTypes\n )\n\n const newFilter = functionalUpdate(filterValue, state.globalFilter)\n\n //\n if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter)) {\n const { globalFilter, ...stateWithoutGlobalFilter } = state\n return stateWithoutGlobalFilter\n }\n\n return {\n ...state,\n globalFilter: newFilter,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n filterTypes: userFilterTypes,\n globalFilter,\n manualGlobalFilter,\n state: { globalFilter: globalFilterValue },\n dispatch,\n autoResetGlobalFilter = true,\n disableGlobalFilter,\n } = instance\n\n const setGlobalFilter = React.useCallback(\n filterValue => {\n dispatch({ type: actions.setGlobalFilter, filterValue })\n },\n [dispatch]\n )\n\n // TODO: Create a filter cache for incremental high speed multi-filtering\n // This gets pretty complicated pretty fast, since you have to maintain a\n // cache for each row group (top-level rows, and each row's recursive subrows)\n // This would make multi-filtering a lot faster though. Too far?\n\n const [\n globalFilteredRows,\n globalFilteredFlatRows,\n globalFilteredRowsById,\n ] = React.useMemo(() => {\n if (manualGlobalFilter || typeof globalFilterValue === 'undefined') {\n return [rows, flatRows, rowsById]\n }\n\n const filteredFlatRows = []\n const filteredRowsById = {}\n\n const filterMethod = getFilterMethod(\n globalFilter,\n userFilterTypes || {},\n filterTypes\n )\n\n if (!filterMethod) {\n console.warn(`Could not find a valid 'globalFilter' option.`)\n return rows\n }\n\n allColumns.forEach(column => {\n const { disableGlobalFilter: columnDisableGlobalFilter } = column\n\n column.canFilter = getFirstDefined(\n columnDisableGlobalFilter === true ? false : undefined,\n disableGlobalFilter === true ? false : undefined,\n true\n )\n })\n\n const filterableColumns = allColumns.filter(c => c.canFilter === true)\n\n // Filters top level and nested rows\n const filterRows = filteredRows => {\n filteredRows = filterMethod(\n filteredRows,\n filterableColumns.map(d => d.id),\n globalFilterValue\n )\n\n filteredRows.forEach(row => {\n filteredFlatRows.push(row)\n filteredRowsById[row.id] = row\n\n row.subRows =\n row.subRows && row.subRows.length\n ? filterRows(row.subRows)\n : row.subRows\n })\n\n return filteredRows\n }\n\n return [filterRows(rows), filteredFlatRows, filteredRowsById]\n }, [\n manualGlobalFilter,\n globalFilterValue,\n globalFilter,\n userFilterTypes,\n allColumns,\n rows,\n flatRows,\n rowsById,\n disableGlobalFilter,\n ])\n\n const getAutoResetGlobalFilter = useGetLatest(autoResetGlobalFilter)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetGlobalFilter()) {\n dispatch({ type: actions.resetGlobalFilter })\n }\n }, [dispatch, manualGlobalFilter ? null : data])\n\n Object.assign(instance, {\n preGlobalFilteredRows: rows,\n preGlobalFilteredFlatRows: flatRows,\n preGlobalFilteredRowsById: rowsById,\n globalFilteredRows,\n globalFilteredFlatRows,\n globalFilteredRowsById,\n rows: globalFilteredRows,\n flatRows: globalFilteredFlatRows,\n rowsById: globalFilteredRowsById,\n setGlobalFilter,\n disableGlobalFilter,\n })\n}\n","export function sum(values, aggregatedValues) {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return aggregatedValues.reduce(\n (sum, next) => sum + (typeof next === 'number' ? next : 0),\n 0\n )\n}\n\nexport function min(values) {\n let min = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n min = Math.min(min, value)\n }\n })\n\n return min\n}\n\nexport function max(values) {\n let max = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n max = Math.max(max, value)\n }\n })\n\n return max\n}\n\nexport function minMax(values) {\n let min = values[0] || 0\n let max = values[0] || 0\n\n values.forEach(value => {\n if (typeof value === 'number') {\n min = Math.min(min, value)\n max = Math.max(max, value)\n }\n })\n\n return `${min}..${max}`\n}\n\nexport function average(values) {\n return sum(null, values) / values.length\n}\n\nexport function median(values) {\n if (!values.length) {\n return null\n }\n\n const mid = Math.floor(values.length / 2)\n const nums = [...values].sort((a, b) => a - b)\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2\n}\n\nexport function unique(values) {\n return Array.from(new Set(values).values())\n}\n\nexport function uniqueCount(values) {\n return new Set(values).size\n}\n\nexport function count(values) {\n return values.length\n}\n","import React from 'react'\n\nimport * as aggregations from '../aggregations'\n\nimport { getFirstDefined, flattenBy } from '../utils'\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nconst emptyArray = []\nconst emptyObject = {}\n\n// Actions\nactions.resetGroupBy = 'resetGroupBy'\nactions.setGroupBy = 'setGroupBy'\nactions.toggleGroupBy = 'toggleGroupBy'\n\nexport const useGroupBy = hooks => {\n hooks.getGroupByToggleProps = [defaultGetGroupByToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.visibleColumnsDeps.push((deps, { instance }) => [\n ...deps,\n instance.state.groupBy,\n ])\n hooks.visibleColumns.push(visibleColumns)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseGroupBy.pluginName = 'useGroupBy'\n\nconst defaultGetGroupByToggleProps = (props, { header }) => [\n props,\n {\n onClick: header.canGroupBy\n ? e => {\n e.persist()\n header.toggleGroupBy()\n }\n : undefined,\n style: {\n cursor: header.canGroupBy ? 'pointer' : undefined,\n },\n title: 'Toggle GroupBy',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n groupBy: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetGroupBy) {\n return {\n ...state,\n groupBy: instance.initialState.groupBy || [],\n }\n }\n\n if (action.type === actions.setGroupBy) {\n const { value } = action\n return {\n ...state,\n groupBy: value,\n }\n }\n\n if (action.type === actions.toggleGroupBy) {\n const { columnId, value: setGroupBy } = action\n\n const resolvedGroupBy =\n typeof setGroupBy !== 'undefined'\n ? setGroupBy\n : !state.groupBy.includes(columnId)\n\n if (resolvedGroupBy) {\n return {\n ...state,\n groupBy: [...state.groupBy, columnId],\n }\n }\n\n return {\n ...state,\n groupBy: state.groupBy.filter(d => d !== columnId),\n }\n }\n}\n\nfunction visibleColumns(\n columns,\n {\n instance: {\n state: { groupBy },\n },\n }\n) {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n\n const groupByColumns = groupBy\n .map(g => columns.find(col => col.id === g))\n .filter(Boolean)\n\n const nonGroupByColumns = columns.filter(col => !groupBy.includes(col.id))\n\n columns = [...groupByColumns, ...nonGroupByColumns]\n\n columns.forEach(column => {\n column.isGrouped = groupBy.includes(column.id)\n column.groupedIndex = groupBy.indexOf(column.id)\n })\n\n return columns\n}\n\nconst defaultUserAggregations = {}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n rowsById,\n allColumns,\n flatHeaders,\n groupByFn = defaultGroupByFn,\n manualGroupBy,\n aggregations: userAggregations = defaultUserAggregations,\n plugins,\n state: { groupBy },\n dispatch,\n autoResetGroupBy = true,\n disableGroupBy,\n defaultCanGroupBy,\n getHooks,\n } = instance\n\n ensurePluginOrder(plugins, ['useColumnOrder', 'useFilters'], 'useGroupBy')\n\n const getInstance = useGetLatest(instance)\n\n allColumns.forEach(column => {\n const {\n accessor,\n defaultGroupBy: defaultColumnGroupBy,\n disableGroupBy: columnDisableGroupBy,\n } = column\n\n column.canGroupBy = accessor\n ? getFirstDefined(\n column.canGroupBy,\n columnDisableGroupBy === true ? false : undefined,\n disableGroupBy === true ? false : undefined,\n true\n )\n : getFirstDefined(\n column.canGroupBy,\n defaultColumnGroupBy,\n defaultCanGroupBy,\n false\n )\n\n if (column.canGroupBy) {\n column.toggleGroupBy = () => instance.toggleGroupBy(column.id)\n }\n\n column.Aggregated = column.Aggregated || column.Cell\n })\n\n const toggleGroupBy = React.useCallback(\n (columnId, value) => {\n dispatch({ type: actions.toggleGroupBy, columnId, value })\n },\n [dispatch]\n )\n\n const setGroupBy = React.useCallback(\n value => {\n dispatch({ type: actions.setGroupBy, value })\n },\n [dispatch]\n )\n\n flatHeaders.forEach(header => {\n header.getGroupByToggleProps = makePropGetter(\n getHooks().getGroupByToggleProps,\n { instance: getInstance(), header }\n )\n })\n\n const [\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n ] = React.useMemo(() => {\n if (manualGroupBy || !groupBy.length) {\n return [\n rows,\n flatRows,\n rowsById,\n emptyArray,\n emptyObject,\n flatRows,\n rowsById,\n ]\n }\n\n // Ensure that the list of filtered columns exist\n const existingGroupBy = groupBy.filter(g =>\n allColumns.find(col => col.id === g)\n )\n\n // Find the columns that can or are aggregating\n // Uses each column to aggregate rows into a single value\n const aggregateRowsToValues = (leafRows, groupedRows, depth) => {\n const values = {}\n\n allColumns.forEach(column => {\n // Don't aggregate columns that are in the groupBy\n if (existingGroupBy.includes(column.id)) {\n values[column.id] = groupedRows[0]\n ? groupedRows[0].values[column.id]\n : null\n return\n }\n\n // Aggregate the values\n let aggregateFn =\n typeof column.aggregate === 'function'\n ? column.aggregate\n : userAggregations[column.aggregate] ||\n aggregations[column.aggregate]\n\n if (aggregateFn) {\n // Get the columnValues to aggregate\n const groupedValues = groupedRows.map(row => row.values[column.id])\n\n // Get the columnValues to aggregate\n const leafValues = leafRows.map(row => {\n let columnValue = row.values[column.id]\n\n if (!depth && column.aggregateValue) {\n const aggregateValueFn =\n typeof column.aggregateValue === 'function'\n ? column.aggregateValue\n : userAggregations[column.aggregateValue] ||\n aggregations[column.aggregateValue]\n\n if (!aggregateValueFn) {\n console.info({ column })\n throw new Error(\n `React Table: Invalid column.aggregateValue option for column listed above`\n )\n }\n\n columnValue = aggregateValueFn(columnValue, row, column)\n }\n return columnValue\n })\n\n values[column.id] = aggregateFn(leafValues, groupedValues)\n } else if (column.aggregate) {\n console.info({ column })\n throw new Error(\n `React Table: Invalid column.aggregate option for column listed above`\n )\n } else {\n values[column.id] = null\n }\n })\n\n return values\n }\n\n let groupedFlatRows = []\n const groupedRowsById = {}\n const onlyGroupedFlatRows = []\n const onlyGroupedRowsById = {}\n const nonGroupedFlatRows = []\n const nonGroupedRowsById = {}\n\n // Recursively group the data\n const groupUpRecursively = (rows, depth = 0, parentId) => {\n // This is the last level, just return the rows\n if (depth === existingGroupBy.length) {\n return rows.map((row) => ({ ...row, depth }))\n }\n\n const columnId = existingGroupBy[depth]\n\n // Group the rows together for this level\n let rowGroupsMap = groupByFn(rows, columnId)\n\n // Peform aggregations for each group\n const aggregatedGroupedRows = Object.entries(rowGroupsMap).map(\n ([groupByVal, groupedRows], index) => {\n let id = `${columnId}:${groupByVal}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, 'leafRows')\n : groupedRows\n\n const values = aggregateRowsToValues(leafRows, groupedRows, depth)\n\n const row = {\n id,\n isGrouped: true,\n groupByID: columnId,\n groupByVal,\n values,\n subRows,\n leafRows,\n depth,\n index,\n }\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n if (subRow.isGrouped) {\n onlyGroupedFlatRows.push(subRow)\n onlyGroupedRowsById[subRow.id] = subRow\n } else {\n nonGroupedFlatRows.push(subRow)\n nonGroupedRowsById[subRow.id] = subRow\n }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rows)\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n if (subRow.isGrouped) {\n onlyGroupedFlatRows.push(subRow)\n onlyGroupedRowsById[subRow.id] = subRow\n } else {\n nonGroupedFlatRows.push(subRow)\n nonGroupedRowsById[subRow.id] = subRow\n }\n })\n\n // Assign the new data\n return [\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n ]\n }, [\n manualGroupBy,\n groupBy,\n rows,\n flatRows,\n rowsById,\n allColumns,\n userAggregations,\n groupByFn,\n ])\n\n const getAutoResetGroupBy = useGetLatest(autoResetGroupBy)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetGroupBy()) {\n dispatch({ type: actions.resetGroupBy })\n }\n }, [dispatch, manualGroupBy ? null : data])\n\n Object.assign(instance, {\n preGroupedRows: rows,\n preGroupedFlatRow: flatRows,\n preGroupedRowsById: rowsById,\n groupedRows,\n groupedFlatRows,\n groupedRowsById,\n onlyGroupedFlatRows,\n onlyGroupedRowsById,\n nonGroupedFlatRows,\n nonGroupedRowsById,\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n toggleGroupBy,\n setGroupBy,\n })\n}\n\nfunction prepareRow(row) {\n row.allCells.forEach(cell => {\n // Grouped cells are in the groupBy and the pivot cell for the row\n cell.isGrouped = cell.column.isGrouped && cell.column.id === row.groupByID\n // Placeholder cells are any columns in the groupBy that are not grouped\n cell.isPlaceholder = !cell.isGrouped && cell.column.isGrouped\n // Aggregated cells are not grouped, not repeated, but still have subRows\n cell.isAggregated =\n !cell.isGrouped && !cell.isPlaceholder && row.subRows?.length\n })\n}\n\nexport function defaultGroupByFn(rows, columnId) {\n return rows.reduce((prev, row, i) => {\n // TODO: Might want to implement a key serializer here so\n // irregular column values can still be grouped if needed?\n const resKey = `${row.values[columnId]}`\n prev[resKey] = Array.isArray(prev[resKey]) ? prev[resKey] : []\n prev[resKey].push(row)\n return prev\n }, {})\n}\n","const reSplitAlphaNumeric = /([0-9]+)/gm\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nexport const alphanumeric = (rowA, rowB, columnId) => {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n // Force to strings (or \"\" for unsupported types)\n a = toString(a)\n b = toString(b)\n\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n a = a.split(reSplitAlphaNumeric).filter(Boolean)\n b = b.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n let aa = a.shift()\n let bb = b.shift()\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\nexport function datetime(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n a = a.getTime()\n b = b.getTime()\n\n return compareBasic(a, b)\n}\n\nexport function basic(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n return compareBasic(a, b)\n}\n\nexport function string(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n a = a.split('').filter(Boolean)\n b = b.split('').filter(Boolean)\n\n while (a.length && b.length) {\n let aa = a.shift()\n let bb = b.shift()\n\n let alower = aa.toLowerCase()\n let blower = bb.toLowerCase()\n\n // Case insensitive comparison until characters match\n if (alower > blower) {\n return 1\n }\n if (blower > alower) {\n return -1\n }\n // If lowercase characters are identical\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n return a.length - b.length\n}\n\nexport function number(rowA, rowB, columnId) {\n let [a, b] = getRowValuesByColumnID(rowA, rowB, columnId)\n\n const replaceNonNumeric = /[^0-9.]/gi\n\n a = Number(String(a).replace(replaceNonNumeric, ''))\n b = Number(String(b).replace(replaceNonNumeric, ''))\n\n return compareBasic(a, b)\n}\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction getRowValuesByColumnID(row1, row2, columnId) {\n return [row1.values[columnId], row2.values[columnId]]\n}\n\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n","import React from 'react'\n\nimport {\n actions,\n ensurePluginOrder,\n defaultColumn,\n makePropGetter,\n useGetLatest,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport { getFirstDefined, isFunction } from '../utils'\n\nimport * as sortTypes from '../sortTypes'\n\n// Actions\nactions.resetSortBy = 'resetSortBy'\nactions.setSortBy = 'setSortBy'\nactions.toggleSortBy = 'toggleSortBy'\nactions.clearSortBy = 'clearSortBy'\n\ndefaultColumn.sortType = 'alphanumeric'\ndefaultColumn.sortDescFirst = false\n\nexport const useSortBy = hooks => {\n hooks.getSortByToggleProps = [defaultGetSortByToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nuseSortBy.pluginName = 'useSortBy'\n\nconst defaultGetSortByToggleProps = (props, { instance, column }) => {\n const { isMultiSortEvent = e => e.shiftKey } = instance\n\n return [\n props,\n {\n onClick: column.canSort\n ? e => {\n e.persist()\n column.toggleSortBy(\n undefined,\n !instance.disableMultiSort && isMultiSortEvent(e)\n )\n }\n : undefined,\n style: {\n cursor: column.canSort ? 'pointer' : undefined,\n },\n title: column.canSort ? 'Toggle SortBy' : undefined,\n },\n ]\n}\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n sortBy: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetSortBy) {\n return {\n ...state,\n sortBy: instance.initialState.sortBy || [],\n }\n }\n\n if (action.type === actions.clearSortBy) {\n const { sortBy } = state\n const newSortBy = sortBy.filter(d => d.id !== action.columnId)\n\n return {\n ...state,\n sortBy: newSortBy,\n }\n }\n\n if (action.type === actions.setSortBy) {\n const { sortBy } = action\n return {\n ...state,\n sortBy,\n }\n }\n\n if (action.type === actions.toggleSortBy) {\n const { columnId, desc, multi } = action\n\n const {\n allColumns,\n disableMultiSort,\n disableSortRemove,\n disableMultiRemove,\n maxMultiSortColCount = Number.MAX_SAFE_INTEGER,\n } = instance\n\n const { sortBy } = state\n\n // Find the column for this columnId\n const column = allColumns.find(d => d.id === columnId)\n const { sortDescFirst } = column\n\n // Find any existing sortBy for this column\n const existingSortBy = sortBy.find(d => d.id === columnId)\n const existingIndex = sortBy.findIndex(d => d.id === columnId)\n const hasDescDefined = typeof desc !== 'undefined' && desc !== null\n\n let newSortBy = []\n\n // What should we do with this sort action?\n let sortAction\n\n if (!disableMultiSort && multi) {\n if (existingSortBy) {\n sortAction = 'toggle'\n } else {\n sortAction = 'add'\n }\n } else {\n // Normal mode\n if (existingIndex !== sortBy.length - 1 || sortBy.length !== 1) {\n sortAction = 'replace'\n } else if (existingSortBy) {\n sortAction = 'toggle'\n } else {\n sortAction = 'replace'\n }\n }\n\n // Handle toggle states that will remove the sortBy\n if (\n sortAction === 'toggle' && // Must be toggling\n !disableSortRemove && // If disableSortRemove, disable in general\n !hasDescDefined && // Must not be setting desc\n (multi ? !disableMultiRemove : true) && // If multi, don't allow if disableMultiRemove\n ((existingSortBy && // Finally, detect if it should indeed be removed\n existingSortBy.desc &&\n !sortDescFirst) ||\n (!existingSortBy.desc && sortDescFirst))\n ) {\n sortAction = 'remove'\n }\n\n if (sortAction === 'replace') {\n newSortBy = [\n {\n id: columnId,\n desc: hasDescDefined ? desc : sortDescFirst,\n },\n ]\n } else if (sortAction === 'add') {\n newSortBy = [\n ...sortBy,\n {\n id: columnId,\n desc: hasDescDefined ? desc : sortDescFirst,\n },\n ]\n // Take latest n columns\n newSortBy.splice(0, newSortBy.length - maxMultiSortColCount)\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSortBy = sortBy.map(d => {\n if (d.id === columnId) {\n return {\n ...d,\n desc: hasDescDefined ? desc : !existingSortBy.desc,\n }\n }\n return d\n })\n } else if (sortAction === 'remove') {\n newSortBy = sortBy.filter(d => d.id !== columnId)\n }\n\n return {\n ...state,\n sortBy: newSortBy,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n flatRows,\n allColumns,\n orderByFn = defaultOrderByFn,\n sortTypes: userSortTypes,\n manualSortBy,\n defaultCanSort,\n disableSortBy,\n flatHeaders,\n state: { sortBy },\n dispatch,\n plugins,\n getHooks,\n autoResetSortBy = true,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useFilters', 'useGlobalFilter', 'useGroupBy', 'usePivotColumns'],\n 'useSortBy'\n )\n\n const setSortBy = React.useCallback(\n sortBy => {\n dispatch({ type: actions.setSortBy, sortBy })\n },\n [dispatch]\n )\n\n // Updates sorting based on a columnId, desc flag and multi flag\n const toggleSortBy = React.useCallback(\n (columnId, desc, multi) => {\n dispatch({ type: actions.toggleSortBy, columnId, desc, multi })\n },\n [dispatch]\n )\n\n // use reference to avoid memory leak in #1608\n const getInstance = useGetLatest(instance)\n\n // Add the getSortByToggleProps method to columns and headers\n flatHeaders.forEach(column => {\n const {\n accessor,\n canSort: defaultColumnCanSort,\n disableSortBy: columnDisableSortBy,\n id,\n } = column\n\n const canSort = accessor\n ? getFirstDefined(\n columnDisableSortBy === true ? false : undefined,\n disableSortBy === true ? false : undefined,\n true\n )\n : getFirstDefined(defaultCanSort, defaultColumnCanSort, false)\n\n column.canSort = canSort\n\n if (column.canSort) {\n column.toggleSortBy = (desc, multi) =>\n toggleSortBy(column.id, desc, multi)\n\n column.clearSortBy = () => {\n dispatch({ type: actions.clearSortBy, columnId: column.id })\n }\n }\n\n column.getSortByToggleProps = makePropGetter(\n getHooks().getSortByToggleProps,\n {\n instance: getInstance(),\n column,\n }\n )\n\n const columnSort = sortBy.find(d => d.id === id)\n column.isSorted = !!columnSort\n column.sortedIndex = sortBy.findIndex(d => d.id === id)\n column.isSortedDesc = column.isSorted ? columnSort.desc : undefined\n })\n\n const [sortedRows, sortedFlatRows] = React.useMemo(() => {\n if (manualSortBy || !sortBy.length) {\n return [rows, flatRows]\n }\n\n const sortedFlatRows = []\n\n // Filter out sortBys that correspond to non existing columns\n const availableSortBy = sortBy.filter(sort =>\n allColumns.find(col => col.id === sort.id)\n )\n\n const sortData = rows => {\n // Use the orderByFn to compose multiple sortBy's together.\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = orderByFn(\n rows,\n availableSortBy.map(sort => {\n // Support custom sorting methods for each column\n const column = allColumns.find(d => d.id === sort.id)\n\n if (!column) {\n throw new Error(\n `React-Table: Could not find a column with id: ${sort.id} while sorting`\n )\n }\n\n const { sortType } = column\n\n // Look up sortBy functions in this order:\n // column function\n // column string lookup on user sortType\n // column string lookup on built-in sortType\n // default function\n // default string lookup on user sortType\n // default string lookup on built-in sortType\n const sortMethod =\n isFunction(sortType) ||\n (userSortTypes || {})[sortType] ||\n sortTypes[sortType]\n\n if (!sortMethod) {\n throw new Error(\n `React-Table: Could not find a valid sortType of '${sortType}' for column '${sort.id}'.`\n )\n }\n\n // Return the correct sortFn.\n // This function should always return in ascending order\n return (a, b) => sortMethod(a, b, sort.id, sort.desc)\n }),\n // Map the directions\n availableSortBy.map(sort => {\n // Detect and use the sortInverted option\n const column = allColumns.find(d => d.id === sort.id)\n\n if (column && column.sortInverted) {\n return sort.desc\n }\n\n return !sort.desc\n })\n )\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (!row.subRows || row.subRows.length === 0) {\n return\n }\n row.subRows = sortData(row.subRows)\n })\n\n return sortedData\n }\n\n return [sortData(rows), sortedFlatRows]\n }, [\n manualSortBy,\n sortBy,\n rows,\n flatRows,\n allColumns,\n orderByFn,\n userSortTypes,\n ])\n\n const getAutoResetSortBy = useGetLatest(autoResetSortBy)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSortBy()) {\n dispatch({ type: actions.resetSortBy })\n }\n }, [manualSortBy ? null : data])\n\n Object.assign(instance, {\n preSortedRows: rows,\n preSortedFlatRows: flatRows,\n sortedRows,\n sortedFlatRows,\n rows: sortedRows,\n flatRows: sortedFlatRows,\n setSortBy,\n toggleSortBy,\n })\n}\n\nexport function defaultOrderByFn(arr, funcs, dirs) {\n return [...arr].sort((rowA, rowB) => {\n for (let i = 0; i < funcs.length; i += 1) {\n const sortFn = funcs[i]\n const desc = dirs[i] === false || dirs[i] === 'desc'\n const sortInt = sortFn(rowA, rowB)\n if (sortInt !== 0) {\n return desc ? -sortInt : sortInt\n }\n }\n return dirs[0] ? rowA.index - rowB.index : rowB.index - rowA.index\n })\n}\n","import React from 'react'\n\n//\n\nimport {\n actions,\n ensurePluginOrder,\n functionalUpdate,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nimport { expandRows } from '../utils'\n\nconst pluginName = 'usePagination'\n\n// Actions\nactions.resetPage = 'resetPage'\nactions.gotoPage = 'gotoPage'\nactions.setPageSize = 'setPageSize'\n\nexport const usePagination = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n}\n\nusePagination.pluginName = pluginName\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n pageSize: 10,\n pageIndex: 0,\n ...state,\n }\n }\n\n if (action.type === actions.resetPage) {\n return {\n ...state,\n pageIndex: instance.initialState.pageIndex || 0,\n }\n }\n\n if (action.type === actions.gotoPage) {\n const { pageCount, page } = instance\n const newPageIndex = functionalUpdate(action.pageIndex, state.pageIndex)\n let canNavigate = false\n\n if (newPageIndex > state.pageIndex) {\n // next page\n canNavigate =\n pageCount === -1\n ? page.length >= state.pageSize\n : newPageIndex < pageCount\n } else if (newPageIndex < state.pageIndex) {\n // prev page\n canNavigate = newPageIndex > -1\n }\n\n if (!canNavigate) {\n return state\n }\n\n return {\n ...state,\n pageIndex: newPageIndex,\n }\n }\n\n if (action.type === actions.setPageSize) {\n const { pageSize } = action\n const topRowIndex = state.pageSize * state.pageIndex\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...state,\n pageIndex,\n pageSize,\n }\n }\n}\n\nfunction useInstance(instance) {\n const {\n rows,\n autoResetPage = true,\n manualExpandedKey = 'expanded',\n plugins,\n pageCount: userPageCount,\n paginateExpandedRows = true,\n expandSubRows = true,\n state: {\n pageSize,\n pageIndex,\n expanded,\n globalFilter,\n filters,\n groupBy,\n sortBy,\n },\n dispatch,\n data,\n manualPagination,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useGlobalFilter', 'useFilters', 'useGroupBy', 'useSortBy', 'useExpanded'],\n 'usePagination'\n )\n\n const getAutoResetPage = useGetLatest(autoResetPage)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetPage()) {\n dispatch({ type: actions.resetPage })\n }\n }, [\n dispatch,\n manualPagination ? null : data,\n globalFilter,\n filters,\n groupBy,\n sortBy,\n ])\n\n const pageCount = manualPagination\n ? userPageCount\n : Math.ceil(rows.length / pageSize)\n\n const pageOptions = React.useMemo(\n () =>\n pageCount > 0\n ? [...new Array(pageCount)].fill(null).map((d, i) => i)\n : [],\n [pageCount]\n )\n\n const page = React.useMemo(() => {\n let page\n\n if (manualPagination) {\n page = rows\n } else {\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n page = rows.slice(pageStart, pageEnd)\n }\n\n if (paginateExpandedRows) {\n return page\n }\n\n return expandRows(page, { manualExpandedKey, expanded, expandSubRows })\n }, [\n expandSubRows,\n expanded,\n manualExpandedKey,\n manualPagination,\n pageIndex,\n pageSize,\n paginateExpandedRows,\n rows,\n ])\n\n const canPreviousPage = pageIndex > 0\n const canNextPage =\n pageCount === -1 ? page.length >= pageSize : pageIndex < pageCount - 1\n\n const gotoPage = React.useCallback(\n pageIndex => {\n dispatch({ type: actions.gotoPage, pageIndex })\n },\n [dispatch]\n )\n\n const previousPage = React.useCallback(() => {\n return gotoPage(old => old - 1)\n }, [gotoPage])\n\n const nextPage = React.useCallback(() => {\n return gotoPage(old => old + 1)\n }, [gotoPage])\n\n const setPageSize = React.useCallback(\n pageSize => {\n dispatch({ type: actions.setPageSize, pageSize })\n },\n [dispatch]\n )\n\n Object.assign(instance, {\n pageOptions,\n pageCount,\n page,\n canPreviousPage,\n canNextPage,\n gotoPage,\n previousPage,\n nextPage,\n setPageSize,\n })\n}\n","/* istanbul ignore file */\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nimport { flattenColumns, getFirstDefined } from '../utils'\n\n// Actions\nactions.resetPivot = 'resetPivot'\nactions.togglePivot = 'togglePivot'\n\nexport const _UNSTABLE_usePivotColumns = hooks => {\n hooks.getPivotToggleProps = [defaultGetPivotToggleProps]\n hooks.stateReducers.push(reducer)\n hooks.useInstanceAfterData.push(useInstanceAfterData)\n hooks.allColumns.push(allColumns)\n hooks.accessValue.push(accessValue)\n hooks.materializedColumns.push(materializedColumns)\n hooks.materializedColumnsDeps.push(materializedColumnsDeps)\n hooks.visibleColumns.push(visibleColumns)\n hooks.visibleColumnsDeps.push(visibleColumnsDeps)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\n_UNSTABLE_usePivotColumns.pluginName = 'usePivotColumns'\n\nconst defaultPivotColumns = []\n\nconst defaultGetPivotToggleProps = (props, { header }) => [\n props,\n {\n onClick: header.canPivot\n ? e => {\n e.persist()\n header.togglePivot()\n }\n : undefined,\n style: {\n cursor: header.canPivot ? 'pointer' : undefined,\n },\n title: 'Toggle Pivot',\n },\n]\n\n// Reducer\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n pivotColumns: defaultPivotColumns,\n ...state,\n }\n }\n\n if (action.type === actions.resetPivot) {\n return {\n ...state,\n pivotColumns: instance.initialState.pivotColumns || defaultPivotColumns,\n }\n }\n\n if (action.type === actions.togglePivot) {\n const { columnId, value: setPivot } = action\n\n const resolvedPivot =\n typeof setPivot !== 'undefined'\n ? setPivot\n : !state.pivotColumns.includes(columnId)\n\n if (resolvedPivot) {\n return {\n ...state,\n pivotColumns: [...state.pivotColumns, columnId],\n }\n }\n\n return {\n ...state,\n pivotColumns: state.pivotColumns.filter(d => d !== columnId),\n }\n }\n}\n\nfunction useInstanceAfterData(instance) {\n instance.allColumns.forEach(column => {\n column.isPivotSource = instance.state.pivotColumns.includes(column.id)\n })\n}\n\nfunction allColumns(columns, { instance }) {\n columns.forEach(column => {\n column.isPivotSource = instance.state.pivotColumns.includes(column.id)\n column.uniqueValues = new Set()\n })\n return columns\n}\n\nfunction accessValue(value, { column }) {\n if (column.uniqueValues && typeof value !== 'undefined') {\n column.uniqueValues.add(value)\n }\n return value\n}\n\nfunction materializedColumns(materialized, { instance }) {\n const { allColumns, state } = instance\n\n if (!state.pivotColumns.length || !state.groupBy || !state.groupBy.length) {\n return materialized\n }\n\n const pivotColumns = state.pivotColumns\n .map(id => allColumns.find(d => d.id === id))\n .filter(Boolean)\n\n const sourceColumns = allColumns.filter(\n d =>\n !d.isPivotSource &&\n !state.groupBy.includes(d.id) &&\n !state.pivotColumns.includes(d.id)\n )\n\n const buildPivotColumns = (depth = 0, parent, pivotFilters = []) => {\n const pivotColumn = pivotColumns[depth]\n\n if (!pivotColumn) {\n return sourceColumns.map(sourceColumn => {\n // TODO: We could offer support here for renesting pivoted\n // columns inside copies of their header groups. For now,\n // that seems like it would be (1) overkill on nesting, considering\n // you already get nesting for every pivot level and (2)\n // really hard. :)\n\n return {\n ...sourceColumn,\n canPivot: false,\n isPivoted: true,\n parent,\n depth: depth,\n id: `${parent ? `${parent.id}.${sourceColumn.id}` : sourceColumn.id}`,\n accessor: (originalRow, i, row) => {\n if (pivotFilters.every(filter => filter(row))) {\n return row.values[sourceColumn.id]\n }\n },\n }\n })\n }\n\n const uniqueValues = Array.from(pivotColumn.uniqueValues).sort()\n\n return uniqueValues.map(uniqueValue => {\n const columnGroup = {\n ...pivotColumn,\n Header:\n pivotColumn.PivotHeader || typeof pivotColumn.header === 'string'\n ? `${pivotColumn.Header}: ${uniqueValue}`\n : uniqueValue,\n isPivotGroup: true,\n parent,\n depth,\n id: parent\n ? `${parent.id}.${pivotColumn.id}.${uniqueValue}`\n : `${pivotColumn.id}.${uniqueValue}`,\n pivotValue: uniqueValue,\n }\n\n columnGroup.columns = buildPivotColumns(depth + 1, columnGroup, [\n ...pivotFilters,\n row => row.values[pivotColumn.id] === uniqueValue,\n ])\n\n return columnGroup\n })\n }\n\n const newMaterialized = flattenColumns(buildPivotColumns())\n\n return [...materialized, ...newMaterialized]\n}\n\nfunction materializedColumnsDeps(\n deps,\n {\n instance: {\n state: { pivotColumns, groupBy },\n },\n }\n) {\n return [...deps, pivotColumns, groupBy]\n}\n\nfunction visibleColumns(visibleColumns, { instance: { state } }) {\n visibleColumns = visibleColumns.filter(d => !d.isPivotSource)\n\n if (state.pivotColumns.length && state.groupBy && state.groupBy.length) {\n visibleColumns = visibleColumns.filter(\n column => column.isGrouped || column.isPivoted\n )\n }\n\n return visibleColumns\n}\n\nfunction visibleColumnsDeps(deps, { instance }) {\n return [...deps, instance.state.pivotColumns, instance.state.groupBy]\n}\n\nfunction useInstance(instance) {\n const {\n columns,\n allColumns,\n flatHeaders,\n // pivotFn = defaultPivotFn,\n // manualPivot,\n getHooks,\n plugins,\n dispatch,\n autoResetPivot = true,\n manaulPivot,\n disablePivot,\n defaultCanPivot,\n } = instance\n\n ensurePluginOrder(plugins, ['useGroupBy'], 'usePivotColumns')\n\n const getInstance = useGetLatest(instance)\n\n allColumns.forEach(column => {\n const {\n accessor,\n defaultPivot: defaultColumnPivot,\n disablePivot: columnDisablePivot,\n } = column\n\n column.canPivot = accessor\n ? getFirstDefined(\n column.canPivot,\n columnDisablePivot === true ? false : undefined,\n disablePivot === true ? false : undefined,\n true\n )\n : getFirstDefined(\n column.canPivot,\n defaultColumnPivot,\n defaultCanPivot,\n false\n )\n\n if (column.canPivot) {\n column.togglePivot = () => instance.togglePivot(column.id)\n }\n\n column.Aggregated = column.Aggregated || column.Cell\n })\n\n const togglePivot = (columnId, value) => {\n dispatch({ type: actions.togglePivot, columnId, value })\n }\n\n flatHeaders.forEach(header => {\n header.getPivotToggleProps = makePropGetter(\n getHooks().getPivotToggleProps,\n {\n instance: getInstance(),\n header,\n }\n )\n })\n\n const getAutoResetPivot = useGetLatest(autoResetPivot)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetPivot()) {\n dispatch({ type: actions.resetPivot })\n }\n }, [dispatch, manaulPivot ? null : columns])\n\n Object.assign(instance, {\n togglePivot,\n })\n}\n\nfunction prepareRow(row) {\n row.allCells.forEach(cell => {\n // Grouped cells are in the pivotColumns and the pivot cell for the row\n cell.isPivoted = cell.column.isPivoted\n })\n}\n","import React from 'react'\n\nimport {\n actions,\n makePropGetter,\n ensurePluginOrder,\n useGetLatest,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nconst pluginName = 'useRowSelect'\n\n// Actions\nactions.resetSelectedRows = 'resetSelectedRows'\nactions.toggleAllRowsSelected = 'toggleAllRowsSelected'\nactions.toggleRowSelected = 'toggleRowSelected'\nactions.toggleAllPageRowsSelected = 'toggleAllPageRowsSelected'\n\nexport const useRowSelect = hooks => {\n hooks.getToggleRowSelectedProps = [defaultGetToggleRowSelectedProps]\n hooks.getToggleAllRowsSelectedProps = [defaultGetToggleAllRowsSelectedProps]\n hooks.getToggleAllPageRowsSelectedProps = [\n defaultGetToggleAllPageRowsSelectedProps,\n ]\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseRowSelect.pluginName = pluginName\n\nconst defaultGetToggleRowSelectedProps = (props, { instance, row }) => {\n const { manualRowSelectedKey = 'isSelected' } = instance\n let checked = false\n\n if (row.original && row.original[manualRowSelectedKey]) {\n checked = true\n } else {\n checked = row.isSelected\n }\n\n return [\n props,\n {\n onChange: e => {\n row.toggleRowSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked,\n title: 'Toggle Row Selected',\n indeterminate: row.isSomeSelected,\n },\n ]\n}\n\nconst defaultGetToggleAllRowsSelectedProps = (props, { instance }) => [\n props,\n {\n onChange: e => {\n instance.toggleAllRowsSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: instance.isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: Boolean(\n !instance.isAllRowsSelected &&\n Object.keys(instance.state.selectedRowIds).length\n ),\n },\n]\n\nconst defaultGetToggleAllPageRowsSelectedProps = (props, { instance }) => [\n props,\n {\n onChange(e) {\n instance.toggleAllPageRowsSelected(e.target.checked)\n },\n style: {\n cursor: 'pointer',\n },\n checked: instance.isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: Boolean(\n !instance.isAllPageRowsSelected &&\n instance.page.some(({ id }) => instance.state.selectedRowIds[id])\n ),\n },\n]\n\n// eslint-disable-next-line max-params\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n selectedRowIds: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetSelectedRows) {\n return {\n ...state,\n selectedRowIds: instance.initialState.selectedRowIds || {},\n }\n }\n\n if (action.type === actions.toggleAllRowsSelected) {\n const { value: setSelected } = action\n const {\n isAllRowsSelected,\n rowsById,\n nonGroupedRowsById = rowsById,\n } = instance\n\n const selectAll =\n typeof setSelected !== 'undefined' ? setSelected : !isAllRowsSelected\n\n // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const selectedRowIds = Object.assign({}, state.selectedRowIds)\n\n if (selectAll) {\n Object.keys(nonGroupedRowsById).forEach(rowId => {\n selectedRowIds[rowId] = true\n })\n } else {\n Object.keys(nonGroupedRowsById).forEach(rowId => {\n delete selectedRowIds[rowId]\n })\n }\n\n return {\n ...state,\n selectedRowIds,\n }\n }\n\n if (action.type === actions.toggleRowSelected) {\n const { id, value: setSelected } = action\n const { rowsById, selectSubRows = true, getSubRows } = instance\n const isSelected = state.selectedRowIds[id]\n const shouldExist =\n typeof setSelected !== 'undefined' ? setSelected : !isSelected\n\n if (isSelected === shouldExist) {\n return state\n }\n\n const newSelectedRowIds = { ...state.selectedRowIds }\n\n const handleRowById = id => {\n const row = rowsById[id]\n\n if (row) {\n if (!row.isGrouped) {\n if (shouldExist) {\n newSelectedRowIds[id] = true\n } else {\n delete newSelectedRowIds[id]\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n return getSubRows(row).forEach(row => handleRowById(row.id))\n }\n }\n }\n\n handleRowById(id)\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n }\n }\n\n if (action.type === actions.toggleAllPageRowsSelected) {\n const { value: setSelected } = action\n const {\n page,\n rowsById,\n selectSubRows = true,\n isAllPageRowsSelected,\n getSubRows,\n } = instance\n\n const selectAll =\n typeof setSelected !== 'undefined' ? setSelected : !isAllPageRowsSelected\n\n const newSelectedRowIds = { ...state.selectedRowIds }\n\n const handleRowById = id => {\n const row = rowsById[id]\n\n if (!row.isGrouped) {\n if (selectAll) {\n newSelectedRowIds[id] = true\n } else {\n delete newSelectedRowIds[id]\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n return getSubRows(row).forEach(row => handleRowById(row.id))\n }\n }\n\n page.forEach(row => handleRowById(row.id))\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n }\n }\n return state\n}\n\nfunction useInstance(instance) {\n const {\n data,\n rows,\n getHooks,\n plugins,\n rowsById,\n nonGroupedRowsById = rowsById,\n autoResetSelectedRows = true,\n state: { selectedRowIds },\n selectSubRows = true,\n dispatch,\n page,\n getSubRows,\n } = instance\n\n ensurePluginOrder(\n plugins,\n ['useFilters', 'useGroupBy', 'useSortBy', 'useExpanded', 'usePagination'],\n 'useRowSelect'\n )\n\n const selectedFlatRows = React.useMemo(() => {\n const selectedFlatRows = []\n\n rows.forEach(row => {\n const isSelected = selectSubRows\n ? getRowIsSelected(row, selectedRowIds, getSubRows)\n : !!selectedRowIds[row.id]\n row.isSelected = !!isSelected\n row.isSomeSelected = isSelected === null\n\n if (isSelected) {\n selectedFlatRows.push(row)\n }\n })\n\n return selectedFlatRows\n }, [rows, selectSubRows, selectedRowIds, getSubRows])\n\n let isAllRowsSelected = Boolean(\n Object.keys(nonGroupedRowsById).length && Object.keys(selectedRowIds).length\n )\n\n let isAllPageRowsSelected = isAllRowsSelected\n\n if (isAllRowsSelected) {\n if (Object.keys(nonGroupedRowsById).some(id => !selectedRowIds[id])) {\n isAllRowsSelected = false\n }\n }\n\n if (!isAllRowsSelected) {\n if (page && page.length && page.some(({ id }) => !selectedRowIds[id])) {\n isAllPageRowsSelected = false\n }\n }\n\n const getAutoResetSelectedRows = useGetLatest(autoResetSelectedRows)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSelectedRows()) {\n dispatch({ type: actions.resetSelectedRows })\n }\n }, [dispatch, data])\n\n const toggleAllRowsSelected = React.useCallback(\n value => dispatch({ type: actions.toggleAllRowsSelected, value }),\n [dispatch]\n )\n\n const toggleAllPageRowsSelected = React.useCallback(\n value => dispatch({ type: actions.toggleAllPageRowsSelected, value }),\n [dispatch]\n )\n\n const toggleRowSelected = React.useCallback(\n (id, value) => dispatch({ type: actions.toggleRowSelected, id, value }),\n [dispatch]\n )\n\n const getInstance = useGetLatest(instance)\n\n const getToggleAllRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllRowsSelectedProps,\n { instance: getInstance() }\n )\n\n const getToggleAllPageRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllPageRowsSelectedProps,\n { instance: getInstance() }\n )\n\n Object.assign(instance, {\n selectedFlatRows,\n isAllRowsSelected,\n isAllPageRowsSelected,\n toggleRowSelected,\n toggleAllRowsSelected,\n getToggleAllRowsSelectedProps,\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n })\n}\n\nfunction prepareRow(row, { instance }) {\n row.toggleRowSelected = set => instance.toggleRowSelected(row.id, set)\n\n row.getToggleRowSelectedProps = makePropGetter(\n instance.getHooks().getToggleRowSelectedProps,\n { instance: instance, row }\n )\n}\n\nfunction getRowIsSelected(row, selectedRowIds, getSubRows) {\n if (selectedRowIds[row.id]) {\n return true\n }\n\n const subRows = getSubRows(row)\n\n if (subRows && subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (getRowIsSelected(subRow, selectedRowIds, getSubRows)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n return allChildrenSelected ? true : someSelected ? null : false\n }\n\n return false\n}\n","import React from 'react'\n\nimport {\n actions,\n functionalUpdate,\n useMountedLayoutEffect,\n useGetLatest,\n} from '../publicUtils'\n\nconst defaultInitialRowStateAccessor = row => ({})\nconst defaultInitialCellStateAccessor = cell => ({})\n\n// Actions\nactions.setRowState = 'setRowState'\nactions.setCellState = 'setCellState'\nactions.resetRowState = 'resetRowState'\n\nexport const useRowState = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.prepareRow.push(prepareRow)\n}\n\nuseRowState.pluginName = 'useRowState'\n\nfunction reducer(state, action, previousState, instance) {\n const {\n initialRowStateAccessor = defaultInitialRowStateAccessor,\n initialCellStateAccessor = defaultInitialCellStateAccessor,\n rowsById,\n } = instance\n\n if (action.type === actions.init) {\n return {\n rowState: {},\n ...state,\n }\n }\n\n if (action.type === actions.resetRowState) {\n return {\n ...state,\n rowState: instance.initialState.rowState || {},\n }\n }\n\n if (action.type === actions.setRowState) {\n const { rowId, value } = action\n\n const oldRowState =\n typeof state.rowState[rowId] !== 'undefined'\n ? state.rowState[rowId]\n : initialRowStateAccessor(rowsById[rowId])\n\n return {\n ...state,\n rowState: {\n ...state.rowState,\n [rowId]: functionalUpdate(value, oldRowState),\n },\n }\n }\n\n if (action.type === actions.setCellState) {\n const { rowId, columnId, value } = action\n\n const oldRowState =\n typeof state.rowState[rowId] !== 'undefined'\n ? state.rowState[rowId]\n : initialRowStateAccessor(rowsById[rowId])\n\n const oldCellState =\n typeof oldRowState?.cellState?.[columnId] !== 'undefined'\n ? oldRowState.cellState[columnId]\n : initialCellStateAccessor(\n rowsById[rowId]?.cells?.find(cell => cell.column.id === columnId)\n )\n\n return {\n ...state,\n rowState: {\n ...state.rowState,\n [rowId]: {\n ...oldRowState,\n cellState: {\n ...(oldRowState.cellState || {}),\n [columnId]: functionalUpdate(value, oldCellState),\n },\n },\n },\n }\n }\n}\n\nfunction useInstance(instance) {\n const { autoResetRowState = true, data, dispatch } = instance\n\n const setRowState = React.useCallback(\n (rowId, value) =>\n dispatch({\n type: actions.setRowState,\n rowId,\n value,\n }),\n [dispatch]\n )\n\n const setCellState = React.useCallback(\n (rowId, columnId, value) =>\n dispatch({\n type: actions.setCellState,\n rowId,\n columnId,\n value,\n }),\n [dispatch]\n )\n\n const getAutoResetRowState = useGetLatest(autoResetRowState)\n\n useMountedLayoutEffect(() => {\n if (getAutoResetRowState()) {\n dispatch({ type: actions.resetRowState })\n }\n }, [data])\n\n Object.assign(instance, {\n setRowState,\n setCellState,\n })\n}\n\nfunction prepareRow(row, { instance }) {\n const {\n initialRowStateAccessor = defaultInitialRowStateAccessor,\n initialCellStateAccessor = defaultInitialCellStateAccessor,\n state: { rowState },\n } = instance\n\n if (row) {\n row.state =\n typeof rowState[row.id] !== 'undefined'\n ? rowState[row.id]\n : initialRowStateAccessor(row)\n\n row.setState = updater => {\n return instance.setRowState(row.id, updater)\n }\n\n row.cells.forEach(cell => {\n if (!row.state.cellState) {\n row.state.cellState = {}\n }\n\n cell.state =\n typeof row.state.cellState[cell.column.id] !== 'undefined'\n ? row.state.cellState[cell.column.id]\n : initialCellStateAccessor(cell)\n\n cell.setState = updater => {\n return instance.setCellState(row.id, cell.column.id, updater)\n }\n })\n }\n}\n","import React from 'react'\n\nimport { functionalUpdate, actions } from '../publicUtils'\n\n// Actions\nactions.resetColumnOrder = 'resetColumnOrder'\nactions.setColumnOrder = 'setColumnOrder'\n\nexport const useColumnOrder = hooks => {\n hooks.stateReducers.push(reducer)\n hooks.visibleColumnsDeps.push((deps, { instance }) => {\n return [...deps, instance.state.columnOrder]\n })\n hooks.visibleColumns.push(visibleColumns)\n hooks.useInstance.push(useInstance)\n}\n\nuseColumnOrder.pluginName = 'useColumnOrder'\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n columnOrder: [],\n ...state,\n }\n }\n\n if (action.type === actions.resetColumnOrder) {\n return {\n ...state,\n columnOrder: instance.initialState.columnOrder || [],\n }\n }\n\n if (action.type === actions.setColumnOrder) {\n return {\n ...state,\n columnOrder: functionalUpdate(action.columnOrder, state.columnOrder),\n }\n }\n}\n\nfunction visibleColumns(\n columns,\n {\n instance: {\n state: { columnOrder },\n },\n }\n) {\n // If there is no order, return the normal columns\n if (!columnOrder || !columnOrder.length) {\n return columns\n }\n\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n const columnsInOrder = []\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId)\n if (foundIndex > -1) {\n columnsInOrder.push(columnsCopy.splice(foundIndex, 1)[0])\n }\n }\n\n // If there are any columns left, add them to the end\n return [...columnsInOrder, ...columnsCopy]\n}\n\nfunction useInstance(instance) {\n const { dispatch } = instance\n\n instance.setColumnOrder = React.useCallback(\n columnOrder => {\n return dispatch({ type: actions.setColumnOrder, columnOrder })\n },\n [dispatch]\n )\n}\n","import React from 'react'\n\nimport {\n actions,\n defaultColumn,\n makePropGetter,\n useGetLatest,\n ensurePluginOrder,\n useMountedLayoutEffect,\n} from '../publicUtils'\n\nimport { getFirstDefined, passiveEventSupported } from '../utils'\n\n// Default Column\ndefaultColumn.canResize = true\n\n// Actions\nactions.columnStartResizing = 'columnStartResizing'\nactions.columnResizing = 'columnResizing'\nactions.columnDoneResizing = 'columnDoneResizing'\nactions.resetResize = 'resetResize'\n\nexport const useResizeColumns = hooks => {\n hooks.getResizerProps = [defaultGetResizerProps]\n hooks.getHeaderProps.push({\n style: {\n position: 'relative',\n },\n })\n hooks.stateReducers.push(reducer)\n hooks.useInstance.push(useInstance)\n hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions)\n}\n\nconst defaultGetResizerProps = (props, { instance, header }) => {\n const { dispatch } = instance\n\n const onResizeStart = (e, header) => {\n let isTouchEvent = false\n if (e.type === 'touchstart') {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n isTouchEvent = true\n }\n const headersToResize = getLeafHeaders(header)\n const headerIdWidths = headersToResize.map(d => [d.id, d.totalWidth])\n\n const clientX = isTouchEvent ? Math.round(e.touches[0].clientX) : e.clientX\n\n let raf\n let mostRecentClientX\n\n const dispatchEnd = () => {\n window.cancelAnimationFrame(raf)\n raf = null\n dispatch({ type: actions.columnDoneResizing })\n }\n const dispatchMove = () => {\n window.cancelAnimationFrame(raf)\n raf = null\n dispatch({ type: actions.columnResizing, clientX: mostRecentClientX })\n }\n\n const scheduleDispatchMoveOnNextAnimationFrame = clientXPos => {\n mostRecentClientX = clientXPos\n if (!raf) {\n raf = window.requestAnimationFrame(dispatchMove)\n }\n }\n\n const handlersAndEvents = {\n mouse: {\n moveEvent: 'mousemove',\n moveHandler: e => scheduleDispatchMoveOnNextAnimationFrame(e.clientX),\n upEvent: 'mouseup',\n upHandler: e => {\n document.removeEventListener(\n 'mousemove',\n handlersAndEvents.mouse.moveHandler\n )\n document.removeEventListener(\n 'mouseup',\n handlersAndEvents.mouse.upHandler\n )\n dispatchEnd()\n },\n },\n touch: {\n moveEvent: 'touchmove',\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n scheduleDispatchMoveOnNextAnimationFrame(e.touches[0].clientX)\n return false\n },\n upEvent: 'touchend',\n upHandler: e => {\n document.removeEventListener(\n handlersAndEvents.touch.moveEvent,\n handlersAndEvents.touch.moveHandler\n )\n document.removeEventListener(\n handlersAndEvents.touch.upEvent,\n handlersAndEvents.touch.moveHandler\n )\n dispatchEnd()\n },\n },\n }\n\n const events = isTouchEvent\n ? handlersAndEvents.touch\n : handlersAndEvents.mouse\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n document.addEventListener(\n events.moveEvent,\n events.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n events.upEvent,\n events.upHandler,\n passiveIfSupported\n )\n\n dispatch({\n type: actions.columnStartResizing,\n columnId: header.id,\n columnWidth: header.totalWidth,\n headerIdWidths,\n clientX,\n })\n }\n\n return [\n props,\n {\n onMouseDown: e => e.persist() || onResizeStart(e, header),\n onTouchStart: e => e.persist() || onResizeStart(e, header),\n style: {\n cursor: 'col-resize',\n },\n draggable: false,\n role: 'separator',\n },\n ]\n}\n\nuseResizeColumns.pluginName = 'useResizeColumns'\n\nfunction reducer(state, action) {\n if (action.type === actions.init) {\n return {\n columnResizing: {\n columnWidths: {},\n },\n ...state,\n }\n }\n\n if (action.type === actions.resetResize) {\n return {\n ...state,\n columnResizing: {\n columnWidths: {},\n },\n }\n }\n\n if (action.type === actions.columnStartResizing) {\n const { clientX, columnId, columnWidth, headerIdWidths } = action\n\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n startX: clientX,\n headerIdWidths,\n columnWidth,\n isResizingColumn: columnId,\n },\n }\n }\n\n if (action.type === actions.columnResizing) {\n const { clientX } = action\n const { startX, columnWidth, headerIdWidths = [] } = state.columnResizing\n\n const deltaX = clientX - startX\n const percentageDeltaX = deltaX / columnWidth\n\n const newColumnWidths = {}\n\n headerIdWidths.forEach(([headerId, headerWidth]) => {\n newColumnWidths[headerId] = Math.max(\n headerWidth + headerWidth * percentageDeltaX,\n 0\n )\n })\n\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n columnWidths: {\n ...state.columnResizing.columnWidths,\n ...newColumnWidths,\n },\n },\n }\n }\n\n if (action.type === actions.columnDoneResizing) {\n return {\n ...state,\n columnResizing: {\n ...state.columnResizing,\n startX: null,\n isResizingColumn: null,\n },\n }\n }\n}\n\nconst useInstanceBeforeDimensions = instance => {\n const {\n flatHeaders,\n disableResizing,\n getHooks,\n state: { columnResizing },\n } = instance\n\n const getInstance = useGetLatest(instance)\n\n flatHeaders.forEach(header => {\n const canResize = getFirstDefined(\n header.disableResizing === true ? false : undefined,\n disableResizing === true ? false : undefined,\n true\n )\n\n header.canResize = canResize\n header.width =\n columnResizing.columnWidths[header.id] ||\n header.originalWidth ||\n header.width\n header.isResizing = columnResizing.isResizingColumn === header.id\n\n if (canResize) {\n header.getResizerProps = makePropGetter(getHooks().getResizerProps, {\n instance: getInstance(),\n header,\n })\n }\n })\n}\n\nfunction useInstance(instance) {\n const { plugins, dispatch, autoResetResize = true, columns } = instance\n\n ensurePluginOrder(plugins, ['useAbsoluteLayout'], 'useResizeColumns')\n\n const getAutoResetResize = useGetLatest(autoResetResize)\n useMountedLayoutEffect(() => {\n if (getAutoResetResize()) {\n dispatch({ type: actions.resetResize })\n }\n }, [columns])\n\n const resetResizing = React.useCallback(\n () => dispatch({ type: actions.resetResize }),\n [dispatch]\n )\n\n Object.assign(instance, {\n resetResizing,\n })\n}\n\nfunction getLeafHeaders(header) {\n const leafHeaders = []\n const recurseHeader = header => {\n if (header.columns && header.columns.length) {\n header.columns.map(recurseHeader)\n }\n leafHeaders.push(header)\n }\n recurseHeader(header)\n return leafHeaders\n}\n","const cellStyles = {\n position: 'absolute',\n top: 0,\n}\n\nexport const useAbsoluteLayout = hooks => {\n hooks.getTableBodyProps.push(getRowStyles)\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n\n hooks.getHeaderProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${column.totalLeft}px`,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getCellProps.push((props, { cell }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${cell.column.totalLeft}px`,\n width: `${cell.column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getFooterProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n left: `${column.totalLeft}px`,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n}\n\nuseAbsoluteLayout.pluginName = 'useAbsoluteLayout'\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n position: 'relative',\n width: `${instance.totalColumnsWidth}px`,\n },\n },\n]\n","const cellStyles = {\n display: 'inline-block',\n boxSizing: 'border-box',\n}\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n display: 'flex',\n width: `${instance.totalColumnsWidth}px`,\n },\n },\n]\n\nexport const useBlockLayout = hooks => {\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n\n hooks.getHeaderProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getCellProps.push((props, { cell }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${cell.column.totalWidth}px`,\n },\n },\n ])\n\n hooks.getFooterProps.push((props, { column }) => [\n props,\n {\n style: {\n ...cellStyles,\n width: `${column.totalWidth}px`,\n },\n },\n ])\n}\n\nuseBlockLayout.pluginName = 'useBlockLayout'\n","export function useFlexLayout(hooks) {\n hooks.getTableProps.push(getTableProps)\n hooks.getRowProps.push(getRowStyles)\n hooks.getHeaderGroupProps.push(getRowStyles)\n hooks.getFooterGroupProps.push(getRowStyles)\n hooks.getHeaderProps.push(getHeaderProps)\n hooks.getCellProps.push(getCellProps)\n hooks.getFooterProps.push(getFooterProps)\n}\n\nuseFlexLayout.pluginName = 'useFlexLayout'\n\nconst getTableProps = (props, { instance }) => [\n props,\n {\n style: {\n minWidth: `${instance.totalColumnsMinWidth}px`,\n },\n },\n]\n\nconst getRowStyles = (props, { instance }) => [\n props,\n {\n style: {\n display: 'flex',\n flex: '1 0 auto',\n minWidth: `${instance.totalColumnsMinWidth}px`,\n },\n },\n]\n\nconst getHeaderProps = (props, { column }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: column.totalFlexWidth\n ? `${column.totalFlexWidth} 0 auto`\n : undefined,\n minWidth: `${column.totalMinWidth}px`,\n width: `${column.totalWidth}px`,\n },\n },\n]\n\nconst getCellProps = (props, { cell }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: `${cell.column.totalFlexWidth} 0 auto`,\n minWidth: `${cell.column.totalMinWidth}px`,\n width: `${cell.column.totalWidth}px`,\n },\n },\n]\n\nconst getFooterProps = (props, { column }) => [\n props,\n {\n style: {\n boxSizing: 'border-box',\n flex: column.totalFlexWidth\n ? `${column.totalFlexWidth} 0 auto`\n : undefined,\n minWidth: `${column.totalMinWidth}px`,\n width: `${column.totalWidth}px`,\n },\n },\n]\n","import { actions } from '../publicUtils'\n\n// Actions\nactions.columnStartResizing = 'columnStartResizing'\nactions.columnResizing = 'columnResizing'\nactions.columnDoneResizing = 'columnDoneResizing'\nactions.resetResize = 'resetResize'\n\nexport function useGridLayout(hooks) {\n hooks.stateReducers.push(reducer)\n hooks.getTableProps.push(getTableProps)\n hooks.getHeaderProps.push(getHeaderProps)\n hooks.getRowProps.push(getRowProps)\n}\n\nuseGridLayout.pluginName = 'useGridLayout'\n\nconst getTableProps = (props, { instance }) => {\n const gridTemplateColumns = instance.visibleColumns.map(column => {\n if (instance.state.gridLayout.columnWidths[column.id])\n return `${instance.state.gridLayout.columnWidths[column.id]}px`\n // When resizing, lock the width of all unset columns\n // instead of using user-provided width or defaultColumn width,\n // which could potentially be 'auto' or 'fr' units that don't scale linearly\n if (instance.state.columnResizing?.isResizingColumn)\n return `${instance.state.gridLayout.startWidths[column.id]}px`\n if (typeof column.width === 'number') return `${column.width}px`\n return column.width\n })\n return [\n props,\n {\n style: {\n display: `grid`,\n gridTemplateColumns: gridTemplateColumns.join(` `),\n },\n },\n ]\n}\n\nconst getHeaderProps = (props, { column }) => [\n props,\n {\n id: `header-cell-${column.id}`,\n style: {\n position: `sticky`, //enables a scroll wrapper to be placed around the table and have sticky headers\n gridColumn: `span ${column.totalVisibleHeaderCount}`,\n },\n },\n]\n\nconst getRowProps = (props, { row }) => {\n if (row.isExpanded) {\n return [\n props,\n {\n style: {\n gridColumn: `1 / ${row.cells.length + 1}`,\n },\n },\n ]\n }\n return [props, {}]\n}\n\nfunction reducer(state, action, previousState, instance) {\n if (action.type === actions.init) {\n return {\n gridLayout: {\n columnWidths: {},\n },\n ...state,\n }\n }\n\n if (action.type === actions.resetResize) {\n return {\n ...state,\n gridLayout: {\n columnWidths: {},\n },\n }\n }\n\n if (action.type === actions.columnStartResizing) {\n const { columnId, headerIdWidths } = action\n const columnWidth = getElementWidth(columnId)\n\n if (columnWidth !== undefined) {\n const startWidths = instance.visibleColumns.reduce(\n (acc, column) => ({\n ...acc,\n [column.id]: getElementWidth(column.id),\n }),\n {}\n )\n const minWidths = instance.visibleColumns.reduce(\n (acc, column) => ({\n ...acc,\n [column.id]: column.minWidth,\n }),\n {}\n )\n const maxWidths = instance.visibleColumns.reduce(\n (acc, column) => ({\n ...acc,\n [column.id]: column.maxWidth,\n }),\n {}\n )\n\n const headerIdGridWidths = headerIdWidths.map(([headerId]) => [\n headerId,\n getElementWidth(headerId),\n ])\n\n return {\n ...state,\n gridLayout: {\n ...state.gridLayout,\n startWidths,\n minWidths,\n maxWidths,\n headerIdGridWidths,\n columnWidth,\n },\n }\n } else {\n return state\n }\n }\n\n if (action.type === actions.columnResizing) {\n const { clientX } = action\n const { startX } = state.columnResizing\n const {\n columnWidth,\n minWidths,\n maxWidths,\n headerIdGridWidths = [],\n } = state.gridLayout\n\n const deltaX = clientX - startX\n const percentageDeltaX = deltaX / columnWidth\n\n const newColumnWidths = {}\n\n headerIdGridWidths.forEach(([headerId, headerWidth]) => {\n newColumnWidths[headerId] = Math.min(\n Math.max(\n minWidths[headerId],\n headerWidth + headerWidth * percentageDeltaX\n ),\n maxWidths[headerId]\n )\n })\n\n return {\n ...state,\n gridLayout: {\n ...state.gridLayout,\n columnWidths: {\n ...state.gridLayout.columnWidths,\n ...newColumnWidths,\n },\n },\n }\n }\n\n if (action.type === actions.columnDoneResizing) {\n return {\n ...state,\n gridLayout: {\n ...state.gridLayout,\n startWidths: {},\n minWidths: {},\n maxWidths: {},\n },\n }\n }\n}\n\nfunction getElementWidth(columnId) {\n const width = document.getElementById(`header-cell-${columnId}`)?.offsetWidth\n\n if (width !== undefined) {\n return width\n }\n}\n","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./dist/react-table.production.min.js')\n} else {\n module.exports = require('./dist/react-table.development.js')\n}\n","/** @license React v17.0.2\n * react-jsx-runtime.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';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\n * react.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 l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\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",null,null,null,"\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","\"use strict\";\n(function () {\n \"use strict\";\n try {\n if (typeof window === \"undefined\")\n return;\n if (!(\"SVGPathSeg\" in window)) {\n window.SVGPathSeg = function (type, typeAsLetter, owningPathSegList) {\n this.pathSegType = type;\n this.pathSegTypeAsLetter = typeAsLetter;\n this._owningPathSegList = owningPathSegList;\n };\n window.SVGPathSeg.prototype.classname = \"SVGPathSeg\";\n window.SVGPathSeg.PATHSEG_UNKNOWN = 0;\n window.SVGPathSeg.PATHSEG_CLOSEPATH = 1;\n window.SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\n window.SVGPathSeg.PATHSEG_MOVETO_REL = 3;\n window.SVGPathSeg.PATHSEG_LINETO_ABS = 4;\n window.SVGPathSeg.PATHSEG_LINETO_REL = 5;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\n window.SVGPathSeg.PATHSEG_ARC_ABS = 10;\n window.SVGPathSeg.PATHSEG_ARC_REL = 11;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\n window.SVGPathSeg.prototype._segmentChanged = function () {\n if (this._owningPathSegList)\n this._owningPathSegList.segmentChanged(this);\n };\n window.SVGPathSegClosePath = function (owningPathSegList) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CLOSEPATH, \"z\", owningPathSegList);\n };\n window.SVGPathSegClosePath.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegClosePath.prototype.toString = function () {\n return \"[object SVGPathSegClosePath]\";\n };\n window.SVGPathSegClosePath.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter;\n };\n window.SVGPathSegClosePath.prototype.clone = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathSegMovetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_ABS, \"M\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegMovetoAbs]\";\n };\n window.SVGPathSegMovetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoAbs.prototype.clone = function () {\n return new window.SVGPathSegMovetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegMovetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_REL, \"m\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoRel.prototype.toString = function () {\n return \"[object SVGPathSegMovetoRel]\";\n };\n window.SVGPathSegMovetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegMovetoRel.prototype.clone = function () {\n return new window.SVGPathSegMovetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_ABS, \"L\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoAbs]\";\n };\n window.SVGPathSegLinetoAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_REL, \"l\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoRel]\";\n };\n window.SVGPathSegLinetoRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegLinetoRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicAbs = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, \"C\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicAbs]\";\n };\n window.SVGPathSegCurvetoCubicAbs.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegCurvetoCubicAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicRel = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, \"c\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicRel]\";\n };\n window.SVGPathSegCurvetoCubicRel.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._x1 +\n \" \" +\n this._y1 +\n \" \" +\n this._x2 +\n \" \" +\n this._y2 +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegCurvetoCubicRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticAbs = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, \"Q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticRel = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, \"q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticRel]\";\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x1 + \" \" + this._y1 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegArcAbs = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_ABS, \"A\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcAbs.prototype.toString = function () {\n return \"[object SVGPathSegArcAbs]\";\n };\n window.SVGPathSegArcAbs.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegArcAbs.prototype.clone = function () {\n return new window.SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegArcRel = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_REL, \"a\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcRel.prototype.toString = function () {\n return \"[object SVGPathSegArcRel]\";\n };\n window.SVGPathSegArcRel.prototype._asPathString = function () {\n return (this.pathSegTypeAsLetter +\n \" \" +\n this._r1 +\n \" \" +\n this._r2 +\n \" \" +\n this._angle +\n \" \" +\n (this._largeArcFlag ? \"1\" : \"0\") +\n \" \" +\n (this._sweepFlag ? \"1\" : \"0\") +\n \" \" +\n this._x +\n \" \" +\n this._y);\n };\n window.SVGPathSegArcRel.prototype.clone = function () {\n return new window.SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoHorizontalAbs = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, \"H\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalAbs]\";\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoHorizontalRel = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, \"h\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalRel]\";\n };\n window.SVGPathSegLinetoHorizontalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoVerticalAbs = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, \"V\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalAbs]\";\n };\n window.SVGPathSegLinetoVerticalAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegLinetoVerticalRel = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, \"v\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalRel]\";\n };\n window.SVGPathSegLinetoVerticalRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalRel(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicSmoothAbs = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, \"S\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothAbs]\";\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoCubicSmoothRel = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, \"s\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothRel]\";\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x2 + \" \" + this._y2 + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticSmoothAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, \"T\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathSegCurvetoQuadraticSmoothRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, \"t\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothRel]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter + \" \" + this._x + \" \" + this._y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true,\n });\n window.SVGPathElement.prototype.createSVGPathSegClosePath = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoAbs = function (x, y) {\n return new window.SVGPathSegMovetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoRel = function (x, y) {\n return new window.SVGPathSegMovetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoAbs = function (x, y) {\n return new window.SVGPathSegLinetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoRel = function (x, y) {\n return new window.SVGPathSegLinetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcAbs = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcRel = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function (x) {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function (x) {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function (y) {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function (y) {\n return new window.SVGPathSegLinetoVerticalRel(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y);\n };\n if (!(\"getPathSegAtLength\" in window.SVGPathElement.prototype)) {\n window.SVGPathElement.prototype.getPathSegAtLength = function (distance) {\n if (distance === undefined || !isFinite(distance))\n throw \"Invalid arguments.\";\n const measurementElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n measurementElement.setAttribute(\"d\", this.getAttribute(\"d\"));\n let lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\n if (lastPathSegment <= 0)\n return 0;\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength())\n break;\n lastPathSegment--;\n } while (lastPathSegment > 0);\n return lastPathSegment;\n };\n }\n }\n if (!(\"SVGPathSegList\" in window) || !(\"appendItem\" in window.SVGPathSegList.prototype)) {\n window.SVGPathSegList = function (pathElement) {\n this._pathElement = pathElement;\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n this._mutationObserverConfig = { attributes: true, attributeFilter: [\"d\"] };\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.classname = \"SVGPathSegList\";\n Object.defineProperty(window.SVGPathSegList.prototype, \"numberOfItems\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathSegList.prototype, \"length\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"pathSegList\", {\n get: function () {\n if (!this._pathSegList)\n this._pathSegList = new window.SVGPathSegList(this);\n return this._pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"normalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedNormalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true,\n });\n window.SVGPathSegList.prototype._checkPathSynchronizedToList = function () {\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\n };\n window.SVGPathSegList.prototype._updateListFromPathMutations = function (mutationRecords) {\n if (!this._pathElement)\n return;\n let hasPathMutations = false;\n mutationRecords.forEach(function (record) {\n if (record.attributeName == \"d\")\n hasPathMutations = true;\n });\n if (hasPathMutations)\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n };\n window.SVGPathSegList.prototype._writeListToPath = function () {\n this._pathElementMutationObserver.disconnect();\n this._pathElement.setAttribute(\"d\", window.SVGPathSegList._pathSegArrayAsString(this._list));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.segmentChanged = function (pathSeg) {\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.clear = function () {\n this._checkPathSynchronizedToList();\n this._list.forEach(function (pathSeg) {\n pathSeg._owningPathSegList = null;\n });\n this._list = [];\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.initialize = function (newItem) {\n this._checkPathSynchronizedToList();\n this._list = [newItem];\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype._checkValidIndex = function (index) {\n if (isNaN(index) || index < 0 || index >= this.numberOfItems)\n throw \"INDEX_SIZE_ERR\";\n };\n window.SVGPathSegList.prototype.getItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n return this._list[index];\n };\n window.SVGPathSegList.prototype.insertItemBefore = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (index > this.numberOfItems)\n index = this.numberOfItems;\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.splice(index, 0, newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.replaceItem = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._checkValidIndex(index);\n this._list[index] = newItem;\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.removeItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n const item = this._list[index];\n this._list.splice(index, 1);\n this._writeListToPath();\n return item;\n };\n window.SVGPathSegList.prototype.appendItem = function (newItem) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.push(newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList._pathSegArrayAsString = function (pathSegArray) {\n let string = \"\";\n let first = true;\n pathSegArray.forEach(function (pathSeg) {\n if (first) {\n first = false;\n string += pathSeg._asPathString();\n }\n else {\n string += \" \" + pathSeg._asPathString();\n }\n });\n return string;\n };\n window.SVGPathSegList.prototype._parsePath = function (string) {\n if (!string || string.length == 0)\n return [];\n const owningPathSegList = this;\n const Builder = function () {\n this.pathSegList = [];\n };\n Builder.prototype.appendSegment = function (pathSeg) {\n this.pathSegList.push(pathSeg);\n };\n const Source = function (string) {\n this._string = string;\n this._currentIndex = 0;\n this._endIndex = this._string.length;\n this._previousCommand = window.SVGPathSeg.PATHSEG_UNKNOWN;\n this._skipOptionalSpaces();\n };\n Source.prototype._isCurrentSpace = function () {\n const character = this._string[this._currentIndex];\n return (character <= \" \" &&\n (character == \" \" || character == \"\\n\" || character == \"\\t\" || character == \"\\r\" || character == \"\\f\"));\n };\n Source.prototype._skipOptionalSpaces = function () {\n while (this._currentIndex < this._endIndex && this._isCurrentSpace())\n this._currentIndex++;\n return this._currentIndex < this._endIndex;\n };\n Source.prototype._skipOptionalSpacesOrDelimiter = function () {\n if (this._currentIndex < this._endIndex &&\n !this._isCurrentSpace() &&\n this._string.charAt(this._currentIndex) != \",\")\n return false;\n if (this._skipOptionalSpaces()) {\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \",\") {\n this._currentIndex++;\n this._skipOptionalSpaces();\n }\n }\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.hasMoreData = function () {\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.peekSegmentType = function () {\n const lookahead = this._string[this._currentIndex];\n return this._pathSegTypeFromChar(lookahead);\n };\n Source.prototype._pathSegTypeFromChar = function (lookahead) {\n switch (lookahead) {\n case \"Z\":\n case \"z\":\n return window.SVGPathSeg.PATHSEG_CLOSEPATH;\n case \"M\":\n return window.SVGPathSeg.PATHSEG_MOVETO_ABS;\n case \"m\":\n return window.SVGPathSeg.PATHSEG_MOVETO_REL;\n case \"L\":\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n case \"l\":\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n case \"C\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\n case \"c\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\n case \"Q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\n case \"q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\n case \"A\":\n return window.SVGPathSeg.PATHSEG_ARC_ABS;\n case \"a\":\n return window.SVGPathSeg.PATHSEG_ARC_REL;\n case \"H\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\n case \"h\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\n case \"V\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\n case \"v\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\n case \"S\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\n case \"s\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\n case \"T\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\n case \"t\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\n default:\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n }\n };\n Source.prototype._nextCommandHelper = function (lookahead, previousCommand) {\n if ((lookahead == \"+\" || lookahead == \"-\" || lookahead == \".\" || (lookahead >= \"0\" && lookahead <= \"9\")) &&\n previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS)\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL)\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n return previousCommand;\n }\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n };\n Source.prototype.initialCommandIsMoveTo = function () {\n if (!this.hasMoreData())\n return true;\n const command = this.peekSegmentType();\n return command == window.SVGPathSeg.PATHSEG_MOVETO_ABS || command == window.SVGPathSeg.PATHSEG_MOVETO_REL;\n };\n Source.prototype._parseNumber = function () {\n let exponent = 0;\n let integer = 0;\n let frac = 1;\n let decimal = 0;\n let sign = 1;\n let expsign = 1;\n const startIndex = this._currentIndex;\n this._skipOptionalSpaces();\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"+\")\n this._currentIndex++;\n else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n sign = -1;\n }\n if (this._currentIndex == this._endIndex ||\n ((this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") &&\n this._string.charAt(this._currentIndex) != \".\"))\n return undefined;\n const startIntPartIndex = this._currentIndex;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\")\n this._currentIndex++;\n if (this._currentIndex != startIntPartIndex) {\n let scanIntPartIndex = this._currentIndex - 1;\n let multiplier = 1;\n while (scanIntPartIndex >= startIntPartIndex) {\n integer += multiplier * (this._string.charAt(scanIntPartIndex--) - \"0\");\n multiplier *= 10;\n }\n }\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \".\") {\n this._currentIndex++;\n if (this._currentIndex >= this._endIndex ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\") {\n frac *= 10;\n decimal += (this._string.charAt(this._currentIndex) - \"0\") / frac;\n this._currentIndex += 1;\n }\n }\n if (this._currentIndex != startIndex &&\n this._currentIndex + 1 < this._endIndex &&\n (this._string.charAt(this._currentIndex) == \"e\" || this._string.charAt(this._currentIndex) == \"E\") &&\n this._string.charAt(this._currentIndex + 1) != \"x\" &&\n this._string.charAt(this._currentIndex + 1) != \"m\") {\n this._currentIndex++;\n if (this._string.charAt(this._currentIndex) == \"+\") {\n this._currentIndex++;\n }\n else if (this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n expsign = -1;\n }\n if (this._currentIndex >= this._endIndex ||\n this._string.charAt(this._currentIndex) < \"0\" ||\n this._string.charAt(this._currentIndex) > \"9\")\n return undefined;\n while (this._currentIndex < this._endIndex &&\n this._string.charAt(this._currentIndex) >= \"0\" &&\n this._string.charAt(this._currentIndex) <= \"9\") {\n exponent *= 10;\n exponent += this._string.charAt(this._currentIndex) - \"0\";\n this._currentIndex++;\n }\n }\n let number = integer + decimal;\n number *= sign;\n if (exponent)\n number *= Math.pow(10, expsign * exponent);\n if (startIndex == this._currentIndex)\n return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return number;\n };\n Source.prototype._parseArcFlag = function () {\n if (this._currentIndex >= this._endIndex)\n return undefined;\n let flag = false;\n const flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar == \"0\")\n flag = false;\n else if (flagChar == \"1\")\n flag = true;\n else\n return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return flag;\n };\n Source.prototype.parseSegment = function () {\n const lookahead = this._string[this._currentIndex];\n let command = this._pathSegTypeFromChar(lookahead);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {\n if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN)\n return null;\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN)\n return null;\n }\n else {\n this._currentIndex++;\n }\n this._previousCommand = command;\n let points;\n switch (command) {\n case window.SVGPathSeg.PATHSEG_MOVETO_REL:\n return new window.SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_MOVETO_ABS:\n return new window.SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_REL:\n return new window.SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_ABS:\n return new window.SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n return new window.SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n return new window.SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n return new window.SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n return new window.SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CLOSEPATH:\n this._skipOptionalSpaces();\n return new window.SVGPathSegClosePath(owningPathSegList);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_ARC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n case window.SVGPathSeg.PATHSEG_ARC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber(),\n };\n return new window.SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n default:\n throw \"Unknown path seg type.\";\n }\n };\n const builder = new Builder();\n const source = new Source(string);\n if (!source.initialCommandIsMoveTo())\n return [];\n while (source.hasMoreData()) {\n const pathSeg = source.parseSegment();\n if (!pathSeg)\n return [];\n builder.appendSegment(pathSeg);\n }\n return builder.pathSegList;\n };\n }\n }\n catch (e) {\n console.warn(\"An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/matteobruni/tsparticles\", e);\n }\n})();\n","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nfunction _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\n\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"547f8dba\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"nft-marketplace-fe:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknft_marketplace_fe\"] = globalThis[\"webpackChunknft_marketplace_fe\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","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}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _defineProperty(obj, key, value) {\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\n return obj;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: function number(val, lng, options) {\n return new Intl.NumberFormat(lng, options).format(val);\n },\n currency: function currency(val, lng, options) {\n return new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n })).format(val);\n },\n datetime: function datetime(val, lng, options) {\n return new Intl.DateTimeFormat(lng, _objectSpread$4({}, options)).format(val);\n },\n relativetime: function relativetime(val, lng, options) {\n return new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options)).format(val, options.range || 'day');\n },\n list: function list(val, lng, options) {\n return new Intl.ListFormat(lng, _objectSpread$4({}, options)).format(val);\n }\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createContext } from 'react';\nimport { unescape } from './unescape';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nvar i18nInstance;\nexport var I18nContext = createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","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
{store.getState()}
\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 };","import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n","import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","var e=\"colors\",t=\"sizes\",r=\"space\",n={gap:r,gridGap:r,columnGap:r,gridColumnGap:r,rowGap:r,gridRowGap:r,inset:r,insetBlock:r,insetBlockEnd:r,insetBlockStart:r,insetInline:r,insetInlineEnd:r,insetInlineStart:r,margin:r,marginTop:r,marginRight:r,marginBottom:r,marginLeft:r,marginBlock:r,marginBlockEnd:r,marginBlockStart:r,marginInline:r,marginInlineEnd:r,marginInlineStart:r,padding:r,paddingTop:r,paddingRight:r,paddingBottom:r,paddingLeft:r,paddingBlock:r,paddingBlockEnd:r,paddingBlockStart:r,paddingInline:r,paddingInlineEnd:r,paddingInlineStart:r,top:r,right:r,bottom:r,left:r,scrollMargin:r,scrollMarginTop:r,scrollMarginRight:r,scrollMarginBottom:r,scrollMarginLeft:r,scrollMarginX:r,scrollMarginY:r,scrollMarginBlock:r,scrollMarginBlockEnd:r,scrollMarginBlockStart:r,scrollMarginInline:r,scrollMarginInlineEnd:r,scrollMarginInlineStart:r,scrollPadding:r,scrollPaddingTop:r,scrollPaddingRight:r,scrollPaddingBottom:r,scrollPaddingLeft:r,scrollPaddingX:r,scrollPaddingY:r,scrollPaddingBlock:r,scrollPaddingBlockEnd:r,scrollPaddingBlockStart:r,scrollPaddingInline:r,scrollPaddingInlineEnd:r,scrollPaddingInlineStart:r,fontSize:\"fontSizes\",background:e,backgroundColor:e,backgroundImage:e,borderImage:e,border:e,borderBlock:e,borderBlockEnd:e,borderBlockStart:e,borderBottom:e,borderBottomColor:e,borderColor:e,borderInline:e,borderInlineEnd:e,borderInlineStart:e,borderLeft:e,borderLeftColor:e,borderRight:e,borderRightColor:e,borderTop:e,borderTopColor:e,caretColor:e,color:e,columnRuleColor:e,fill:e,outline:e,outlineColor:e,stroke:e,textDecorationColor:e,fontFamily:\"fonts\",fontWeight:\"fontWeights\",lineHeight:\"lineHeights\",letterSpacing:\"letterSpacings\",blockSize:t,minBlockSize:t,maxBlockSize:t,inlineSize:t,minInlineSize:t,maxInlineSize:t,width:t,minWidth:t,maxWidth:t,height:t,minHeight:t,maxHeight:t,flexBasis:t,gridTemplateColumns:t,gridTemplateRows:t,borderWidth:\"borderWidths\",borderTopWidth:\"borderWidths\",borderRightWidth:\"borderWidths\",borderBottomWidth:\"borderWidths\",borderLeftWidth:\"borderWidths\",borderStyle:\"borderStyles\",borderTopStyle:\"borderStyles\",borderRightStyle:\"borderStyles\",borderBottomStyle:\"borderStyles\",borderLeftStyle:\"borderStyles\",borderRadius:\"radii\",borderTopLeftRadius:\"radii\",borderTopRightRadius:\"radii\",borderBottomRightRadius:\"radii\",borderBottomLeftRadius:\"radii\",boxShadow:\"shadows\",textShadow:\"shadows\",transition:\"transitions\",zIndex:\"zIndices\"},i=(e,t)=>\"function\"==typeof t?{\"()\":Function.prototype.toString.call(t)}:t,o=()=>{const e=Object.create(null);return(t,r,...n)=>{const o=(e=>JSON.stringify(e,i))(t);return o in e?e[o]:e[o]=r(t,...n)}},l=Symbol.for(\"sxs.internal\"),s=(e,t)=>Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)),a=e=>{for(const t in e)return!0;return!1},{hasOwnProperty:c}=Object.prototype,d=e=>e.includes(\"-\")?e:e.replace(/[A-Z]/g,(e=>\"-\"+e.toLowerCase())),g=/\\s+(?![^()]*\\))/,p=e=>t=>e(...\"string\"==typeof t?String(t).split(g):[t]),u={appearance:e=>({WebkitAppearance:e,appearance:e}),backfaceVisibility:e=>({WebkitBackfaceVisibility:e,backfaceVisibility:e}),backdropFilter:e=>({WebkitBackdropFilter:e,backdropFilter:e}),backgroundClip:e=>({WebkitBackgroundClip:e,backgroundClip:e}),boxDecorationBreak:e=>({WebkitBoxDecorationBreak:e,boxDecorationBreak:e}),clipPath:e=>({WebkitClipPath:e,clipPath:e}),content:e=>({content:e.includes('\"')||e.includes(\"'\")||/^([A-Za-z]+\\([^]*|[^]*-quote|inherit|initial|none|normal|revert|unset)$/.test(e)?e:`\"${e}\"`}),hyphens:e=>({WebkitHyphens:e,hyphens:e}),maskImage:e=>({WebkitMaskImage:e,maskImage:e}),maskSize:e=>({WebkitMaskSize:e,maskSize:e}),tabSize:e=>({MozTabSize:e,tabSize:e}),textSizeAdjust:e=>({WebkitTextSizeAdjust:e,textSizeAdjust:e}),userSelect:e=>({WebkitUserSelect:e,userSelect:e}),marginBlock:p(((e,t)=>({marginBlockStart:e,marginBlockEnd:t||e}))),marginInline:p(((e,t)=>({marginInlineStart:e,marginInlineEnd:t||e}))),maxSize:p(((e,t)=>({maxBlockSize:e,maxInlineSize:t||e}))),minSize:p(((e,t)=>({minBlockSize:e,minInlineSize:t||e}))),paddingBlock:p(((e,t)=>({paddingBlockStart:e,paddingBlockEnd:t||e}))),paddingInline:p(((e,t)=>({paddingInlineStart:e,paddingInlineEnd:t||e})))},h=/([\\d.]+)([^]*)/,f=(e,t)=>e.length?e.reduce(((e,r)=>(e.push(...t.map((e=>e.includes(\"&\")?e.replace(/&/g,/[ +>|~]/.test(r)&&/&.*&/.test(e)?`:is(${r})`:r):r+\" \"+e))),e)),[]):t,m=(e,t)=>e in b&&\"string\"==typeof t?t.replace(/^((?:[^]*[^\\w-])?)(fit-content|stretch)((?:[^\\w-][^]*)?)$/,((t,r,n,i)=>r+(\"stretch\"===n?`-moz-available${i};${d(e)}:${r}-webkit-fill-available`:`-moz-fit-content${i};${d(e)}:${r}fit-content`)+i)):String(t),b={blockSize:1,height:1,inlineSize:1,maxBlockSize:1,maxHeight:1,maxInlineSize:1,maxWidth:1,minBlockSize:1,minHeight:1,minInlineSize:1,minWidth:1,width:1},S=e=>e?e+\"-\":\"\",k=(e,t,r)=>e.replace(/([+-])?((?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[Ee][+-]?\\d+)?)?(\\$|--)([$\\w-]+)/g,((e,n,i,o,l)=>\"$\"==o==!!i?e:(n||\"--\"==o?\"calc(\":\"\")+\"var(--\"+(\"$\"===o?S(t)+(l.includes(\"$\")?\"\":S(r))+l.replace(/\\$/g,\"-\"):l)+\")\"+(n||\"--\"==o?\"*\"+(n||\"\")+(i||\"1\")+\")\":\"\"))),y=/\\s*,\\s*(?![^()]*\\))/,B=Object.prototype.toString,$=(e,t,r,n,i)=>{let o,l,s;const a=(e,t,r)=>{let c,g;const p=e=>{for(c in e){const R=64===c.charCodeAt(0),z=R&&Array.isArray(e[c])?e[c]:[e[c]];for(g of z){const e=/[A-Z]/.test($=c)?$:$.replace(/-[^]/g,(e=>e[1].toUpperCase())),z=\"object\"==typeof g&&g&&g.toString===B&&(!n.utils[e]||!t.length);if(e in n.utils&&!z){const t=n.utils[e];if(t!==l){l=t,p(t(g)),l=null;continue}}else if(e in u){const t=u[e];if(t!==s){s=t,p(t(g)),s=null;continue}}if(R&&(b=c.slice(1)in n.media?\"@media \"+n.media[c.slice(1)]:c,c=b.replace(/\\(\\s*([\\w-]+)\\s*(=|<|<=|>|>=)\\s*([\\w-]+)\\s*(?:(<|<=|>|>=)\\s*([\\w-]+)\\s*)?\\)/g,((e,t,r,n,i,o)=>{const l=h.test(t),s=.0625*(l?-1:1),[a,c]=l?[n,t]:[t,n];return\"(\"+(\"=\"===r[0]?\"\":\">\"===r[0]===l?\"max-\":\"min-\")+a+\":\"+(\"=\"!==r[0]&&1===r.length?c.replace(h,((e,t,n)=>Number(t)+s*(\">\"===r?1:-1)+n)):c)+(i?\") and (\"+(\">\"===i[0]?\"min-\":\"max-\")+a+\":\"+(1===i.length?o.replace(h,((e,t,r)=>Number(t)+s*(\">\"===i?-1:1)+r)):o):\"\")+\")\"}))),z){const e=R?r.concat(c):[...r],n=R?[...t]:f(t,c.split(y));void 0!==o&&i(x(...o)),o=void 0,a(g,n,e)}else void 0===o&&(o=[[],t,r]),c=R||36!==c.charCodeAt(0)?c:`--${S(n.prefix)}${c.slice(1).replace(/\\$/g,\"-\")}`,g=z?g:\"number\"==typeof g?g&&e in I?String(g)+\"px\":String(g):k(m(e,null==g?\"\":g),n.prefix,n.themeMap[e]),o[0].push(`${R?`${c} `:`${d(c)}:`}${g}`)}}var b,$};p(e),void 0!==o&&i(x(...o)),o=void 0};a(e,t,r)},x=(e,t,r)=>`${r.map((e=>`${e}{`)).join(\"\")}${t.length?`${t.join(\",\")}{`:\"\"}${e.join(\";\")}${t.length?\"}\":\"\"}${Array(r.length?r.length+1:0).join(\"}\")}`,I={animationDelay:1,animationDuration:1,backgroundSize:1,blockSize:1,border:1,borderBlock:1,borderBlockEnd:1,borderBlockEndWidth:1,borderBlockStart:1,borderBlockStartWidth:1,borderBlockWidth:1,borderBottom:1,borderBottomLeftRadius:1,borderBottomRightRadius:1,borderBottomWidth:1,borderEndEndRadius:1,borderEndStartRadius:1,borderInlineEnd:1,borderInlineEndWidth:1,borderInlineStart:1,borderInlineStartWidth:1,borderInlineWidth:1,borderLeft:1,borderLeftWidth:1,borderRadius:1,borderRight:1,borderRightWidth:1,borderSpacing:1,borderStartEndRadius:1,borderStartStartRadius:1,borderTop:1,borderTopLeftRadius:1,borderTopRightRadius:1,borderTopWidth:1,borderWidth:1,bottom:1,columnGap:1,columnRule:1,columnRuleWidth:1,columnWidth:1,containIntrinsicSize:1,flexBasis:1,fontSize:1,gap:1,gridAutoColumns:1,gridAutoRows:1,gridTemplateColumns:1,gridTemplateRows:1,height:1,inlineSize:1,inset:1,insetBlock:1,insetBlockEnd:1,insetBlockStart:1,insetInline:1,insetInlineEnd:1,insetInlineStart:1,left:1,letterSpacing:1,margin:1,marginBlock:1,marginBlockEnd:1,marginBlockStart:1,marginBottom:1,marginInline:1,marginInlineEnd:1,marginInlineStart:1,marginLeft:1,marginRight:1,marginTop:1,maxBlockSize:1,maxHeight:1,maxInlineSize:1,maxWidth:1,minBlockSize:1,minHeight:1,minInlineSize:1,minWidth:1,offsetDistance:1,offsetRotate:1,outline:1,outlineOffset:1,outlineWidth:1,overflowClipMargin:1,padding:1,paddingBlock:1,paddingBlockEnd:1,paddingBlockStart:1,paddingBottom:1,paddingInline:1,paddingInlineEnd:1,paddingInlineStart:1,paddingLeft:1,paddingRight:1,paddingTop:1,perspective:1,right:1,rowGap:1,scrollMargin:1,scrollMarginBlock:1,scrollMarginBlockEnd:1,scrollMarginBlockStart:1,scrollMarginBottom:1,scrollMarginInline:1,scrollMarginInlineEnd:1,scrollMarginInlineStart:1,scrollMarginLeft:1,scrollMarginRight:1,scrollMarginTop:1,scrollPadding:1,scrollPaddingBlock:1,scrollPaddingBlockEnd:1,scrollPaddingBlockStart:1,scrollPaddingBottom:1,scrollPaddingInline:1,scrollPaddingInlineEnd:1,scrollPaddingInlineStart:1,scrollPaddingLeft:1,scrollPaddingRight:1,scrollPaddingTop:1,shapeMargin:1,textDecoration:1,textDecorationThickness:1,textIndent:1,textUnderlineOffset:1,top:1,transitionDelay:1,transitionDuration:1,verticalAlign:1,width:1,wordSpacing:1},R=e=>String.fromCharCode(e+(e>25?39:97)),z=e=>(e=>{let t,r=\"\";for(t=Math.abs(e);t>52;t=t/52|0)r=R(t%52)+r;return R(t%52)+r})(((e,t)=>{let r=t.length;for(;r;)e=33*e^t.charCodeAt(--r);return e})(5381,JSON.stringify(e))>>>0),W=[\"themed\",\"global\",\"styled\",\"onevar\",\"resonevar\",\"allvar\",\"inline\"],j=e=>{if(e.href&&!e.href.startsWith(location.origin))return!1;try{return!!e.cssRules}catch(e){return!1}},E=e=>{let t;const r=()=>{const{cssRules:e}=t.sheet;return[].map.call(e,((r,n)=>{const{cssText:i}=r;let o=\"\";if(i.startsWith(\"--sxs\"))return\"\";if(e[n-1]&&(o=e[n-1].cssText).startsWith(\"--sxs\")){if(!r.cssRules.length)return\"\";for(const e in t.rules)if(t.rules[e].group===r)return`--sxs{--sxs:${[...t.rules[e].cache].join(\" \")}}${i}`;return r.cssRules.length?`${o}${i}`:\"\"}return i})).join(\"\")},n=()=>{if(t){const{rules:e,sheet:r}=t;if(!r.deleteRule){for(;3===Object(Object(r.cssRules)[0]).type;)r.cssRules.splice(0,1);r.cssRules=[]}for(const t in e)delete e[t]}const i=Object(e).styleSheets||[];for(const e of i)if(j(e)){for(let i=0,o=e.cssRules;o[i];++i){const l=Object(o[i]);if(1!==l.type)continue;const s=Object(o[i+1]);if(4!==s.type)continue;++i;const{cssText:a}=l;if(!a.startsWith(\"--sxs\"))continue;const c=a.slice(14,-3).trim().split(/\\s+/),d=W[c[0]];d&&(t||(t={sheet:e,reset:n,rules:{},toString:r}),t.rules[d]={group:s,index:i,cache:new Set(c)})}if(t)break}if(!t){const i=(e,t)=>({type:t,cssRules:[],insertRule(e,t){this.cssRules.splice(t,0,i(e,{import:3,undefined:1}[(e.toLowerCase().match(/^@([a-z]+)/)||[])[1]]||4))},get cssText(){return\"@media{}\"===e?`@media{${[].map.call(this.cssRules,(e=>e.cssText)).join(\"\")}}`:e}});t={sheet:e?(e.head||e).appendChild(document.createElement(\"style\")).sheet:i(\"\",\"text/css\"),rules:{},reset:n,toString:r}}const{sheet:o,rules:l}=t;for(let e=W.length-1;e>=0;--e){const t=W[e];if(!l[t]){const r=W[e+1],n=l[r]?l[r].index:o.cssRules.length;o.insertRule(\"@media{}\",n),o.insertRule(`--sxs{--sxs:${e}}`,n),l[t]={group:o.cssRules[n+1],index:n,cache:new Set([e])}}v(l[t])}};return n(),t},v=e=>{const t=e.group;let r=t.cssRules.length;e.apply=e=>{try{t.insertRule(e,r),++r}catch(e){}}},T=Symbol(),w=o(),M=(e,t)=>w(e,(()=>(...r)=>{let n={type:null,composers:new Set};for(const t of r)if(null!=t)if(t[l]){null==n.type&&(n.type=t[l].type);for(const e of t[l].composers)n.composers.add(e)}else t.constructor!==Object||t.$$typeof?null==n.type&&(n.type=t):n.composers.add(C(t,e));return null==n.type&&(n.type=\"span\"),n.composers.size||n.composers.add([\"PJLV\",{},[],[],{},[]]),P(e,n,t)})),C=({variants:e,compoundVariants:t,defaultVariants:r,...n},i)=>{const o=`${S(i.prefix)}c-${z(n)}`,l=[],s=[],d=Object.create(null),g=[];for(const e in r)d[e]=String(r[e]);if(\"object\"==typeof e&&e)for(const t in e){p=d,u=t,c.call(p,u)||(d[t]=\"undefined\");const r=e[t];for(const e in r){const n={[t]:String(e)};\"undefined\"===String(e)&&g.push(t);const i=r[e],o=[n,i,!a(i)];l.push(o)}}var p,u;if(\"object\"==typeof t&&t)for(const e of t){let{css:t,...r}=e;t=\"object\"==typeof t&&t||{};for(const e in r)r[e]=String(r[e]);const n=[r,t,!a(t)];s.push(n)}return[o,n,l,s,d,g]},P=(e,t,r)=>{const[n,i,o,a]=L(t.composers),c=\"function\"==typeof t.type||t.type.$$typeof?(e=>{function t(){for(let r=0;rt.rules[e]={apply:r=>t[T].push([e,r])})),t})(r):null,d=(c||r).rules,g=`.${n}${i.length>1?`:where(.${i.slice(1).join(\".\")})`:\"\"}`,p=l=>{l=\"object\"==typeof l&&l||A;const{css:s,...p}=l,u={};for(const e in o)if(delete p[e],e in l){let t=l[e];\"object\"==typeof t&&t?u[e]={\"@initial\":o[e],...t}:(t=String(t),u[e]=\"undefined\"!==t||a.has(e)?t:o[e])}else u[e]=o[e];const h=new Set([...i]);for(const[n,i,o,l]of t.composers){r.rules.styled.cache.has(n)||(r.rules.styled.cache.add(n),$(i,[`.${n}`],[],e,(e=>{d.styled.apply(e)})));const t=O(o,u,e.media),s=O(l,u,e.media,!0);for(const i of t)if(void 0!==i)for(const[t,o,l]of i){const i=`${n}-${z(o)}-${t}`;h.add(i);const s=(l?r.rules.resonevar:r.rules.onevar).cache,a=l?d.resonevar:d.onevar;s.has(i)||(s.add(i),$(o,[`.${i}`],[],e,(e=>{a.apply(e)})))}for(const t of s)if(void 0!==t)for(const[i,o]of t){const t=`${n}-${z(o)}-${i}`;h.add(t),r.rules.allvar.cache.has(t)||(r.rules.allvar.cache.add(t),$(o,[`.${t}`],[],e,(e=>{d.allvar.apply(e)})))}}if(\"object\"==typeof s&&s){const t=`${n}-i${z(s)}-css`;h.add(t),r.rules.inline.cache.has(t)||(r.rules.inline.cache.add(t),$(s,[`.${t}`],[],e,(e=>{d.inline.apply(e)})))}for(const e of String(l.className||\"\").trim().split(/\\s+/))e&&h.add(e);const f=p.className=[...h].join(\" \");return{type:t.type,className:f,selector:g,props:p,toString:()=>f,deferredInjector:c}};return s(p,{className:n,selector:g,[l]:t,toString:()=>(r.rules.styled.cache.has(n)||p(),n)})},L=e=>{let t=\"\";const r=[],n={},i=[];for(const[o,,,,l,s]of e){\"\"===t&&(t=o),r.push(o),i.push(...s);for(const e in l){const t=l[e];(void 0===n[e]||\"undefined\"!==t||s.includes(t))&&(n[e]=t)}}return[t,r,n,new Set(i)]},O=(e,t,r,n)=>{const i=[];e:for(let[o,l,s]of e){if(s)continue;let e,a=0,c=!1;for(e in o){const n=o[e];let i=t[e];if(i!==n){if(\"object\"!=typeof i||!i)continue e;{let e,t,o=0;for(const l in i){if(n===String(i[l])){if(\"@initial\"!==l){const e=l.slice(1);(t=t||[]).push(e in r?r[e]:l.replace(/^@media ?/,\"\")),c=!0}a+=o,e=!0}++o}if(t&&t.length&&(l={[\"@media \"+t.join(\", \")]:l}),!e)continue e}}}(i[a]=i[a]||[]).push([n?\"cv\":`${e}-${o[e]}`,l,c])}return i},A={},N=o(),D=(e,t)=>N(e,(()=>(...r)=>{const n=()=>{for(let n of r){n=\"object\"==typeof n&&n||{};let r=z(n);if(!t.rules.global.cache.has(r)){if(t.rules.global.cache.add(r),\"@import\"in n){let e=[].indexOf.call(t.sheet.cssRules,t.rules.themed.group)-1;for(let r of[].concat(n[\"@import\"]))r=r.includes('\"')||r.includes(\"'\")?r:`\"${r}\"`,t.sheet.insertRule(`@import ${r};`,e++);delete n[\"@import\"]}$(n,[],[],e,(e=>{t.rules.global.apply(e)}))}}return\"\"};return s(n,{toString:n})})),H=o(),V=(e,t)=>H(e,(()=>r=>{const n=`${S(e.prefix)}k-${z(r)}`,i=()=>{if(!t.rules.global.cache.has(n)){t.rules.global.cache.add(n);const i=[];$(r,[],[],e,(e=>i.push(e)));const o=`@keyframes ${n}{${i.join(\"\")}}`;t.rules.global.apply(o)}return n};return s(i,{get name(){return i()},toString:i})})),G=class{constructor(e,t,r,n){this.token=null==e?\"\":String(e),this.value=null==t?\"\":String(t),this.scale=null==r?\"\":String(r),this.prefix=null==n?\"\":String(n)}get computedValue(){return\"var(\"+this.variable+\")\"}get variable(){return\"--\"+S(this.prefix)+S(this.scale)+this.token}toString(){return this.computedValue}},F=o(),J=(e,t)=>F(e,(()=>(r,n)=>{n=\"object\"==typeof r&&r||Object(n);const i=`.${r=(r=\"string\"==typeof r?r:\"\")||`${S(e.prefix)}t-${z(n)}`}`,o={},l=[];for(const t in n){o[t]={};for(const r in n[t]){const i=`--${S(e.prefix)}${t}-${r}`,s=k(String(n[t][r]),e.prefix,t);o[t][r]=new G(r,s,t,e.prefix),l.push(`${i}:${s}`)}}const s=()=>{if(l.length&&!t.rules.themed.cache.has(r)){t.rules.themed.cache.add(r);const i=`${n===e.theme?\":root,\":\"\"}.${r}{${l.join(\";\")}}`;t.rules.themed.apply(i)}return r};return{...o,get className(){return s()},selector:i,toString:s}})),U=o();import Z from\"react\";var X,Y=o(),q=e=>{const t=(e=>{let t=!1;const r=U(e,(e=>{t=!0;const r=\"prefix\"in(e=\"object\"==typeof e&&e||{})?String(e.prefix):\"\",i=\"object\"==typeof e.media&&e.media||{},o=\"object\"==typeof e.root?e.root||null:globalThis.document||null,l=\"object\"==typeof e.theme&&e.theme||{},s={prefix:r,media:i,theme:l,themeMap:\"object\"==typeof e.themeMap&&e.themeMap||{...n},utils:\"object\"==typeof e.utils&&e.utils||{}},a=E(o),c={css:M(s,a),globalCss:D(s,a),keyframes:V(s,a),createTheme:J(s,a),reset(){a.reset(),c.theme.toString()},theme:{},sheet:a,config:s,prefix:r,getCssText:a.toString,toString:a.toString};return String(c.theme=c.createTheme(l)),c}));return t||r.reset(),r})(e);return t.styled=(({config:e,sheet:t})=>Y(e,(()=>{const r=M(e,t);return(...e)=>{const t=r(...e),n=t[l].type,i=Z.forwardRef(((e,r)=>{const i=e&&e.as||n,{props:o,deferredInjector:l}=t(e);return delete o.as,o.ref=r,l?Z.createElement(Z.Fragment,null,Z.createElement(i,o),Z.createElement(l,null)):Z.createElement(i,o)}));return i.className=t.className,i.displayName=`Styled.${n.displayName||n.name||n}`,i.selector=t.selector,i.toString=()=>t.selector,i[l]=t[l],i}})))(t),t},K=()=>X||(X=q()),Q=(...e)=>K().createTheme(...e),_=(...e)=>K().globalCss(...e),ee=(...e)=>K().keyframes(...e),te=(...e)=>K().css(...e),re=(...e)=>K().styled(...e);export{q as createStitches,Q as createTheme,te as css,n as defaultThemeMap,_ as globalCss,ee as keyframes,re as styled};\n//# sourceMappingUrl=index.map","import { createStitches } from '@stitches/react';\r\n\r\nexport const {\r\n styled,\r\n css,\r\n globalCss,\r\n keyframes,\r\n theme,\r\n createTheme,\r\n config,\r\n} = createStitches({\r\n theme: {\r\n colors: {\r\n backgroundColor: '#ffffff',\r\n navBackgroundColor: '#ffffff',\r\n buttonBackgroundColor: '#ffffff',\r\n mainTextColor: '#23262F',\r\n tabActive: '#23262F',\r\n borderColor: '#E5E8EB',\r\n buttonsBorderColor: '#E5E8EB',\r\n nftCardName: '#767D8E',\r\n nftCardId: '#23262F',\r\n nftCardSubSection: '#f6f7f9',\r\n tableBackgroundColor: '#FAFBFD',\r\n tableTextColor: '#777E90',\r\n tableNftActivityTextColor: '#767D8E',\r\n tableLinkTextColor: '#5542CF',\r\n tableRowHoverColor: '#F4F5F6',\r\n openAccordion: '#FAFBFD',\r\n closeAccordion: '#ffffff',\r\n accordionHeadingTextColor: '#767D8E',\r\n accordionContentBackgroundColor: '#FAFBFD',\r\n chipsTextColor: '#000000',\r\n chipsBackgroundColor: '#F4F5F6',\r\n chipsNftBackgroundColor: '#F4F5F6',\r\n modalOverlay: '#fafbfde6',\r\n skeletonBackground:\r\n 'linear-gradient(160deg, rgb(209 211 213) 20%, rgb(247, 248, 250) 80%)',\r\n checkboxSelectedFiltersText: '#23262F',\r\n greyMid: '#767D8E',\r\n error: '#FD5F51',\r\n primary: '#5542CF',\r\n success: '#00AC7C',\r\n modalText: '#767D8E',\r\n toastBackground: '#ffffff',\r\n iconGrey: '#767D8F',\r\n lightYellow: '#ffd71926',\r\n paleYellow: '#987E00',\r\n regentGrey: '#777E8F',\r\n defaultBackgroundColour: '#000000',\r\n defaultTxtColour: '#FFFFFF',\r\n },\r\n space: {},\r\n fonts: {},\r\n shadows: {\r\n default: '0px 0px 8px #E6E9EF',\r\n active: '0px 0px 16px #E6E9EF',\r\n },\r\n },\r\n media: {\r\n // TODO: For responsiveness\r\n // find that is best to do mobile first approach\r\n // which means that you'd have min-width, instead\r\n // of max-width, to allow you to provide a set of\r\n // rules that fulfill a wider range\r\n sm: '(max-width: 640px)',\r\n md: '(max-width: 850px)',\r\n lg: '(max-width: 1140px)',\r\n // TODO: considering the request above\r\n // here's a temporary breakpoint\r\n large: '(min-width: 1140px)',\r\n },\r\n utils: {},\r\n});\r\n\r\nexport const darkTheme = createTheme({\r\n colors: {\r\n backgroundColor: '#141416',\r\n navBackgroundColor: '#000000',\r\n buttonBackgroundColor: '#000000',\r\n mainTextColor: '#ffffff',\r\n borderColor: '#353945',\r\n buttonsBorderColor: '#353945',\r\n nftCardName: '#777E90',\r\n nftCardId: '#777E90',\r\n nftCardSubSection: '#202022',\r\n tableBackgroundColor: '#141416',\r\n tableTextColor: '#ffffff',\r\n tableNftActivityTextColor: '#ffffff',\r\n tableLinkTextColor: '#2253FF',\r\n tableRowHoverColor: '#141416',\r\n openAccordion: '#19191C',\r\n closeAccordion: '#141416',\r\n accordionHeadingTextColor: '#ffffff',\r\n accordionContentBackgroundColor: '#141416',\r\n chipsTextColor: '#ffffff',\r\n chipsBackgroundColor: '#000000',\r\n chipsNftBackgroundColor: 'transparent',\r\n tabActive: '#ffffff',\r\n modalOverlay: '#0a0a0ae6',\r\n skeletonBackground:\r\n 'linear-gradient(160deg, rgb(36 34 34) 20%, rgb(41 42 44) 80%)',\r\n checkboxSelectedFiltersText: '#5542CF',\r\n error: '#FD5F51',\r\n primary: '#5542CF',\r\n success: '#00AC7C',\r\n modalText: '#767D8E',\r\n toastBackground: '#1e1e1e',\r\n defaultBackgroundColour: '#FFFFFF',\r\n defaultTxtColour: '#000000',\r\n },\r\n shadows: {\r\n default: 'none',\r\n active: 'none',\r\n },\r\n});\r\n","import { styled } from '../../../stitches.config';\r\n\r\nexport const Wrapper = styled('div', {\r\n width: '100%',\r\n height: '100%',\r\n minWidth: '98px',\r\n minHeight: '33px',\r\n\r\n variants: {\r\n disabled: {\r\n true: {\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const Button = styled('button', {\r\n // base styles\r\n width: '100%',\r\n height: '100%',\r\n minWidth: '98px',\r\n minHeight: '33px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontSize: '18px',\r\n fontWeight: '600',\r\n lineHeight: '22px',\r\n borderRadius: '14px',\r\n fontFamily: 'proxima-nova, sans-serif',\r\n\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n\r\n variants: {\r\n type: {\r\n primary: {\r\n backgroundColor: '$primary',\r\n color: '#FCFCFD',\r\n border: 'none',\r\n },\r\n secondary: {\r\n backgroundColor: 'transparent',\r\n color: '$mainTextColor',\r\n border: '1.5px solid $buttonsBorderColor',\r\n },\r\n outline: {\r\n backgroundColor: 'transparent',\r\n color: '$primary',\r\n border: '1.5px solid $primary',\r\n },\r\n },\r\n\r\n disabled: {\r\n true: {\r\n opacity: 0.3,\r\n pointerEvents: 'none',\r\n },\r\n },\r\n\r\n danger: {\r\n true: {\r\n backgroundColor: '#EF4444',\r\n },\r\n },\r\n\r\n size: {\r\n small: {\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n borderWidth: '1px',\r\n borderRadius: '10px',\r\n },\r\n wide: {\r\n padding: '8px 35px',\r\n },\r\n },\r\n\r\n fontWeight: {\r\n light: {\r\n fontWeight: 500,\r\n },\r\n },\r\n },\r\n cursor: 'pointer',\r\n padding: '8px 12px',\r\n});\r\n\r\nexport const LinkButtonStyles = styled('a', {\r\n // base styles\r\n border: '2px solid $buttonsBorderColor',\r\n backgroundColor: '$backgroundColor',\r\n fontWeight: '500',\r\n color: '$mainTextColor',\r\n cursor: 'pointer',\r\n borderRadius: '14px',\r\n fontSize: '16px',\r\n width: '40px',\r\n height: '40px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n marginRight: '10px',\r\n\r\n // variants\r\n variants: {\r\n type: {\r\n textBtn: {\r\n padding: '0px 12px',\r\n width: 'initial',\r\n height: '40px',\r\n },\r\n },\r\n },\r\n\r\n '&:last-child': {\r\n marginRight: '0px',\r\n },\r\n\r\n transition: 'transform 0.2s ease-in-out',\r\n '&:hover': {\r\n boxShadow: '0px 0px 8px 3px $navBackgroundColor',\r\n transform: 'scale(1.085)',\r\n },\r\n '&:active': {\r\n transform: 'scale(0.985)',\r\n },\r\n});\r\n\r\nexport const Flex = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '15px',\r\n position: 'relative',\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n cursor: 'pointer',\r\n\r\n '& img': {\r\n marginRight: '15px',\r\n },\r\n\r\n '& p': {\r\n margin: '0px',\r\n },\r\n});\r\n\r\nexport const IconButtonStyles = styled('div', {\r\n // base styles\r\n border: '2px solid $buttonsBorderColor',\r\n backgroundColor: '$buttonBackgroundColor',\r\n fontWeight: '500',\r\n color: '#23262F',\r\n cursor: 'pointer',\r\n borderRadius: '14px',\r\n fontSize: '16px',\r\n width: '40px',\r\n height: '40px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n marginRight: '10px',\r\n\r\n '&:last-child': {\r\n marginRight: '0px',\r\n },\r\n});\r\n","import { Button, Wrapper } from './styles';\r\n\r\nexport type ActionButtonProps = React.ComponentProps;\r\n\r\nexport const ActionButton = (props: any) => (\r\n \r\n \r\n // eslint-disable-next-line react/destructuring-assignment\r\n props.disabled && ev.preventDefault()\r\n }\r\n />\r\n \r\n);\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React from 'react';\r\nimport { LinkButtonStyles } from './styles';\r\n\r\nexport type LinkButtonProps = {\r\n type?: any;\r\n children?: React.ReactNode;\r\n url?: string;\r\n handleClick?: () => void;\r\n};\r\n\r\nexport const LinkButton = ({\r\n type,\r\n children,\r\n url,\r\n handleClick,\r\n}: LinkButtonProps) => (\r\n {\r\n // Keyboard accessibility\r\n if (event.keyCode === 13 && typeof handleClick === 'function')\r\n handleClick();\r\n }}\r\n >\r\n {children}\r\n \r\n);\r\n","import React from 'react';\r\nimport { IconButtonStyles } from './styles';\r\n\r\nexport type IconActionButtonProps = {\r\n children?: React.ReactNode;\r\n handleClick: () => void;\r\n};\r\n\r\n/* --------------------------------------------------------------------------\r\n * Icon Action Button Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport const IconActionButton = ({\r\n children,\r\n handleClick,\r\n}: IconActionButtonProps) => (\r\n \r\n {children}\r\n \r\n);\r\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.delete(propOrOldValue)\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// Although the original test case doesn't seem valid anyway, so if this in the way we can turn the next line\n\t\t// back to each(result, ....)\n\t\teach(\n\t\t\tstate.type_ === ProxyType.Set ? new Set(result) : result,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\tif (scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\tstate.copy_![prop] === value &&\n\t\t\t// special case: NaN\n\t\t\ttypeof value !== \"number\" &&\n\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t(value !== undefined || prop in state.copy_)\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (\n\t\targ1: any,\n\t\targ2?: any,\n\t\targ3?: any\n\t): any => {\n\t\tif (typeof arg1 === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => arg1(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(arg1, arg2, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\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\n return keys;\n}\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\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\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\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 EnhancerOptions {\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 * See detailed documentation at https://github.com/reduxjs/redux-devtools/blob/%40redux-devtools/extension%403.2.1/extension/docs/API/Arguments.md#serialize\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n options?:\r\n | boolean\r\n | {\r\n date?: boolean\r\n regex?: boolean\r\n undefined?: boolean\r\n error?: boolean\r\n symbol?: boolean\r\n map?: boolean\r\n set?: boolean\r\n function?: boolean | Function\r\n }\r\n replacer?: (key: string, value: unknown) => unknown\r\n reviver?: (key: string, value: unknown) => unknown\r\n immutable?: unknown\r\n refs?: unknown[]\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 */\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 */\r\n actionsWhitelist?: 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 `actionsBlacklist`/`actionsWhitelist` 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: EnhancerOptions): 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: EnhancerOptions): 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 } 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\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\nexport function freezeDraftable(val: T) {\r\n return isDraftable(val) ? createNextState(val, () => {}) : val\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 (): 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() overriden 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\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 [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare\r\n : ActionCreatorForCaseReducer\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 _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 [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('You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`')\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 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 return createReducer(\r\n initialState,\r\n finalCaseReducers as any,\r\n actionMatchers,\r\n defaultCaseReducer\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 * An *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) => S | 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\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 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 (typeof 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 (typeof 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, 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 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 (\r\n value: FulfilledValue\r\n ) => FulfillWithMeta,\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\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\nexport function createAsyncThunk(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator,\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\nexport 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 options?: AsyncThunkOptions\r\n): AsyncThunk\r\n\r\nexport 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 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 const abortedPromise = new Promise((_, reject) =>\r\n abortController.signal.addEventListener('abort', () =>\r\n reject({ name: 'AbortError', message: abortReason || 'Aborted' })\r\n )\r\n )\r\n\r\n let started = false\r\n function abort(reason?: string) {\r\n if (started) {\r\n abortReason = reason\r\n abortController.abort()\r\n }\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 if (conditionResult === false) {\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 dispatch(\r\n pending(\r\n requestId,\r\n arg,\r\n options?.getPendingMeta?.({ requestId, arg }, { getState, extra })\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 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\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 { Dispatch, AnyAction, MiddlewareAPI } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport { createAction } 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 promisifyAbortSignal,\r\n validateActive,\r\n createPause,\r\n createDelay,\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) => {\r\n // Inside the Promise, we synchronously add the listener.\r\n unsubscribe = 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 })\r\n\r\n const promises: (Promise | Promise<[AnyAction, S, S]>)[] = [\r\n promisifyAbortSignal(signal),\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 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 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\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\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 (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 { 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}\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 { 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 } 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 {\r\n // js\r\n createAction,\r\n getType,\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 } 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\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","export const PLUG_WALLET_WEBSITE_URL = 'https://plugwallet.ooo/';\r\n\r\nexport enum PlugStatusCodes {\r\n Verifying = 'verifying',\r\n FailedToConnect = 'failed-to-connect',\r\n Connected = 'connected',\r\n NotInstalled = 'not-installed',\r\n Installed = 'installed',\r\n Connecting = 'connecting',\r\n}\r\n","export enum FilterConstants {\r\n bigGem = 'Big Gem',\r\n smallGem = 'Small Gem',\r\n base = 'Base',\r\n rim = 'Rim',\r\n}\r\n","export enum OperationTypes {\r\n makeListing = 'makeListing',\r\n directBuy = 'directBuy',\r\n makeOffer = 'makeOffer',\r\n denyOffer = 'denyOffer',\r\n cancelOffer = 'cancelOffer',\r\n cancelListing = 'cancelListing',\r\n acceptOffer = 'acceptOffer',\r\n mint = 'mint',\r\n transfer = 'transfer',\r\n}\r\n\r\nexport type OperationType = keyof typeof OperationTypes;\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\nimport type { RootState } from '../../store';\r\nimport { PlugStatusCodes } from '../../../constants';\r\n\r\n// Define a type for the slice state\r\ninterface PlugState {\r\n isConnected: boolean;\r\n principalId?: string;\r\n connectionStatus: PlugStatusCodes;\r\n walletsWICPBalance: number;\r\n loadingWICPBalance: boolean;\r\n icnsName?: string;\r\n}\r\n\r\n// Define the initial state using that type\r\nconst initialState: PlugState = {\r\n isConnected: false,\r\n principalId: undefined,\r\n connectionStatus: 'verifying' as PlugStatusCodes,\r\n walletsWICPBalance: 0,\r\n loadingWICPBalance: true,\r\n icnsName: undefined,\r\n};\r\n\r\nexport const plugSlice = createSlice({\r\n name: 'plug',\r\n // `createSlice` will infer the state type from the `initialState` argument\r\n initialState,\r\n reducers: {\r\n setIsConnected: (state, action: PayloadAction) => {\r\n state.isConnected = action.payload;\r\n if (!action.payload) {\r\n state.principalId = undefined;\r\n state.connectionStatus = PlugStatusCodes.FailedToConnect;\r\n } else {\r\n state.connectionStatus = PlugStatusCodes.Connected;\r\n }\r\n },\r\n setPrincipalId: (state, action: PayloadAction) => {\r\n state.principalId = action.payload;\r\n },\r\n setICNSName: (state, action: PayloadAction) => {\r\n state.icnsName = action.payload;\r\n },\r\n setConnectionStatus: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n state.connectionStatus = action.payload;\r\n },\r\n setWalletsWICPBalance: (state, action: PayloadAction) => {\r\n state.walletsWICPBalance = action.payload;\r\n },\r\n setLoadingWICPBalance: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n state.loadingWICPBalance = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const plugActions = plugSlice.actions;\r\n\r\n// Other code such as selectors can use the imported `RootState` type\r\nexport const selectPlugState = (state: RootState) => state.plug;\r\n\r\nexport default plugSlice.reducer;\r\n","import {\r\n TypedUseSelectorHook,\r\n useDispatch,\r\n useSelector,\r\n} from 'react-redux';\r\nimport type { RootState, AppDispatch } from './store';\r\n\r\n// Use throughout the app instead of plain `useDispatch` and `useSelector`\r\nexport const useAppDispatch = () => useDispatch();\r\n// eslint-disable-next-line\r\nexport const useAppSelector: TypedUseSelectorHook =\r\n useSelector;\r\n","import { useAppSelector } from '../../hooks';\r\nimport { selectPlugState } from './plug-slice';\r\n\r\nexport const usePlugStore = () => useAppSelector(selectPlugState);\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nexport default ({ IDL }: { IDL: any }) => {\r\n const Vec = IDL.Rec();\r\n const InitArgs = IDL.Record({\r\n logo: IDL.Opt(IDL.Text),\r\n name: IDL.Opt(IDL.Text),\r\n custodians: IDL.Opt(IDL.Vec(IDL.Principal)),\r\n symbol: IDL.Opt(IDL.Text),\r\n });\r\n const NftError = IDL.Variant({\r\n UnauthorizedOperator: IDL.Null,\r\n SelfTransfer: IDL.Null,\r\n TokenNotFound: IDL.Null,\r\n UnauthorizedOwner: IDL.Null,\r\n TxNotFound: IDL.Null,\r\n SelfApprove: IDL.Null,\r\n OperatorNotFound: IDL.Null,\r\n ExistedNFT: IDL.Null,\r\n OwnerNotFound: IDL.Null,\r\n Other: IDL.Text,\r\n });\r\n const Result = IDL.Variant({ Ok: IDL.Nat, Err: NftError });\r\n const Result_1 = IDL.Variant({ Ok: IDL.Bool, Err: NftError });\r\n const ManualReply = IDL.Record({\r\n logo: IDL.Opt(IDL.Text),\r\n name: IDL.Opt(IDL.Text),\r\n created_at: IDL.Nat64,\r\n upgraded_at: IDL.Nat64,\r\n custodians: IDL.Vec(IDL.Principal),\r\n symbol: IDL.Opt(IDL.Text),\r\n });\r\n Vec.fill(\r\n IDL.Vec(\r\n IDL.Tuple(\r\n IDL.Text,\r\n IDL.Variant({\r\n Nat64Content: IDL.Nat64,\r\n Nat32Content: IDL.Nat32,\r\n BoolContent: IDL.Bool,\r\n Nat8Content: IDL.Nat8,\r\n Int64Content: IDL.Int64,\r\n IntContent: IDL.Int,\r\n NatContent: IDL.Nat,\r\n Nat16Content: IDL.Nat16,\r\n Int32Content: IDL.Int32,\r\n Int8Content: IDL.Int8,\r\n FloatContent: IDL.Float64,\r\n Int16Content: IDL.Int16,\r\n BlobContent: IDL.Vec(IDL.Nat8),\r\n NestedContent: Vec,\r\n Principal: IDL.Principal,\r\n TextContent: IDL.Text,\r\n }),\r\n ),\r\n ),\r\n );\r\n const GenericValue = IDL.Variant({\r\n Nat64Content: IDL.Nat64,\r\n Nat32Content: IDL.Nat32,\r\n BoolContent: IDL.Bool,\r\n Nat8Content: IDL.Nat8,\r\n Int64Content: IDL.Int64,\r\n IntContent: IDL.Int,\r\n NatContent: IDL.Nat,\r\n Nat16Content: IDL.Nat16,\r\n Int32Content: IDL.Int32,\r\n Int8Content: IDL.Int8,\r\n FloatContent: IDL.Float64,\r\n Int16Content: IDL.Int16,\r\n BlobContent: IDL.Vec(IDL.Nat8),\r\n NestedContent: Vec,\r\n Principal: IDL.Principal,\r\n TextContent: IDL.Text,\r\n });\r\n const Result_2 = IDL.Variant({\r\n Ok: IDL.Opt(IDL.Principal),\r\n Err: NftError,\r\n });\r\n const ManualReply_1 = IDL.Variant({\r\n Ok: IDL.Vec(IDL.Nat),\r\n Err: NftError,\r\n });\r\n const TokenMetadata = IDL.Record({\r\n transferred_at: IDL.Opt(IDL.Nat64),\r\n transferred_by: IDL.Opt(IDL.Principal),\r\n owner: IDL.Opt(IDL.Principal),\r\n operator: IDL.Opt(IDL.Principal),\r\n approved_at: IDL.Opt(IDL.Nat64),\r\n approved_by: IDL.Opt(IDL.Principal),\r\n properties: IDL.Vec(IDL.Tuple(IDL.Text, GenericValue)),\r\n is_burned: IDL.Bool,\r\n token_identifier: IDL.Nat,\r\n burned_at: IDL.Opt(IDL.Nat64),\r\n burned_by: IDL.Opt(IDL.Principal),\r\n minted_at: IDL.Nat64,\r\n minted_by: IDL.Principal,\r\n });\r\n const ManualReply_2 = IDL.Variant({\r\n Ok: IDL.Vec(TokenMetadata),\r\n Err: NftError,\r\n });\r\n const Stats = IDL.Record({\r\n cycles: IDL.Nat,\r\n total_transactions: IDL.Nat,\r\n total_unique_holders: IDL.Nat,\r\n total_supply: IDL.Nat,\r\n });\r\n const SupportedInterface = IDL.Variant({\r\n Mint: IDL.Null,\r\n Approval: IDL.Null,\r\n TransactionHistory: IDL.Null,\r\n });\r\n const ManualReply_3 = IDL.Variant({\r\n Ok: TokenMetadata,\r\n Err: NftError,\r\n });\r\n const TxEvent = IDL.Record({\r\n time: IDL.Nat64,\r\n operation: IDL.Text,\r\n details: IDL.Vec(IDL.Tuple(IDL.Text, GenericValue)),\r\n caller: IDL.Principal,\r\n });\r\n const ManualReply_4 = IDL.Variant({ Ok: TxEvent, Err: NftError });\r\n return IDL.Service({\r\n approve: IDL.Func([IDL.Principal, IDL.Nat], [Result], []),\r\n balanceOf: IDL.Func([IDL.Principal], [Result], ['query']),\r\n custodians: IDL.Func([], [IDL.Vec(IDL.Principal)], ['query']),\r\n cycles: IDL.Func([], [IDL.Nat], ['query']),\r\n isApprovedForAll: IDL.Func(\r\n [IDL.Principal, IDL.Principal],\r\n [Result_1],\r\n ['query'],\r\n ),\r\n logo: IDL.Func([], [IDL.Opt(IDL.Text)], ['query']),\r\n metadata: IDL.Func([], [ManualReply], ['query']),\r\n mint: IDL.Func(\r\n [\r\n IDL.Principal,\r\n IDL.Nat,\r\n IDL.Vec(IDL.Tuple(IDL.Text, GenericValue)),\r\n ],\r\n [Result],\r\n [],\r\n ),\r\n name: IDL.Func([], [IDL.Opt(IDL.Text)], ['query']),\r\n operatorOf: IDL.Func([IDL.Nat], [Result_2], ['query']),\r\n operatorTokenIdentifiers: IDL.Func(\r\n [IDL.Principal],\r\n [ManualReply_1],\r\n ['query'],\r\n ),\r\n operatorTokenMetadata: IDL.Func(\r\n [IDL.Principal],\r\n [ManualReply_2],\r\n ['query'],\r\n ),\r\n ownerOf: IDL.Func([IDL.Nat], [Result_2], ['query']),\r\n ownerTokenIdentifiers: IDL.Func(\r\n [IDL.Principal],\r\n [ManualReply_1],\r\n ['query'],\r\n ),\r\n ownerTokenMetadata: IDL.Func(\r\n [IDL.Principal],\r\n [ManualReply_2],\r\n ['query'],\r\n ),\r\n setApprovalForAll: IDL.Func(\r\n [IDL.Principal, IDL.Bool],\r\n [Result],\r\n [],\r\n ),\r\n setCustodians: IDL.Func([IDL.Vec(IDL.Principal)], [], []),\r\n setLogo: IDL.Func([IDL.Text], [], []),\r\n setName: IDL.Func([IDL.Text], [], []),\r\n setSymbol: IDL.Func([IDL.Text], [], []),\r\n stats: IDL.Func([], [Stats], ['query']),\r\n supportedInterfaces: IDL.Func(\r\n [],\r\n [IDL.Vec(SupportedInterface)],\r\n ['query'],\r\n ),\r\n symbol: IDL.Func([], [IDL.Opt(IDL.Text)], ['query']),\r\n tokenMetadata: IDL.Func([IDL.Nat], [ManualReply_3], ['query']),\r\n totalSupply: IDL.Func([], [IDL.Nat], ['query']),\r\n totalTransactions: IDL.Func([], [IDL.Nat], ['query']),\r\n totalUniqueHolders: IDL.Func([], [IDL.Nat], ['query']),\r\n transaction: IDL.Func([IDL.Nat], [ManualReply_4], ['query']),\r\n transfer: IDL.Func([IDL.Principal, IDL.Nat], [Result], []),\r\n transferFrom: IDL.Func(\r\n [IDL.Principal, IDL.Principal, IDL.Nat],\r\n [Result],\r\n [],\r\n ),\r\n });\r\n};\r\n","export default ({ IDL }: { IDL: any }) => {\r\n const TxError = IDL.Variant({\r\n InsufficientAllowance: IDL.Null,\r\n InsufficientBalance: IDL.Null,\r\n ErrorOperationStyle: IDL.Null,\r\n Unauthorized: IDL.Null,\r\n LedgerTrap: IDL.Null,\r\n ErrorTo: IDL.Null,\r\n Other: IDL.Null,\r\n BlockUsed: IDL.Null,\r\n AmountTooSmall: IDL.Null,\r\n });\r\n const Result = IDL.Variant({ Ok: IDL.Nat, Err: TxError });\r\n const Metadata = IDL.Record({\r\n fee: IDL.Nat,\r\n decimals: IDL.Nat8,\r\n owner: IDL.Principal,\r\n logo: IDL.Text,\r\n name: IDL.Text,\r\n totalSupply: IDL.Nat,\r\n symbol: IDL.Text,\r\n });\r\n const TokenInfo = IDL.Record({\r\n holderNumber: IDL.Nat64,\r\n deployTime: IDL.Nat64,\r\n metadata: Metadata,\r\n historySize: IDL.Nat64,\r\n cycles: IDL.Nat64,\r\n feeTo: IDL.Principal,\r\n });\r\n return IDL.Service({\r\n allowance: IDL.Func(\r\n [IDL.Principal, IDL.Principal],\r\n [IDL.Nat],\r\n ['query'],\r\n ),\r\n approve: IDL.Func([IDL.Principal, IDL.Nat], [Result], []),\r\n balanceOf: IDL.Func([IDL.Principal], [IDL.Nat], ['query']),\r\n decimals: IDL.Func([], [IDL.Nat8], ['query']),\r\n getAllowanceSize: IDL.Func([], [IDL.Nat64], ['query']),\r\n getBlockUsed: IDL.Func([], [IDL.Vec(IDL.Nat64)], ['query']),\r\n getHolders: IDL.Func(\r\n [IDL.Nat64, IDL.Nat64],\r\n [IDL.Vec(IDL.Tuple(IDL.Principal, IDL.Nat))],\r\n ['query'],\r\n ),\r\n getMetadata: IDL.Func([], [Metadata], ['query']),\r\n getTokenInfo: IDL.Func([], [TokenInfo], ['query']),\r\n getUserApprovals: IDL.Func(\r\n [IDL.Principal],\r\n [IDL.Vec(IDL.Tuple(IDL.Principal, IDL.Nat))],\r\n ['query'],\r\n ),\r\n historySize: IDL.Func([], [IDL.Nat64], ['query']),\r\n isBlockUsed: IDL.Func([IDL.Nat64], [IDL.Bool], ['query']),\r\n logo: IDL.Func([], [IDL.Text], ['query']),\r\n mint: IDL.Func(\r\n [IDL.Opt(IDL.Vec(IDL.Nat8)), IDL.Nat64],\r\n [Result],\r\n [],\r\n ),\r\n mintFor: IDL.Func(\r\n [IDL.Opt(IDL.Vec(IDL.Nat8)), IDL.Nat64, IDL.Principal],\r\n [Result],\r\n [],\r\n ),\r\n name: IDL.Func([], [IDL.Text], ['query']),\r\n owner: IDL.Func([], [IDL.Principal], ['query']),\r\n setFee: IDL.Func([IDL.Nat], [], []),\r\n setFeeTo: IDL.Func([IDL.Principal], [], []),\r\n setGenesis: IDL.Func([], [Result], []),\r\n setLogo: IDL.Func([IDL.Text], [], []),\r\n setName: IDL.Func([IDL.Text], [], []),\r\n setOwner: IDL.Func([IDL.Principal], [], []),\r\n symbol: IDL.Func([], [IDL.Text], ['query']),\r\n totalSupply: IDL.Func([], [IDL.Nat], ['query']),\r\n transfer: IDL.Func([IDL.Principal, IDL.Nat], [Result], []),\r\n transferFrom: IDL.Func(\r\n [IDL.Principal, IDL.Principal, IDL.Nat],\r\n [Result],\r\n [],\r\n ),\r\n withdraw: IDL.Func([IDL.Nat64, IDL.Text], [Result], []),\r\n });\r\n};\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nexport default ({ IDL }: { IDL: any }) => {\r\n const MPApiError = IDL.Variant({\r\n TransferFromFungibleError: IDL.Text,\r\n NonExistentCollection: IDL.Null,\r\n NoDeposit: IDL.Null,\r\n InvalidListingStatus: IDL.Null,\r\n InsufficientFungibleBalance: IDL.Null,\r\n InvalidListing: IDL.Null,\r\n TransferFromNonFungibleError: IDL.Text,\r\n TransferNonFungibleError: IDL.Null,\r\n Unauthorized: IDL.Null,\r\n InsufficientFungibleAllowance: IDL.Null,\r\n TransferFungibleError: IDL.Null,\r\n InvalidOffer: IDL.Null,\r\n InvalidOwner: IDL.Null,\r\n Other: IDL.Text,\r\n InsufficientNonFungibleBalance: IDL.Null,\r\n InvalidOfferStatus: IDL.Null,\r\n InvalidOperator: IDL.Null,\r\n CAPInsertionError: IDL.Null,\r\n });\r\n const Result = IDL.Variant({ Ok: IDL.Null, Err: MPApiError });\r\n const NFTStandard = IDL.Variant({\r\n EXT: IDL.Null,\r\n DIP721v2: IDL.Null,\r\n });\r\n const FungibleStandard = IDL.Variant({ DIP20: IDL.Null });\r\n const OfferStatus = IDL.Variant({\r\n Bought: IDL.Null,\r\n Uninitialized: IDL.Null,\r\n Denied: IDL.Null,\r\n Cancelled: IDL.Null,\r\n Created: IDL.Null,\r\n });\r\n const Offer = IDL.Record({\r\n status: OfferStatus,\r\n created: IDL.Nat64,\r\n token_id: IDL.Nat,\r\n token_owner: IDL.Principal,\r\n buyer: IDL.Principal,\r\n price: IDL.Nat,\r\n nft_canister_id: IDL.Principal,\r\n });\r\n const Collection = IDL.Record({\r\n collection_fee: IDL.Nat,\r\n creation_time: IDL.Nat64,\r\n nft_canister_standard: NFTStandard,\r\n owner: IDL.Principal,\r\n collection_name: IDL.Text,\r\n fungible_volume: IDL.Nat,\r\n fungible_canister_standard: FungibleStandard,\r\n fungible_canister_id: IDL.Principal,\r\n nft_canister_id: IDL.Principal,\r\n });\r\n const Result_1 = IDL.Variant({ Ok: IDL.Nat, Err: MPApiError });\r\n const ListingStatus = IDL.Variant({\r\n Selling: IDL.Null,\r\n Uninitialized: IDL.Null,\r\n Created: IDL.Null,\r\n });\r\n const Listing = IDL.Record({\r\n fee: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Principal, IDL.Nat)),\r\n status: ListingStatus,\r\n created: IDL.Nat64,\r\n seller: IDL.Principal,\r\n price: IDL.Nat,\r\n });\r\n const Result_2 = IDL.Variant({ Ok: Listing, Err: MPApiError });\r\n return IDL.Service({\r\n acceptOffer: IDL.Func(\r\n [IDL.Principal, IDL.Nat, IDL.Principal],\r\n [Result],\r\n [],\r\n ),\r\n addCollection: IDL.Func(\r\n [\r\n IDL.Principal,\r\n IDL.Nat,\r\n IDL.Nat64,\r\n IDL.Text,\r\n IDL.Principal,\r\n NFTStandard,\r\n IDL.Principal,\r\n FungibleStandard,\r\n ],\r\n [Result],\r\n [],\r\n ),\r\n balanceOf: IDL.Func(\r\n [IDL.Principal],\r\n [IDL.Vec(IDL.Tuple(IDL.Principal, IDL.Nat))],\r\n ['query'],\r\n ),\r\n cancelListing: IDL.Func([IDL.Principal, IDL.Nat], [Result], []),\r\n cancelOffer: IDL.Func([IDL.Principal, IDL.Nat], [Result], []),\r\n denyOffer: IDL.Func(\r\n [IDL.Principal, IDL.Nat, IDL.Principal],\r\n [Result],\r\n [],\r\n ),\r\n dfxInfo: IDL.Func([], [IDL.Text], ['query']),\r\n directBuy: IDL.Func([IDL.Principal, IDL.Nat], [Result], []),\r\n getAllBalances: IDL.Func(\r\n [],\r\n [\r\n IDL.Vec(\r\n IDL.Tuple(IDL.Tuple(IDL.Principal, IDL.Principal), IDL.Nat),\r\n ),\r\n ],\r\n ['query'],\r\n ),\r\n getBuyerOffers: IDL.Func(\r\n [IDL.Principal, IDL.Principal],\r\n [IDL.Vec(Offer)],\r\n ['query'],\r\n ),\r\n getCollections: IDL.Func(\r\n [],\r\n [IDL.Vec(IDL.Tuple(IDL.Principal, Collection))],\r\n ['query'],\r\n ),\r\n getFloor: IDL.Func([IDL.Principal], [Result_1], ['query']),\r\n getProtocolFee: IDL.Func([], [IDL.Nat], ['query']),\r\n getTokenListing: IDL.Func(\r\n [IDL.Principal, IDL.Nat],\r\n [Result_2],\r\n ['query'],\r\n ),\r\n getTokenOffers: IDL.Func(\r\n [IDL.Principal, IDL.Vec(IDL.Nat)],\r\n [IDL.Vec(IDL.Tuple(IDL.Nat, IDL.Vec(Offer)))],\r\n ['query'],\r\n ),\r\n gitCommitHash: IDL.Func([], [IDL.Text], ['query']),\r\n makeListing: IDL.Func(\r\n [IDL.Principal, IDL.Nat, IDL.Nat],\r\n [Result],\r\n [],\r\n ),\r\n makeOffer: IDL.Func(\r\n [IDL.Principal, IDL.Nat, IDL.Nat],\r\n [Result],\r\n [],\r\n ),\r\n rustToolchainInfo: IDL.Func([], [IDL.Text], ['query']),\r\n setProtocolFee: IDL.Func([IDL.Nat], [Result], []),\r\n withdrawFungible: IDL.Func(\r\n [IDL.Principal, FungibleStandard],\r\n [Result],\r\n [],\r\n ),\r\n });\r\n};\r\n","/* eslint-disable @typescript-eslint/naming-convention */\nexport default ({ IDL }: { IDL: any }) => {\n const Status = IDL.Variant({\n stopped: IDL.Null,\n stopping: IDL.Null,\n running: IDL.Null,\n });\n const DefiniteCanisterSettings = IDL.Record({\n freezing_threshold: IDL.Nat,\n controllers: IDL.Vec(IDL.Principal),\n memory_allocation: IDL.Nat,\n compute_allocation: IDL.Nat,\n });\n const CanisterStatusResponse = IDL.Record({\n status: Status,\n memory_size: IDL.Nat,\n cycles: IDL.Nat,\n settings: DefiniteCanisterSettings,\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const Result = IDL.Variant({\n Ok: CanisterStatusResponse,\n Err: IDL.Text,\n });\n const WithWitnessArg = IDL.Record({ witness: IDL.Bool });\n const Witness = IDL.Record({\n certificate: IDL.Vec(IDL.Nat8),\n tree: IDL.Vec(IDL.Nat8),\n });\n const GetIndexCanistersResponse = IDL.Record({\n witness: IDL.Opt(Witness),\n canisters: IDL.Vec(IDL.Principal),\n });\n const GetTokenContractRootBucketArg = IDL.Record({\n witness: IDL.Bool,\n canister: IDL.Principal,\n });\n const GetTokenContractRootBucketResponse = IDL.Record({\n witness: IDL.Opt(Witness),\n canister: IDL.Opt(IDL.Principal),\n });\n const GetUserRootBucketsArg = IDL.Record({\n user: IDL.Principal,\n witness: IDL.Bool,\n });\n const GetUserRootBucketsResponse = IDL.Record({\n witness: IDL.Opt(Witness),\n contracts: IDL.Vec(IDL.Principal),\n });\n return IDL.Service({\n bucket_status: IDL.Func([IDL.Principal], [Result], []),\n custom_upgrade_root_bucket: IDL.Func(\n [IDL.Principal, IDL.Opt(IDL.Vec(IDL.Nat8))],\n [IDL.Text],\n [],\n ),\n deploy_plug_bucket: IDL.Func([IDL.Principal, IDL.Nat64], [], []),\n get_index_canisters: IDL.Func(\n [WithWitnessArg],\n [GetIndexCanistersResponse],\n ['query'],\n ),\n get_token_contract_root_bucket: IDL.Func(\n [GetTokenContractRootBucketArg],\n [GetTokenContractRootBucketResponse],\n ['query'],\n ),\n get_user_root_buckets: IDL.Func(\n [GetUserRootBucketsArg],\n [GetUserRootBucketsResponse],\n ['query'],\n ),\n git_commit_hash: IDL.Func([], [IDL.Text], ['query']),\n insert_new_users: IDL.Func(\n [IDL.Principal, IDL.Vec(IDL.Principal)],\n [],\n [],\n ),\n install_bucket_code: IDL.Func([IDL.Principal], [], []),\n root_buckets_to_upgrade: IDL.Func(\n [],\n [IDL.Nat64, IDL.Vec(IDL.Principal)],\n ['query'],\n ),\n trigger_upgrade: IDL.Func([IDL.Text], [], []),\n });\n};\n\n","type NodeEnv = 'development' | 'production' | 'test';\r\n\r\n// eslint-disable-next-line operator-linebreak\r\nconst env: NodeEnv =\r\n // eslint-disable-next-line operator-linebreak\r\n (process.env.REACT_APP_NODE_ENV as unknown as NodeEnv) ||\r\n 'development';\r\n\r\ntype ConfigParams = {\r\n host: string;\r\n nftCollectionId: string;\r\n kyasshuMarketplaceAPI: string;\r\n icScan: string;\r\n marketplaceCanisterId: string;\r\n wICPCanisterId: string;\r\n capRouterId: string;\r\n};\r\n\r\ntype Config = {\r\n production: ConfigParams;\r\n staging: ConfigParams;\r\n development: ConfigParams;\r\n test: ConfigParams;\r\n};\r\n\r\nif (\r\n env === 'development' &&\r\n !(\r\n process.env.REACT_APP_MARKETPLACE_ID ||\r\n process.env.REACT_APP_CROWNS_ID ||\r\n process.env.REACT_APP_WICP_ID ||\r\n process.env.REACT_APP_CAP_ID\r\n )\r\n) {\r\n throw Error('Oops! Missing local replica service canister ids');\r\n}\r\n\r\nconst config: Config = {\r\n // The production version\r\n production: {\r\n host: 'https://ic0.app',\r\n kyasshuMarketplaceAPI: 'https://kyasshu.fleek.co',\r\n icScan: 'https://icscan.io/principal',\r\n nftCollectionId: 'vlhm2-4iaaa-aaaam-qaatq-cai',\r\n marketplaceCanisterId: 'getti-aiaaa-aaaah-abkkq-cai',\r\n wICPCanisterId: 'utozz-siaaa-aaaam-qaaxq-cai',\r\n capRouterId: 'lj532-6iaaa-aaaah-qcc7a-cai',\r\n },\r\n // Staging (serverless, local-replica)\r\n // Is similar to the process we have for local development\r\n // but hosted in a AWS Server and the running services\r\n // are not expected to perform well but good enough for tests\r\n staging: {\r\n host: 'http://44.228.128.46:8000',\r\n kyasshuMarketplaceAPI: 'http://44.228.128.46:3000/local',\r\n icScan: 'https://icscan.io/principal',\r\n nftCollectionId: 'rkp4c-7iaaa-aaaaa-aaaca-cai',\r\n marketplaceCanisterId: 'rdmx6-jaaaa-aaaaa-aaadq-cai',\r\n wICPCanisterId: 'qaa6y-5yaaa-aaaaa-aaafa-cai',\r\n capRouterId: 'rrkah-fqaaa-aaaaa-aaaaq-cai',\r\n },\r\n // Mainnet test environment\r\n // Provides the Service Canisters published to the Mainnet\r\n // where Kyasshu API is hosted in a AWS Server\r\n // and the cached data points to the same canister ids\r\n // listed in here\r\n test: {\r\n host: 'https://ic0.app',\r\n kyasshuMarketplaceAPI: 'https://kyasshu-dev.fleek.co',\r\n icScan: 'https://icscan.io/principal',\r\n nftCollectionId: 'vlhm2-4iaaa-aaaam-qaatq-cai',\r\n marketplaceCanisterId: 'o3ios-jaaaa-aaaag-qakqq-cai',\r\n wICPCanisterId: 'utozz-siaaa-aaaam-qaaxq-cai',\r\n capRouterId: 'lj532-6iaaa-aaaah-qcc7a-cai',\r\n },\r\n // The local development environment settings\r\n development: {\r\n host: 'http://127.0.0.1:8000',\r\n kyasshuMarketplaceAPI: 'http://localhost:3000/local',\r\n icScan: 'https://icscan.io/principal',\r\n nftCollectionId: process.env.REACT_APP_CROWNS_ID as string,\r\n marketplaceCanisterId: process.env\r\n .REACT_APP_MARKETPLACE_ID as string,\r\n wICPCanisterId: process.env.REACT_APP_WICP_ID as string,\r\n capRouterId: process.env.REACT_APP_CAP_ID as string,\r\n },\r\n};\r\n\r\nexport default config[env];\r\n","export class AppLog {\r\n static readonly IDENTIFIER = '[AppLog]';\r\n\r\n static error(...args: any[]): void {\r\n // eslint-disable-next-line no-console\r\n console.error(this.IDENTIFIER, ...args);\r\n }\r\n\r\n static warn(...args: any[]): void {\r\n // eslint-disable-next-line no-console\r\n console.warn(this.IDENTIFIER, ...args);\r\n }\r\n}\r\n","import { Actor, ActorSubclass, HttpAgent } from '@dfinity/agent';\r\nimport { IDL } from '@dfinity/candid';\r\nimport crownsIdlFactory from '../../declarations/nft.did';\r\nimport wicpIdlFactory from '../../declarations/wicp.did';\r\nimport marketplaceIdlFactory from '../../declarations/marketplace.did';\r\nimport capIdlFactory from '../../declarations/cap.did';\r\nimport config from '../../config/env';\r\nimport { AppLog } from '../../utils/log';\r\n\r\nexport type ServiceName = 'marketplace' | 'crowns' | 'wicp' | 'cap';\r\n\r\nexport const createActor = async ({\r\n serviceName = 'marketplace',\r\n plugIsConnected = false,\r\n asPlugInstance = true,\r\n}: {\r\n serviceName?: ServiceName;\r\n plugIsConnected?: boolean;\r\n asPlugInstance?: boolean;\r\n}) => {\r\n let canisterId: string;\r\n let interfaceFactory: IDL.InterfaceFactory;\r\n\r\n switch (serviceName) {\r\n case 'crowns':\r\n canisterId = config.nftCollectionId;\r\n interfaceFactory = crownsIdlFactory;\r\n break;\r\n case 'wicp':\r\n canisterId = config.wICPCanisterId;\r\n interfaceFactory = wicpIdlFactory;\r\n break;\r\n case 'cap':\r\n canisterId = config.capRouterId;\r\n interfaceFactory = capIdlFactory;\r\n break;\r\n default:\r\n canisterId = config.marketplaceCanisterId;\r\n interfaceFactory = marketplaceIdlFactory;\r\n break;\r\n }\r\n\r\n if (plugIsConnected && asPlugInstance) {\r\n return window.ic?.plug?.createActor({\r\n canisterId,\r\n interfaceFactory,\r\n host: config.host,\r\n });\r\n }\r\n\r\n const agent = new HttpAgent({\r\n host: config.host,\r\n });\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n try {\r\n await agent.fetchRootKey();\r\n } catch (err) {\r\n console.warn(\r\n 'Oops! Unable to fetch root key, is the local replica running?',\r\n );\r\n console.error(err);\r\n }\r\n }\r\n\r\n return Actor.createActor(interfaceFactory, {\r\n agent,\r\n canisterId,\r\n });\r\n};\r\n\r\n// Checks if an actor instance exists already\r\n// otherwise creates a new instance\r\nexport const actorInstanceHandler = async ({\r\n thunkAPI,\r\n serviceName,\r\n slice,\r\n}: {\r\n // TODO: Where is GetThunkAPI typedef?\r\n thunkAPI: any;\r\n serviceName: ServiceName;\r\n // Slice should have a `setActor` action\r\n slice: any;\r\n}) => {\r\n const {\r\n [serviceName]: { actor },\r\n plug: { isConnected: plugIsConnected },\r\n } = thunkAPI.getState();\r\n\r\n const currentAgent = actor && Actor.agentOf(actor);\r\n const currentAgentPrincipal =\r\n currentAgent && (await currentAgent.getPrincipal());\r\n\r\n const plugAgent = plugIsConnected && window.ic?.plug?.agent;\r\n const plugAgentPrincipal =\r\n plugAgent && (await plugAgent.getPrincipal());\r\n\r\n const isAnotherAgent =\r\n !currentAgentPrincipal ||\r\n (plugAgentPrincipal &&\r\n currentAgentPrincipal !== plugAgentPrincipal);\r\n\r\n if (!actor || isAnotherAgent) {\r\n AppLog.warn(`Creating new actor instance for ${serviceName}`);\r\n\r\n const asPlugInstance = serviceName !== 'cap';\r\n\r\n const newActor = (await createActor({\r\n serviceName,\r\n plugIsConnected,\r\n asPlugInstance,\r\n })) as ActorSubclass;\r\n\r\n // Set actor state\r\n thunkAPI.dispatch(slice.actions.setActor(newActor));\r\n\r\n return newActor;\r\n }\r\n\r\n return actor;\r\n};\r\n","import { useMemo } from 'react';\r\nimport { useThemeStore } from '../store';\r\nimport { darkTheme, theme as defaultTheme } from '../stitches.config';\r\n\r\nexport type Theme = typeof darkTheme | typeof defaultTheme;\r\n\r\nexport const useTheme = (): [string, Theme] => {\r\n const { theme } = useThemeStore();\r\n\r\n const currentThemeObject = useMemo(\r\n () => (theme === 'darkTheme' ? darkTheme : defaultTheme),\r\n [theme],\r\n );\r\n\r\n return [theme as string, currentThemeObject];\r\n};\r\n","import { globalCss, theme, darkTheme } from '../stitches.config';\n\nexport default {};\n\nexport const themeGlobals = globalCss({\n 'html, body': {\n height: '100%',\n\n '&.lightTheme': {\n backgroundColor: theme.colors.backgroundColor.value,\n },\n\n '&.darkTheme': {\n backgroundColor: darkTheme.colors.backgroundColor.value,\n },\n },\n});\n\n// Prevents the protaled elements to be above the navbar\nexport const portalZIndexGlobals = globalCss({\n body: {\n '& [data-radix-portal]': {\n zIndex: '1 !important',\n },\n '& [data-radix-portal].above-nav': {\n zIndex: '4 !important',\n },\n },\n});\n\n","export const E8S_PER_ICP = 100_000_000;\n\nexport enum NFTActionStatuses {\n Sold = 'sold',\n OfferReceived = 'offer received',\n ForSale = 'for sale',\n}\n\nexport const ThemeRootElement = 'theme-root-element';\n","import { E8S_PER_ICP } from '../constants/common';\r\n\r\nexport const formatAddress = (address: string) => {\r\n if (!address) {\r\n return '';\r\n }\r\n const split = address.split('-');\r\n\r\n return `${split[0]}...${split[split.length - 1]}`;\r\n};\r\n\r\nexport const floorDiffPercentageCalculator = ({\r\n currentPrice,\r\n floorDifferencePrice,\r\n}: {\r\n currentPrice?: string;\r\n floorDifferencePrice?: string;\r\n}) => {\r\n if (!currentPrice || !floorDifferencePrice) return 'n/a';\r\n\r\n const difference =\r\n Number(currentPrice) - Number(floorDifferencePrice);\r\n const floorDifference = (\r\n (difference / Number(floorDifferencePrice)) *\r\n 100\r\n ).toFixed(2);\r\n\r\n return `${floorDifference}%`;\r\n};\r\n\r\nexport const formatPriceValue = (price: string) => {\r\n if (!price || price === 'n/a') return 'n/a';\r\n\r\n return Number(price).toFixed(2);\r\n};\r\n\r\nexport const parseAmountToE8S = (amount: string) => {\r\n if (!amount) return BigInt(0);\r\n\r\n const computedAmount = Math.round(Number(amount) * E8S_PER_ICP);\r\n\r\n return BigInt(computedAmount);\r\n};\r\n\r\nexport const parseE8SAmountToWICP = (amount: bigint) => {\r\n if (!amount) return '';\r\n\r\n const computedWICP = Number(amount.toString()) / E8S_PER_ICP;\r\n\r\n return computedWICP.toString();\r\n};\r\n\r\nexport const parseAmountToE8SAsNum = (amount: string) =>\r\n Number(parseAmountToE8S(amount));\r\n\r\nconst fixStringEnding = (str: string): string =>\r\n str.replace(/0+$/, '').replace(/\\.$/, '');\r\n\r\nexport const formatAmountDecimals = (amount?: string | number) => {\r\n const fixedAmount = Number(amount).toFixed(8);\r\n if (fixedAmount === 'NaN' || fixedAmount === 'Infinity' || !amount)\r\n return '0.00';\r\n\r\n return fixStringEnding(fixedAmount);\r\n};\r\n\r\nexport const formatAmountAbbreviation = (\r\n amount?: string | number,\r\n): string => {\r\n const fixedAmount = Number(amount).toFixed(8);\r\n if (fixedAmount === 'NaN' || fixedAmount === 'Infinity' || !amount)\r\n return '0.00';\r\n\r\n const [nat = '0', decimals = '0'] = fixedAmount\r\n .replace(/^0+/, '')\r\n .split('.');\r\n\r\n if (Number(nat) === 0 && Number(decimals) === 0) return '0.00';\r\n\r\n const isNegative = Math.sign(Number(fixedAmount)) === -1;\r\n\r\n const thousands = Math.floor(Math.log10(Math.abs(Number(nat))));\r\n\r\n if (thousands < 3) {\r\n if (!Number(nat) && /^00/.test(decimals)) {\r\n return `${isNegative ? '> -' : '< '}0.01`;\r\n }\r\n return fixStringEnding(`${nat || 0}.${decimals.slice(0, 2)}`);\r\n }\r\n if (thousands < 6) {\r\n return `${fixStringEnding(\r\n `${nat.slice(0, -3)}.${nat.slice(-3, -1)}`,\r\n )}k`;\r\n }\r\n if (thousands < 9) {\r\n return `${fixStringEnding(\r\n `${nat.slice(0, -6)}.${nat.slice(-6, -4)}`,\r\n )}M`;\r\n }\r\n return `${isNegative ? '< -' : '> '}999M`;\r\n};\r\n","import { useTranslation } from 'react-i18next';\r\nimport { useFilterStore } from '../../store';\r\n\r\nexport type CheckNFTOwnerParams = {\r\n isConnected: boolean;\r\n owner?: string;\r\n principalId?: string;\r\n};\r\n\r\nexport const useTraitsPayload = () => {\r\n const { traits } = useFilterStore();\r\n\r\n return traits.filter((trait) => trait?.values?.length);\r\n};\r\n\r\nexport const usePriceValues = () => {\r\n const { t } = useTranslation();\r\n const { defaultFilters } = useFilterStore();\r\n\r\n return defaultFilters.find(\r\n ({ filterCategory }) =>\r\n filterCategory === `${t('translation:filters.priceRange')}`,\r\n )?.filterName;\r\n};\r\n\r\nexport const isNFTOwner = (params: CheckNFTOwnerParams) => {\r\n const { isConnected, owner, principalId } = params;\r\n\r\n if (!isConnected) return false;\r\n\r\n if (!owner) return false;\r\n\r\n if (!principalId) return false;\r\n\r\n if (owner !== principalId) return false;\r\n\r\n return true;\r\n};\r\n","import config from '../../config/env';\r\n\r\nexport class KyasshuUrl {\r\n static getNFTs({\r\n sort,\r\n order,\r\n page,\r\n count,\r\n }: NSKyasshuUrl.GetNFTsQueryParams): string {\r\n return `${config.kyasshuMarketplaceAPI}/marketplace/${config.nftCollectionId}/nfts/${sort}/${order}/${page}?count=${count}`;\r\n }\r\n\r\n static getNFTDetails({\r\n id,\r\n }: NSKyasshuUrl.GetNFTDetailsQueryParams): string {\r\n return `${config.kyasshuMarketplaceAPI}/marketplace/${config.nftCollectionId}/nft/${id}`;\r\n }\r\n\r\n static getFilterTraits(): string {\r\n return `${config.kyasshuMarketplaceAPI}/marketplace/${config.nftCollectionId}/data`;\r\n }\r\n\r\n static getCAPActivity({\r\n bucketId,\r\n pageCount,\r\n }: NSKyasshuUrl.GetCAPActivityQueryParams): string {\r\n return `${config.kyasshuMarketplaceAPI}/cap/txns/${bucketId}/?page=${pageCount}`;\r\n }\r\n\r\n static getCAPJellySync(): string {\r\n return `${config.kyasshuMarketplaceAPI}/cap/capJellySync`;\r\n }\r\n\r\n static getCollectionData(): string {\r\n return `${config.kyasshuMarketplaceAPI}/marketplace/${config.nftCollectionId}/data`;\r\n }\r\n\r\n static getTokenTransactions({\r\n tokenId,\r\n }: NSKyasshuUrl.GetTokenTransactions): string {\r\n return `${config.kyasshuMarketplaceAPI}/cap/token/txns/${config.nftCollectionId}/${tokenId}`;\r\n }\r\n\r\n static getSearchResults({\r\n sort,\r\n order,\r\n page,\r\n count,\r\n }: NSKyasshuUrl.GetSearchQueryParams): string {\r\n return `${config.kyasshuMarketplaceAPI}/marketplace/${config.nftCollectionId}/nfts/${sort}/${order}/${page}?count=${count}`;\r\n }\r\n}\r\n\r\nexport namespace NSKyasshuUrl {\r\n export type GetNFTsQueryParams = {\r\n page: number;\r\n sort: string;\r\n order: string;\r\n count?: number;\r\n };\r\n\r\n export type GetNFTDetailsQueryParams = {\r\n id: string | number;\r\n };\r\n\r\n export type GetFilterTraitsQueryParams = {};\r\n\r\n export type GetCAPActivityQueryParams = {\r\n pageCount: string;\r\n bucketId: string;\r\n };\r\n\r\n export type GetTokenTransactions = {\r\n tokenId: number;\r\n };\r\n\r\n export type GetSearchQueryParams = {\r\n page: number;\r\n sort: string;\r\n order: string;\r\n count?: number;\r\n };\r\n}\r\n","import { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useUpdateEffect } from '../../hooks';\r\n\r\nimport {\r\n nftsActions,\r\n useAppDispatch,\r\n useFilterStore,\r\n usePlugStore,\r\n} from '../../store';\r\nimport { parseAmountToE8SAsNum } from '../../utils/formatters';\r\nimport { useTraitsPayload, usePriceValues } from './utils';\r\n\r\nexport const useNFTSFetcher = () => {\r\n const dispatch = useAppDispatch();\r\n const [currentAbortController, setCurrentAbortController] =\r\n useState();\r\n const { traits, isMyNfts, status } = useFilterStore();\r\n const { principalId } = usePlugStore();\r\n const traitsPayload = useTraitsPayload();\r\n const priceValues = usePriceValues();\r\n // eslint-disable-next-line object-curly-newline\r\n let payload = {};\r\n if (\r\n traitsPayload.length ||\r\n isMyNfts ||\r\n (priceValues && Object.keys(priceValues).length) ||\r\n status !== ''\r\n ) {\r\n payload = {\r\n traits: traitsPayload.length ? traitsPayload : undefined,\r\n principal: isMyNfts ? principalId : undefined,\r\n status,\r\n price:\r\n priceValues && Object.keys(priceValues).length\r\n ? {\r\n min: parseAmountToE8SAsNum(priceValues?.min),\r\n max: parseAmountToE8SAsNum(priceValues?.max),\r\n type: 'currentPrice',\r\n }\r\n : undefined,\r\n };\r\n }\r\n\r\n const { sortBy } = useFilterStore();\r\n\r\n useUpdateEffect(() => {\r\n dispatch(nftsActions.clearLoadedNFTS());\r\n }, [traits, isMyNfts, priceValues, sortBy, status]);\r\n\r\n useEffect(() => {\r\n // Abort any pending request before proceeding\r\n if (currentAbortController) currentAbortController.abort();\r\n\r\n const abortController = new AbortController();\r\n\r\n setCurrentAbortController(abortController);\r\n\r\n dispatch(\r\n nftsActions.getNFTs({\r\n payload,\r\n sort: sortBy,\r\n order: 'd',\r\n page: 0,\r\n count: 25,\r\n abortController,\r\n }),\r\n );\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dispatch, traits, isMyNfts, priceValues, sortBy, status]);\r\n};\r\n\r\nexport const useNFTDetailsFetcher = () => {\r\n const dispatch = useAppDispatch();\r\n const { id } = useParams();\r\n\r\n useEffect(() => {\r\n // TODO: handle the error gracefully when there is no id\r\n if (!id) return;\r\n\r\n dispatch(nftsActions.getNFTDetails({ id }));\r\n }, [dispatch, id]);\r\n};\r\n\r\nexport { KyasshuUrl, type NSKyasshuUrl } from './kyasshu-urls';\r\n","import { useEffect, useState } from 'react';\r\n\r\nexport const useUpdateEffect = (\r\n effect: React.EffectCallback,\r\n deps?: React.DependencyList | undefined,\r\n) => {\r\n const [shouldTrigger, setShouldTrigger] = useState(false);\r\n\r\n useEffect(() => {\r\n if (shouldTrigger) {\r\n return effect();\r\n }\r\n\r\n setShouldTrigger(true);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, deps);\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\nimport type { RootState } from '../../store';\r\n\r\nexport type NotificationMessage = {\r\n message: string;\r\n id: number;\r\n type: 'error' | 'success';\r\n};\r\n\r\nexport type ErrorMessages = NotificationMessage & {\r\n type: 'error';\r\n};\r\n\r\nexport type SuccessMessages = NotificationMessage & {\r\n type: 'success';\r\n};\r\n\r\nexport interface NotificationState {\r\n messages: Array;\r\n}\r\n\r\nconst initialState: NotificationState = {\r\n messages: [],\r\n};\r\n\r\nexport const notificationSlice = createSlice({\r\n name: 'notification',\r\n initialState,\r\n reducers: {\r\n setErrorMessage: (state, action: PayloadAction) => {\r\n state.messages.push({\r\n message: action.payload,\r\n id: Date.now(),\r\n type: 'error',\r\n });\r\n },\r\n removeMessage: (state, action: PayloadAction) => {\r\n state.messages = state.messages.filter(\r\n (error) => error.id !== action.payload,\r\n );\r\n },\r\n setSuccessMessage: (state, action: PayloadAction) => {\r\n state.messages.push({\r\n message: action.payload,\r\n id: Date.now(),\r\n type: 'success',\r\n });\r\n },\r\n },\r\n});\r\n\r\nexport const notificationActions = notificationSlice.actions;\r\n\r\nexport const selectNotificationState = (state: RootState) =>\r\n state.notification;\r\n\r\nexport default notificationSlice.reducer;\r\n","import axios from 'axios';\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport {\r\n KyasshuUrl,\r\n NSKyasshuUrl,\r\n} from '../../../../integrations/kyasshu';\r\nimport { FilterConstants } from '../../../../constants';\r\nimport { filterActions, FilterTraitsList } from '..';\r\nimport { notificationActions } from '../../notifications';\r\nimport { AppLog } from '../../../../utils/log';\r\nimport { NFTMetadata } from '../../../../declarations/legacy';\r\nimport { parseTraits } from '../../../../utils/traits';\r\n\r\nexport type GetFilterTraitsProps =\r\n | NSKyasshuUrl.GetFilterTraitsQueryParams\r\n | undefined;\r\n\r\nexport type TraitsValuesProps = {\r\n value: string;\r\n occurance: number;\r\n rarity: number;\r\n};\r\n\r\nexport type ExtractTraitDataProps = {\r\n dispatch: any;\r\n details: NFTMetadata;\r\n loadedFiltersList: FilterTraitsList[];\r\n};\r\n\r\nexport const getFilterTraits = createAsyncThunk<\r\n void,\r\n GetFilterTraitsProps\r\n>('filters/getFilterTraits', async (_, { dispatch }) => {\r\n dispatch(filterActions.setIsFilterTraitsLoading(true));\r\n\r\n try {\r\n const response = await axios.get(KyasshuUrl.getFilterTraits());\r\n if (response.status !== 200) {\r\n throw Error(response.statusText);\r\n }\r\n\r\n const responseData = response.data.traits.map(\r\n (res: [string, TraitsValuesProps[]]) => {\r\n let key;\r\n switch (res[0]) {\r\n case 'smallgem':\r\n key = FilterConstants.smallGem;\r\n break;\r\n case 'biggem':\r\n key = FilterConstants.bigGem;\r\n break;\r\n case 'base':\r\n key = FilterConstants.base;\r\n break;\r\n case 'rim':\r\n key = FilterConstants.rim;\r\n break;\r\n default:\r\n }\r\n\r\n const parsedTraits = parseTraits(res[1]);\r\n\r\n const data = {\r\n key,\r\n name: res[0],\r\n values: [...parsedTraits],\r\n };\r\n\r\n return data;\r\n },\r\n );\r\n\r\n dispatch(filterActions.getAllFilters(responseData));\r\n dispatch(filterActions.setIsFilterTraitsLoading(false));\r\n dispatch(filterActions.setIsAlreadyFetched(true));\r\n } catch (error) {\r\n AppLog.error(error);\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n 'Oops! Unable to fetch traits',\r\n ),\r\n );\r\n }\r\n});\r\n\r\nexport const extractTraitData = ({\r\n dispatch,\r\n details,\r\n loadedFiltersList,\r\n}: ExtractTraitDataProps) => {\r\n try {\r\n const extractedTraitData: any = loadedFiltersList[0];\r\n let nftDetails = { ...details };\r\n\r\n if (nftDetails?.traits) {\r\n const traitNames = Object.keys(nftDetails.traits);\r\n traitNames?.forEach((traitName: string) => {\r\n const nftName = nftDetails.traits[`${traitName}`]?.name;\r\n const extractedTraitDataValue: TraitsValuesProps =\r\n extractedTraitData\r\n ?.filter(\r\n (traitData: FilterTraitsList) =>\r\n traitData.name === traitName,\r\n )\r\n .map((traitData: FilterTraitsList) => traitData.values)[0]\r\n .filter(\r\n (traitDataValues: TraitsValuesProps) =>\r\n traitDataValues?.value === nftName,\r\n )[0];\r\n nftDetails = {\r\n ...nftDetails,\r\n traits: {\r\n ...nftDetails.traits,\r\n [`${traitName}`]: {\r\n name: nftName,\r\n occurance: extractedTraitDataValue?.occurance,\r\n rarity: extractedTraitDataValue?.rarity,\r\n },\r\n },\r\n };\r\n });\r\n }\r\n\r\n return nftDetails;\r\n } catch (error) {\r\n AppLog.error(error);\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n 'Oops! Failed to get trait data',\r\n ),\r\n );\r\n }\r\n};\r\n","export type Trait = {\n value?: string;\n occurance?: number;\n rarity?: number;\n};\n\nexport const parseTraits = (traits: Trait[]) => {\n return traits.filter((trait) => trait?.value);\n};\n","import axios from 'axios';\r\nimport { AppLog } from '../../utils/log';\r\n\r\nconst COINGECKO_ICP_ID = 'internet-computer';\r\nconst COINGECKO_PRICE_UNAVAILABLE = 'n/a';\r\n\r\nconst api = axios.create({\r\n baseURL: 'https://api.coingecko.com/api/v3',\r\n timeout: 15000,\r\n});\r\n\r\ntype CoinGeckoResponsePrice = { usd: number };\r\ntype Currencies = 'USD';\r\n\r\nexport const getICPPrice = async (): Promise<\r\n CoinGeckoResponsePrice | undefined\r\n> => {\r\n try {\r\n const { data } = await api.get('/simple/price', {\r\n params: {\r\n ids: COINGECKO_ICP_ID,\r\n vs_currencies: 'USD',\r\n },\r\n });\r\n\r\n if (!(COINGECKO_ICP_ID in data)) return;\r\n\r\n return data[COINGECKO_ICP_ID];\r\n } catch (err) {\r\n AppLog.error('Oops! Current ICP price is unavailable');\r\n }\r\n};\r\n\r\nexport const getCurrentMarketPrice = async ({\r\n currency = 'USD',\r\n currentMakeListingPrice,\r\n}: {\r\n currency?: Currencies;\r\n currentMakeListingPrice: number;\r\n}) => {\r\n try {\r\n if (currency !== 'USD' || !currentMakeListingPrice)\r\n return COINGECKO_PRICE_UNAVAILABLE;\r\n\r\n const res = await getICPPrice();\r\n\r\n if (!res || !res?.usd) return;\r\n\r\n const currencyMarketPrice = res?.usd;\r\n\r\n const computed = currencyMarketPrice * currentMakeListingPrice;\r\n\r\n // TODO: Use a price formatter lib here\r\n // at the moment using basic placeholder which does the job\r\n const locale = navigator.language || 'en-US';\r\n const formatted = new Intl.NumberFormat(locale, {\r\n style: 'currency',\r\n currency: 'USD' as Currencies,\r\n }).format(computed);\r\n\r\n return formatted;\r\n } catch (err) {\r\n AppLog.error(err);\r\n }\r\n\r\n return COINGECKO_PRICE_UNAVAILABLE;\r\n};\r\n\r\nexport const totalPriceCalculator = ({\r\n price,\r\n feesInPercent,\r\n}: {\r\n price?: string;\r\n feesInPercent?: number;\r\n}) => {\r\n if (!price || !feesInPercent) return 'n/a';\r\n\r\n const deductions = (Number(price) / 100) * feesInPercent;\r\n const total = Number(price) - deductions;\r\n\r\n return total;\r\n};\r\n","export enum SortOptions {\n LastModified = 'lastModified',\n LastSale = 'lastSale',\n LastSalePrice = 'lastSalePrice',\n LastOfferPrice = 'lastOfferPrice',\n PriceLowToHigh = 'priceLowToHigh',\n PriceHighToLow = 'priceHighToLow',\n CurrentPrice = 'currentPrice',\n}\n","import axios from 'axios';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport {\n KyasshuUrl,\n NSKyasshuUrl,\n} from '../../../../integrations/kyasshu';\nimport { filterActions } from '..';\nimport { notificationActions } from '../../notifications';\nimport { AppLog } from '../../../../utils/log';\nimport { getICPPrice } from '../../../../integrations/marketplace/price.utils';\nimport {\n parseAmountToE8S,\n parseE8SAmountToWICP,\n} from '../../../../utils/formatters';\nimport { SearchResultDataState } from '../filter-slice';\nimport { SortOptions } from '../../../../constants/sort-options';\n\nexport type GetSearchResultsProps =\n NSKyasshuUrl.GetSearchQueryParams & {\n search: string;\n abortController: AbortController;\n };\n\nexport const getSearchResults = createAsyncThunk<\n SearchResultDataState[] | undefined,\n GetSearchResultsProps\n>(\n 'filters/getSearchResults',\n async (\n { search, sort, order, page, count, abortController },\n { dispatch },\n ) => {\n const payload = {\n search: search.length > 0 ? search : undefined,\n };\n\n let sortingDetails = {\n sortBy: sort,\n orderBy: order,\n };\n\n if (\n sort === SortOptions.PriceLowToHigh ||\n sort === SortOptions.PriceHighToLow\n ) {\n sortingDetails.sortBy = SortOptions.CurrentPrice;\n }\n\n if (sort === SortOptions.PriceLowToHigh) {\n sortingDetails.orderBy = 'a';\n }\n\n try {\n let priceInUSD: number;\n const response = await axios.post(\n KyasshuUrl.getSearchResults({\n sort: sortingDetails.sortBy,\n order: sortingDetails.orderBy,\n page,\n count,\n }),\n payload,\n {\n signal: abortController.signal,\n },\n );\n\n const { data } = response.data;\n\n const icpPriceResponse = await getICPPrice();\n if (icpPriceResponse && icpPriceResponse.usd) {\n priceInUSD = icpPriceResponse.usd;\n }\n\n const searchResult = data.map((nft: any) => {\n const searchResultData = {\n id: nft.index,\n name: 'Cap Crowns',\n price:\n priceInUSD *\n Number(parseE8SAmountToWICP(nft.currentPrice)),\n wicpPrice: parseE8SAmountToWICP(nft.currentPrice),\n preview: nft.url.replace(\n /\\/(\\w+)\\.\\w+/g,\n '/thumbnails/$1.png',\n ),\n };\n\n return searchResultData;\n });\n\n return searchResult;\n } catch (error) {\n if ((error as any)?.message === 'canceled') return;\n\n AppLog.error(error);\n\n dispatch(\n notificationActions.setErrorMessage(\n 'Oops! Unable to search for NFT',\n ),\n );\n }\n },\n);\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { NFTMetadata } from '../../../declarations/legacy';\r\nimport type { RootState } from '../../store';\r\nimport { getFilterTraits, getSearchResults } from './async-thunks';\r\n\r\nexport interface TraitsDataState {\r\n key: string;\r\n name: string;\r\n values: Array;\r\n}\r\n\r\nexport interface TraitValue {\r\n value: string;\r\n key: string;\r\n}\r\n\r\nexport interface FilterTraitsList {\r\n name: string;\r\n values: Array;\r\n}\r\n\r\nexport interface ButtonFilterState {\r\n filterName: any;\r\n filterCategory: string;\r\n}\r\n\r\nexport interface SearchResultDataState {\r\n id: number;\r\n name: string;\r\n price: string;\r\n wicpPrice: string;\r\n preview: string;\r\n}\r\n\r\nexport interface FilterState {\r\n defaultFilters: ButtonFilterState[];\r\n traits: TraitsDataState[];\r\n loadedFiltersList: FilterTraitsList[];\r\n loadingFilterList: boolean;\r\n isMyNfts: boolean;\r\n sortBy: string;\r\n status: string;\r\n searchResults: SearchResultDataState[];\r\n isAlreadyFetched: boolean;\r\n loadingSearch: boolean;\r\n}\r\n\r\nconst initialState: FilterState = {\r\n defaultFilters: [],\r\n traits: [],\r\n loadedFiltersList: [],\r\n loadingFilterList: false,\r\n isMyNfts: false,\r\n sortBy: 'lastModified',\r\n status: '',\r\n searchResults: [],\r\n isAlreadyFetched: false,\r\n loadingSearch: false,\r\n};\r\n\r\nexport const filterSlice = createSlice({\r\n name: 'filter',\r\n initialState,\r\n reducers: {\r\n getAllFilters: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n state.loadedFiltersList.push(action.payload);\r\n },\r\n setIsFilterTraitsLoading: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n state.loadingFilterList = action.payload;\r\n },\r\n applyFilter: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n state.defaultFilters.push(action.payload);\r\n },\r\n updateFilter: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n const filterIndex = state.defaultFilters.findIndex(\r\n (appliedFilter) =>\r\n appliedFilter.filterCategory ===\r\n action.payload.filterCategory,\r\n );\r\n state.defaultFilters[filterIndex].filterName =\r\n action.payload.filterName;\r\n },\r\n applytraits: (state, action: PayloadAction) => {\r\n const traitsNameExists = state.traits.some(\r\n (trait) =>\r\n trait.name === action.payload.name &&\r\n trait.key === action.payload.key,\r\n );\r\n\r\n if (!traitsNameExists) {\r\n state.traits.push({\r\n key: action.payload.key,\r\n name: action.payload.name,\r\n values: [...action.payload.values],\r\n });\r\n state.defaultFilters.push({\r\n filterName: [...action.payload.values],\r\n filterCategory: action.payload.key,\r\n });\r\n\r\n return;\r\n }\r\n\r\n const traitsFilterIndex = state.traits.findIndex(\r\n (trait) =>\r\n trait.name === action.payload.name &&\r\n trait.key === action.payload.key,\r\n );\r\n\r\n state.traits[traitsFilterIndex].values.push(\r\n ...action.payload.values,\r\n );\r\n const traitName = state.traits[traitsFilterIndex].key;\r\n const defaultFiltersIndex = state.defaultFilters.findIndex(\r\n (filter) => filter.filterCategory === traitName,\r\n );\r\n // eslint-disable-next-line\r\n Array.isArray(\r\n state.defaultFilters[defaultFiltersIndex].filterName,\r\n ) &&\r\n state.defaultFilters[defaultFiltersIndex].filterName.push(\r\n ...action.payload.values,\r\n );\r\n },\r\n setMyNfts: (state, action: PayloadAction) => {\r\n state.isMyNfts = action.payload;\r\n },\r\n removeFilter: (state, action: PayloadAction) => {\r\n const removedFilter = state.defaultFilters.filter(\r\n (appliedFilter) =>\r\n appliedFilter.filterName !== action.payload,\r\n );\r\n state.defaultFilters = removedFilter;\r\n },\r\n removePriceFilter: (state, action: PayloadAction) => {\r\n const removedPriceFilter = state.defaultFilters.filter(\r\n (appliedFilter) =>\r\n appliedFilter.filterCategory !== action.payload,\r\n );\r\n state.defaultFilters = removedPriceFilter;\r\n },\r\n removeTraitsFilter: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n const removedTraitsFilter = state.traits.map((trait) => {\r\n if (\r\n trait.values.includes(action.payload.value) &&\r\n trait.key === action.payload.key\r\n ) {\r\n const filteredTraitsValues = trait.values.filter(\r\n (t: string) => t !== action.payload.value,\r\n );\r\n return {\r\n ...trait,\r\n values: filteredTraitsValues,\r\n };\r\n }\r\n return trait;\r\n });\r\n\r\n const removedDefaultFilter = state.defaultFilters.map(\r\n (filter) => {\r\n if (filter.filterCategory === action.payload.key) {\r\n const filteredNames = Array.isArray(filter.filterName)\r\n ? filter.filterName.filter(\r\n (f) => f !== action.payload.value,\r\n )\r\n : [];\r\n return !Array.isArray(filter.filterName)\r\n ? filter\r\n : {\r\n ...filter,\r\n filterName: filteredNames,\r\n };\r\n }\r\n\r\n return filter;\r\n },\r\n );\r\n state.traits = removedTraitsFilter.filter(\r\n (traits) => traits.values.length > 0,\r\n );\r\n state.defaultFilters = removedDefaultFilter.filter(\r\n (defaultFilter) =>\r\n !Array.isArray(defaultFilter.filterName) ||\r\n defaultFilter.filterName.length > 0,\r\n );\r\n },\r\n // eslint-disable-next-line\r\n clearAllFilters: (state) => {\r\n state.defaultFilters = [];\r\n state.traits = [];\r\n state.status = '';\r\n },\r\n setSortingFilter: (state, action: PayloadAction) => {\r\n state.sortBy = action.payload;\r\n },\r\n setStatusFilter: (state, action: PayloadAction) => {\r\n state.status = action.payload;\r\n },\r\n setSearchResults: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n state.searchResults = action.payload;\r\n },\r\n setIsAlreadyFetched: (state, action: PayloadAction) => {\r\n state.isAlreadyFetched = action.payload;\r\n },\r\n setLoadingSearch: (state, action: PayloadAction) => {\r\n state.loadingSearch = action.payload;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(getSearchResults.fulfilled, (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.searchResults = [...action.payload];\r\n state.loadingSearch = false;\r\n });\r\n builder.addCase(getSearchResults.pending, (state) => {\r\n state.loadingSearch = true;\r\n state.searchResults = [];\r\n });\r\n builder.addCase(getSearchResults.rejected, (state) => {\r\n state.loadingSearch = false;\r\n state.searchResults = [];\r\n });\r\n },\r\n});\r\n\r\nexport const filterActions = {\r\n ...filterSlice.actions,\r\n getFilterTraits,\r\n getSearchResults,\r\n};\r\n\r\nexport const selectFilterState = (state: RootState) => state.filter;\r\n\r\nexport default filterSlice.reducer;\r\n","import { useAppSelector } from '../../hooks';\r\nimport { selectFilterState } from './filter-slice';\r\n\r\nexport const useFilterStore = () => useAppSelector(selectFilterState);\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\nimport type { RootState } from '../../store';\r\n\r\nexport interface ThemeState {\r\n theme: string | null;\r\n}\r\n\r\nconst getTheme = localStorage.getItem('theme');\r\n\r\nconst initialState: ThemeState = {\r\n theme: !getTheme ? 'lightTheme' : getTheme,\r\n};\r\n\r\nexport const themeSlice = createSlice({\r\n name: 'theme',\r\n initialState,\r\n reducers: {\r\n setTheme: (state, action: PayloadAction) => {\r\n state.theme = action.payload;\r\n localStorage.setItem('theme', action.payload);\r\n },\r\n },\r\n});\r\n\r\nexport const themeActions = themeSlice.actions;\r\n\r\nexport const selectThemeState = (state: RootState) => state.theme;\r\n\r\nexport default themeSlice.reducer;\r\n","import { useAppSelector } from '../../hooks';\r\nimport { selectThemeState } from './theme-slice';\r\n\r\nexport const useThemeStore = () => useAppSelector(selectThemeState);\r\n","import { NFTActionStatuses } from '../constants/common';\nimport { TokenMetadataById } from '../store/features/tables/table-slice';\nimport { OperationType } from '../constants';\nimport config from '../config/env';\n\ntype NFTParams = {\n lastSalePrice?: string;\n lastSale?: string;\n lastModified?: string;\n lastOfferPrice?: string;\n currentPrice?: string;\n};\n\ntype CheckNFTOperatorParams = {\n operator?: string;\n};\n\nexport const findLastAction = (nft: NFTParams) => {\n if (nft?.lastSalePrice && nft?.lastSale === nft?.lastModified) {\n return NFTActionStatuses.Sold;\n }\n\n if (nft?.lastOfferPrice && nft?.lastModified) {\n return NFTActionStatuses.OfferReceived;\n }\n\n if (nft?.currentPrice && nft?.lastModified) {\n return NFTActionStatuses.ForSale;\n }\n\n return '';\n};\n\n// eslint-disable-next-line no-restricted-globals\nexport const isTokenId = (id: any) => {\n const parsedId = Number(id);\n\n return (\n typeof id !== 'undefined' && !isNaN(parsedId) && parsedId >= 0\n );\n};\n\nexport const getTokenMetadataThumbnail = ({\n tokendId,\n tokenMetadataById,\n}: {\n tokendId?: string | number;\n tokenMetadataById: TokenMetadataById;\n}) => typeof tokendId !== 'undefined' && tokenMetadataById[tokendId];\n\nexport const roundOffDecimalValue = (\n value: number,\n decimalPlace: number,\n) => value.toFixed(decimalPlace);\n\nexport const isOperatorMarketplace = (\n params: CheckNFTOperatorParams,\n) => {\n const { operator } = params;\n\n return operator === config.marketplaceCanisterId;\n};\n\nconst userRelevantDirectContractOps = ['mint', 'transfer'];\nexport const checkIfDirectContractEvent = (\n operationType: OperationType,\n) => userRelevantDirectContractOps.includes(operationType);\n\n","export const isEmptyObject = (obj: any) => {\n return (\n obj && Object.keys(obj).length === 0 && obj.constructor === Object\n );\n};\n","export enum ResponseStatus {\n Canceled = 'canceled',\n}\n","import axios from 'axios';\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport { nftsActions } from '../nfts-slice';\r\nimport {\r\n KyasshuUrl,\r\n NSKyasshuUrl,\r\n} from '../../../../integrations/kyasshu';\r\nimport { notificationActions } from '../../notifications';\r\nimport { AppLog } from '../../../../utils/log';\r\nimport { findLastAction } from '../../../../utils/nfts';\r\nimport { isEmptyObject } from '../../../../utils/common';\r\nimport { ResponseStatus } from '../../../../constants/response-status';\r\nimport { SortOptions } from '../../../../constants/sort-options';\r\n\r\nexport type GetNFTsProps = NSKyasshuUrl.GetNFTsQueryParams & {\r\n payload?: any;\r\n abortController?: AbortController;\r\n};\r\n\r\nexport const getNFTs = createAsyncThunk(\r\n 'nfts/getNFTs',\r\n async (\r\n { payload, sort, order, page, count, abortController },\r\n { dispatch },\r\n ) => {\r\n // set loading NFTS state to true\r\n dispatch(nftsActions.setIsNFTSLoading(true));\r\n\r\n if (!isEmptyObject(payload)) {\r\n dispatch(nftsActions.setCollectionDataLoading());\r\n }\r\n\r\n let axiosParams = {};\r\n\r\n if (abortController) {\r\n axiosParams = {\r\n signal: abortController.signal,\r\n };\r\n }\r\n\r\n let sortingDetails = {\r\n sortBy: sort,\r\n orderBy: order,\r\n };\r\n\r\n if (\r\n sort === SortOptions.PriceLowToHigh ||\r\n sort === SortOptions.PriceHighToLow\r\n ) {\r\n sortingDetails.sortBy = SortOptions.CurrentPrice;\r\n }\r\n\r\n if (sort === SortOptions.PriceLowToHigh) {\r\n sortingDetails.orderBy = 'a';\r\n }\r\n\r\n try {\r\n const response = await axios.post(\r\n KyasshuUrl.getNFTs({\r\n sort: sortingDetails.sortBy,\r\n order: sortingDetails.orderBy,\r\n page,\r\n count,\r\n }),\r\n payload,\r\n axiosParams,\r\n );\r\n\r\n if (response.status !== 200) {\r\n throw Error(response.statusText);\r\n }\r\n\r\n const { data, pages, items } = response.data;\r\n\r\n // TODO: Define nft field types\r\n const extractedNFTSList = data.map((nft: any) => {\r\n const metadata = {\r\n // TODO: update price, lastOffer & traits values\r\n // TODO: Finalize object format after validating mock and kyasshu data\r\n id: nft.index,\r\n name: 'Cap Crowns',\r\n price: nft.currentPrice,\r\n lastOffer: nft.lastOfferPrice,\r\n lastSale: nft.lastSalePrice,\r\n // TODO: update nft thumbnail\r\n preview: nft.url.replace(\r\n /\\/(\\w+)\\.\\w+/g,\r\n '/thumbnails/$1.png',\r\n ),\r\n location: nft?.url,\r\n traits: {\r\n base: {\r\n name: nft?.metadata?.base?.value?.TextContent,\r\n occurance: null,\r\n rarity: null,\r\n },\r\n biggem: {\r\n name: nft?.metadata?.biggem?.value?.TextContent,\r\n occurance: null,\r\n rarity: null,\r\n },\r\n rim: {\r\n name: nft?.metadata?.rim?.value?.TextContent,\r\n occurance: null,\r\n rarity: null,\r\n },\r\n smallgem: {\r\n name: nft?.metadata?.smallgem?.value?.TextContent,\r\n occurance: null,\r\n rarity: null,\r\n },\r\n },\r\n status: nft?.status,\r\n owner: nft?.owner,\r\n lastActionTaken: findLastAction(nft),\r\n operator: nft?.operator,\r\n };\r\n return metadata;\r\n });\r\n\r\n const actionPayload = {\r\n loadedNFTList: extractedNFTSList,\r\n totalPages: pages ? parseInt(pages, 10) : 0,\r\n total: items ? parseInt(items, 10) : 0,\r\n nextPage: page + 1,\r\n };\r\n\r\n // update store with loaded NFTS details\r\n dispatch(nftsActions.setLoadedNFTS(actionPayload));\r\n\r\n if (!isEmptyObject(payload)) {\r\n const collectionPayload = {\r\n itemsCount: items ? parseInt(items, 10) : 0,\r\n ownersCount: 0,\r\n price: 0,\r\n totalVolume: 0,\r\n };\r\n\r\n dispatch(nftsActions.setCollectionData(collectionPayload));\r\n }\r\n } catch (error: any) {\r\n if (error?.message === ResponseStatus.Canceled) return;\r\n\r\n AppLog.error(error);\r\n\r\n // set NFTS failed to load\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n 'Oops! Unable to fetch NFTs',\r\n ),\r\n );\r\n }\r\n },\r\n);\r\n","import axios from 'axios';\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport { nftsActions } from '../nfts-slice';\r\nimport {\r\n KyasshuUrl,\r\n NSKyasshuUrl,\r\n} from '../../../../integrations/kyasshu';\r\nimport { notificationActions } from '../../notifications';\r\nimport { AppLog } from '../../../../utils/log';\r\n\r\nexport type GetNFTDetailsProps =\r\n NSKyasshuUrl.GetNFTDetailsQueryParams;\r\n\r\nexport const getNFTDetails = createAsyncThunk<\r\n void,\r\n GetNFTDetailsProps\r\n>('nfts/getNFTDetails', async ({ id }, { dispatch }) => {\r\n try {\r\n const response = await axios.get(\r\n KyasshuUrl.getNFTDetails({ id }),\r\n );\r\n\r\n if (response.status !== 200) {\r\n throw Error(response.statusText);\r\n }\r\n\r\n const responseData = response.data;\r\n\r\n const nftDetails = {\r\n // TODO: update price, lastOffer & traits values\r\n // TODO: Finalize object format after validating mock and kyasshu data\r\n id: responseData.index,\r\n name: 'Cap Crowns',\r\n price: responseData?.currentPrice,\r\n lastOffer: responseData?.lastOfferPrice,\r\n lastSale: responseData?.lastSalePrice,\r\n preview: responseData?.metadata?.thumbnail?.value?.TextContent,\r\n location: responseData?.url,\r\n rendered: true,\r\n traits: {\r\n base: {\r\n name: responseData?.metadata?.base?.value?.TextContent,\r\n occurance: null,\r\n rarity: null,\r\n },\r\n biggem: {\r\n name: responseData?.metadata?.biggem?.value?.TextContent,\r\n occurance: null,\r\n rarity: null,\r\n },\r\n rim: {\r\n name: responseData?.metadata?.rim?.value?.TextContent,\r\n occurance: null,\r\n rarity: null,\r\n },\r\n smallgem: {\r\n name: responseData?.metadata?.smallgem?.value?.TextContent,\r\n occurance: null,\r\n rarity: null,\r\n },\r\n },\r\n owner: responseData?.owner,\r\n operator: responseData?.operator,\r\n };\r\n\r\n // TODO: If user connected to plug\r\n // Should verify the owner of current token id\r\n // e.g. if opted to verify on-chain the method is \"ownerOf\"\r\n // Should verify whether token is listed or not only if owner\r\n (nftDetails as any).isListed = false;\r\n\r\n // update store with loaded NFT details\r\n dispatch(nftsActions.setLoadedNFTDetails(nftDetails));\r\n } catch (error) {\r\n AppLog.error(error);\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n 'Oops! Unable to fetch NFT details',\r\n ),\r\n );\r\n }\r\n});\r\n","type Err = Record;\n\nconst toErrorMessage = (errorKey: string) => {\n console.warn(errorKey);\n\n // TODO: Error messages should use intl translate\n switch (errorKey) {\n case 'InsufficientFungibleBalance':\n case 'InsufficientBalance':\n return 'Oops! It looks like the buyer does not have enough fungible balance to complete the sale';\n case 'Unauthorized':\n return 'Oops! Marketplace is not authorized to perform the transaction';\n case 'InvalidOperator':\n case 'InvalidOwner':\n return \"Oops! Can't be purchased at this time, possibly because token was transferred outside Jelly marketplace to a new wallet\";\n case 'NoDeposit':\n return 'Oops! Missing deposit';\n case 'InvalidOffer':\n case 'InvalidOfferStatus':\n return 'Oops! The offer is not valid';\n case 'NonExistentCollection':\n return 'Oops! Unknown collection';\n case 'InvalidListing':\n return 'Oops! The listing is invalid or was not found at this time';\n default:\n return 'Oops! Unknown error';\n }\n};\n\nconst extractErrorKey = (err: Err) => {\n const keys = Object.keys(err);\n\n if (!keys.length) return;\n\n return keys[0];\n};\n\nconst otherErrorParser = (err: Err) => {\n const key = extractErrorKey(err);\n\n if (!key) return;\n\n const errorKey = err[key];\n\n return errorKey;\n};\n\nconst parseError = (err: Err) => {\n const errorKey = extractErrorKey(err);\n\n // If the value of error[key] is a string\n // then we need to compute the Other(string)\n // otherwise we return errorKey\n if (!errorKey || typeof err[errorKey] === 'string') {\n return otherErrorParser(err);\n }\n\n return errorKey;\n};\n\nexport const errorMessageHandler = (err: Err) => {\n try {\n const errorKey = parseError(err);\n\n return toErrorMessage(errorKey);\n } catch (error) {\n console.warn(error);\n\n return toErrorMessage('');\n }\n};\n\n","import { Principal } from '@dfinity/principal';\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport axios from 'axios';\r\nimport config from '../../../../config/env';\r\nimport crownsIdlFactory from '../../../../declarations/nft.did';\r\nimport marketplaceIdlFactory from '../../../../declarations/marketplace.did';\r\nimport { notificationActions } from '../../notifications';\r\nimport { MakeListing } from '../marketplace-slice';\r\nimport { AppLog } from '../../../../utils/log';\r\nimport { parseAmountToE8S } from '../../../../utils/formatters';\r\nimport { KyasshuUrl } from '../../../../integrations/kyasshu';\r\nimport { errorMessageHandler } from '../../../../utils/error';\r\n\r\ntype MakeListingProps = DefaultCallbacks & MakeListing;\r\n\r\nexport const makeListing = createAsyncThunk<\r\n MakeListing | undefined,\r\n MakeListingProps\r\n>(\r\n 'marketplace/makeListing',\r\n async ({ id, amount, onSuccess, onFailure }, { dispatch }) => {\r\n const marketplaceCanisterId = Principal.fromText(\r\n config.marketplaceCanisterId,\r\n );\r\n const nonFungibleContractAddress = Principal.fromText(\r\n config.nftCollectionId,\r\n );\r\n\r\n const userOwnedTokenId = BigInt(id);\r\n const userListForPrice = parseAmountToE8S(amount);\r\n\r\n try {\r\n const CROWNS_APPROVE_MARKETPLACE = {\r\n idl: crownsIdlFactory,\r\n canisterId: config.nftCollectionId,\r\n methodName: 'approve',\r\n args: [marketplaceCanisterId, userOwnedTokenId],\r\n onSuccess: (res: any) => {\r\n if ('Err' in res)\r\n throw new Error(errorMessageHandler(res.Err));\r\n },\r\n onFail: (res: any) => {\r\n throw res;\r\n },\r\n };\r\n\r\n const MKP_MAKE_LISTING = {\r\n idl: marketplaceIdlFactory,\r\n canisterId: config.marketplaceCanisterId,\r\n methodName: 'makeListing',\r\n args: [\r\n nonFungibleContractAddress,\r\n userOwnedTokenId,\r\n userListForPrice,\r\n ],\r\n onSuccess: async (res: any) => {\r\n if ('Err' in res)\r\n throw new Error(errorMessageHandler(res.Err));\r\n\r\n if (typeof onSuccess !== 'function') return;\r\n\r\n // We call the Cap Sync process\r\n await axios.get(KyasshuUrl.getCAPJellySync());\r\n\r\n onSuccess();\r\n },\r\n onFail: (res: any) => {\r\n throw res;\r\n },\r\n };\r\n\r\n const batchTxRes = await window.ic?.plug?.batchTransactions([\r\n CROWNS_APPROVE_MARKETPLACE,\r\n MKP_MAKE_LISTING,\r\n ]);\r\n\r\n if (!batchTxRes) {\r\n throw new Error('Empty response');\r\n }\r\n\r\n return {\r\n id,\r\n amount,\r\n };\r\n } catch (err: any) {\r\n AppLog.error(err);\r\n\r\n const defaultErrorMessage = `Oops! Failed to make listing`;\r\n\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n err?.message || defaultErrorMessage,\r\n ),\r\n );\r\n if (typeof onFailure === 'function') {\r\n onFailure(err);\r\n }\r\n }\r\n },\r\n);\r\n","import { Principal } from '@dfinity/principal';\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport axios from 'axios';\r\nimport { notificationActions } from '../../notifications';\r\nimport { DirectBuy, marketplaceActions } from '../marketplace-slice';\r\nimport config from '../../../../config/env';\r\nimport wicpIdlFactory from '../../../../declarations/wicp.did';\r\nimport marketplaceIdlFactory from '../../../../declarations/marketplace.did';\r\nimport { AppLog } from '../../../../utils/log';\r\nimport { KyasshuUrl } from '../../../../integrations/kyasshu';\r\nimport { errorMessageHandler } from '../../../../utils/error';\r\nimport { parseAmountToE8S } from '../../../../utils/formatters';\r\n\r\ntype DirectBuyProps = DefaultCallbacks & DirectBuy;\r\n\r\nexport const directBuy = createAsyncThunk<\r\n DirectBuy | undefined,\r\n DirectBuyProps\r\n>('marketplace/directBuy', async (params, { dispatch, getState }) => {\r\n const { tokenId, price, onSuccess, onFailure } = params;\r\n\r\n const {\r\n marketplace: { sumOfUserAllowance },\r\n }: any = getState();\r\n\r\n const marketplaceCanisterId = Principal.fromText(\r\n config.marketplaceCanisterId,\r\n );\r\n const nonFungibleContractAddress = Principal.fromText(\r\n config.nftCollectionId,\r\n );\r\n\r\n try {\r\n const allowanceAmountInWICP = sumOfUserAllowance\r\n ? sumOfUserAllowance + Number(price)\r\n : Number(price);\r\n\r\n const allowanceAmount = parseAmountToE8S(\r\n allowanceAmountInWICP.toString(),\r\n );\r\n\r\n const WICP_APPROVE = {\r\n idl: wicpIdlFactory,\r\n canisterId: config.wICPCanisterId,\r\n methodName: 'approve',\r\n args: [marketplaceCanisterId, allowanceAmount],\r\n onSuccess: (res: any) => {\r\n // check if error\r\n if ('Err' in res)\r\n throw new Error(errorMessageHandler(res.Err));\r\n },\r\n onFail: (res: any) => {\r\n throw res;\r\n },\r\n };\r\n\r\n const MKP_DIRECT_BUY = {\r\n idl: marketplaceIdlFactory,\r\n canisterId: config.marketplaceCanisterId,\r\n methodName: 'directBuy',\r\n args: [nonFungibleContractAddress, tokenId],\r\n onFail: (res: any) => {\r\n throw res;\r\n },\r\n onSuccess: async (res: any) => {\r\n if ('Err' in res)\r\n throw new Error(errorMessageHandler(res.Err));\r\n\r\n if (typeof onSuccess !== 'function') return;\r\n\r\n // We call the Cap Sync process\r\n await axios.get(KyasshuUrl.getCAPJellySync());\r\n\r\n onSuccess();\r\n },\r\n };\r\n\r\n const batchTxRes = await window.ic?.plug?.batchTransactions([\r\n WICP_APPROVE,\r\n // MKP_DEPOSIT_WICP,\r\n MKP_DIRECT_BUY,\r\n ]);\r\n\r\n if (!batchTxRes) {\r\n throw new Error('Empty response');\r\n }\r\n\r\n return {\r\n tokenId,\r\n price,\r\n };\r\n } catch (err: any) {\r\n AppLog.error(err);\r\n\r\n const defaultErrorMessage = `Oops! Failed to direct buy`;\r\n\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n err?.message || defaultErrorMessage,\r\n ),\r\n );\r\n if (typeof onFailure === 'function') {\r\n onFailure(err);\r\n }\r\n dispatch(\r\n marketplaceActions.setFailedTransactions(defaultErrorMessage),\r\n );\r\n }\r\n});\r\n","import { Principal } from '@dfinity/principal';\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport axios from 'axios';\r\nimport { notificationActions } from '../../notifications';\r\nimport { CancelListing } from '../marketplace-slice';\r\nimport config from '../../../../config/env';\r\nimport marketplaceIdlFactory from '../../../../declarations/marketplace.did';\r\nimport { AppLog } from '../../../../utils/log';\r\nimport { KyasshuUrl } from '../../../../integrations/kyasshu';\r\nimport { errorMessageHandler } from '../../../../utils/error';\r\n\r\nexport type CancelListingProps = DefaultCallbacks & CancelListing;\r\n\r\nexport const cancelListing = createAsyncThunk<\r\n CancelListing | undefined,\r\n CancelListingProps\r\n>('marketplace/cancelListing', async (params, { dispatch }) => {\r\n const { id, onSuccess, onFailure } = params;\r\n\r\n const nonFungibleContractAddress = Principal.fromText(\r\n config.nftCollectionId,\r\n );\r\n const userOwnedTokenId = BigInt(id);\r\n\r\n try {\r\n const MKP_CANCEL_LISTING = {\r\n idl: marketplaceIdlFactory,\r\n canisterId: config.marketplaceCanisterId,\r\n methodName: 'cancelListing',\r\n args: [nonFungibleContractAddress, userOwnedTokenId],\r\n onFail: (res: any) => {\r\n throw res;\r\n },\r\n onSuccess: async (res: any) => {\r\n if ('Err' in res)\r\n throw new Error(errorMessageHandler(res.Err));\r\n\r\n if (typeof onSuccess !== 'function') return;\r\n\r\n // We call the Cap Sync process\r\n await axios.get(KyasshuUrl.getCAPJellySync());\r\n\r\n onSuccess();\r\n },\r\n };\r\n\r\n const batchTxRes = await window.ic?.plug?.batchTransactions([\r\n MKP_CANCEL_LISTING,\r\n ]);\r\n\r\n if (!batchTxRes) {\r\n throw new Error('Empty response');\r\n }\r\n\r\n return {\r\n id,\r\n };\r\n } catch (err: any) {\r\n AppLog.error(err);\r\n\r\n const defaultErrorMessage = `Oops! Failed to cancel listing`;\r\n\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n err?.message || defaultErrorMessage,\r\n ),\r\n );\r\n if (typeof onFailure === 'function') {\r\n onFailure(err);\r\n }\r\n }\r\n});\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport { Principal } from '@dfinity/principal';\nimport axios from 'axios';\nimport { notificationActions } from '../../notifications';\nimport { CancelOffer } from '../marketplace-slice';\nimport config from '../../../../config/env';\nimport marketplaceIdlFactory from '../../../../declarations/marketplace.did';\nimport { AppLog } from '../../../../utils/log';\nimport { KyasshuUrl } from '../../../../integrations/kyasshu';\nimport { errorMessageHandler } from '../../../../utils/error';\n\nexport type CancelOfferProps = DefaultCallbacks & CancelOffer;\n\nexport const cancelOffer = createAsyncThunk<\n CancelOffer | undefined,\n CancelOfferProps\n>('marketplace/cancelOffer', async (params, { dispatch }) => {\n const { id, onSuccess, onFailure } = params;\n\n try {\n const nonFungibleContractAddress = Principal.fromText(\n config.nftCollectionId,\n );\n const userOwnedTokenId = BigInt(id);\n\n const MKP_CANCEL_OFFER = {\n idl: marketplaceIdlFactory,\n canisterId: config.marketplaceCanisterId,\n methodName: 'cancelOffer',\n args: [nonFungibleContractAddress, userOwnedTokenId],\n onSuccess: async (res: any) => {\n if ('Err' in res)\n throw new Error(errorMessageHandler(res.Err));\n\n if (typeof onSuccess !== 'function') return;\n\n // We call the Cap Sync process\n await axios.get(KyasshuUrl.getCAPJellySync());\n\n onSuccess();\n },\n onFail: (res: any) => {\n throw res;\n },\n };\n\n const batchTxRes = await window.ic?.plug?.batchTransactions([\n MKP_CANCEL_OFFER,\n ]);\n\n if (!batchTxRes) {\n throw new Error('Empty response');\n }\n\n return {\n id,\n };\n } catch (err: any) {\n AppLog.error(err);\n\n const defaultErrorMessage = `Oops! Failed to cancel offer`;\n\n dispatch(\n notificationActions.setErrorMessage(\n err?.message || defaultErrorMessage,\n ),\n );\n if (typeof onFailure === 'function') {\n onFailure(err);\n }\n }\n});\n\n","import { Principal } from '@dfinity/principal';\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport axios from 'axios';\r\nimport { notificationActions } from '../../notifications';\r\nimport { MakeOffer, marketplaceActions } from '../marketplace-slice';\r\nimport config from '../../../../config/env';\r\nimport wicpIdlFactory from '../../../../declarations/wicp.did';\r\nimport marketplaceIdlFactory from '../../../../declarations/marketplace.did';\r\nimport { AppLog } from '../../../../utils/log';\r\nimport { parseAmountToE8S } from '../../../../utils/formatters';\r\nimport { errorMessageHandler } from '../../../../utils/error';\r\nimport { KyasshuUrl } from '../../../../integrations/kyasshu';\r\n\r\nexport type MakeOfferProps = DefaultCallbacks & MakeOffer;\r\n\r\nexport const makeOffer = createAsyncThunk<\r\n MakeOffer | undefined,\r\n MakeOfferProps\r\n>('marketplace/makeOffer', async (params, { dispatch, getState }) => {\r\n const { id, amount, onSuccess, onFailure } = params;\r\n\r\n const {\r\n marketplace: { sumOfUserAllowance },\r\n }: any = getState();\r\n\r\n const mkpContractAddress = Principal.fromText(\r\n config.marketplaceCanisterId,\r\n );\r\n const crownsContractAddress = Principal.fromText(\r\n config.nftCollectionId,\r\n );\r\n const userOwnedTokenId = BigInt(id);\r\n const userOfferInPrice = parseAmountToE8S(amount);\r\n\r\n const allowanceAmountInWICP = sumOfUserAllowance\r\n ? sumOfUserAllowance + Number(amount)\r\n : Number(amount);\r\n\r\n const allowanceAmount = parseAmountToE8S(\r\n allowanceAmountInWICP.toString(),\r\n );\r\n\r\n try {\r\n const WICP_APPROVE_MARKETPLACE = {\r\n idl: wicpIdlFactory,\r\n canisterId: config.wICPCanisterId,\r\n methodName: 'approve',\r\n args: [mkpContractAddress, allowanceAmount],\r\n onSuccess: (res: any) => {\r\n if ('Err' in res)\r\n throw new Error(errorMessageHandler(res.Err));\r\n },\r\n onFail: (res: any) => {\r\n throw res;\r\n },\r\n };\r\n\r\n const MKP_MAKE_OFFER_WICP = {\r\n idl: marketplaceIdlFactory,\r\n canisterId: config.marketplaceCanisterId,\r\n methodName: 'makeOffer',\r\n args: [\r\n crownsContractAddress,\r\n userOwnedTokenId,\r\n userOfferInPrice,\r\n ],\r\n onSuccess: async (res: any) => {\r\n if ('Err' in res)\r\n throw new Error(errorMessageHandler(res.Err));\r\n\r\n if (typeof onSuccess !== 'function') return;\r\n\r\n // We call the Cap Sync process\r\n await axios.get(KyasshuUrl.getCAPJellySync());\r\n\r\n onSuccess();\r\n },\r\n onFail: (res: any) => {\r\n throw res;\r\n },\r\n };\r\n\r\n const batchTxRes = await window.ic?.plug?.batchTransactions([\r\n WICP_APPROVE_MARKETPLACE,\r\n MKP_MAKE_OFFER_WICP,\r\n ]);\r\n\r\n if (!batchTxRes) {\r\n throw new Error('Empty response');\r\n }\r\n\r\n return {\r\n id,\r\n amount,\r\n };\r\n } catch (err: any) {\r\n AppLog.error(err);\r\n\r\n const defaultErrorMessage = `Oops! Failed to make offer`;\r\n\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n err?.message || defaultErrorMessage,\r\n ),\r\n );\r\n if (typeof onFailure === 'function') {\r\n onFailure(err);\r\n }\r\n dispatch(\r\n marketplaceActions.setFailedTransactions(defaultErrorMessage),\r\n );\r\n }\r\n});\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport { Principal } from '@dfinity/principal';\r\nimport axios from 'axios';\r\nimport { notificationActions } from '../../notifications';\r\nimport {\r\n AcceptOffer,\r\n marketplaceActions,\r\n} from '../marketplace-slice';\r\nimport config from '../../../../config/env';\r\nimport marketplaceIdlFactory from '../../../../declarations/marketplace.did';\r\nimport crownsIdlFactory from '../../../../declarations/nft.did';\r\nimport { AppLog } from '../../../../utils/log';\r\nimport { parseAmountToE8S } from '../../../../utils/formatters';\r\nimport { KyasshuUrl } from '../../../../integrations/kyasshu';\r\nimport { errorMessageHandler } from '../../../../utils/error';\r\n\r\nexport type AcceptOfferProps = DefaultCallbacks & AcceptOffer;\r\n\r\nexport const acceptOffer = createAsyncThunk<\r\n AcceptOffer | undefined,\r\n AcceptOfferProps\r\n>('marketplace/acceptOffer', async (params, { dispatch }) => {\r\n const { id, buyerPrincipalId, offerPrice, onSuccess, onFailure } =\r\n params;\r\n\r\n try {\r\n const marketplaceCanisterId = Principal.fromText(\r\n config.marketplaceCanisterId,\r\n );\r\n const nonFungibleContractAddress = Principal.fromText(\r\n config.nftCollectionId,\r\n );\r\n const userOwnedTokenId = BigInt(id);\r\n const buyerAddress = Principal.fromText(buyerPrincipalId);\r\n\r\n const offerInPrice = parseAmountToE8S(offerPrice);\r\n\r\n const CROWNS_APPROVE_MARKETPLACE = {\r\n idl: crownsIdlFactory,\r\n canisterId: config.nftCollectionId,\r\n methodName: 'approve',\r\n args: [marketplaceCanisterId, userOwnedTokenId],\r\n onSuccess: (res: any) => {\r\n // check if error\r\n if ('Err' in res)\r\n throw new Error(errorMessageHandler(res.Err));\r\n },\r\n onFail: (res: any) => {\r\n throw res;\r\n },\r\n };\r\n\r\n const MKP_ACCEPT_OFFER = {\r\n idl: marketplaceIdlFactory,\r\n canisterId: config.marketplaceCanisterId,\r\n methodName: 'acceptOffer',\r\n args: [\r\n nonFungibleContractAddress,\r\n userOwnedTokenId,\r\n buyerAddress,\r\n ],\r\n onSuccess: async (res: any) => {\r\n if ('Err' in res)\r\n throw new Error(errorMessageHandler(res.Err));\r\n\r\n if (typeof onSuccess !== 'function') return;\r\n\r\n // We call the Cap Sync process\r\n await axios.get(KyasshuUrl.getCAPJellySync());\r\n\r\n onSuccess();\r\n },\r\n onFail: (res: any) => {\r\n throw res;\r\n },\r\n };\r\n\r\n const batchTxRes = await (\r\n window as any\r\n )?.ic?.plug?.batchTransactions([\r\n CROWNS_APPROVE_MARKETPLACE,\r\n MKP_ACCEPT_OFFER,\r\n ]);\r\n\r\n if (!batchTxRes) {\r\n throw new Error('Empty response');\r\n }\r\n\r\n return {\r\n id,\r\n buyerPrincipalId,\r\n offerPrice,\r\n };\r\n } catch (err: any) {\r\n AppLog.error(err);\r\n\r\n const defaultErrorMessage = `Oops! Failed to accept offer`;\r\n\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n err?.message || defaultErrorMessage,\r\n ),\r\n );\r\n if (typeof onFailure === 'function') {\r\n onFailure(err);\r\n }\r\n dispatch(\r\n marketplaceActions.setFailedTransactions(defaultErrorMessage),\r\n );\r\n }\r\n});\r\n","/* eslint-disable import/prefer-default-export */\r\nimport dayjs from 'dayjs';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport timezone from 'dayjs/plugin/timezone';\r\nimport relativeTime from 'dayjs/plugin/relativeTime';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\n\r\n// Extensions\r\n[utc, timezone, relativeTime, customParseFormat].forEach((plugin) =>\r\n dayjs.extend(plugin as any),\r\n);\r\n\r\n// Defaults\r\ndayjs.tz.setDefault('Europe/London');\r\n\r\nconst USER_TIMEZONE = dayjs.tz.guess();\r\n\r\nconst getNow = () =>\r\n new Date(\r\n new Date().toLocaleString('en-US', {\r\n timeZone: USER_TIMEZONE,\r\n }),\r\n ).toISOString();\r\n\r\nexport const dateRelative = (\r\n timestamp: string,\r\n now: string = getNow(),\r\n) => dayjs.utc(timestamp).from(now);\r\n\r\nexport const formatTimestamp = (timestamp: bigint) => {\r\n let formattedTimestamp = '-';\r\n if (timestamp && typeof timestamp === 'bigint') {\r\n const timestampInMilliseconds = Number(timestamp)\r\n .toString()\r\n // eslint-disable-next-line no-useless-escape\r\n .replace(/[\\[\\]&]+/g, '')\r\n .substring(0, 13);\r\n formattedTimestamp = dayjs\r\n .utc(Number(timestampInMilliseconds))\r\n .from(getNow());\r\n }\r\n return formattedTimestamp;\r\n};\r\n","import { OffersTableItem } from '../declarations/legacy';\nimport { ParsedTokenOffers, TokenTransactionItem } from './parser';\n\ntype TnxTimestamp = TokenTransactionItem | OffersTableItem;\n\nexport const sortTokenOffersByPrice = (offers: ParsedTokenOffers) => {\n return offers.sort((a, b) => {\n const offerAPrice = Number(a.price.toString());\n const offerBPrice = Number(b.price.toString());\n\n // sort type: Descending\n return offerBPrice - offerAPrice;\n });\n};\n\nexport const sortTransactionsByTime = (\n transactions: TokenTransactionItem[] | OffersTableItem[],\n) => {\n return transactions.sort((a: TnxTimestamp, b: TnxTimestamp) => {\n return Number(b.time.toString()) - Number(a.time.toString());\n });\n};\n\nexport const sortActivitiesByTime = (activities: any) => {\n return activities.sort((a: any, b: any) => {\n return Number(b.time.toString()) - Number(a.time.toString());\n });\n};\n","/* eslint-disable no-underscore-dangle */\r\nimport { Principal } from '@dfinity/principal';\r\nimport { Listing, Offer } from '../declarations/marketplace';\r\nimport {\r\n formatAddress,\r\n floorDiffPercentageCalculator,\r\n parseE8SAmountToWICP,\r\n} from './formatters';\r\nimport { formatTimestamp } from '../integrations/functions/date';\r\nimport { OffersTableItem } from '../declarations/legacy';\r\nimport {\r\n sortTokenOffersByPrice,\r\n sortTransactionsByTime,\r\n} from './sorting';\r\nimport { OperationTypes, OperationType } from '../constants';\r\nimport { checkIfDirectContractEvent } from './nfts';\r\n\r\ntype GetAllListingsDataResponse = Array<\r\n [[Principal, bigint], Listing]\r\n>;\r\n\r\ntype AssetToWithdraw = {\r\n principalId: string;\r\n amount: string;\r\n};\r\n\r\ntype AssetsToWithdraw = AssetToWithdraw[];\r\n\r\nexport type GetAllListingsDataParsed = {\r\n tokenId: BigInt;\r\n listing: Listing;\r\n};\r\n\r\nexport type GetAllListingsDataParsedObj = Record;\r\n\r\nexport const parseTokenId = (val: String) =>\r\n parseInt(val.replaceAll('_', ''), 10);\r\n\r\nexport const parseAllListingResponse = (\r\n data: GetAllListingsDataResponse,\r\n) => {\r\n const parsed: GetAllListingsDataParsed[] = data.reduce(\r\n (acc, curr) => {\r\n const tokenId = curr[0][1];\r\n const listing = curr[1];\r\n\r\n acc = [\r\n ...acc,\r\n {\r\n tokenId,\r\n listing,\r\n },\r\n ];\r\n\r\n return acc;\r\n },\r\n [] as GetAllListingsDataParsed[],\r\n );\r\n\r\n return parsed;\r\n};\r\n\r\nexport const parseAllListingResponseAsObj = (\r\n data: GetAllListingsDataResponse,\r\n) => {\r\n const parsed: GetAllListingsDataParsedObj = data.reduce(\r\n (acc, curr) => {\r\n const tokenId = String(curr[0][1]);\r\n const listing = curr[1];\r\n\r\n acc = {\r\n ...acc,\r\n [tokenId]: listing,\r\n };\r\n\r\n return acc;\r\n },\r\n {} as GetAllListingsDataParsedObj,\r\n );\r\n\r\n return parsed;\r\n};\r\n\r\ntype TokenOffers = Array<[bigint, Array]>;\r\n\r\nexport type ParsedTokenOffers = OffersTableItem[];\r\n\r\ninterface ParseGetTokenOffersParams {\r\n data: TokenOffers;\r\n floorDifferencePrice?: string;\r\n currencyMarketPrice?: number;\r\n}\r\n\r\ninterface ParseOffersMadeParams {\r\n data: Array;\r\n floorDifferencePrice?: string;\r\n currencyMarketPrice?: number;\r\n}\r\n\r\nexport const parseGetTokenOffersResponse = ({\r\n data,\r\n floorDifferencePrice,\r\n currencyMarketPrice,\r\n}: ParseGetTokenOffersParams) => {\r\n const parsed = data.reduce((accParent, currParent) => {\r\n const tokenOffers = currParent[1] as Offer[];\r\n const parsedTokenOffers = tokenOffers.reduce(\r\n (accChild, currChild) => {\r\n const {\r\n price,\r\n token_id: tokenId,\r\n buyer: paymentAddress,\r\n created,\r\n } = currChild;\r\n\r\n // TODO: What to do if payment address not valid principal?\r\n const fromDetails = {\r\n formattedAddress: paymentAddress._isPrincipal\r\n ? formatAddress(paymentAddress.toString())\r\n : 'n/a',\r\n address: paymentAddress._isPrincipal\r\n ? paymentAddress.toString()\r\n : 'n/a',\r\n };\r\n\r\n const computedCurrencyPrice =\r\n currencyMarketPrice &&\r\n currencyMarketPrice * Number(parseE8SAmountToWICP(price));\r\n\r\n const offerTableItem: OffersTableItem = {\r\n item: {\r\n // TODO: formatter for name, as number should probably have leading 0's\r\n // e.g. Cap Crowns #00001 ?!\r\n name: `CAP Crowns #${tokenId}`,\r\n tokenId,\r\n },\r\n price,\r\n floorDifference: floorDiffPercentageCalculator({\r\n currentPrice: parseE8SAmountToWICP(price),\r\n floorDifferencePrice,\r\n }),\r\n fromDetails,\r\n time: created.toString(),\r\n computedCurrencyPrice,\r\n };\r\n\r\n return [...accChild, offerTableItem];\r\n },\r\n [] as ParsedTokenOffers,\r\n );\r\n\r\n const sortedOffersByPrice =\r\n sortTokenOffersByPrice(parsedTokenOffers);\r\n\r\n return [...accParent, ...sortedOffersByPrice];\r\n }, [] as ParsedTokenOffers);\r\n\r\n return parsed;\r\n};\r\n\r\nexport const parseOffersMadeResponse = ({\r\n data,\r\n floorDifferencePrice,\r\n currencyMarketPrice,\r\n}: ParseOffersMadeParams) => {\r\n const parsedOffersMade = data.map((offerDetails) => {\r\n const {\r\n price,\r\n token_id: tokenId,\r\n buyer: paymentAddress,\r\n created,\r\n } = offerDetails;\r\n\r\n // TODO: What to do if payment address not valid principal?\r\n const fromDetails = {\r\n formattedAddress: paymentAddress._isPrincipal\r\n ? formatAddress(paymentAddress.toString())\r\n : 'n/a',\r\n address: paymentAddress._isPrincipal\r\n ? paymentAddress.toString()\r\n : 'n/a',\r\n };\r\n\r\n const computedCurrencyPrice =\r\n currencyMarketPrice &&\r\n currencyMarketPrice * Number(parseE8SAmountToWICP(price));\r\n\r\n const offerTableItem: OffersTableItem = {\r\n item: {\r\n // TODO: formatter for name, as number should probably have leading 0's\r\n // e.g. Cap Crowns #00001 ?!\r\n name: `CAP Crowns #${tokenId}`,\r\n tokenId,\r\n },\r\n price,\r\n floorDifference: floorDiffPercentageCalculator({\r\n currentPrice: parseE8SAmountToWICP(price),\r\n floorDifferencePrice,\r\n }),\r\n fromDetails,\r\n time: created.toString(),\r\n computedCurrencyPrice,\r\n };\r\n\r\n return offerTableItem;\r\n });\r\n\r\n sortTransactionsByTime(parsedOffersMade);\r\n\r\n return parsedOffersMade;\r\n};\r\n\r\n// TODO: Have a \"unknown\" type for cases where operation mapping fails\r\nexport const getOperationType = (operationType: OperationType) =>\r\n OperationTypes[operationType];\r\n\r\n// TODO: Should be reused, as table type is similar\r\n// see comment in the nft-activity-table-tsx\r\ntype TablePrincipal = {\r\n raw: string;\r\n formatted: string;\r\n};\r\n\r\nexport type TokenTransactionItem = {\r\n items: {\r\n name: string;\r\n logo?: string;\r\n };\r\n type: OperationTypes;\r\n price: BigInt;\r\n seller: TablePrincipal;\r\n buyer: TablePrincipal;\r\n date: string;\r\n time: number;\r\n};\r\n\r\nconst tablePrincipalHandler = (principal: TablePrincipal) =>\r\n principal.raw !== 'aaaaa-aa' && principal;\r\n\r\nexport const parseTablePrincipal = (\r\n arr: Record,\r\n): Principal | undefined => {\r\n const parsedArr = Uint8Array.from(Object.values(arr));\r\n const pid = Principal.fromUint8Array(parsedArr);\r\n\r\n return pid;\r\n};\r\n\r\nexport const parseTokenTransactions = ({\r\n items,\r\n}: {\r\n items: any[];\r\n}) => {\r\n const parsed = items.reduce((acc: any, curr: any) => {\r\n const details = Object.fromEntries(curr.event.details);\r\n let buyer;\r\n let seller;\r\n const operationType = getOperationType(curr.event.operation);\r\n const isDirectContractEvent =\r\n checkIfDirectContractEvent(operationType);\r\n\r\n // We're only interested in user relevant operation types\r\n // e.g. directBuy, makeListing, makeOffer, etc\r\n if (!operationType) return acc;\r\n\r\n const sellerPrincipalAs = isDirectContractEvent\r\n ? curr.event.caller._arr\r\n : details.seller?.Principal._arr;\r\n\r\n if (sellerPrincipalAs) {\r\n const sellerPrincipal = parseTablePrincipal(sellerPrincipalAs);\r\n if (sellerPrincipal) {\r\n seller = {\r\n raw: sellerPrincipal.toString(),\r\n formatted: formatAddress(sellerPrincipal.toString()),\r\n };\r\n }\r\n }\r\n\r\n const buyerPrincipalAs = isDirectContractEvent\r\n ? details.to?.Principal._arr\r\n : details.buyer?.Principal._arr;\r\n\r\n if (buyerPrincipalAs) {\r\n const principal = parseTablePrincipal(buyerPrincipalAs);\r\n if (principal) {\r\n buyer = {\r\n raw: principal.toString(),\r\n formatted: formatAddress(principal.toString()),\r\n };\r\n }\r\n }\r\n\r\n const tokenIdFieldAs =\r\n details?.token_identifier ?? details?.token_id;\r\n const parsedTokenId =\r\n tokenIdFieldAs?.U64 ?? parseTokenId(tokenIdFieldAs?.Text);\r\n\r\n acc.push({\r\n item: {\r\n name: `CAP Crowns #${parsedTokenId}`,\r\n },\r\n type: operationType,\r\n price:\r\n details?.price?.U64 &&\r\n parseE8SAmountToWICP(details.price.U64),\r\n seller: seller ? tablePrincipalHandler(seller) : {},\r\n buyer: buyer ? tablePrincipalHandler(buyer) : {},\r\n date: formatTimestamp(BigInt(curr.event.time)),\r\n time: curr.event.time,\r\n floorDifference: '',\r\n });\r\n\r\n const sortedTransactionsByTime = sortTransactionsByTime(acc);\r\n\r\n return sortedTransactionsByTime;\r\n }, [] as TokenTransactionItem[]);\r\n\r\n return parsed;\r\n};\r\n\r\n// TODO: update data type while using collection details\r\nexport const parseGetCollectionsResponse = (data: Array) => {\r\n const parsed = data.reduce((accParent, currParent) => {\r\n const collection: any = {\r\n collectionName: currParent[1]?.collection_name,\r\n fungibleVolume: parseE8SAmountToWICP(\r\n currParent[1]?.fungible_volume,\r\n ),\r\n };\r\n\r\n return [...accParent, collection];\r\n }, [] as Array);\r\n\r\n return parsed;\r\n};\r\n\r\n// TODO: update data type while using collection details\r\nexport const parseBalanceResponse = (data: Array) => {\r\n const parsed = data.reduce((accParent, currParent) => {\r\n const assetsToWithdraw: AssetToWithdraw = {\r\n principalId: Principal.fromUint8Array(\r\n currParent[0]._arr,\r\n ).toString(),\r\n amount: parseE8SAmountToWICP(currParent[1]),\r\n };\r\n\r\n return [...accParent, assetsToWithdraw];\r\n }, [] as AssetsToWithdraw);\r\n\r\n return parsed;\r\n};\r\n","import { Principal } from '@dfinity/principal';\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport { actorInstanceHandler } from '../../../../integrations/actor';\r\nimport {\r\n GetBuyerOffers,\r\n marketplaceSlice,\r\n} from '../marketplace-slice';\r\nimport config from '../../../../config/env';\r\nimport { getICPPrice } from '../../../../integrations/marketplace/price.utils';\r\nimport { notificationActions } from '../../notifications';\r\nimport { parseOffersMadeResponse } from '../../../../utils/parser';\r\nimport { OffersTableItem } from '../../../../declarations/legacy';\r\nimport { AppLog } from '../../../../utils/log';\r\nimport { parseE8SAmountToWICP } from '../../../../utils/formatters';\r\n\r\nexport type GetBuyerOffersProps = DefaultCallbacks & GetBuyerOffers;\r\n\r\nexport const getBuyerOffers = createAsyncThunk<\r\n OffersTableItem[] | undefined,\r\n GetBuyerOffersProps\r\n>('marketplace/getBuyerOffers', async (params, thunkAPI) => {\r\n // Checks if an actor instance exists already\r\n // otherwise creates a new instance\r\n const actorInstance = await actorInstanceHandler({\r\n thunkAPI,\r\n serviceName: 'marketplace',\r\n slice: marketplaceSlice,\r\n });\r\n\r\n const { userPrincipalId, onSuccess, onFailure } = params;\r\n\r\n try {\r\n let floorDifferencePrice;\r\n let currencyMarketPrice;\r\n const nonFungibleContractAddress = Principal.fromText(\r\n config.nftCollectionId,\r\n );\r\n const userPrincipalAddress = Principal.fromText(userPrincipalId);\r\n const result = await actorInstance.getBuyerOffers(\r\n nonFungibleContractAddress,\r\n userPrincipalAddress,\r\n );\r\n\r\n // Floor Difference calculation\r\n const floorDifferenceResponse = await actorInstance.getFloor(\r\n nonFungibleContractAddress,\r\n );\r\n if ('Ok' in floorDifferenceResponse) {\r\n floorDifferencePrice = floorDifferenceResponse.Ok.toString();\r\n }\r\n\r\n // Fetch ICP Price\r\n const icpPriceResponse = await getICPPrice();\r\n if (icpPriceResponse && icpPriceResponse.usd) {\r\n currencyMarketPrice = icpPriceResponse.usd;\r\n }\r\n\r\n const parsedTokenOffers = parseOffersMadeResponse({\r\n data: result,\r\n floorDifferencePrice: parseE8SAmountToWICP(\r\n floorDifferencePrice,\r\n ),\r\n currencyMarketPrice,\r\n });\r\n\r\n if (typeof onSuccess === 'function') {\r\n onSuccess(parsedTokenOffers);\r\n }\r\n\r\n return parsedTokenOffers;\r\n } catch (err) {\r\n AppLog.error(err);\r\n thunkAPI.dispatch(\r\n notificationActions.setErrorMessage(\r\n 'Oops! Failed to get buyer offers',\r\n ),\r\n );\r\n if (typeof onFailure === 'function') {\r\n onFailure(err);\r\n }\r\n }\r\n});\r\n","import { Principal } from '@dfinity/principal';\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport { actorInstanceHandler } from '../../../../integrations/actor';\r\nimport {\r\n GetUserReceivedOffer,\r\n marketplaceActions,\r\n marketplaceSlice,\r\n} from '../marketplace-slice';\r\nimport config from '../../../../config/env';\r\nimport { getICPPrice } from '../../../../integrations/marketplace/price.utils';\r\nimport { parseGetTokenOffersResponse } from '../../../../utils/parser';\r\nimport { notificationActions } from '../../notifications';\r\nimport { AppLog } from '../../../../utils/log';\r\nimport { parseE8SAmountToWICP } from '../../../../utils/formatters';\r\n\r\nexport type GetUserReceivedOfferProps = DefaultCallbacks &\r\n GetUserReceivedOffer;\r\n\r\nexport const getTokenOffers = createAsyncThunk<\r\n ReturnType | undefined,\r\n GetUserReceivedOfferProps\r\n>(\r\n 'marketplace/getTokenOffers',\r\n async (\r\n { ownerTokenIdentifiers, onSuccess, onFailure },\r\n thunkAPI,\r\n ) => {\r\n // Checks if an actor instance exists already\r\n // otherwise creates a new instance\r\n const actorInstance = await actorInstanceHandler({\r\n thunkAPI,\r\n serviceName: 'marketplace',\r\n slice: marketplaceSlice,\r\n });\r\n\r\n thunkAPI.dispatch(marketplaceActions.setOffersLoaded(false));\r\n\r\n try {\r\n let floorDifferencePrice;\r\n let currencyMarketPrice;\r\n const nonFungibleContractAddress = Principal.fromText(\r\n config.nftCollectionId,\r\n );\r\n const result = await actorInstance.getTokenOffers(\r\n nonFungibleContractAddress,\r\n ownerTokenIdentifiers,\r\n );\r\n\r\n // Floor Difference calculation\r\n const floorDifferenceResponse = await actorInstance.getFloor(\r\n nonFungibleContractAddress,\r\n );\r\n if ('Ok' in floorDifferenceResponse) {\r\n floorDifferencePrice = floorDifferenceResponse.Ok.toString();\r\n }\r\n\r\n // Fetch ICP Price\r\n const icpPriceResponse = await getICPPrice();\r\n if (icpPriceResponse && icpPriceResponse.usd) {\r\n currencyMarketPrice = icpPriceResponse.usd;\r\n }\r\n\r\n const parsedTokenOffers =\r\n !Array.isArray(result) || !result.length\r\n ? []\r\n : parseGetTokenOffersResponse({\r\n data: result,\r\n floorDifferencePrice: parseE8SAmountToWICP(\r\n floorDifferencePrice,\r\n ),\r\n currencyMarketPrice,\r\n });\r\n\r\n if (typeof onSuccess === 'function') {\r\n onSuccess(parsedTokenOffers);\r\n }\r\n\r\n thunkAPI.dispatch(marketplaceActions.setOffersLoaded(true));\r\n\r\n return parsedTokenOffers;\r\n } catch (err) {\r\n AppLog.error(err);\r\n thunkAPI.dispatch(\r\n notificationActions.setErrorMessage(\r\n `Oops! Failed to get token offers`,\r\n ),\r\n );\r\n if (typeof onFailure === 'function') {\r\n onFailure(err);\r\n }\r\n }\r\n },\r\n);\r\n","import { Principal } from '@dfinity/principal';\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport { actorInstanceHandler } from '../../../../integrations/actor';\r\nimport { marketplaceSlice } from '../marketplace-slice';\r\nimport { notificationActions } from '../../notifications';\r\nimport config from '../../../../config/env';\r\nimport { AppLog } from '../../../../utils/log';\r\n\r\nexport const getTokenListing = createAsyncThunk(\r\n 'marketplace/getTokenListing',\r\n async (params: any, thunkAPI) => {\r\n // Checks if an actor instance exists already\r\n // otherwise creates a new instance\r\n const actorInstance = await actorInstanceHandler({\r\n thunkAPI,\r\n serviceName: 'marketplace',\r\n slice: marketplaceSlice,\r\n });\r\n\r\n const { id: tokenId, onFailure, onSuccess } = params;\r\n\r\n try {\r\n const nonFungibleContractAddress = Principal.fromText(\r\n config.nftCollectionId,\r\n );\r\n const result = await actorInstance.getTokenListing(\r\n nonFungibleContractAddress,\r\n BigInt(tokenId),\r\n );\r\n\r\n if (typeof onSuccess !== 'function') return;\r\n\r\n if (!('Ok' in result)) {\r\n AppLog.warn(\r\n `Oops! Failed to get token listing for id ${tokenId}`,\r\n );\r\n\r\n onSuccess();\r\n\r\n return {\r\n [tokenId]: {},\r\n };\r\n }\r\n\r\n onSuccess();\r\n\r\n return {\r\n [tokenId]: result.Ok,\r\n };\r\n } catch (err) {\r\n AppLog.error(err);\r\n thunkAPI.dispatch(\r\n notificationActions.setErrorMessage(\r\n `Oops! Failed to get token listing for id ${tokenId}`,\r\n ),\r\n );\r\n if (typeof onFailure === 'function') {\r\n onFailure(err);\r\n }\r\n }\r\n },\r\n);\r\n","import { Principal } from '@dfinity/principal';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { actorInstanceHandler } from '../../../../integrations/actor';\nimport { marketplaceSlice } from '../marketplace-slice';\nimport config from '../../../../config/env';\nimport { notificationActions } from '../../notifications';\nimport { AppLog } from '../../../../utils/log';\nimport { parseE8SAmountToWICP } from '../../../../utils/formatters';\n\nexport type GetFloorPriceProps = DefaultCallbacks;\n\nexport const getFloorPrice = createAsyncThunk<\n any | undefined,\n GetFloorPriceProps\n>('marketplace/getFloor', async (params, thunkAPI) => {\n // Checks if an actor instance exists already\n // otherwise creates a new instance\n const actorInstance = await actorInstanceHandler({\n thunkAPI,\n serviceName: 'marketplace',\n slice: marketplaceSlice,\n });\n\n const { onSuccess, onFailure } = params;\n\n try {\n let floorPriceinWICP;\n const nonFungibleContractAddress = Principal.fromText(\n config.nftCollectionId,\n );\n\n const floorResponse = await actorInstance.getFloor(\n nonFungibleContractAddress,\n );\n if ('Ok' in floorResponse) {\n const floorPrice = floorResponse.Ok.toString();\n floorPriceinWICP = Number(parseE8SAmountToWICP(floorPrice));\n }\n\n if (typeof onSuccess === 'function') {\n onSuccess(floorPriceinWICP);\n }\n\n return floorPriceinWICP;\n } catch (err) {\n AppLog.error(err);\n thunkAPI.dispatch(\n notificationActions.setErrorMessage(\n `Oops! Failed to get floor price`,\n ),\n );\n if (typeof onFailure === 'function') {\n onFailure(err);\n }\n }\n});\n\n","import { Principal } from '@dfinity/principal';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { actorInstanceHandler } from '../../../../integrations/actor';\nimport { marketplaceSlice } from '../marketplace-slice';\nimport { notificationActions } from '../../notifications';\nimport { AppLog } from '../../../../utils/log';\nimport { parseGetCollectionsResponse } from '../../../../utils/parser';\n\nexport type GetCollectionsProps = DefaultCallbacks;\n\nexport const getCollections = createAsyncThunk<\n any | undefined,\n GetCollectionsProps\n>('marketplace/getCollections', async (params, thunkAPI) => {\n // Checks if an actor instance exists already\n // otherwise creates a new instance\n const actorInstance = await actorInstanceHandler({\n thunkAPI,\n serviceName: 'marketplace',\n slice: marketplaceSlice,\n });\n\n const { onSuccess, onFailure } = params;\n\n try {\n const collectionsResponse = await actorInstance.getCollections();\n\n const parsedCollections =\n !Array.isArray(collectionsResponse) ||\n !collectionsResponse.length\n ? []\n : parseGetCollectionsResponse(collectionsResponse);\n\n if (typeof onSuccess === 'function') {\n onSuccess(parsedCollections);\n }\n\n return parsedCollections;\n } catch (err) {\n AppLog.error(err);\n thunkAPI.dispatch(\n notificationActions.setErrorMessage(\n `Oops! Failed to get collection details`,\n ),\n );\n if (typeof onFailure === 'function') {\n onFailure(err);\n }\n }\n});\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\nimport type { RootState } from '../../store';\r\n\r\ninterface AlertsData {\r\n principalId: string;\r\n amount: string;\r\n}\r\n\r\nexport interface SettingsState {\r\n collapsed: boolean;\r\n displayPriceApplyButton: boolean;\r\n showAlerts: boolean;\r\n assetsToWithdraw: AlertsData[];\r\n}\r\n\r\nconst initialState: SettingsState = {\r\n collapsed: false,\r\n displayPriceApplyButton: false,\r\n showAlerts: false,\r\n assetsToWithdraw: [],\r\n};\r\n\r\nexport const settingsSlice = createSlice({\r\n name: 'settings',\r\n initialState,\r\n reducers: {\r\n setFilterCollapsed: (state, action: PayloadAction) => {\r\n state.collapsed = action.payload;\r\n },\r\n setPriceApplyButton: (state, action: PayloadAction) => {\r\n state.displayPriceApplyButton = action.payload;\r\n },\r\n setAlerts: (state, action: PayloadAction) => {\r\n const assets = action.payload;\r\n state.assetsToWithdraw = assets;\r\n\r\n if (!assets.length) {\r\n state.showAlerts = false;\r\n return;\r\n }\r\n\r\n state.showAlerts = true;\r\n },\r\n },\r\n});\r\n\r\nexport const settingsActions = settingsSlice.actions;\r\n\r\nexport const selectSettingsState = (state: RootState) =>\r\n state.settings;\r\n\r\nexport default settingsSlice.reducer;\r\n","import { useAppSelector } from '../../hooks';\r\nimport { selectSettingsState } from './settings-slice';\r\n\r\nexport const useSettingsStore = () =>\r\n useAppSelector(selectSettingsState);\r\n","import { Principal } from '@dfinity/principal';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { actorInstanceHandler } from '../../../../integrations/actor';\nimport { marketplaceSlice } from '../marketplace-slice';\nimport { AppLog } from '../../../../utils/log';\nimport { parseBalanceResponse } from '../../../../utils/parser';\nimport { settingsActions } from '../../settings';\n\nexport type GetAssetsToWithdrawProps = {\n userPrincipalId: string;\n};\n\nexport const getAssetsToWithdraw = createAsyncThunk<\n any | undefined,\n GetAssetsToWithdrawProps\n>('marketplace/balanceOf', async (params, thunkAPI) => {\n // Checks if an actor instance exists already\n // otherwise creates a new instance\n const actorInstance = await actorInstanceHandler({\n thunkAPI,\n serviceName: 'marketplace',\n slice: marketplaceSlice,\n });\n\n const { userPrincipalId } = params;\n\n try {\n const userPrincipalAddress = Principal.fromText(userPrincipalId);\n\n const balanceResponse = await actorInstance.balanceOf(\n userPrincipalAddress,\n );\n\n const assetsToWithdraw =\n !Array.isArray(balanceResponse) || !balanceResponse.length\n ? []\n : parseBalanceResponse(balanceResponse);\n\n if (!assetsToWithdraw.length) return;\n\n thunkAPI.dispatch(settingsActions.setAlerts(assetsToWithdraw));\n\n return assetsToWithdraw;\n } catch (err) {\n AppLog.error(err);\n }\n});\n","import { Principal } from '@dfinity/principal';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { actorInstanceHandler } from '../../../../integrations/actor';\nimport { marketplaceSlice } from '../marketplace-slice';\nimport { notificationActions } from '../../notifications';\nimport { AppLog } from '../../../../utils/log';\nimport { errorMessageHandler } from '../../../../utils/error';\n\ntype Fungible = {\n principalId: string;\n};\n\nexport type WithdrawFungibleProps = DefaultCallbacks & Fungible;\n\nexport const withdrawFungible = createAsyncThunk<\n any | undefined,\n WithdrawFungibleProps\n>('marketplace/withdrawFungible', async (params, thunkAPI) => {\n // Checks if an actor instance exists already\n // otherwise creates a new instance\n const actorInstance = await actorInstanceHandler({\n thunkAPI,\n serviceName: 'marketplace',\n slice: marketplaceSlice,\n });\n\n const { onSuccess, onFailure, principalId } = params;\n\n try {\n const fungibleStandard = { DIP20: null };\n const principalAddress = Principal.fromText(principalId);\n\n const withdrawResponse = await actorInstance.withdrawFungible(\n principalAddress,\n fungibleStandard,\n );\n\n if ('Err' in withdrawResponse)\n throw new Error(errorMessageHandler(withdrawResponse.Err));\n\n if (typeof onSuccess !== 'function') return;\n\n onSuccess();\n\n return withdrawResponse;\n } catch (err: any) {\n AppLog.error(err);\n\n const defaultErrorMessage = `Oops! Failed to withdraw assets`;\n\n thunkAPI.dispatch(\n notificationActions.setErrorMessage(\n err?.message || defaultErrorMessage,\n ),\n );\n if (typeof onFailure === 'function') {\n onFailure(err);\n }\n }\n});\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { ActorSubclass } from '@dfinity/agent';\r\nimport marketplaceIdlService, {\r\n Listing,\r\n} from '../../../declarations/marketplace';\r\nimport { OwnerTokenIdentifiers } from '../crowns/crowns-slice';\r\nimport {\r\n acceptOffer,\r\n getBuyerOffers,\r\n getTokenListing,\r\n makeListing,\r\n cancelListing,\r\n cancelOffer,\r\n directBuy,\r\n getTokenOffers,\r\n makeOffer,\r\n getFloorPrice,\r\n getCollections,\r\n getAssetsToWithdraw,\r\n withdrawFungible,\r\n} from './async-thunks';\r\n\r\nexport type MakeListing = {\r\n id: string;\r\n amount: string;\r\n};\r\n\r\nexport type DirectBuy = {\r\n tokenId: BigInt;\r\n price: string;\r\n};\r\n\r\nexport type CancelListing = {\r\n id: string;\r\n};\r\n\r\nexport type MakeOffer = {\r\n id: string;\r\n amount: string;\r\n};\r\n\r\nexport type AcceptOffer = {\r\n id: string;\r\n buyerPrincipalId: string;\r\n offerPrice: string;\r\n};\r\n\r\nexport type CancelOffer = {\r\n id: string;\r\n};\r\n\r\nexport type GetUserReceivedOffer = {\r\n ownerTokenIdentifiers?: OwnerTokenIdentifiers;\r\n};\r\n\r\nexport type GetBuyerOffers = {\r\n userPrincipalId: string;\r\n};\r\n\r\ntype RecentyListedForSale = MakeListing[];\r\n\r\ntype MarketplaceActor = ActorSubclass;\r\n\r\ntype InitialState = {\r\n recentlyListedForSale: RecentyListedForSale;\r\n // TODO: the recently* should be typed\r\n // as we know which types it has\r\n recentlyCancelledItems: any;\r\n recentlyCancelledOffers: any;\r\n recentlyAcceptedOffers: any[];\r\n actor?: MarketplaceActor;\r\n tokenListing: Record;\r\n tokenOffers: any[];\r\n recentlyMadeOffers: any[];\r\n recentlyPurchasedTokens: any[];\r\n recentlyWithdrawnAssets: any[];\r\n sumOfUserAllowance: number;\r\n recentlyFailedTransactions: string[];\r\n offersLoaded: boolean;\r\n};\r\n\r\nconst initialState: InitialState = {\r\n recentlyListedForSale: [],\r\n recentlyCancelledItems: [],\r\n recentlyCancelledOffers: [],\r\n recentlyAcceptedOffers: [],\r\n tokenListing: {},\r\n tokenOffers: [],\r\n recentlyMadeOffers: [],\r\n recentlyPurchasedTokens: [],\r\n recentlyWithdrawnAssets: [],\r\n sumOfUserAllowance: 0,\r\n recentlyFailedTransactions: [],\r\n offersLoaded: false,\r\n};\r\n\r\nexport const marketplaceSlice = createSlice({\r\n name: 'marketplace',\r\n initialState,\r\n reducers: {\r\n setActor: (state, action: PayloadAction) => {\r\n state.actor = action.payload;\r\n },\r\n setSumOfUserAllowance: (state, action: PayloadAction) => {\r\n state.sumOfUserAllowance = action.payload;\r\n },\r\n setFailedTransactions: (state, action: PayloadAction) => {\r\n if (!action.payload) return;\r\n\r\n state.recentlyFailedTransactions.push(action.payload);\r\n },\r\n setOffersLoaded: (state, action: PayloadAction) => {\r\n if (!action.payload) return;\r\n\r\n state.offersLoaded = action.payload;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(makeListing.fulfilled, (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.recentlyListedForSale.push(action.payload);\r\n });\r\n\r\n builder.addCase(getTokenListing.fulfilled, (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.tokenListing = {\r\n ...state.tokenListing,\r\n ...action.payload,\r\n };\r\n });\r\n\r\n builder.addCase(cancelListing.fulfilled, (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.recentlyCancelledItems.push(action.payload?.id);\r\n });\r\n\r\n builder.addCase(cancelOffer.fulfilled, (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.recentlyCancelledOffers.push(action.payload?.id);\r\n });\r\n\r\n builder.addCase(acceptOffer.fulfilled, (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.recentlyAcceptedOffers.push(action.payload);\r\n });\r\n builder.addCase(getTokenOffers.fulfilled, (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.tokenOffers = action.payload;\r\n });\r\n builder.addCase(makeOffer.fulfilled, (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.recentlyMadeOffers.push(action.payload);\r\n });\r\n builder.addCase(directBuy.fulfilled, (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.recentlyPurchasedTokens.push(action.payload);\r\n });\r\n builder.addCase(withdrawFungible.fulfilled, (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.recentlyWithdrawnAssets.push(action.payload);\r\n });\r\n },\r\n});\r\n\r\nexport const marketplaceActions = {\r\n ...marketplaceSlice.actions,\r\n acceptOffer,\r\n cancelListing,\r\n cancelOffer,\r\n directBuy,\r\n getBuyerOffers,\r\n getTokenListing,\r\n getTokenOffers,\r\n makeListing,\r\n makeOffer,\r\n getFloorPrice,\r\n getCollections,\r\n getAssetsToWithdraw,\r\n withdrawFungible,\r\n};\r\n\r\nexport default marketplaceSlice.reducer;\r\n","import axios from 'axios';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { nftsActions } from '../nfts-slice';\nimport { KyasshuUrl } from '../../../../integrations/kyasshu';\nimport { notificationActions } from '../../notifications';\nimport { AppLog } from '../../../../utils/log';\nimport { marketplaceActions } from '../../marketplace/marketplace-slice';\n\nexport const getCollectionData = createAsyncThunk(\n 'nfts/getCollectionData',\n async (_, { dispatch }) => {\n dispatch(nftsActions.setCollectionDataLoading());\n\n try {\n const response = await axios.get(\n KyasshuUrl.getCollectionData(),\n );\n if (response.status !== 200) {\n throw Error(response.statusText);\n }\n\n const responseData = response?.data;\n\n const actionPayload = {\n itemsCount: responseData?.items || 0,\n ownersCount: responseData?.owners || 0,\n price: 0,\n totalVolume: 0,\n };\n\n await dispatch(\n marketplaceActions.getFloorPrice({\n onSuccess: (floorPrice) => {\n if (!floorPrice) return;\n\n actionPayload.price = floorPrice;\n },\n onFailure: () => {\n // TODO: handle failure scenario\n },\n }),\n );\n\n await dispatch(\n marketplaceActions.getCollections({\n onSuccess: (collections) => {\n if (!collections.length) return;\n\n const crownsCollection = collections[0];\n\n actionPayload.totalVolume = Number(\n crownsCollection?.fungibleVolume,\n );\n },\n onFailure: () => {\n // TODO: handle failure scenario\n },\n }),\n );\n\n dispatch(nftsActions.setCollectionData(actionPayload));\n } catch (error) {\n AppLog.error(error);\n dispatch(\n notificationActions.setErrorMessage(\n 'Oops! Unable to fetch collection data',\n ),\n );\n }\n },\n);\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\nimport type { RootState } from '../../store';\r\nimport { NFTMetadata } from '../../../declarations/legacy';\r\nimport {\r\n getNFTDetails,\r\n getNFTs,\r\n getCollectionData,\r\n} from './async-thunks';\r\n\r\n// Define a type for the slice state\r\ninterface NFTSState {\r\n loadingNFTs: boolean;\r\n loadedNFTS: NFTMetadata[];\r\n failedToLoadNFTS: boolean;\r\n failedToLoadNFTSMessage: string;\r\n hasMoreNFTs: boolean;\r\n nextPageNo: number;\r\n loadingCollectionData: boolean;\r\n totalNFTSCount: number;\r\n totalOwnersCount: number;\r\n floorPrice: number;\r\n totalVolume: number;\r\n}\r\n\r\n// Define the initial state using that type\r\nconst initialState: NFTSState = {\r\n loadingNFTs: false,\r\n loadedNFTS: [],\r\n failedToLoadNFTS: false,\r\n failedToLoadNFTSMessage: '',\r\n hasMoreNFTs: false,\r\n nextPageNo: 0,\r\n loadingCollectionData: false,\r\n totalNFTSCount: 0,\r\n totalOwnersCount: 0,\r\n floorPrice: 0,\r\n totalVolume: 0,\r\n};\r\n\r\nexport interface LoadedNFTData {\r\n loadedNFTList: NFTMetadata[];\r\n totalPages: number;\r\n total: number;\r\n nextPage: number;\r\n}\r\n\r\ninterface ListedNFTData {\r\n id: string;\r\n amount: string;\r\n}\r\ninterface CancelNFTFromListingData {\r\n id: string;\r\n}\r\n\r\ninterface AcceptedNFTOfferData {\r\n id: string;\r\n buyerId: string;\r\n}\r\n\r\ninterface FindNFTIndexData {\r\n nftList: NFTMetadata[];\r\n idToFind: string;\r\n}\r\n\r\ninterface LoadedCollectionData {\r\n itemsCount: number;\r\n ownersCount: number;\r\n price: number;\r\n totalVolume: number;\r\n}\r\n\r\nconst findNFTIndex = ({ nftList, idToFind }: FindNFTIndexData) => {\r\n if (!nftList || !idToFind) {\r\n return -1;\r\n }\r\n\r\n const index = nftList.findIndex((nft) => nft.id === idToFind);\r\n\r\n return index;\r\n};\r\n\r\nexport const nftsSlice = createSlice({\r\n name: 'nfts',\r\n // `createSlice` will infer the state type from the `initialState` argument\r\n initialState,\r\n reducers: {\r\n setIsNFTSLoading: (state, action: PayloadAction) => {\r\n state.loadingNFTs = action.payload;\r\n if (state.failedToLoadNFTS) {\r\n state.failedToLoadNFTS = false;\r\n }\r\n },\r\n setLoadedNFTS: (state, action: PayloadAction) => {\r\n const { loadedNFTList, totalPages, nextPage } = action.payload;\r\n state.loadingNFTs = false;\r\n if (nextPage === 1) {\r\n state.loadedNFTS = loadedNFTList;\r\n } else {\r\n state.loadedNFTS.push(...loadedNFTList);\r\n }\r\n if (nextPage < totalPages) {\r\n state.hasMoreNFTs = true;\r\n state.nextPageNo = nextPage;\r\n } else {\r\n state.hasMoreNFTs = false;\r\n }\r\n },\r\n clearLoadedNFTS: (state) => {\r\n state.loadedNFTS = [];\r\n state.hasMoreNFTs = false;\r\n state.nextPageNo = 0;\r\n },\r\n setFailedToLoadNFTS: (state, action: PayloadAction) => {\r\n state.failedToLoadNFTS = !action.payload;\r\n state.loadingNFTs = action.payload;\r\n },\r\n setLoadedNFTDetails: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n const { id } = action.payload;\r\n const index = state.loadedNFTS.findIndex(\r\n (nft) => nft.id === id,\r\n );\r\n\r\n if (index > -1) {\r\n state.loadedNFTS[index] = action.payload;\r\n\r\n return;\r\n }\r\n\r\n state.loadedNFTS.push(action.payload);\r\n },\r\n setNFTForSale: (state, action: PayloadAction) => {\r\n const { id, amount } = action.payload;\r\n const index = findNFTIndex({\r\n nftList: state.loadedNFTS,\r\n idToFind: id,\r\n });\r\n\r\n if (index < 0) return;\r\n\r\n state.loadedNFTS[index].isListed = true;\r\n state.loadedNFTS[index].price = amount;\r\n },\r\n // TODO: Do not change the state manually,\r\n // if required query from the API and update the global state\r\n // as ultimately you DO NOT WANT to manage state, which is difficult\r\n // specially when you have two sources, the application state which\r\n // is somehow detached from the API state, which is the source\r\n cancelNFTFromListing: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n const { id } = action.payload;\r\n const index = findNFTIndex({\r\n nftList: state.loadedNFTS,\r\n idToFind: id,\r\n });\r\n\r\n if (index < 0) return;\r\n\r\n state.loadedNFTS[index].isListed = false;\r\n },\r\n acceptNFTOffer: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n const { id, buyerId } = action.payload;\r\n const index = findNFTIndex({\r\n nftList: state.loadedNFTS,\r\n idToFind: id,\r\n });\r\n\r\n if (index < 0) return;\r\n\r\n state.loadedNFTS[index].isListed = false;\r\n state.loadedNFTS[index].owner = buyerId;\r\n },\r\n setCollectionDataLoading: (state) => {\r\n state.loadingCollectionData = true;\r\n },\r\n setCollectionData: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n const { itemsCount, ownersCount, price, totalVolume } =\r\n action.payload;\r\n state.totalNFTSCount = itemsCount;\r\n state.totalOwnersCount = ownersCount;\r\n state.floorPrice = price;\r\n state.totalVolume = totalVolume;\r\n state.loadingCollectionData = false;\r\n },\r\n },\r\n});\r\n\r\nexport const nftsActions = {\r\n ...nftsSlice.actions,\r\n getNFTs,\r\n getNFTDetails,\r\n getCollectionData,\r\n};\r\n\r\n// Other code such as selectors can use the imported `RootState` type\r\nexport const selectNFTSState = (state: RootState) => state.nfts;\r\n\r\nexport default nftsSlice.reducer;\r\n","import { useAppSelector } from '../../hooks';\r\nimport { selectNFTSState } from './nfts-slice';\r\n\r\nexport const useNFTSStore = () => useAppSelector(selectNFTSState);\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport axios from 'axios';\r\nimport { dateRelative } from '../../../../integrations/functions/date';\r\nimport { KyasshuUrl } from '../../../../integrations/kyasshu';\r\nimport { AppLog } from '../../../../utils/log';\r\nimport { notificationActions } from '../../notifications';\r\nimport { CapActivityParams, tableActions } from '../table-slice';\r\nimport {\r\n getOperationType,\r\n parseTablePrincipal,\r\n} from '../../../../utils/parser';\r\n\r\nexport type GetCAPActivityProps = CapActivityParams;\r\n\r\nexport const getCAPActivity = createAsyncThunk<\r\n void,\r\n GetCAPActivityProps\r\n>(\r\n 'table/getCAPActivity',\r\n async ({ pageCount, bucketId }, { dispatch }) => {\r\n dispatch(tableActions.setIsTableDataLoading(true));\r\n\r\n try {\r\n const response = await axios.get(\r\n KyasshuUrl.getCAPActivity({ pageCount: pageCount, bucketId }),\r\n );\r\n const { Items, Count } = response.data;\r\n let pageNo;\r\n const result = Items.map((item: any) => {\r\n pageNo = item.page;\r\n\r\n const capData = {\r\n operation: getOperationType(item.event.operation),\r\n time: dateRelative(item.event.time),\r\n };\r\n\r\n const { details } = item.event;\r\n details.forEach((detail: any) => {\r\n const [key, value] = detail;\r\n (capData as any)[key] = value.U64 ?? value;\r\n });\r\n\r\n return capData;\r\n });\r\n\r\n const loadedCapActivityTableData = result.map(\r\n (tableData: any) => {\r\n // eslint-disable-next-line no-underscore-dangle\r\n const seller = parseTablePrincipal(\r\n tableData.seller.Principal._arr,\r\n );\r\n // eslint-disable-next-line no-underscore-dangle\r\n const buyer =\r\n tableData?.buyer &&\r\n parseTablePrincipal(tableData.buyer.Principal._arr);\r\n\r\n const data = {\r\n item: {\r\n name: `CAP Crowns #${tableData.token_id}`,\r\n token_id: tableData.token_id,\r\n },\r\n type: tableData.operation,\r\n price: `${tableData.list_price ?? tableData.price}`,\r\n seller,\r\n buyer,\r\n time: tableData.time,\r\n callerDfinityExplorerUrl:\r\n tableData.callerDfinityExplorerUrl,\r\n };\r\n\r\n return data;\r\n },\r\n );\r\n\r\n const actionPayload = {\r\n loadedCapActivityTableData,\r\n currentPage: pageCount,\r\n nextPage: Number(pageNo) - 1,\r\n };\r\n\r\n dispatch(tableActions.setCapActivityTable(actionPayload));\r\n } catch (error) {\r\n AppLog.error(error);\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n 'Oops! Unable to fetch activity table data',\r\n ),\r\n );\r\n }\r\n },\r\n);\r\n","import axios from 'axios';\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport {\r\n KyasshuUrl,\r\n NSKyasshuUrl,\r\n} from '../../../../integrations/kyasshu';\r\nimport { TokenMetadataById } from '../table-slice';\r\nimport { AppLog } from '../../../../utils/log';\r\n\r\nexport type GetTokenMetadataProps =\r\n NSKyasshuUrl.GetNFTDetailsQueryParams;\r\n\r\nexport const getTokenMetadata = createAsyncThunk<\r\n TokenMetadataById | undefined,\r\n GetTokenMetadataProps\r\n>('table/getTokenMetadata', async ({ id }) => {\r\n try {\r\n const response = await axios.get(\r\n KyasshuUrl.getNFTDetails({ id }),\r\n );\r\n const thumbnail = response?.data?.metadata?.thumbnail?.value?.TextContent;\r\n\r\n if (!thumbnail) throw Error('Oops! Failed to retrieve thumbnail from metadata');\r\n\r\n return {\r\n [id]: thumbnail,\r\n };\r\n } catch (error) {\r\n AppLog.error(error);\r\n }\r\n});\r\n","import axios from 'axios';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport {\n KyasshuUrl,\n NSKyasshuUrl,\n} from '../../../../integrations/kyasshu';\nimport { AppLog } from '../../../../utils/log';\nimport { parseTokenTransactions } from '../../../../utils/parser';\n\nexport const getTokenTransactions = createAsyncThunk<\n NSKyasshuUrl.GetTokenTransactions | undefined,\n NSKyasshuUrl.GetTokenTransactions\n>('table/getTokenTransactions', async ({ tokenId }) => {\n try {\n const response = await axios.get(\n KyasshuUrl.getTokenTransactions({ tokenId }),\n );\n\n if (\n !response ||\n response.status !== 200 ||\n !('Items' in response.data)\n ) {\n AppLog.error(response);\n throw Error('Oops! Failed to get the token transactions');\n }\n\n const parsed = parseTokenTransactions({\n items: response.data.Items,\n });\n\n if (!parsed) {\n throw Error(\n 'Oops! Failed to parse the token transactions response',\n );\n }\n\n return parsed;\n } catch (error) {\n AppLog.error(error);\n }\n});\n\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport { Principal } from '@dfinity/principal';\nimport { CapRoot } from '@psychedelic/cap-js';\nimport { formatTimestamp } from '../../../../integrations/functions/date';\nimport { AppLog } from '../../../../utils/log';\nimport { notificationActions } from '../../notifications';\nimport { UserActivityParams, tableActions } from '../table-slice';\nimport {\n getOperationType,\n parseTablePrincipal,\n} from '../../../../utils/parser';\nimport config from '../../../../config/env';\nimport { sortActivitiesByTime } from '../../../../utils/sorting';\n\nexport type GetUserActivityProps = UserActivityParams;\n\nexport const getUserActivity = createAsyncThunk<\n void,\n GetUserActivityProps\n>(\n 'table/getUserActivity',\n async ({ pageCount, bucketId, plugPrincipal }, { dispatch }) => {\n dispatch(tableActions.setIsTableDataLoading(true));\n\n try {\n const userAddress = Principal.fromText(plugPrincipal);\n\n const capRoot = await CapRoot.init({\n host: config.host,\n canisterId: bucketId.toString(),\n });\n\n const response = await capRoot.get_user_transactions({\n // Obs: type diff in Principal typedef in packages\n // current @dfinity/principal and cap-js @dfinity/principal\n user: userAddress as any,\n page: pageCount,\n witness: false,\n });\n\n const { data, page: pageNo } = response;\n\n const activities = sortActivitiesByTime(data);\n\n const result = activities.map((activity: any) => {\n const capData = {\n operation: getOperationType(activity.operation),\n time: formatTimestamp(activity.time),\n };\n\n const { details } = activity;\n details.forEach((detail: any) => {\n const [key, value] = detail;\n (capData as any)[key] = value.U64 ?? value;\n });\n\n return capData;\n });\n\n const loadedUserActivityData = result.map((tableData: any) => {\n // eslint-disable-next-line no-underscore-dangle\n const seller = parseTablePrincipal(\n // eslint-disable-next-line no-underscore-dangle\n tableData.seller.Principal._arr,\n );\n // eslint-disable-next-line no-underscore-dangle\n const buyer =\n tableData?.buyer &&\n // eslint-disable-next-line no-underscore-dangle\n parseTablePrincipal(tableData.buyer.Principal._arr);\n\n return {\n item: {\n name: `CAP Crowns #${tableData.token_id}`,\n token_id: tableData.token_id,\n },\n type: tableData.operation,\n price: `${tableData.list_price ?? tableData.price}`,\n seller,\n buyer,\n time: tableData.time,\n callerDfinityExplorerUrl:\n tableData.callerDfinityExplorerUrl,\n };\n });\n\n const actionPayload = {\n loadedUserActivityData,\n currentPage: pageCount,\n nextPage: pageNo + 1,\n };\n\n dispatch(tableActions.setUserActivityTable(actionPayload));\n } catch (error) {\n AppLog.error(error);\n dispatch(\n notificationActions.setErrorMessage(\n 'Oops! Unable to fetch user activity table data',\n ),\n );\n }\n },\n);\n\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport type { RootState } from '../../store';\r\nimport {\r\n getCAPActivity,\r\n getTokenMetadata,\r\n getTokenTransactions,\r\n getUserActivity,\r\n} from './async-thunks';\r\n\r\ninterface LoadedTableMetaData {\r\n media: string;\r\n}\r\n\r\nexport interface TableState {\r\n loadedCapActivityData: Array;\r\n loadedTableMetaData: LoadedTableMetaData;\r\n loadingTableData: boolean;\r\n failedToLoadTableData: boolean;\r\n hasMoreData: boolean;\r\n nextPageNo: number;\r\n tokenTransactions: any;\r\n loadingTokenTransactions: boolean;\r\n tokenMetadataById: TokenMetadataById;\r\n loadedUserActivityData: Array;\r\n loadingUserTableData: boolean;\r\n hasMoreUserActivities: boolean;\r\n nextUserActivityPageNo: number;\r\n}\r\n\r\nexport interface CapActivityParams {\r\n pageCount: string;\r\n bucketId: string;\r\n}\r\n\r\nexport interface UserActivityParams {\r\n pageCount: number;\r\n bucketId: string;\r\n plugPrincipal: string;\r\n}\r\n\r\nexport type TokenMetadataById = Record;\r\n\r\ninterface LoadedTableData {\r\n loadedCapActivityTableData: Array;\r\n currentPage: string;\r\n nextPage: number;\r\n}\r\n\r\ninterface LoadedUserTableData {\r\n loadedUserActivityData: Array;\r\n currentPage: number;\r\n nextPage: number;\r\n}\r\n\r\nconst initialState: TableState = {\r\n loadedCapActivityData: [],\r\n loadedTableMetaData: {\r\n media: '',\r\n },\r\n loadingTableData: false,\r\n failedToLoadTableData: false,\r\n hasMoreData: false,\r\n nextPageNo: 0,\r\n tokenTransactions: [],\r\n loadingTokenTransactions: true,\r\n tokenMetadataById: {},\r\n loadedUserActivityData: [],\r\n loadingUserTableData: true,\r\n hasMoreUserActivities: false,\r\n nextUserActivityPageNo: 0,\r\n};\r\n\r\nexport const tableSlice = createSlice({\r\n name: 'table',\r\n initialState,\r\n reducers: {\r\n setIsTableDataLoading: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n state.loadingTableData = action.payload;\r\n if (state.failedToLoadTableData) {\r\n state.failedToLoadTableData = false;\r\n }\r\n },\r\n setCapActivityTable: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n const { currentPage, nextPage, loadedCapActivityTableData } =\r\n action.payload;\r\n\r\n state.loadingTableData = false;\r\n\r\n if (currentPage === 'last') {\r\n state.loadedCapActivityData = loadedCapActivityTableData;\r\n } else {\r\n state.loadedCapActivityData.push(\r\n ...loadedCapActivityTableData,\r\n );\r\n }\r\n\r\n if (nextPage >= 0) {\r\n state.hasMoreData = true;\r\n state.nextPageNo = nextPage;\r\n } else {\r\n state.hasMoreData = false;\r\n }\r\n },\r\n setIsUserTableDataLoading: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n state.loadingUserTableData = action.payload;\r\n },\r\n setUserActivityTable: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n const { currentPage, nextPage, loadedUserActivityData } =\r\n action.payload;\r\n\r\n state.loadingUserTableData = false;\r\n\r\n if (currentPage < 1) {\r\n state.loadedUserActivityData = loadedUserActivityData;\r\n } else {\r\n state.loadedUserActivityData.push(...loadedUserActivityData);\r\n }\r\n\r\n if (loadedUserActivityData.length > 0) {\r\n state.hasMoreUserActivities = true;\r\n state.nextUserActivityPageNo = nextPage;\r\n } else {\r\n state.hasMoreUserActivities = false;\r\n }\r\n },\r\n setFailedToLoadTableData: (\r\n state,\r\n action: PayloadAction,\r\n ) => {\r\n state.failedToLoadTableData = !action.payload;\r\n state.loadingTableData = action.payload;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(getTokenMetadata.fulfilled, (state, action) => {\r\n if (!action || !action.payload) return;\r\n\r\n state.tokenMetadataById = {\r\n ...state.tokenMetadataById,\r\n ...action.payload,\r\n };\r\n });\r\n\r\n builder.addCase(getTokenTransactions.pending, (state) => {\r\n state.tokenTransactions = initialState.tokenTransactions;\r\n state.loadingTokenTransactions = true;\r\n });\r\n\r\n builder.addCase(getTokenTransactions.rejected, (state) => {\r\n state.tokenTransactions = initialState.tokenTransactions;\r\n });\r\n\r\n builder.addCase(\r\n getTokenTransactions.fulfilled,\r\n (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.tokenTransactions = action.payload;\r\n state.loadingTokenTransactions = false;\r\n },\r\n );\r\n },\r\n});\r\n\r\nexport const tableActions = {\r\n ...tableSlice.actions,\r\n getCAPActivity,\r\n getTokenMetadata,\r\n getTokenTransactions,\r\n getUserActivity,\r\n};\r\n\r\nexport const selectTableState = (state: RootState) => state.table;\r\n\r\nexport default tableSlice.reducer;\r\n","import { useAppSelector } from '../../hooks';\r\nimport { selectTableState } from './table-slice';\r\n\r\nexport const useTableStore = () => useAppSelector(selectTableState);\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport { Principal } from '@dfinity/principal';\r\nimport { crownsSlice, OwnerTokenIdentifiers } from '../crowns-slice';\r\nimport { actorInstanceHandler } from '../../../../integrations/actor';\r\nimport { AppLog } from '../../../../utils/log';\r\nimport { notificationActions } from '../../notifications';\r\n\r\ntype OwnerTokenIdentifiersProps = DefaultCallbacks & {\r\n principalId: string;\r\n};\r\n\r\nexport const getOwnerTokenIdentifiers = createAsyncThunk<\r\n OwnerTokenIdentifiers | undefined,\r\n OwnerTokenIdentifiersProps\r\n>(\r\n 'crowns/ownerTokenIdentifiers',\r\n async ({ principalId, onFailure }, thunkAPI) => {\r\n // Checks if an actor instance exists already\r\n // otherwise creates a new instance\r\n const actorInstance = await actorInstanceHandler({\r\n thunkAPI,\r\n serviceName: 'crowns',\r\n slice: crownsSlice,\r\n });\r\n\r\n try {\r\n const result = await actorInstance.ownerTokenIdentifiers(\r\n Principal.fromText(principalId),\r\n );\r\n\r\n if (!('Ok' in result)) {\r\n if (\r\n 'Err' in result &&\r\n Object.keys(result.Err).includes('OwnerNotFound')\r\n )\r\n return [];\r\n\r\n throw Error('Invalid response');\r\n }\r\n\r\n return result.Ok;\r\n } catch (err) {\r\n AppLog.error(err);\r\n thunkAPI.dispatch(\r\n notificationActions.setErrorMessage(\r\n 'Oops! Failed to retrieve user tokens',\r\n ),\r\n );\r\n if (typeof onFailure === 'function') {\r\n onFailure(err);\r\n }\r\n }\r\n },\r\n);\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { ActorSubclass } from '@dfinity/agent';\r\nimport crownsIdlService from '../../../declarations/nft';\r\nimport { getOwnerTokenIdentifiers } from './async-thunks';\r\n\r\ntype CrownsActor = ActorSubclass;\r\n\r\ntype InitialStateCrowns = {\r\n actor?: CrownsActor;\r\n ownerTokenIdentifiers: OwnerTokenIdentifier[];\r\n};\r\n\r\ntype OwnerTokenIdentifier = bigint;\r\n\r\nexport type OwnerTokenIdentifiers = OwnerTokenIdentifier[];\r\n\r\nconst initialState: InitialStateCrowns = {\r\n ownerTokenIdentifiers: [],\r\n};\r\n\r\nexport const crownsSlice = createSlice({\r\n name: 'crowns',\r\n initialState,\r\n reducers: {\r\n setActor: (state, action: PayloadAction) => {\r\n state.actor = action.payload;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(\r\n getOwnerTokenIdentifiers.fulfilled,\r\n (state, action) => {\r\n if (!action.payload) return;\r\n\r\n state.ownerTokenIdentifiers = [...action.payload];\r\n },\r\n );\r\n },\r\n});\r\n\r\nexport const crownsActions = {\r\n ...crownsSlice.actions,\r\n getOwnerTokenIdentifiers,\r\n};\r\n\r\nexport default crownsSlice.reducer;\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport { Principal } from '@dfinity/principal';\nimport { capSlice } from '../cap-slice';\nimport { actorInstanceHandler } from '../../../../integrations/actor';\nimport { AppLog } from '../../../../utils/log';\nimport { notificationActions } from '../../notifications';\n\ntype GetTokenContractRootBucket = {\n marketplaceCanisterId: string;\n};\n\nexport const getTokenContractRootBucket = createAsyncThunk<\n string | undefined,\n GetTokenContractRootBucket\n>(\n 'cap/getTokenContractRootBucket',\n async ({ marketplaceCanisterId }, thunkAPI) => {\n thunkAPI.dispatch(capSlice.actions.setLoading(true));\n\n // Checks if an actor instance exists already\n // otherwise creates a new instance\n const actorInstance = await actorInstanceHandler({\n thunkAPI,\n serviceName: 'cap',\n slice: capSlice,\n });\n\n try {\n const result =\n await actorInstance.get_token_contract_root_bucket({\n canister: Principal.fromText(marketplaceCanisterId),\n witness: false,\n });\n\n // eslint-disable-next-line no-underscore-dangle\n if (!result?.canister || !result?.canister[0]._isPrincipal) {\n throw Error(\n 'Oops! Invalid response, canister fieldname not found',\n );\n }\n\n return result.canister[0].toString();\n } catch (err) {\n AppLog.error(err);\n thunkAPI.dispatch(\n notificationActions.setErrorMessage(\n 'Oops! Failed to retrieve bucket id',\n ),\n );\n } finally {\n thunkAPI.dispatch(capSlice.actions.setLoading(false));\n }\n },\n);\n\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { ActorSubclass } from '@dfinity/agent';\nimport { getTokenContractRootBucket } from './async-thunks';\nimport capIdlService from '../../../declarations/cap';\n\ntype CapActor = ActorSubclass;\n\ntype CapState = {\n actor?: CapActor;\n bucketId: string;\n loading: boolean;\n};\n\n// Define the initial state using that type\nconst initialState: CapState = {\n bucketId: '',\n loading: false,\n};\n\nexport const capSlice = createSlice({\n name: 'cap',\n initialState,\n reducers: {\n setActor: (state, action: PayloadAction) => {\n state.actor = action.payload;\n },\n setBucketId: (state, action: PayloadAction) => {\n state.bucketId = action.payload;\n },\n setLoading: (state, action: PayloadAction) => {\n state.loading = action.payload;\n },\n },\n extraReducers: (builder) => {\n builder.addCase(\n getTokenContractRootBucket.fulfilled,\n (state, action) => {\n if (!action.payload) return;\n\n state.bucketId = action.payload;\n },\n );\n },\n});\n\nexport const capActions = {\n ...capSlice.actions,\n getTokenContractRootBucket,\n};\n\nexport default capSlice.reducer;\n\n","import { useAppSelector } from '../../hooks';\r\nimport { RootState } from '../../store';\r\n\r\nexport const selectCapState = (state: RootState) => state.cap;\r\n\r\nexport const useCapStore = () => useAppSelector(selectCapState);\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { ActorSubclass } from '@dfinity/agent';\r\nimport wicpIdlService from '../../../declarations/wicp';\r\n\r\ntype WICPActor = ActorSubclass;\r\n\r\ntype InitialStateCrowns = {\r\n actor?: WICPActor;\r\n};\r\n\r\nconst initialState: InitialStateCrowns = {};\r\n\r\nexport const wicpSlice = createSlice({\r\n name: 'wicp',\r\n initialState,\r\n reducers: {\r\n setActor: (state, action: PayloadAction) => {\r\n state.actor = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport default wicpSlice.reducer;\r\n","import { configureStore } from '@reduxjs/toolkit';\r\n\r\nimport plugReducer from './features/plug/plug-slice';\r\nimport filterReducer from './features/filters/filter-slice';\r\nimport themeReducer from './features/theme/theme-slice';\r\nimport nftsReducer from './features/nfts/nfts-slice';\r\nimport notificationReducer from './features/notifications/notifications-slice';\r\nimport settingsReducer from './features/settings/settings-slice';\r\nimport marketplaceReducer from './features/marketplace/marketplace-slice';\r\nimport crownsReducer from './features/crowns/crowns-slice';\r\nimport wicpReducer from './features/wicp';\r\nimport tableReducer from './features/tables/table-slice';\r\nimport capReducer from './features/cap/cap-slice';\r\n\r\nexport const store = configureStore({\r\n reducer: {\r\n plug: plugReducer,\r\n filter: filterReducer,\r\n theme: themeReducer,\r\n nfts: nftsReducer,\r\n notification: notificationReducer,\r\n settings: settingsReducer,\r\n marketplace: marketplaceReducer,\r\n crowns: crownsReducer,\r\n wicp: wicpReducer,\r\n table: tableReducer,\r\n cap: capReducer,\r\n },\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware({\r\n serializableCheck: false,\r\n }),\r\n});\r\n\r\n// Infer the `RootState` and `AppDispatch` types from the store itself\r\nexport type RootState = ReturnType;\r\nexport type AppDispatch = typeof store.dispatch;\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 { EnhancerOptions 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 { NoInfer, ExtractDispatchExtensions } from './tsHelpers'\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: readonly StoreEnhancer[]\r\n) => StoreEnhancer[]\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> {\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 paramter, \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?: StoreEnhancer[] | ConfigureEnhancersCallback\r\n}\r\n\r\ntype Middlewares = ReadonlyArray>\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 interface EnhancedStore<\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 friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param config 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>(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 = 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 let storeEnhancers: StoreEnhancer[] = [middlewareEnhancer]\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(storeEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as any\r\n\r\n return createStore(rootReducer, preloadedState, composedEnhancer)\r\n}\r\n","import { wicpSlice } from './wicp-slice';\r\n\r\nexport default wicpSlice.reducer;\r\n","import * as React from 'react';\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */\nconst useLayoutEffect = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {};\n\nexport { useLayoutEffect };\n","import * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n// We `toString()` to prevent bundlers from trying to `import { useId } from 'react';`\nconst useReactId = (React as any)['useId'.toString()] || (() => undefined);\nlet count = 0;\n\nfunction useId(deterministicId?: string): string {\n const [id, setId] = React.useState(useReactId());\n // React versions older than 18 will have client-side ids only.\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : '');\n}\n\n// DEPRECATED\nfunction IdProvider({ children }: { children: React.ReactNode }) {\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'development') {\n console.warn(ID_PROVIDER_DEPRECATED);\n }\n }, []);\n return <>{children};\n}\n\nconst ID_PROVIDER_DEPRECATED = `Warning: The \\`IdProvider\\` has been deprecated. For details, see https://radix-ui.com/docs/primitives/utilities/id-provider`;\n\nexport { IdProvider, useId };\n","import * as React from 'react';\n\n/** Number of components which have requested interest to have focus guards */\nlet count = 0;\n\nfunction FocusGuards(props: any) {\n useFocusGuards();\n return props.children;\n}\n\n/**\n * Injects a pair of focus guards at the edges of the whole DOM tree\n * to ensure `focusin` & `focusout` events can be caught consistently.\n */\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');\n document.body.insertAdjacentElement('afterbegin', edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement('beforeend', edgeGuards[1] ?? createFocusGuard());\n count++;\n\n return () => {\n if (count === 1) {\n document.querySelectorAll('[data-radix-focus-guard]').forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\n\nfunction createFocusGuard() {\n const element = document.createElement('span');\n element.setAttribute('data-radix-focus-guard', '');\n element.tabIndex = 0;\n element.style.cssText = 'outline: none; opacity: 0; position: fixed; pointer-events: none';\n return element;\n}\n\nconst Root = FocusGuards;\n\nexport {\n FocusGuards,\n //\n Root,\n //\n useFocusGuards,\n};\n","import * as React from 'react';\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef any>(callback: T | undefined): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n\nexport { useCallbackRef };\n","import * as React from 'react';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\ntype UseControllableStateParams = {\n prop?: T | undefined;\n defaultProp?: T | undefined;\n onChange?: (state: T) => void;\n};\n\ntype SetStateFn = (prevState?: T) => T;\n\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {},\n}: UseControllableStateParams) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== undefined;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n\n const setValue: React.Dispatch> = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue as SetStateFn;\n const value = typeof nextValue === 'function' ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value as T);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n\n return [value, setValue] as const;\n}\n\nfunction useUncontrolledState({\n defaultProp,\n onChange,\n}: Omit, 'prop'>) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value as T);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n\n return uncontrolledState;\n}\n\nexport { useControllableState };\n","import * as React from 'react';\n\ntype PossibleRef = React.Ref | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef(ref: PossibleRef, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n (ref as React.MutableRefObject).current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs(...refs: PossibleRef[]) {\n return (node: T) => refs.forEach((ref) => setRef(ref, node));\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs(...refs: PossibleRef[]) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n","import * as React from 'react';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotProps extends React.HTMLAttributes {\n children?: React.ReactNode;\n}\n\nconst Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n\n if (React.Children.toArray(children).some(isSlottable)) {\n return (\n <>\n {React.Children.map(children, (child) => {\n return isSlottable(child) ? (\n \n {child.props.children}\n \n ) : (\n child\n );\n })}\n \n );\n }\n\n return (\n \n {children}\n \n );\n});\n\nSlot.displayName = 'Slot';\n\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotCloneProps {\n children: React.ReactNode;\n}\n\nconst SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n\n if (React.isValidElement(children)) {\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n ref: composeRefs(forwardedRef, (children as any).ref),\n });\n }\n\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\n\nSlotClone.displayName = 'SlotClone';\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst Slottable = ({ children }: { children: React.ReactNode }) => {\n return <>{children};\n};\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype AnyProps = Record;\n\nfunction isSlottable(child: React.ReactNode): child is React.ReactElement {\n return React.isValidElement(child) && child.type === Slottable;\n}\n\nfunction mergeProps(slotProps: AnyProps, childProps: AnyProps) {\n // all child props should override\n const overrideProps = { ...childProps };\n\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isHandler = /^on[A-Z]/.test(propName);\n // if it's a handler, modify the override by composing the base handler\n if (isHandler) {\n overrideProps[propName] = (...args: unknown[]) => {\n childPropValue?.(...args);\n slotPropValue?.(...args);\n };\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ');\n }\n }\n\n return { ...slotProps, ...overrideProps };\n}\n\nconst Root = Slot;\n\nexport {\n Slot,\n Slottable,\n //\n Root,\n};\nexport type { SlotProps };\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\n\nconst NODES = [\n 'a',\n 'button',\n 'div',\n 'h2',\n 'h3',\n 'img',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'span',\n 'svg',\n 'ul',\n] as const;\n\n// Temporary while we await merge of this fix:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55396\n// prettier-ignore\ntype PropsWithoutRef

= P extends any ? ('ref' extends keyof P ? Pick> : P) : P;\ntype ComponentPropsWithoutRef = PropsWithoutRef<\n React.ComponentProps\n>;\n\ntype Primitives = { [E in typeof NODES[number]]: PrimitiveForwardRefComponent };\ntype PrimitivePropsWithRef = React.ComponentPropsWithRef & {\n asChild?: boolean;\n};\n\ninterface PrimitiveForwardRefComponent\n extends React.ForwardRefExoticComponent> {}\n\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/\n\nconst Primitive = NODES.reduce(\n (primitive, node) => ({\n ...primitive,\n [node]: React.forwardRef((props: PrimitivePropsWithRef, forwardedRef: any) => {\n const { asChild, ...primitiveProps } = props;\n const Comp: any = asChild ? Slot : node;\n\n React.useEffect(() => {\n (window as any)[Symbol.for('radix-ui')] = true;\n }, []);\n\n // DEPRECATED\n if (process.env.NODE_ENV === 'development' && (props as any).as) {\n console.warn(AS_ERROR);\n }\n\n return ;\n }),\n }),\n {} as Primitives\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst AS_ERROR = `Warning: The \\`as\\` prop has been removed in favour of \\`asChild\\`. For details, see https://radix-ui.com/docs/primitives/overview/styling#changing-the-rendered-element`;\n\nconst Root = Primitive;\n\nexport {\n Primitive,\n //\n Root,\n};\nexport type { ComponentPropsWithoutRef, PrimitivePropsWithRef };\n","import * as React from 'react';\n\nfunction createContext(\n rootComponentName: string,\n defaultContext?: ContextValueType\n) {\n const Context = React.createContext(defaultContext);\n\n function Provider(props: ContextValueType & { children: React.ReactNode }) {\n const { children, ...context } = props;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return {children};\n }\n\n function useContext(consumerName: string) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n Provider.displayName = rootComponentName + 'Provider';\n return [Provider, useContext] as const;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * createContextScope\n * -----------------------------------------------------------------------------------------------*/\n\ntype Scope = { [scopeName: string]: React.Context[] } | undefined;\ntype ScopeHook = (scope: Scope) => { [__scopeProp: string]: Scope };\ninterface CreateScope {\n scopeName: string;\n (): ScopeHook;\n}\n\nfunction createContextScope(scopeName: string, createContextScopeDeps: CreateScope[] = []) {\n let defaultContexts: any[] = [];\n\n /* -----------------------------------------------------------------------------------------------\n * createContext\n * ---------------------------------------------------------------------------------------------*/\n\n function createContext(\n rootComponentName: string,\n defaultContext?: ContextValueType\n ) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n\n function Provider(\n props: ContextValueType & { scope: Scope; children: React.ReactNode }\n ) {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName][index] || BaseContext;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return {children};\n }\n\n function useContext(consumerName: string, scope: Scope) {\n const Context = scope?.[scopeName][index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n Provider.displayName = rootComponentName + 'Provider';\n return [Provider, useContext] as const;\n }\n\n /* -----------------------------------------------------------------------------------------------\n * createScope\n * ---------------------------------------------------------------------------------------------*/\n\n const createScope: CreateScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope: Scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n\n createScope.scopeName = scopeName;\n return [createContext, composeContextScopes(createScope, ...createContextScopeDeps)] as const;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * composeContextScopes\n * -----------------------------------------------------------------------------------------------*/\n\nfunction composeContextScopes(...scopes: CreateScope[]) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n\n const createScope: CreateScope = () => {\n const scopeHooks = scopes.map((createScope) => ({\n useScope: createScope(),\n scopeName: createScope.scopeName,\n }));\n\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes, { useScope, scopeName }) => {\n // We are calling a hook inside a callback which React warns against to avoid inconsistent\n // renders, however, scoping doesn't have render side effects so we ignore the rule.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes, ...currentScope };\n }, {});\n\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { createContext, createContextScope };\nexport type { CreateScope, Scope };\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport type * as Radix from '@radix-ui/react-primitive';\n\ntype SlotProps = Radix.ComponentPropsWithoutRef;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\n// We have resorted to returning slots directly rather than exposing primitives that can then\n// be slotted like ``.\n// This is because we encountered issues with generic types that cannot be statically analysed\n// due to creating them dynamically via createCollection.\n\nfunction createCollection(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionRef: React.RefObject;\n itemMap: Map, { ref: React.RefObject } & ItemData>;\n };\n\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: new Map() }\n );\n\n const CollectionProvider: React.FC<{ scope: any }> = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(new Map()).current;\n return (\n \n {children}\n \n );\n };\n\n CollectionProvider.displayName = PROVIDER_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return {children};\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...(itemData as unknown as ItemData) });\n return () => void context.itemMap.delete(ref);\n });\n\n return (\n \n {children}\n \n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const context = useCollectionContext(name + 'CollectionConsumer', scope);\n\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current!) - orderedNodes.indexOf(b.ref.current!)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n\n return getItems;\n }\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n","function composeEventHandlers(\n originalEventHandler?: (event: E) => void,\n ourEventHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {}\n) {\n return function handleEvent(event: E) {\n originalEventHandler?.(event);\n\n if (checkForDefaultPrevented === false || !((event as unknown) as Event).defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\n\nexport { composeEventHandlers };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\nconst ENTRY_FOCUS = 'rovingFocusGroup.onEntryFocus';\nconst EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\n/* -------------------------------------------------------------------------------------------------\n * RovingFocusGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'RovingFocusGroup';\n\ntype ItemData = { id: string; focusable: boolean; active: boolean };\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n HTMLSpanElement,\n ItemData\n>(GROUP_NAME);\n\ntype ScopedProps

= P & { __scopeRovingFocusGroup?: Scope };\nconst [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\n\ntype Orientation = React.AriaAttributes['aria-orientation'];\ntype Direction = 'ltr' | 'rtl';\n\ninterface RovingFocusGroupOptions {\n /**\n * The orientation of the group.\n * Mainly so arrow navigation is done accordingly (left & right vs. up & down)\n */\n orientation?: Orientation;\n /**\n * The direction of navigation between items.\n * @defaultValue ltr\n */\n dir?: Direction;\n /**\n * Whether keyboard navigation should loop around\n * @defaultValue false\n */\n loop?: boolean;\n}\n\ntype RovingContextValue = RovingFocusGroupOptions & {\n currentTabStopId: string | null;\n onItemFocus(tabStopId: string): void;\n onItemShiftTab(): void;\n};\n\nconst [RovingFocusProvider, useRovingFocusContext] =\n createRovingFocusGroupContext(GROUP_NAME);\n\ntype RovingFocusGroupElement = RovingFocusGroupImplElement;\ninterface RovingFocusGroupProps extends RovingFocusGroupImplProps {}\n\nconst RovingFocusGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n return (\n \n \n \n \n \n );\n }\n);\n\nRovingFocusGroup.displayName = GROUP_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RovingFocusGroupImplElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface RovingFocusGroupImplProps\n extends Omit,\n RovingFocusGroupOptions {\n currentTabStopId?: string | null;\n defaultCurrentTabStopId?: string;\n onCurrentTabStopIdChange?: (tabStopId: string | null) => void;\n onEntryFocus?: (event: Event) => void;\n}\n\nconst RovingFocusGroupImpl = React.forwardRef<\n RovingFocusGroupImplElement,\n RovingFocusGroupImplProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n dir = 'ltr',\n loop = false,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange,\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n\n return (\n setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n )}\n onItemShiftTab={React.useCallback(() => setIsTabbingBackOut(true), [])}\n >\n {\n isClickFocusRef.current = true;\n })}\n onFocus={composeEventHandlers(props.onFocus, (event) => {\n // We normally wouldn't need this check, because we already check\n // that the focus is on the current target and not bubbling to it.\n // We do this because Safari doesn't focus buttons when clicked, and\n // instead, the wrapper will get focused and not through a bubbling event.\n const isKeyboardFocus = !isClickFocusRef.current;\n\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new Event(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n ) as typeof items;\n const candidateNodes = candidateItems.map((item) => item.ref.current!);\n focusFirst(candidateNodes);\n }\n }\n\n isClickFocusRef.current = false;\n })}\n onBlur={composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))}\n />\n \n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * RovingFocusGroupItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'RovingFocusGroupItem';\n\ntype RovingFocusItemElement = React.ElementRef;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef;\ninterface RovingFocusItemProps extends PrimitiveSpanProps {\n focusable?: boolean;\n active?: boolean;\n}\n\nconst RovingFocusGroupItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeRovingFocusGroup, focusable = true, active = false, ...itemProps } = props;\n const id = useId();\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n\n return (\n \n {\n // We prevent focusing non-focusable items on `mousedown`.\n // Even though the item has tabIndex={-1}, that only means take it out of the tab order.\n if (!focusable) event.preventDefault();\n // Safari doesn't focus a button when clicked so we run our logic on mousedown also\n else context.onItemFocus(id);\n })}\n onFocus={composeEventHandlers(props.onFocus, () => context.onItemFocus(id))}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Tab' && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n\n if (event.target !== event.currentTarget) return;\n\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n\n if (focusIntent !== undefined) {\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current!);\n\n if (focusIntent === 'last') candidateNodes.reverse();\n else if (focusIntent === 'prev' || focusIntent === 'next') {\n if (focusIntent === 'prev') candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop\n ? wrapArray(candidateNodes, currentIndex + 1)\n : candidateNodes.slice(currentIndex + 1);\n }\n\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => focusFirst(candidateNodes));\n }\n })}\n />\n \n );\n }\n);\n\nRovingFocusGroupItem.displayName = ITEM_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\n// prettier-ignore\nconst MAP_KEY_TO_FOCUS_INTENT: Record = {\n ArrowLeft: 'prev', ArrowUp: 'prev',\n ArrowRight: 'next', ArrowDown: 'next',\n PageUp: 'first', Home: 'first',\n PageDown: 'last', End: 'last',\n};\n\nfunction getDirectionAwareKey(key: string, dir?: Direction) {\n if (dir !== 'rtl') return key;\n return key === 'ArrowLeft' ? 'ArrowRight' : key === 'ArrowRight' ? 'ArrowLeft' : key;\n}\n\ntype FocusIntent = 'first' | 'last' | 'prev' | 'next';\n\nfunction getFocusIntent(event: React.KeyboardEvent, orientation?: Orientation, dir?: Direction) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === 'vertical' && ['ArrowLeft', 'ArrowRight'].includes(key)) return undefined;\n if (orientation === 'horizontal' && ['ArrowUp', 'ArrowDown'].includes(key)) return undefined;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nfunction wrapArray(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n\nconst Root = RovingFocusGroup;\nconst Item = RovingFocusGroupItem;\n\nexport {\n createRovingFocusGroupScope,\n //\n RovingFocusGroup,\n RovingFocusGroupItem,\n //\n Root,\n Item,\n};\nexport type { RovingFocusGroupProps, RovingFocusItemProps };\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type * as Radix from '@radix-ui/react-primitive';\n\nconst MAX_Z_INDEX = 2147483647;\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'Portal';\n\ntype PortalElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface PortalProps extends PrimitiveDivProps {\n containerRef?: React.RefObject;\n}\n\nconst Portal = React.forwardRef((props, forwardedRef) => {\n const { containerRef, style, ...portalProps } = props;\n const hostElement = containerRef?.current ?? globalThis?.document?.body;\n const [, forceUpdate] = React.useState({});\n\n /**\n * containerRef.current won't be set on first render, so we force a re-render.\n * Because we do this in `useLayoutEffect`, we still avoid a flash.\n */\n useLayoutEffect(() => {\n forceUpdate({});\n }, []);\n\n if (hostElement) {\n return ReactDOM.createPortal(\n ,\n hostElement\n );\n }\n\n // bail out of ssr\n return null;\n});\n\nPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * UnstablePortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst UNSTABLE_PORTAL_NAME = 'Portal';\n\ntype UnstablePortalElement = React.ElementRef;\ninterface UnstablePortalProps extends PrimitiveDivProps {\n container?: HTMLElement | null;\n}\n\nconst UnstablePortal = React.forwardRef(\n (props, forwardedRef) => {\n const { container = globalThis?.document?.body, ...portalProps } = props;\n return container\n ? ReactDOM.createPortal(, container)\n : null;\n }\n);\n\nUnstablePortal.displayName = UNSTABLE_PORTAL_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Portal;\n\nexport {\n Portal,\n UnstablePortal,\n //\n Root,\n};\nexport type { PortalProps, UnstablePortalProps };\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type * as Radix from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Arrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Arrow';\n\ntype ArrowElement = React.ElementRef;\ntype PrimitiveSvgProps = Radix.ComponentPropsWithoutRef;\ninterface ArrowProps extends PrimitiveSvgProps {}\n\nconst Arrow = React.forwardRef((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return (\n \n {/* We use their children if they're slotting to replace the whole svg */}\n {props.asChild ? children : }\n \n );\n});\n\nArrow.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Arrow;\n\nexport {\n Arrow,\n //\n Root,\n};\nexport type { ArrowProps };\n","/// \n\nimport * as React from 'react';\n\nfunction useSize(element: HTMLElement | SVGElement | null) {\n const [size, setSize] = React.useState<{ width: number; height: number } | undefined>(undefined);\n\n React.useEffect(() => {\n if (element) {\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n\n // Since we only observe the one element, we don't need to loop over the\n // array\n if (!entries.length) {\n return;\n }\n\n const entry = entries[0];\n let width: number;\n let height: number;\n\n if ('borderBoxSize' in entry) {\n const borderSizeEntry = entry['borderBoxSize'];\n // iron out differences between browsers\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize['inlineSize'];\n height = borderSize['blockSize'];\n } else {\n // for browsers that don't support `borderBoxSize`\n // we calculate a rect ourselves to get the correct border box.\n const rect = element.getBoundingClientRect();\n width = rect.width;\n height = rect.height;\n }\n\n setSize({ width, height });\n });\n\n resizeObserver.observe(element, { box: 'border-box' });\n\n return () => resizeObserver.unobserve(element);\n } else {\n // We only want to reset to `undefined` when the element becomes `null`,\n // not if it changes to another element.\n setSize(undefined);\n }\n }, [element]);\n\n return size;\n}\n\nexport { useSize };\n","type Measurable = { getBoundingClientRect(): ClientRect };\n\n/**\n * Observes an element's rectangle on screen (getBoundingClientRect)\n * This is useful to track elements on the screen and attach other elements\n * that might be in different layers, etc.\n */\nfunction observeElementRect(\n /** The element whose rect to observe */\n elementToObserve: Measurable,\n /** The callback which will be called when the rect changes */\n callback: CallbackFn\n) {\n const observedData = observedElements.get(elementToObserve);\n\n if (observedData === undefined) {\n // add the element to the map of observed elements with its first callback\n // because this is the first time this element is observed\n observedElements.set(elementToObserve, { rect: {} as ClientRect, callbacks: [callback] });\n\n if (observedElements.size === 1) {\n // start the internal loop once at least 1 element is observed\n rafId = requestAnimationFrame(runLoop);\n }\n } else {\n // only add a callback for this element as it's already observed\n observedData.callbacks.push(callback);\n callback(elementToObserve.getBoundingClientRect());\n }\n\n return () => {\n const observedData = observedElements.get(elementToObserve);\n if (observedData === undefined) return;\n\n // start by removing the callback\n const index = observedData.callbacks.indexOf(callback);\n if (index > -1) {\n observedData.callbacks.splice(index, 1);\n }\n\n if (observedData.callbacks.length === 0) {\n // stop observing this element because there are no\n // callbacks registered for it anymore\n observedElements.delete(elementToObserve);\n\n if (observedElements.size === 0) {\n // stop the internal loop once no elements are observed anymore\n cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\n// ========================================================================\n// module internals\n\ntype CallbackFn = (rect: ClientRect) => void;\n\ntype ObservedData = {\n rect: ClientRect;\n callbacks: Array;\n};\n\nlet rafId: number;\nconst observedElements: Map = new Map();\n\nfunction runLoop() {\n const changedRectsData: Array = [];\n\n // process all DOM reads first (getBoundingClientRect)\n observedElements.forEach((data, element) => {\n const newRect = element.getBoundingClientRect();\n\n // gather all the data for elements whose rects have changed\n if (!rectEquals(data.rect, newRect)) {\n data.rect = newRect;\n changedRectsData.push(data);\n }\n });\n\n // group DOM writes here after the DOM reads (getBoundingClientRect)\n // as DOM writes will most likely happen with the callbacks\n changedRectsData.forEach((data) => {\n data.callbacks.forEach((callback) => callback(data.rect));\n });\n\n rafId = requestAnimationFrame(runLoop);\n}\n// ========================================================================\n\n/**\n * Returns whether 2 rects are equal in values\n */\nfunction rectEquals(rect1: ClientRect, rect2: ClientRect) {\n return (\n rect1.width === rect2.width &&\n rect1.height === rect2.height &&\n rect1.top === rect2.top &&\n rect1.right === rect2.right &&\n rect1.bottom === rect2.bottom &&\n rect1.left === rect2.left\n );\n}\n\nexport { observeElementRect };\nexport type { Measurable };\n","import * as React from 'react';\nimport { observeElementRect } from '@radix-ui/rect';\n\nimport type { Measurable } from '@radix-ui/rect';\n\n/**\n * Use this custom hook to get access to an element's rect (getBoundingClientRect)\n * and observe it along time.\n */\nfunction useRect(measurable: Measurable | null) {\n const [rect, setRect] = React.useState();\n React.useEffect(() => {\n if (measurable) {\n const unobserve = observeElementRect(measurable, setRect);\n return () => {\n setRect(undefined);\n unobserve();\n };\n }\n return;\n }, [measurable]);\n return rect;\n}\n\nexport { useRect };\n","import * as CSS from 'csstype';\n\nconst SIDE_OPTIONS = ['top', 'right', 'bottom', 'left'] as const;\nconst ALIGN_OPTIONS = ['start', 'center', 'end'] as const;\n\ntype Axis = 'x' | 'y';\ntype Side = typeof SIDE_OPTIONS[number];\ntype Align = typeof ALIGN_OPTIONS[number];\ntype Point = { x: number; y: number };\ntype Size = { width: number; height: number };\n\ntype GetPlacementDataOptions = {\n /** The rect of the anchor we are placing around */\n anchorRect?: ClientRect;\n /** The size of the popper to place */\n popperSize?: Size;\n /** An optional arrow size */\n arrowSize?: Size;\n /** An optional arrow offset (along the side, default: 0) */\n arrowOffset?: number;\n /** The desired side */\n side: Side;\n /** An optional side offset (distance from the side, default: 0) */\n sideOffset?: number;\n /** The desired alignment */\n align: Align;\n /** An optional alignment offset (distance along the side, default: 0) */\n alignOffset?: number;\n /** An option to turn on/off the collision handling (default: true) */\n shouldAvoidCollisions?: boolean;\n /** The rect which represents the boundaries for collision checks */\n collisionBoundariesRect?: ClientRect;\n /** The tolerance used for collisions, ie. if we want them to trigger a bit earlier (default: 0) */\n collisionTolerance?: number;\n};\n\ntype PlacementData = {\n popperStyles: CSS.Properties;\n arrowStyles: CSS.Properties;\n placedSide?: Side;\n placedAlign?: Align;\n};\n\n/**\n * Given all the information necessary to compute it,\n * this function calculates all the necessary placement data.\n *\n * It will return:\n *\n * - the styles to apply to the popper (including a custom property that is useful to set the transform origin in the right place)\n * - the styles to apply to the arrow\n * - the placed side (because it might have changed because of collisions)\n * - the placed align (because it might have changed because of collisions)\n */\nfunction getPlacementData({\n anchorRect,\n popperSize,\n arrowSize,\n arrowOffset = 0,\n side,\n sideOffset = 0,\n align,\n alignOffset = 0,\n shouldAvoidCollisions = true,\n collisionBoundariesRect,\n collisionTolerance = 0,\n}: GetPlacementDataOptions): PlacementData {\n // if we're not ready to do all the measurements yet,\n // we return some good default styles\n if (!anchorRect || !popperSize || !collisionBoundariesRect) {\n return {\n popperStyles: UNMEASURED_POPPER_STYLES,\n arrowStyles: UNMEASURED_ARROW_STYLES,\n };\n }\n\n // pre-compute points for all potential placements\n const allPlacementPoints = getAllPlacementPoints(\n popperSize,\n anchorRect,\n sideOffset,\n alignOffset,\n arrowSize\n );\n\n // get point based on side / align\n const popperPoint = allPlacementPoints[side][align];\n\n // if we don't need to avoid collisions, we can stop here\n if (shouldAvoidCollisions === false) {\n const popperStyles = getPlacementStylesForPoint(popperPoint);\n\n let arrowStyles = UNMEASURED_ARROW_STYLES;\n if (arrowSize) {\n arrowStyles = getPopperArrowStyles({ popperSize, arrowSize, arrowOffset, side, align });\n }\n\n const transformOrigin = getTransformOrigin(popperSize, side, align, arrowOffset, arrowSize);\n\n return {\n popperStyles: {\n ...popperStyles,\n ['--radix-popper-transform-origin' as any]: transformOrigin,\n },\n arrowStyles,\n placedSide: side,\n placedAlign: align,\n };\n }\n\n // create a new rect as if element had been moved to new placement\n const popperRect = DOMRect.fromRect({ ...popperSize, ...popperPoint });\n\n // create a new rect representing the collision boundaries but taking into account any added tolerance\n const collisionBoundariesRectWithTolerance = getContractedRect(\n collisionBoundariesRect,\n collisionTolerance\n );\n\n // check for any collisions in new placement\n const popperCollisions = getCollisions(popperRect, collisionBoundariesRectWithTolerance);\n\n // do all the same calculations for the opposite side\n // this is because we need to check for potential collisions if we were to swap side\n const oppositeSide = getOppositeSide(side);\n const oppositeSidePopperPoint = allPlacementPoints[oppositeSide][align];\n const updatedOppositeSidePopperPoint = DOMRect.fromRect({\n ...popperSize,\n ...oppositeSidePopperPoint,\n });\n const oppositeSidePopperCollisions = getCollisions(\n updatedOppositeSidePopperPoint,\n collisionBoundariesRectWithTolerance\n );\n\n // adjust side accounting for collisions / opposite side collisions\n const placedSide = getSideAccountingForCollisions(\n side,\n popperCollisions,\n oppositeSidePopperCollisions\n );\n\n // adjust alignnment accounting for collisions\n const placedAlign = getAlignAccountingForCollisions(\n popperSize,\n anchorRect,\n side,\n align,\n popperCollisions\n );\n\n const placedPopperPoint = allPlacementPoints[placedSide][placedAlign];\n\n // compute adjusted popper / arrow styles\n const popperStyles = getPlacementStylesForPoint(placedPopperPoint);\n\n let arrowStyles = UNMEASURED_ARROW_STYLES;\n if (arrowSize) {\n arrowStyles = getPopperArrowStyles({\n popperSize,\n arrowSize,\n arrowOffset,\n side: placedSide,\n align: placedAlign,\n });\n }\n\n const transformOrigin = getTransformOrigin(\n popperSize,\n placedSide,\n placedAlign,\n arrowOffset,\n arrowSize\n );\n\n return {\n popperStyles: {\n ...popperStyles,\n ['--radix-popper-transform-origin' as any]: transformOrigin,\n },\n arrowStyles,\n placedSide,\n placedAlign,\n };\n}\n\ntype AllPlacementPoints = Record>;\n\nfunction getAllPlacementPoints(\n popperSize: Size,\n anchorRect: ClientRect,\n sideOffset: number = 0,\n alignOffset: number = 0,\n arrowSize?: Size\n): AllPlacementPoints {\n const arrowBaseToTipLength = arrowSize ? arrowSize.height : 0;\n\n const x = getPopperSlotsForAxis(anchorRect, popperSize, 'x');\n const y = getPopperSlotsForAxis(anchorRect, popperSize, 'y');\n\n const topY = y.before - sideOffset - arrowBaseToTipLength; // prettier-ignore\n const bottomY = y.after + sideOffset + arrowBaseToTipLength; // prettier-ignore\n const leftX = x.before - sideOffset - arrowBaseToTipLength; // prettier-ignore\n const rightX = x.after + sideOffset + arrowBaseToTipLength; // prettier-ignore\n\n // prettier-ignore\n const map: AllPlacementPoints = {\n top: {\n start: { x: x.start + alignOffset, y: topY },\n center: { x: x.center, y: topY },\n end: { x: x.end - alignOffset, y: topY },\n },\n right: {\n start: { x: rightX, y: y.start + alignOffset },\n center: { x: rightX, y: y.center },\n end: { x: rightX, y: y.end - alignOffset },\n },\n bottom: {\n start: { x: x.start + alignOffset, y: bottomY },\n center: { x: x.center, y: bottomY },\n end: { x: x.end - alignOffset, y: bottomY },\n },\n left: {\n start: { x: leftX, y: y.start + alignOffset },\n center: { x: leftX, y: y.center },\n end: { x: leftX, y: y.end - alignOffset },\n },\n };\n\n return map;\n}\n\nfunction getPopperSlotsForAxis(anchorRect: ClientRect, popperSize: Size, axis: Axis) {\n const startSide = axis === 'x' ? 'left' : 'top';\n const anchorStart = anchorRect[startSide];\n\n const dimension = axis === 'x' ? 'width' : 'height';\n const anchorDimension = anchorRect[dimension];\n const popperDimension = popperSize[dimension];\n\n // prettier-ignore\n return {\n before: anchorStart - popperDimension,\n start: anchorStart,\n center: anchorStart + (anchorDimension - popperDimension) / 2,\n end: anchorStart + anchorDimension - popperDimension,\n after: anchorStart + anchorDimension,\n };\n}\n\n/**\n * Gets an adjusted side based on collision information\n */\nfunction getSideAccountingForCollisions(\n /** The side we want to ideally position to */\n side: Side,\n /** The collisions for this given side */\n collisions: Collisions,\n /** The collisions for the opposite side (if we were to swap side) */\n oppositeSideCollisions: Collisions\n): Side {\n const oppositeSide = getOppositeSide(side);\n // in order to prevent premature jumps\n // we only swap side if there's enough space to fit on the opposite side\n return collisions[side] && !oppositeSideCollisions[oppositeSide] ? oppositeSide : side;\n}\n\n/**\n * Gets an adjusted alignment based on collision information\n */\nfunction getAlignAccountingForCollisions(\n /** The size of the popper to place */\n popperSize: Size,\n /** The size of the anchor we are placing around */\n anchorSize: Size,\n /** The final side */\n side: Side,\n /** The desired align */\n align: Align,\n /** The collisions */\n collisions: Collisions\n): Align {\n const isHorizontalSide = side === 'top' || side === 'bottom';\n const startBound = isHorizontalSide ? 'left' : 'top';\n const endBound = isHorizontalSide ? 'right' : 'bottom';\n const dimension = isHorizontalSide ? 'width' : 'height';\n const isAnchorBigger = anchorSize[dimension] > popperSize[dimension];\n\n if (align === 'start' || align === 'center') {\n if ((collisions[startBound] && isAnchorBigger) || (collisions[endBound] && !isAnchorBigger)) {\n return 'end';\n }\n }\n\n if (align === 'end' || align === 'center') {\n if ((collisions[endBound] && isAnchorBigger) || (collisions[startBound] && !isAnchorBigger)) {\n return 'start';\n }\n }\n\n return align;\n}\n\nfunction getPlacementStylesForPoint(point: Point): CSS.Properties {\n const x = Math.round(point.x + window.scrollX);\n const y = Math.round(point.y + window.scrollY);\n return {\n position: 'absolute',\n top: 0,\n left: 0,\n minWidth: 'max-content',\n willChange: 'transform',\n transform: `translate3d(${x}px, ${y}px, 0)`,\n };\n}\n\nfunction getTransformOrigin(\n popperSize: Size,\n side: Side,\n align: Align,\n arrowOffset: number,\n arrowSize?: Size\n): CSS.Properties['transformOrigin'] {\n const isHorizontalSide = side === 'top' || side === 'bottom';\n\n const arrowBaseLength = arrowSize ? arrowSize.width : 0;\n const arrowBaseToTipLength = arrowSize ? arrowSize.height : 0;\n const sideOffset = arrowBaseToTipLength;\n const alignOffset = arrowBaseLength / 2 + arrowOffset;\n\n let x = '';\n let y = '';\n\n if (isHorizontalSide) {\n x = {\n start: `${alignOffset}px`,\n center: 'center',\n end: `${popperSize.width - alignOffset}px`,\n }[align];\n\n y = side === 'top' ? `${popperSize.height + sideOffset}px` : `${-sideOffset}px`;\n } else {\n x = side === 'left' ? `${popperSize.width + sideOffset}px` : `${-sideOffset}px`;\n\n y = {\n start: `${alignOffset}px`,\n center: 'center',\n end: `${popperSize.height - alignOffset}px`,\n }[align];\n }\n\n return `${x} ${y}`;\n}\n\nconst UNMEASURED_POPPER_STYLES: CSS.Properties = {\n // position: 'fixed' here is important because it will take the popper\n // out of the flow so it does not disturb the position of the anchor\n position: 'fixed',\n top: 0,\n left: 0,\n opacity: 0,\n transform: 'translate3d(0, -200%, 0)',\n};\n\nconst UNMEASURED_ARROW_STYLES: CSS.Properties = {\n // given the arrow is nested inside the popper,\n // make sure that it is out of the flow and doesn't hinder then popper's measurement\n position: 'absolute',\n opacity: 0,\n};\n\ntype GetArrowStylesOptions = {\n /** The size of the popper to place */\n popperSize: Size;\n /** The size of the arrow itself */\n arrowSize: Size;\n /** An offset for the arrow along the align axis */\n arrowOffset: number;\n /** The side where the arrow points to */\n side: Side;\n /** The alignment of the arrow along the side */\n align: Align;\n};\n\n/**\n * Computes the styles necessary to position, rotate and align the arrow correctly.\n * It can adjust itself based on anchor/popper size, side/align and an optional offset.\n */\nfunction getPopperArrowStyles({\n popperSize,\n arrowSize,\n arrowOffset,\n side,\n align,\n}: GetArrowStylesOptions): CSS.Properties {\n const popperCenterX = (popperSize.width - arrowSize.width) / 2;\n const popperCenterY = (popperSize.height - arrowSize.width) / 2;\n\n const rotationMap = { top: 0, right: 90, bottom: 180, left: -90 };\n const rotation = rotationMap[side];\n const arrowMaxDimension = Math.max(arrowSize.width, arrowSize.height);\n\n const styles: CSS.Properties = {\n // we make sure we put the arrow inside a 1:1 ratio container\n // this is to make the rotation handling simpler\n // as we do no need to worry about changing the transform-origin\n width: `${arrowMaxDimension}px`,\n height: `${arrowMaxDimension}px`,\n\n // rotate the arrow appropriately\n transform: `rotate(${rotation}deg)`,\n willChange: 'transform',\n\n // position the arrow appropriately\n position: 'absolute',\n [side]: '100%',\n\n // Because the arrow gets rotated (see `transform above`)\n // and we are putting it inside a 1:1 ratio container\n // we need to adjust the CSS direction from `ltr` to `rtl`\n // in some circumstances\n direction: getArrowCssDirection(side, align),\n };\n\n if (side === 'top' || side === 'bottom') {\n if (align === 'start') {\n styles.left = `${arrowOffset}px`;\n }\n if (align === 'center') {\n styles.left = `${popperCenterX}px`;\n }\n if (align === 'end') {\n styles.right = `${arrowOffset}px`;\n }\n }\n\n if (side === 'left' || side === 'right') {\n if (align === 'start') {\n styles.top = `${arrowOffset}px`;\n }\n if (align === 'center') {\n styles.top = `${popperCenterY}px`;\n }\n if (align === 'end') {\n styles.bottom = `${arrowOffset}px`;\n }\n }\n\n return styles;\n}\n\n/**\n * Adjusts the arrow's CSS direction (`ltr` / `rtl`)\n */\nfunction getArrowCssDirection(side: Side, align: Align): CSS.Property.Direction {\n if ((side === 'top' || side === 'right') && align === 'end') {\n return 'rtl';\n }\n\n if ((side === 'bottom' || side === 'left') && align !== 'end') {\n return 'rtl';\n }\n\n return 'ltr';\n}\n\n/**\n * Gets the opposite side of a given side (ie. top => bottom, left => right, …)\n */\nfunction getOppositeSide(side: Side): Side {\n const oppositeSides: Record = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n };\n return oppositeSides[side];\n}\n\n/**\n * Creates a new rect (`ClientRect`) based on a given one but contracted by\n * a given amout on each side.\n */\nfunction getContractedRect(rect: ClientRect, amount: number) {\n return DOMRect.fromRect({\n width: rect.width - amount * 2,\n height: rect.height - amount * 2,\n x: rect.left + amount,\n y: rect.top + amount,\n });\n}\n\n/**\n * Gets collisions for each side of a rect (top, right, bottom, left)\n */\nfunction getCollisions(\n /** The rect to test collisions against */\n rect: ClientRect,\n /** The rect which represents the boundaries for collision checks */\n collisionBoundariesRect: ClientRect\n) {\n return {\n top: rect.top < collisionBoundariesRect.top,\n right: rect.right > collisionBoundariesRect.right,\n bottom: rect.bottom > collisionBoundariesRect.bottom,\n left: rect.left < collisionBoundariesRect.left,\n };\n}\n\ntype Collisions = ReturnType;\n\nexport { getPlacementData, SIDE_OPTIONS, ALIGN_OPTIONS };\nexport type { Side, Align };\n","import * as React from 'react';\nimport { getPlacementData } from '@radix-ui/popper';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useRect } from '@radix-ui/react-use-rect';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as ArrowPrimitive from '@radix-ui/react-arrow';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\nimport type { Side, Align } from '@radix-ui/popper';\nimport type { Measurable } from '@radix-ui/rect';\n\n/* -------------------------------------------------------------------------------------------------\n * Popper\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPPER_NAME = 'Popper';\n\ntype ScopedProps

= P & { __scopePopper?: Scope };\nconst [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);\n\ntype PopperContextValue = {\n anchor: Measurable | null;\n onAnchorChange(anchor: Measurable | null): void;\n};\nconst [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\n\ninterface PopperProps {\n children?: React.ReactNode;\n}\nconst Popper: React.FC = (props: ScopedProps) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = React.useState(null);\n return (\n \n {children}\n \n );\n};\n\nPopper.displayName = POPPER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopperAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopperAnchor';\n\ntype PopperAnchorElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface PopperAnchorProps extends PrimitiveDivProps {\n virtualRef?: React.RefObject;\n}\n\nconst PopperAnchor = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n React.useEffect(() => {\n // Consumer can anchor the popper to something that isn't\n // a DOM node e.g. pointer position, so we override the\n // `anchorRef` with their virtual ref in this case.\n context.onAnchorChange(virtualRef?.current || ref.current);\n });\n\n return virtualRef ? null : ;\n }\n);\n\nPopperAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopperContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopperContent';\n\ntype PopperContentContextValue = {\n arrowStyles: React.CSSProperties;\n onArrowChange(arrow: HTMLSpanElement | null): void;\n onArrowOffsetChange(offset?: number): void;\n};\n\nconst [PopperContentProvider, useContentContext] =\n createPopperContext(CONTENT_NAME);\n\ntype PopperContentElement = React.ElementRef;\ninterface PopperContentProps extends PrimitiveDivProps {\n side?: Side;\n sideOffset?: number;\n align?: Align;\n alignOffset?: number;\n collisionTolerance?: number;\n avoidCollisions?: boolean;\n}\n\nconst PopperContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopePopper,\n side = 'bottom',\n sideOffset,\n align = 'center',\n alignOffset,\n collisionTolerance,\n avoidCollisions = true,\n ...contentProps\n } = props;\n\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\n const [arrowOffset, setArrowOffset] = React.useState();\n const anchorRect = useRect(context.anchor);\n const [content, setContent] = React.useState(null);\n const contentSize = useSize(content);\n const [arrow, setArrow] = React.useState(null);\n const arrowSize = useSize(arrow);\n\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n\n const windowSize = useWindowSize();\n const collisionBoundariesRect = windowSize\n ? DOMRect.fromRect({ ...windowSize, x: 0, y: 0 })\n : undefined;\n\n const { popperStyles, arrowStyles, placedSide, placedAlign } = getPlacementData({\n anchorRect,\n popperSize: contentSize,\n arrowSize,\n\n // config\n arrowOffset,\n side,\n sideOffset,\n align,\n alignOffset,\n shouldAvoidCollisions: avoidCollisions,\n collisionBoundariesRect,\n collisionTolerance,\n });\n const isPlaced = placedSide !== undefined;\n\n return (\n

\n \n \n \n
\n );\n }\n);\n\nPopperContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopperArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopperArrow';\n\ntype PopperArrowElement = React.ElementRef;\ntype ArrowProps = Radix.ComponentPropsWithoutRef;\ninterface PopperArrowProps extends ArrowProps {\n offset?: number;\n}\n\nconst PopperArrow = React.forwardRef(function PopperArrow(\n props: ScopedProps,\n forwardedRef\n) {\n const { __scopePopper, offset, ...arrowProps } = props;\n const context = useContentContext(ARROW_NAME, __scopePopper);\n const { onArrowOffsetChange } = context;\n\n // send the Arrow's offset up to Popper\n React.useEffect(() => onArrowOffsetChange(offset), [onArrowOffsetChange, offset]);\n\n return (\n \n \n \n \n \n );\n});\n\nPopperArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst WINDOW_RESIZE_DEBOUNCE_WAIT_IN_MS = 100;\n\nfunction useWindowSize() {\n const [windowSize, setWindowSize] = React.useState<{ width: number; height: number } | undefined>(\n undefined\n );\n\n React.useEffect(() => {\n let debounceTimerId: number;\n\n function updateWindowSize() {\n setWindowSize({ width: window.innerWidth, height: window.innerHeight });\n }\n\n function handleResize() {\n window.clearTimeout(debounceTimerId);\n debounceTimerId = window.setTimeout(updateWindowSize, WINDOW_RESIZE_DEBOUNCE_WAIT_IN_MS);\n }\n\n updateWindowSize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowSize;\n}\n\nconst Root = Popper;\nconst Anchor = PopperAnchor;\nconst Content = PopperContent;\nconst Arrow = PopperArrow;\n\nexport {\n createPopperScope,\n //\n Popper,\n PopperAnchor,\n PopperContent,\n PopperArrow,\n //\n Root,\n Anchor,\n Content,\n Arrow,\n};\nexport type { PopperProps, PopperAnchorProps, PopperContentProps, PopperArrowProps };\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useStateMachine } from './useStateMachine';\n\ninterface PresenceProps {\n present: boolean;\n children: React.ReactElement | ((props: { present: boolean }) => React.ReactElement);\n}\n\nconst Presence: React.FC = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n\n const child = (\n typeof children === 'function'\n ? children({ present: presence.isPresent })\n : React.Children.only(children)\n ) as React.ReactElement;\n\n const ref = useComposedRefs(presence.ref, (child as any).ref);\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? React.cloneElement(child, { ref }) : null;\n};\n\nPresence.displayName = 'Presence';\n\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/\n\nfunction usePresence(present: boolean) {\n const [node, setNode] = React.useState();\n const stylesRef = React.useRef({} as any);\n const prevPresentRef = React.useRef(present);\n const prevAnimationNameRef = React.useRef('none');\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n });\n\n React.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === 'mounted' ? currentAnimationName : 'none';\n }, [state]);\n\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n\n if (present) {\n send('MOUNT');\n } else if (currentAnimationName === 'none' || styles?.display === 'none') {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n } else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName;\n\n if (wasPresent && isAnimating) {\n send('ANIMATION_OUT');\n } else {\n send('UNMOUNT');\n }\n }\n\n prevPresentRef.current = present;\n }\n }, [present, send]);\n\n useLayoutEffect(() => {\n if (node) {\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send('ANIMATION_END');\n }\n };\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener('animationstart', handleAnimationStart);\n node.addEventListener('animationcancel', handleAnimationEnd);\n node.addEventListener('animationend', handleAnimationEnd);\n return () => {\n node.removeEventListener('animationstart', handleAnimationStart);\n node.removeEventListener('animationcancel', handleAnimationEnd);\n node.removeEventListener('animationend', handleAnimationEnd);\n };\n } else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }\n }, [node, send]);\n\n return {\n isPresent: ['mounted', 'unmountSuspended'].includes(state),\n ref: React.useCallback((node: HTMLElement) => {\n if (node) stylesRef.current = getComputedStyle(node);\n setNode(node);\n }, []),\n };\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getAnimationName(styles?: CSSStyleDeclaration) {\n return styles?.animationName || 'none';\n}\n\nexport { Presence };\nexport type { PresenceProps };\n","import * as React from 'react';\n\ntype Machine = { [k: string]: { [k: string]: S } };\ntype MachineState = keyof T;\ntype MachineEvent = keyof UnionToIntersection;\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine(\n initialState: MachineState,\n machine: M & Machine>\n) {\n return React.useReducer((state: MachineState, event: MachineEvent): MachineState => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\nimport type * as Radix from '@radix-ui/react-primitive';\n\nconst AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';\nconst AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';\nconst EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\ntype FocusableTarget = HTMLElement | { focus(): void };\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope\n * -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_SCOPE_NAME = 'FocusScope';\n\ntype FocusScopeElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface FocusScopeProps extends PrimitiveDivProps {\n /**\n * When `true`, tabbing from last item will focus first tabbable\n * and shift+tab from first item will focus last tababble.\n * @defaultValue false\n */\n loop?: boolean;\n\n /**\n * When `true`, focus cannot escape the focus scope via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapped?: boolean;\n\n /**\n * Event handler called when auto-focusing on mount.\n * Can be prevented.\n */\n onMountAutoFocus?: (event: Event) => void;\n\n /**\n * Event handler called when auto-focusing on unmount.\n * Can be prevented.\n */\n onUnmountAutoFocus?: (event: Event) => void;\n}\n\nconst FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n }).current;\n\n // Takes care of trapping focus if focus is moved outside programmatically for example\n React.useEffect(() => {\n if (trapped) {\n function handleFocusIn(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const target = event.target as HTMLElement | null;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n if (!container.contains(event.relatedTarget as HTMLElement | null)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n return () => {\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n };\n }\n }, [trapped, container, focusScope.paused]);\n\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement as HTMLElement | null;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n\n if (!hasFocusedCandidate) {\n const mountEvent = new Event(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n\n // We hit a react bug (fixed in v17) with focusing in unmount.\n // We need to delay the focus a little to get around it for now.\n // See: https://github.com/facebook/react/issues/17894\n setTimeout(() => {\n const unmountEvent = new Event(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n // we need to remove the listener after we `dispatchEvent`\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n\n // Takes care of looping focus (when tabbing whilst at the edges)\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n\n const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement as HTMLElement | null;\n\n if (isTabKey && focusedElement) {\n const container = event.currentTarget as HTMLElement;\n const [first, last] = getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n\n // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n\n return (\n \n );\n});\n\nFocusScope.displayName = FOCUS_SCOPE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */\nfunction focusFirst(candidates: HTMLElement[], { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\n\n/**\n * Returns the first and last tabbable elements inside a container.\n */\nfunction getTabbableEdges(container: HTMLElement) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last] as const;\n}\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */\nfunction findVisible(elements: HTMLElement[], container: HTMLElement) {\n for (const element of elements) {\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\n\nfunction isHidden(node: HTMLElement, { upTo }: { upTo?: HTMLElement }) {\n if (getComputedStyle(node).visibility === 'hidden') return true;\n while (node) {\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === 'none') return true;\n node = node.parentElement as HTMLElement;\n }\n return false;\n}\n\nfunction isSelectableInput(element: any): element is FocusableTarget & { select: () => void } {\n return element instanceof HTMLInputElement && 'select' in element;\n}\n\nfunction focus(element?: FocusableTarget | null, { select = false } = {}) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({ preventScroll: true });\n // only select if its not the same element, it supports selection and we need to select\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope stack\n * -----------------------------------------------------------------------------------------------*/\n\ntype FocusScopeAPI = { paused: boolean; pause(): void; resume(): void };\nconst focusScopesStack = createFocusScopesStack();\n\nfunction createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */\n let stack: FocusScopeAPI[] = [];\n\n return {\n add(focusScope: FocusScopeAPI) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n\n remove(focusScope: FocusScopeAPI) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n },\n };\n}\n\nfunction arrayRemove(array: T[], item: T) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\n\nfunction removeLinks(items: HTMLElement[]) {\n return items.filter((item) => item.tagName !== 'A');\n}\n\nconst Root = FocusScope;\n\nexport {\n FocusScope,\n //\n Root,\n};\nexport type { FocusScopeProps };\n","import * as React from 'react';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\n/**\n * Listens for when the escape key is down\n */\nfunction useEscapeKeydown(onEscapeKeyDownProp?: (event: KeyboardEvent) => void) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onEscapeKeyDown(event);\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [onEscapeKeyDown]);\n}\n\nexport { useEscapeKeydown };\n","import * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\nlet changeCount = 0;\nlet originalBodyPointerEvents: string;\n\nfunction useBodyPointerEvents({ disabled }: { disabled: boolean }) {\n const isTouchOrPenPressedRef = React.useRef(false);\n\n useLayoutEffect(() => {\n if (disabled) {\n if (changeCount === 0) {\n originalBodyPointerEvents = document.body.style.pointerEvents;\n }\n\n function resetPointerEvents() {\n changeCount--;\n if (changeCount === 0) {\n document.body.style.pointerEvents = originalBodyPointerEvents;\n }\n }\n\n document.body.style.pointerEvents = 'none';\n changeCount++;\n\n function handlePointerUp(event: PointerEvent) {\n isTouchOrPenPressedRef.current = event.pointerType !== 'mouse';\n }\n\n document.addEventListener('pointerup', handlePointerUp);\n\n return () => {\n if (isTouchOrPenPressedRef.current) {\n /**\n * We force pointer-events to remain disabled until `click` fires on touch devices\n * because browsers implement a ~350ms delay between the time the user stops\n * touching the display and when the browser executes events. We need to ensure we\n * don't reactivate pointer-events within this timeframe otherwise the browser may\n * execute events that should have been prevented.\n *\n * We are aware that `touch-action: manipulation` shortens this delay for events,\n * but it isn't enough to cover all cases.\n *\n * When there is an input on screen:\n * - if a click event is bound to it, it will fire after a `pointerdown` which may\n * have re-enabled pointer-events (regardless of `touch-action: manipulation`).\n * - if clicking it causes the page to zoom, the events will wait for the zoom to\n * finish before executing on the input.\n * - if long pressing it, the events will execute after the longpress delay.\n */\n document.addEventListener('click', resetPointerEvents, { once: true });\n } else {\n resetPointerEvents();\n }\n\n document.removeEventListener('pointerup', handlePointerUp);\n };\n }\n }, [disabled]);\n}\n\nexport { useBodyPointerEvents };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useBodyPointerEvents } from '@radix-ui/react-use-body-pointer-events';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useEscapeKeydown } from '@radix-ui/react-use-escape-keydown';\n\nimport type * as Radix from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayer\n * -----------------------------------------------------------------------------------------------*/\n\nconst DISMISSABLE_LAYER_NAME = 'DismissableLayer';\nconst CONTEXT_UPDATE = 'dismissableLayer.update';\nconst POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';\nconst FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';\n\nconst DismissableLayerContext = React.createContext({\n layers: new Set(),\n layersWithOutsidePointerEventsDisabled: new Set(),\n branches: new Set(),\n});\n\ntype DismissableLayerElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface DismissableLayerProps extends PrimitiveDivProps {\n /**\n * When `true`, hover/focus/click interactions will be disabled on elements outside\n * the `DismissableLayer`. Users will need to click twice on outside elements to\n * interact with them: once to close the `DismissableLayer`, and again to trigger the element.\n */\n disableOutsidePointerEvents?: boolean;\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;\n /**\n * Event handler called when the focus moves outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onFocusOutside?: (event: FocusOutsideEvent) => void;\n /**\n * Event handler called when an interaction happens outside the `DismissableLayer`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: (event: PointerDownOutsideEvent | FocusOutsideEvent) => void;\n /**\n * Handler called when the `DismissableLayer` should be dismissed\n */\n onDismiss?: () => void;\n}\n\nconst DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node) => setNode(node));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1); // prettier-ignore\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); // prettier-ignore\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target as HTMLElement;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n });\n\n const focusOutside = useFocusOutside((event) => {\n const target = event.target as HTMLElement;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n });\n\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n });\n\n useBodyPointerEvents({ disabled: disableOutsidePointerEvents });\n\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) context.layersWithOutsidePointerEventsDisabled.add(node);\n context.layers.add(node);\n dispatchUpdate();\n }, [node, disableOutsidePointerEvents, context]);\n\n /**\n * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect\n * because a change to `disableOutsidePointerEvents` would remove this layer from the stack\n * and add it to the end again so the layering order wouldn't be _creation order_.\n * We only want them to be removed from context stacks when unmounted.\n */\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n\n return (\n \n );\n }\n);\n\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayerBranch\n * -----------------------------------------------------------------------------------------------*/\n\nconst BRANCH_NAME = 'DismissableLayerBranch';\n\ntype DismissableLayerBranchElement = React.ElementRef;\ninterface DismissableLayerBranchProps extends PrimitiveDivProps {}\n\nconst DismissableLayerBranch = React.forwardRef<\n DismissableLayerBranchElement,\n DismissableLayerBranchProps\n>((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n\n return ;\n});\n\nDismissableLayerBranch.displayName = BRANCH_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PointerDownOutsideEvent = CustomEvent<{ originalEvent: PointerEvent }>;\ntype FocusOutsideEvent = CustomEvent<{ originalEvent: FocusEvent }>;\n\n/**\n * Listens for `pointerdown` outside a react subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behaviour present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */\nfunction usePointerDownOutside(onPointerDownOutside?: (event: PointerDownOutsideEvent) => void) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside) as EventListener;\n const isPointerInsideReactTreeRef = React.useRef(false);\n\n React.useEffect(() => {\n const handlePointerDown = (event: PointerEvent) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n dispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not React specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */\n const timerId = window.setTimeout(() => {\n document.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n document.removeEventListener('pointerdown', handlePointerDown);\n };\n }, [handlePointerDownOutside]);\n\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => (isPointerInsideReactTreeRef.current = true),\n };\n}\n\n/**\n * Listens for when focus happens outside a react subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */\nfunction useFocusOutside(onFocusOutside?: (event: FocusOutsideEvent) => void) {\n const handleFocusOutside = useCallbackRef(onFocusOutside) as EventListener;\n const isFocusInsideReactTreeRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleFocus = (event: FocusEvent) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n dispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail);\n }\n };\n document.addEventListener('focusin', handleFocus);\n return () => document.removeEventListener('focusin', handleFocus);\n }, [handleFocusOutside]);\n\n return {\n onFocusCapture: () => (isFocusInsideReactTreeRef.current = true),\n onBlurCapture: () => (isFocusInsideReactTreeRef.current = false),\n };\n}\n\nfunction dispatchUpdate() {\n const event = new Event(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\n\nfunction dispatchCustomEvent(\n name: string,\n handler: ((event: E) => void) | undefined,\n detail: { originalEvent: OriginalEvent } & (E extends CustomEvent ? D : never)\n) {\n const target = detail.originalEvent.target as HTMLElement;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler as EventListener, { once: true });\n return !target.dispatchEvent(event);\n}\n\nconst Root = DismissableLayer;\nconst Branch = DismissableLayerBranch;\n\nexport {\n DismissableLayer,\n DismissableLayerBranch,\n //\n Root,\n Branch,\n};\nexport type { DismissableLayerProps };\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (parentNode === void 0) { parentNode = getDefaultParent(originalTarget); }\n if (markerName === void 0) { markerName = \"data-aria-hidden\"; }\n var targets = Array.isArray(originalTarget) ? originalTarget : [originalTarget];\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var keep = (function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n });\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || targets.indexOf(parent) >= 0) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n var attr = node.getAttribute('aria-hidden');\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute('aria-hidden', 'true');\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute('aria-hidden');\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","import { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue || null, function (newValue) { return refs.forEach(function (ref) { return assignRef(ref, newValue); }); });\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n if (process.env.NODE_ENV !== 'production') {\n if (cs.overflowY === 'hidden') {\n console.error('react-remove-scroll-bar: cannot calculate scrollbar size because it is removed (overflow:hidden on body');\n }\n }\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (props) {\n var noRelative = props.noRelative, noImportant = props.noImportant, _a = props.gapMode, gapMode = _a === void 0 ? 'margin' : _a;\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), s = _a[1], d = _a[2];\n if (s > d) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== document.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n target = target.parentNode;\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n if (isDeltaPositive && ((noOverscroll && availableScroll === 0) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && availableScrollTop === 0) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(function () { return styleSingleton(); })[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if ('touches' in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && e.target === event.target && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: \"margin\" }) : null));\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","import * as React from 'react';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { useComposedRefs, composeRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal } from '@radix-ui/react-portal';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { useDirection } from '@radix-ui/react-use-direction';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { useId } from '@radix-ui/react-id';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst SELECTION_KEYS = ['Enter', ' '];\nconst FIRST_KEYS = ['ArrowDown', 'PageUp', 'Home'];\nconst LAST_KEYS = ['ArrowUp', 'PageDown', 'End'];\nconst FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nconst SUB_OPEN_KEYS: Record = {\n ltr: [...SELECTION_KEYS, 'ArrowRight'],\n rtl: [...SELECTION_KEYS, 'ArrowLeft'],\n};\nconst SUB_CLOSE_KEYS: Record = {\n ltr: ['ArrowLeft'],\n rtl: ['ArrowRight'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Menu\n * -----------------------------------------------------------------------------------------------*/\n\nconst MENU_NAME = 'Menu';\n\ntype ItemData = { disabled: boolean; textValue: string };\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n MenuItemElement,\n ItemData\n>(MENU_NAME);\n\ntype ScopedProps

= P & { __scopeMenu?: Scope };\nconst [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope,\n]);\nconst usePopperScope = createPopperScope();\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\n\ntype MenuRootContextValue = {\n isSubmenu: false;\n isUsingKeyboardRef: React.RefObject;\n dir: Direction;\n open: boolean;\n onOpenChange(open: boolean): void;\n content: MenuContentElement | null;\n onContentChange(content: MenuContentElement | null): void;\n onRootClose(): void;\n modal: boolean;\n};\n\ntype MenuSubContextValue = Omit & {\n isSubmenu: true;\n contentId: string;\n triggerId: string;\n trigger: MenuSubTriggerElement | null;\n onTriggerChange(trigger: MenuSubTriggerElement | null): void;\n};\n\nconst [MenuProvider, useMenuContext] = createMenuContext<\n MenuRootContextValue | MenuSubContextValue\n>(MENU_NAME);\n\ninterface MenuProps {\n open?: boolean;\n onOpenChange?(open: boolean): void;\n dir?: Direction;\n modal?: boolean;\n children?: React.ReactNode;\n}\n\nconst Menu: React.FC = (props: ScopedProps) => {\n const { __scopeMenu, open = false, children, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const computedDirection = useDirection(content, props.dir);\n\n React.useEffect(() => {\n // Capture phase ensures we set the boolean before any side effects execute\n // in response to the key or pointer event as they might depend on this value.\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener('pointerdown', handlePointer, { capture: true, once: true });\n document.addEventListener('pointermove', handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => (isUsingKeyboardRef.current = false);\n document.addEventListener('keydown', handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener('keydown', handleKeyDown, { capture: true });\n document.removeEventListener('pointerdown', handlePointer, { capture: true });\n document.removeEventListener('pointermove', handlePointer, { capture: true });\n };\n }, []);\n\n return (\n \n handleOpenChange(false), [handleOpenChange])}\n modal={modal}\n >\n {children}\n \n \n );\n};\n\nMenu.displayName = MENU_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nconst SUB_NAME = 'MenuSub';\n\ninterface MenuSubProps {\n open?: boolean;\n onOpenChange?(open: boolean): void;\n children?: React.ReactNode;\n}\n\nconst MenuSub: React.FC = (props: ScopedProps) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n\n // Prevent the parent menu from reopening with open submenus.\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n\n return (\n \n \n {children}\n \n \n );\n};\n\nMenuSub.displayName = SUB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'MenuAnchor';\n\ntype MenuAnchorElement = React.ElementRef;\ntype PopperAnchorProps = Radix.ComponentPropsWithoutRef;\ninterface MenuAnchorProps extends PopperAnchorProps {}\n\nconst MenuAnchor = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return ;\n }\n);\n\nMenuAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'MenuContent';\n\ntype MenuContentContextValue = {\n onItemEnter(event: React.PointerEvent): void;\n onItemLeave(event: React.PointerEvent): void;\n onTriggerLeave(event: React.PointerEvent): void;\n searchRef: React.RefObject;\n pointerGraceTimerRef: React.MutableRefObject;\n onPointerGraceIntentChange(intent: GraceIntent | null): void;\n};\nconst [MenuContentProvider, useMenuContentContext] =\n createMenuContext(CONTENT_NAME);\n\ntype MenuContentElement = MenuRootContentElement | MenuSubContentElement;\n/**\n * We purposefully don't union MenuRootContent and MenuSubContent props here because\n * they have conflicting prop types. We agreed that we would allow MenuSubContent to\n * accept props that it would just ignore.\n */\ninterface MenuContentProps extends MenuRootContentProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst MenuContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return (\n \n \n \n {context.isSubmenu ? (\n \n ) : (\n \n )}\n \n \n \n );\n }\n);\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype MenuRootContentElement = MenuRootContentTypeElement;\ninterface MenuRootContentProps\n extends Omit {}\n\nconst MenuRootContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return context.modal ? (\n \n ) : (\n \n );\n }\n);\n\ntype MenuRootContentTypeElement = MenuContentImplElement;\ninterface MenuRootContentTypeProps\n extends Omit<\n MenuContentImplProps,\n 'trapFocus' | 'disableOutsidePointerEvents' | 'disableOutsideScroll'\n > {}\n\nconst MenuRootContentModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n // Hide everything from ARIA except the `MenuContent`\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n onDismiss={() => context.onOpenChange(false)}\n />\n );\n }\n);\n\nconst MenuRootContentNonModal = React.forwardRef<\n MenuRootContentTypeElement,\n MenuRootContentTypeProps\n>((props: ScopedProps, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return (\n context.onOpenChange(false)}\n />\n );\n});\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype MenuSubContentElement = MenuContentImplElement;\ninterface MenuSubContentProps\n extends Omit<\n MenuContentImplProps,\n | keyof MenuContentImplPrivateProps\n | 'align'\n | 'side'\n | 'portalled'\n | 'disabledOutsidePointerEvents'\n | 'disableOutsideScroll'\n | 'trapFocus'\n | 'onCloseAutoFocus'\n > {}\n\nconst MenuSubContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return context.isSubmenu ? (\n {\n // when opening a submenu, focus content for keyboard users only\n if (context.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n }}\n // The menu might close because of focusing another menu item in the parent menu. We\n // don't want it to refocus the trigger in that case so we handle trigger focus ourselves.\n onCloseAutoFocus={(event) => event.preventDefault()}\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) => {\n // We prevent closing when the trigger is focused to avoid triggering a re-open animation\n // on pointer interaction.\n if (event.target !== context.trigger) context.onOpenChange(false);\n })}\n onEscapeKeyDown={composeEventHandlers(props.onEscapeKeyDown, context.onRootClose)}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n // Submenu key events bubble through portals. We only care about keys in this menu.\n const isKeyDownInside = event.currentTarget.contains(event.target as HTMLElement);\n const isCloseKey = SUB_CLOSE_KEYS[context.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n // We focus manually because we prevented it in `onCloseAutoFocus`\n context.trigger?.focus();\n // prevent window from scrolling\n event.preventDefault();\n }\n })}\n />\n ) : null;\n }\n);\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype RemoveScrollProps = React.ComponentProps;\ntype MenuContentImplElement = React.ElementRef;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef;\ntype RovingFocusGroupProps = Radix.ComponentPropsWithoutRef;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef;\ntype MenuContentImplPrivateProps = {\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n onDismiss?: DismissableLayerProps['onDismiss'];\n};\ninterface MenuContentImplProps\n extends MenuContentImplPrivateProps,\n PopperContentProps,\n Omit {\n /**\n * Whether focus should be trapped within the `MenuContent`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom'];\n\n /**\n * Whether scrolling outside the `MenuContent` should be prevented\n * (default: `false`)\n */\n disableOutsideScroll?: boolean;\n\n /**\n * The direction of navigation between menu items.\n * @defaultValue ltr\n */\n dir?: RovingFocusGroupProps['dir'];\n\n /**\n * Whether keyboard navigation should loop around\n * @defaultValue false\n */\n loop?: RovingFocusGroupProps['loop'];\n\n /**\n * Whether the `MenuContent` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst MenuContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n allowPinchZoom,\n portalled,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef('');\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef('right');\n const lastPointerXRef = React.useRef(0);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { allowPinchZoom } : undefined;\n\n const handleTypeaheadSearch = (key: string) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n\n // Reset `searchRef` 1 second after it was last updated\n (function updateSearch(value: string) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== '') timerRef.current = window.setTimeout(() => updateSearch(''), 1000);\n })(search);\n\n if (newItem) {\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => (newItem as HTMLElement).focus());\n }\n };\n\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n\n // Make sure the whole tree has focus guards as our `MenuContent` may be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n const isPointerMovingToSubmenu = React.useCallback((event: React.PointerEvent) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n\n return (\n \n \n {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n )}\n onItemLeave={React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n )}\n onTriggerLeave={React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n )}\n pointerGraceTimerRef={pointerGraceTimerRef}\n onPointerGraceIntentChange={React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, [])}\n >\n {\n // when opening, explicitly focus the content area only and leave\n // `onEntryFocus` in control of focusing first item\n event.preventDefault();\n contentRef.current?.focus();\n })}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n \n {\n // only focus first item when using keyboard\n if (!context.isUsingKeyboardRef.current) event.preventDefault();\n }}\n >\n {\n // submenu key events bubble through portals. We only care about keys in this menu.\n const target = event.target as HTMLElement;\n const isKeyDownInside = event.currentTarget.contains(target);\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n // menus should not be navigated using tab key so we prevent it\n if (event.key === 'Tab') event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n // focus first/last item based on key pressed\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current!);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n })}\n onBlur={composeEventHandlers(props.onBlur, (event) => {\n // clear search buffer when leaving the menu\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = '';\n }\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target as HTMLElement;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n\n // We don't use `event.movementX` for this check because Safari will\n // always return `0` on a pointer event.\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? 'right' : 'left';\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )}\n />\n \n \n \n \n \n \n );\n }\n);\n\nMenuContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'MenuGroup';\n\ntype MenuGroupElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface MenuGroupProps extends PrimitiveDivProps {}\n\nconst MenuGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return ;\n }\n);\n\nMenuGroup.displayName = GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'MenuLabel';\n\ntype MenuLabelElement = React.ElementRef;\ninterface MenuLabelProps extends PrimitiveDivProps {}\n\nconst MenuLabel = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return ;\n }\n);\n\nMenuLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'MenuItem';\nconst ITEM_SELECT = 'menu.itemSelect';\n\ntype MenuItemElement = MenuItemImplElement;\ninterface MenuItemProps extends Omit {\n onSelect?: (event: Event) => void;\n}\n\nconst MenuItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const context = useMenuContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new Event(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n menuItem.dispatchEvent(itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n context.onRootClose();\n }\n }\n };\n\n return (\n {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n }}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n // Pointer down can move to a different menu item which should activate it on pointer up.\n // We dispatch a click for selection to allow composition with click based triggers and to\n // prevent Firefox from getting stuck in text selection mode when the menu closes.\n if (!isPointerDownRef.current) event.currentTarget?.click();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== '';\n if (disabled || (isTypingAhead && event.key === ' ')) return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n /**\n * We prevent default browser behaviour for selection keys as they should trigger\n * a selection only:\n * - prevents space from scrolling the page.\n * - if keydown causes focus to move, prevents keydown from firing on the new target.\n */\n event.preventDefault();\n }\n })}\n />\n );\n }\n);\n\nMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuSubTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_TRIGGER_NAME = 'MenuSubTrigger';\n\ntype MenuSubTriggerElement = MenuItemImplElement;\ninterface MenuSubTriggerProps extends MenuItemImplProps {}\n\nconst MenuSubTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n\n return context.isSubmenu ? (\n \n {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n /**\n * We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)\n * and we rely heavily on `onFocusOutside` for submenus to close when switching\n * between separate submenus.\n */\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n }}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n // TODO: make sure to update this when we change positioning logic\n const side = context.content?.dataset.side as Side;\n const rightSide = side === 'right';\n const bleed = rightSide ? -5 : +5;\n const contentNearEdge = contentRect[rightSide ? 'left' : 'right'];\n const contentFarEdge = contentRect[rightSide ? 'right' : 'left'];\n\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom },\n ],\n side,\n });\n\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n\n // There's 100ms where the user may leave an item before the submenu was opened.\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n )}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== '';\n if (props.disabled || (isTypingAhead && event.key === ' ')) return;\n if (SUB_OPEN_KEYS[context.dir].includes(event.key)) {\n context.onOpenChange(true);\n // The trigger may hold focus if opened via pointer interaction\n // so we ensure content is given focus again when switching to keyboard.\n context.content?.focus();\n // prevent window from scrolling\n event.preventDefault();\n }\n })}\n />\n \n ) : null;\n }\n);\n\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype MenuItemImplElement = React.ElementRef;\ninterface MenuItemImplProps extends PrimitiveDivProps {\n disabled?: boolean;\n textValue?: string;\n}\n\nconst MenuItemImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n // get the item's `.textContent` as default strategy for typeahead `textValue`\n const [textContent, setTextContent] = React.useState('');\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? '').trim());\n }\n }, [itemProps.children]);\n\n return (\n \n \n {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus();\n }\n }\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n )}\n />\n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * MenuCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst CHECKBOX_ITEM_NAME = 'MenuCheckboxItem';\n\ntype MenuCheckboxItemElement = MenuItemElement;\ninterface MenuCheckboxItemProps extends MenuItemProps {\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst MenuCheckboxItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return (\n \n onCheckedChange?.(!checked),\n { checkForDefaultPrevented: false }\n )}\n />\n \n );\n }\n);\n\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_GROUP_NAME = 'MenuRadioGroup';\n\nconst [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: undefined, onValueChange: () => {} }\n);\n\ntype MenuRadioGroupElement = React.ElementRef;\ninterface MenuRadioGroupProps extends MenuGroupProps {\n value?: string;\n onValueChange?: (value: string) => void;\n}\n\nconst MenuRadioGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return (\n \n \n \n );\n }\n);\n\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_ITEM_NAME = 'MenuRadioItem';\n\ntype MenuRadioItemElement = React.ElementRef;\ninterface MenuRadioItemProps extends MenuItemProps {\n value: string;\n}\n\nconst MenuRadioItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return (\n \n context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )}\n />\n \n );\n }\n);\n\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_INDICATOR_NAME = 'MenuItemIndicator';\n\nconst [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(ITEM_INDICATOR_NAME, {\n checked: false,\n});\n\ntype MenuItemIndicatorElement = React.ElementRef;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef;\ninterface MenuItemIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst MenuItemIndicator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return (\n \n \n \n );\n }\n);\n\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'MenuSeparator';\n\ntype MenuSeparatorElement = React.ElementRef;\ninterface MenuSeparatorProps extends PrimitiveDivProps {}\n\nconst MenuSeparator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return (\n \n );\n }\n);\n\nMenuSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'MenuArrow';\n\ntype MenuArrowElement = React.ElementRef;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef;\ninterface MenuArrowProps extends PopperArrowProps {}\n\nconst MenuArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return ;\n }\n);\n\nMenuArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getOpenState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nfunction getCheckedState(checked: boolean) {\n return checked ? 'checked' : 'unchecked';\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nfunction wrapArray(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n\n/**\n * This is the \"meat\" of the typeahead matching logic. It takes in all the values,\n * the search and the current match, and returns the next match (or `undefined`).\n *\n * We normalize the search because if a user has repeatedly pressed a character,\n * we want the exact same behavior as if we only had that one character\n * (ie. cycle through options starting with that character)\n *\n * We also reorder the values by wrapping the array around the current match.\n * This is so we always look forward from the current match, and picking the first\n * match will always be the correct one.\n *\n * Finally, if the normalized search is exactly one character, we exclude the\n * current match from the values because otherwise it would be the first to match always\n * and focus would never move. This is as opposed to the regular case, where we\n * don't want focus to move if the current match still matches.\n */\nfunction getNextMatch(values: string[], search: string, currentMatch?: string) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find((value) =>\n value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : undefined;\n}\n\ntype Point = { x: number; y: number };\ntype Polygon = Point[];\ntype Side = 'left' | 'right';\ntype GraceIntent = { area: Polygon; side: Side };\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point: Point, polygon: Polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n if (intersect) inside = !inside;\n }\n\n return inside;\n}\n\nfunction isPointerInGraceArea(event: React.PointerEvent, area?: Polygon) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\n\nfunction whenMouse(handler: React.PointerEventHandler): React.PointerEventHandler {\n return (event) => (event.pointerType === 'mouse' ? handler(event) : undefined);\n}\n\nconst Root = Menu;\nconst Sub = MenuSub;\nconst Anchor = MenuAnchor;\nconst SubTrigger = MenuSubTrigger;\nconst Content = MenuContent;\nconst Group = MenuGroup;\nconst Label = MenuLabel;\nconst Item = MenuItem;\nconst CheckboxItem = MenuCheckboxItem;\nconst RadioGroup = MenuRadioGroup;\nconst RadioItem = MenuRadioItem;\nconst ItemIndicator = MenuItemIndicator;\nconst Separator = MenuSeparator;\nconst Arrow = MenuArrow;\n\nexport {\n createMenuScope,\n //\n Menu,\n MenuSub,\n MenuAnchor,\n MenuSubTrigger,\n MenuContent,\n MenuGroup,\n MenuLabel,\n MenuItem,\n MenuCheckboxItem,\n MenuRadioGroup,\n MenuRadioItem,\n MenuItemIndicator,\n MenuSeparator,\n MenuArrow,\n //\n Root,\n Sub,\n Anchor,\n SubTrigger,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n};\nexport type {\n MenuProps,\n MenuSubProps,\n MenuAnchorProps,\n MenuSubTriggerProps,\n MenuContentProps,\n MenuGroupProps,\n MenuLabelProps,\n MenuItemProps,\n MenuCheckboxItemProps,\n MenuRadioGroupProps,\n MenuRadioItemProps,\n MenuItemIndicatorProps,\n MenuSeparatorProps,\n MenuArrowProps,\n};\n","import * as React from 'react';\n\ntype Direction = 'ltr' | 'rtl';\n\nexport function useDirection(element: HTMLElement | null, directionProp?: Direction) {\n const [direction, setDirection] = React.useState('ltr');\n const [computedStyle, setComputedStyle] = React.useState();\n const rAFRef = React.useRef(0);\n\n React.useEffect(() => {\n // We check inherited direction of the parent instead of the `element` itself.\n // This is because we internally set the computed `dir` on the element so wouldn't be\n // able to react to changes to the inherited direction. The `dir` attribute we set should\n // always sync with the direction prop OR its inherited direction.\n if (directionProp === undefined && element?.parentElement) {\n const computedStyle = getComputedStyle(element.parentElement);\n setComputedStyle(computedStyle);\n }\n }, [element, directionProp]);\n\n React.useEffect(() => {\n function getDirection() {\n rAFRef.current = requestAnimationFrame(() => {\n const dir = computedStyle?.direction as Direction | '' | undefined;\n if (dir) setDirection(dir);\n getDirection();\n });\n }\n\n if (directionProp === undefined) getDirection();\n return () => cancelAnimationFrame(rAFRef.current);\n }, [computedStyle, directionProp, setDirection]);\n\n return directionProp || direction;\n}\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as MenuPrimitive from '@radix-ui/react-menu';\nimport { createMenuScope } from '@radix-ui/react-menu';\nimport { useId } from '@radix-ui/react-id';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst DROPDOWN_MENU_NAME = 'DropdownMenu';\n\ntype ScopedProps

= P & { __scopeDropdownMenu?: Scope };\nconst [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nconst useMenuScope = createMenuScope();\n\ntype DropdownMenuRootContextValue = {\n isRootMenu: true;\n triggerId: string;\n triggerRef: React.RefObject;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\ntype DropdownMenuSubContextValue = {\n isRootMenu: false;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n};\n\nconst [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext<\n DropdownMenuRootContextValue | DropdownMenuSubContextValue\n>(DROPDOWN_MENU_NAME);\n\ninterface DropdownMenuProps {\n dir?: Direction;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n children?: React.ReactNode;\n}\n\nconst DropdownMenu: React.FC = (props: ScopedProps) => {\n const { __scopeDropdownMenu, children, open: openProp, defaultOpen, onOpenChange } = props;\n const contentContext = useContentContext(DROPDOWN_MENU_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n const handleOpenToggle = React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]);\n\n return contentContext.isInsideContent ? (\n \n \n {children}\n \n \n ) : (\n \n {children}\n \n );\n};\n\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ninterface DropdownMenuRootProps {\n dir?: Direction;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal?: boolean;\n children?: React.ReactNode;\n}\n\nconst DropdownMenuRoot: React.FC = (\n props: ScopedProps\n) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open,\n onOpenChange,\n onOpenToggle,\n modal = true,\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n return (\n \n \n {children}\n \n \n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DropdownMenuTrigger';\n\ntype DropdownMenuTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuTriggerProps extends PrimitiveButtonProps {}\n\nconst DropdownMenuTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return context.isRootMenu ? (\n \n {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n if (!context.open) event.preventDefault();\n context.onOpenToggle();\n }\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if (['Enter', ' '].includes(event.key)) context.onOpenToggle();\n if (event.key === 'ArrowDown') context.onOpenChange(true);\n // prevent keypresses from scrolling window\n if ([' ', 'ArrowDown'].includes(event.key)) event.preventDefault();\n })}\n />\n \n ) : null;\n }\n);\n\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DropdownMenuContent';\n\nconst [ContentProvider, useContentContext] = createDropdownMenuContext(CONTENT_NAME, {\n isInsideContent: false,\n});\n\ntype DropdownMenuContentElement =\n | DropdownMenuRootContentElement\n | React.ElementRef;\ntype MenuContentProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuContentProps extends DropdownMenuRootContentProps, MenuContentProps {}\n\nconst DropdownMenuContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const commonProps = {\n ...contentProps,\n style: {\n ...props.style,\n // re-namespace exposed content custom property\n ['--radix-dropdown-menu-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n },\n };\n\n return (\n \n {context.isRootMenu ? (\n \n ) : (\n \n )}\n \n );\n }\n);\n\nDropdownMenuContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype DropdownMenuRootContentElement = React.ElementRef;\ninterface DropdownMenuRootContentProps extends ScopedProps {}\n\nconst DropdownMenuRootContent = React.forwardRef<\n DropdownMenuRootContentElement,\n DropdownMenuRootContentProps\n>((props, forwardedRef) => {\n const { __scopeDropdownMenu, portalled = true, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n return context.isRootMenu ? (\n {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n })}\n onInteractOutside={composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent as PointerEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n })}\n />\n ) : null;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'DropdownMenuGroup';\n\ntype DropdownMenuGroupElement = React.ElementRef;\ntype MenuGroupProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuGroupProps extends MenuGroupProps {}\n\nconst DropdownMenuGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuGroup.displayName = GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'DropdownMenuLabel';\n\ntype DropdownMenuLabelElement = React.ElementRef;\ntype MenuLabelProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuLabelProps extends MenuLabelProps {}\n\nconst DropdownMenuLabel = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'DropdownMenuItem';\n\ntype DropdownMenuItemElement = React.ElementRef;\ntype MenuItemProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuItemProps extends MenuItemProps {}\n\nconst DropdownMenuItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuTriggerItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_ITEM_NAME = 'DropdownMenuTriggerItem';\n\ntype DropdownMenuTriggerItemElement = React.ElementRef;\ntype MenuSubTriggerProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuTriggerItemProps extends MenuSubTriggerProps {}\n\nconst DropdownMenuTriggerItem = React.forwardRef<\n DropdownMenuTriggerItemElement,\n DropdownMenuTriggerItemProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...triggerItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuTriggerItem.displayName = TRIGGER_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst CHECKBOX_ITEM_NAME = 'DropdownMenuCheckboxItem';\n\ntype DropdownMenuCheckboxItemElement = React.ElementRef;\ntype MenuCheckboxItemProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuCheckboxItemProps extends MenuCheckboxItemProps {}\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n DropdownMenuCheckboxItemElement,\n DropdownMenuCheckboxItemProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_GROUP_NAME = 'DropdownMenuRadioGroup';\n\ntype DropdownMenuRadioGroupElement = React.ElementRef;\ntype MenuRadioGroupProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuRadioGroupProps extends MenuRadioGroupProps {}\n\nconst DropdownMenuRadioGroup = React.forwardRef<\n DropdownMenuRadioGroupElement,\n DropdownMenuRadioGroupProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_ITEM_NAME = 'DropdownMenuRadioItem';\n\ntype DropdownMenuRadioItemElement = React.ElementRef;\ntype MenuRadioItemProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuRadioItemProps extends MenuRadioItemProps {}\n\nconst DropdownMenuRadioItem = React.forwardRef<\n DropdownMenuRadioItemElement,\n DropdownMenuRadioItemProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'DropdownMenuItemIndicator';\n\ntype DropdownMenuItemIndicatorElement = React.ElementRef;\ntype MenuItemIndicatorProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuItemIndicatorProps extends MenuItemIndicatorProps {}\n\nconst DropdownMenuItemIndicator = React.forwardRef<\n DropdownMenuItemIndicatorElement,\n DropdownMenuItemIndicatorProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'DropdownMenuSeparator';\n\ntype DropdownMenuSeparatorElement = React.ElementRef;\ntype MenuSeparatorProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuSeparatorProps extends MenuSeparatorProps {}\n\nconst DropdownMenuSeparator = React.forwardRef<\n DropdownMenuSeparatorElement,\n DropdownMenuSeparatorProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'DropdownMenuArrow';\n\ntype DropdownMenuArrowElement = React.ElementRef;\ntype MenuArrowProps = Radix.ComponentPropsWithoutRef;\ninterface DropdownMenuArrowProps extends MenuArrowProps {}\n\nconst DropdownMenuArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = DropdownMenu;\nconst Trigger = DropdownMenuTrigger;\nconst Content = DropdownMenuContent;\nconst Group = DropdownMenuGroup;\nconst Label = DropdownMenuLabel;\nconst Item = DropdownMenuItem;\nconst TriggerItem = DropdownMenuTriggerItem;\nconst CheckboxItem = DropdownMenuCheckboxItem;\nconst RadioGroup = DropdownMenuRadioGroup;\nconst RadioItem = DropdownMenuRadioItem;\nconst ItemIndicator = DropdownMenuItemIndicator;\nconst Separator = DropdownMenuSeparator;\nconst Arrow = DropdownMenuArrow;\n\nexport {\n createDropdownMenuScope,\n //\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuTriggerItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuItemIndicator,\n DropdownMenuSeparator,\n DropdownMenuArrow,\n //\n Root,\n Trigger,\n Content,\n Group,\n Label,\n Item,\n TriggerItem,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n};\nexport type {\n DropdownMenuProps,\n DropdownMenuTriggerProps,\n DropdownMenuContentProps,\n DropdownMenuGroupProps,\n DropdownMenuLabelProps,\n DropdownMenuItemProps,\n DropdownMenuTriggerItemProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuRadioGroupProps,\n DropdownMenuRadioItemProps,\n DropdownMenuItemIndicatorProps,\n DropdownMenuSeparatorProps,\n DropdownMenuArrowProps,\n};\n","import React from 'react';\n\nexport interface PlugIconProps {\n dark?: boolean;\n}\n\nexport const PlugIcon: React.VFC = ({\n dark,\n}: PlugIconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\n","import { styled } from '../../../stitches.config';\r\n\r\nconst Circle = styled('circle', {\r\n fill: 'currentColor',\r\n});\r\n\r\nexport interface SpinnerIconProps {\r\n size?: string;\r\n}\r\n\r\nexport const SpinnerIcon: React.VFC = ({\r\n size = '24px',\r\n}: SpinnerIconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import { styled } from '@stitches/react';\r\n\r\nexport const IconWrapper = styled('span', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n\r\n transition: 'transform 0.1s ease-in-out',\r\n\r\n variants: {\r\n paddingLeft: {\r\n true: {\r\n paddingLeft: '0.5rem',\r\n },\r\n },\r\n paddingRight: {\r\n true: {\r\n paddingRight: '0.5rem',\r\n },\r\n },\r\n rotate: {\r\n true: {\r\n transform: 'rotate(-180deg)',\r\n },\r\n },\r\n size: {\r\n sm: {\r\n fontSize: '0.8rem',\r\n },\r\n md: {\r\n fontSize: '1.4rem',\r\n },\r\n lg: {\r\n fontSize: '1.8rem',\r\n },\r\n },\r\n },\r\n});\r\n","import { Icons } from './index';\r\nimport { IconWrapper } from './styles';\r\n\r\nexport type IconName = keyof typeof Icons;\r\n\r\nexport type IconType = typeof Icons[Name];\r\n\r\nexport interface IconProps\r\n extends Omit, 'children'> {\r\n icon: Name;\r\n extraIconProps?: React.ComponentProps>;\r\n}\r\n\r\nexport const Icon = ({\r\n icon,\r\n extraIconProps,\r\n ...spanProps\r\n}: IconProps) => {\r\n const IconElement: IconType = Icons[icon];\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import { FiActivity } from '@react-icons/all-files/fi/FiActivity';\r\nimport { FiGrid } from '@react-icons/all-files/fi/FiGrid';\r\nimport { FaMoon } from '@react-icons/all-files/fa/FaMoon';\r\nimport { FaSun } from '@react-icons/all-files/fa/FaSun';\r\nimport { FaDiscord } from '@react-icons/all-files/fa/FaDiscord';\r\nimport { FaTwitter } from '@react-icons/all-files/fa/FaTwitter';\r\nimport { FaShare } from '@react-icons/all-files/fa/FaShare';\r\nimport { FaArrowLeft } from '@react-icons/all-files/fa/FaArrowLeft';\r\nimport { FaArrowCircleLeft } from '@react-icons/all-files/fa/FaArrowCircleLeft';\r\nimport { FaSignOutAlt } from '@react-icons/all-files/fa/FaSignOutAlt';\r\nimport { FaTag } from '@react-icons/all-files/fa/FaTag';\r\nimport { FaChevronDown } from '@react-icons/all-files/fa/FaChevronDown';\r\nimport { FaChevronUp } from '@react-icons/all-files/fa/FaChevronUp';\r\nimport { FaEllipsisH } from '@react-icons/all-files/fa/FaEllipsisH';\r\nimport { FaRegClone } from '@react-icons/all-files/fa/FaRegClone';\r\nimport { FaCheck } from '@react-icons/all-files/fa/FaCheck';\r\nimport { RiCloseCircleLine } from '@react-icons/all-files/ri/RiCloseCircleLine';\r\nimport { RiCloseLine } from '@react-icons/all-files/ri/RiCloseLine';\r\nimport { FaExclamationCircle } from '@react-icons/all-files/fa/FaExclamationCircle';\r\nimport { FaSeedling } from '@react-icons/all-files/fa/FaSeedling';\r\nimport { FaExchangeAlt } from '@react-icons/all-files/fa/FaExchangeAlt';\r\nimport { FaMoneyBillWave } from '@react-icons/all-files/fa/FaMoneyBillWave';\r\nimport { FaList } from '@react-icons/all-files/fa/FaList';\r\nimport { FaInfoCircle } from '@react-icons/all-files/fa/FaInfoCircle';\r\nimport { FaSearch } from '@react-icons/all-files/fa/FaSearch';\r\nimport { GoVerified } from '@react-icons/all-files/go/GoVerified';\r\nimport { FaRegHandPaper } from '@react-icons/all-files/fa/FaRegHandPaper';\r\nimport { IoWarningOutline } from '@react-icons/all-files/io5/IoWarningOutline';\r\nimport { FiUpload } from '@react-icons/all-files/fi/FiUpload';\r\nimport { FiDownload } from '@react-icons/all-files/fi/FiDownload';\r\nimport { AiFillPicture } from '@react-icons/all-files/ai/AiFillPicture';\r\n\r\nimport { PlugIcon, AppNameIcon, SpinnerIcon } from './custom';\r\n\r\nexport const Icons = {\r\n warningOutline: IoWarningOutline,\r\n activity: FiActivity,\r\n grid: FiGrid,\r\n moon: FaMoon,\r\n sun: FaSun,\r\n discord: FaDiscord,\r\n twitter: FaTwitter,\r\n share: FaShare,\r\n 'arrow-left': FaArrowLeft,\r\n 'arrow-left-circle': FaArrowCircleLeft,\r\n disconnect: FaSignOutAlt,\r\n offer: FaTag,\r\n 'chevron-down': FaChevronDown,\r\n 'chevron-up': FaChevronUp,\r\n ellipsis: FaEllipsisH,\r\n copy: FaRegClone,\r\n check: FaCheck,\r\n close: RiCloseLine,\r\n 'close-circle': RiCloseCircleLine,\r\n warning: FaExclamationCircle,\r\n mint: FaSeedling,\r\n transfer: FaExchangeAlt,\r\n sale: FaMoneyBillWave,\r\n list: FaList,\r\n info: FaInfoCircle,\r\n search: FaSearch,\r\n verified: GoVerified,\r\n 'hand-paper': FaRegHandPaper,\r\n spinner: SpinnerIcon,\r\n upload: FiUpload,\r\n download: FiDownload,\r\n myNfts: AiFillPicture,\r\n\r\n plug: PlugIcon,\r\n 'app-name': AppNameIcon,\r\n};\r\n\r\nexport * from './icon';\r\n","import React from 'react';\r\n\r\nexport interface AppNameProps {\r\n dark?: boolean;\r\n}\r\n\r\nexport const AppNameIcon: React.VFC = ({\r\n dark,\r\n}: AppNameProps) => (\r\n \r\n \r\n \r\n);\r\n","import * as DropdownMenu from '@radix-ui/react-dropdown-menu';\r\nimport { styled } from '../../../stitches.config';\r\nimport { Icon } from '../../icons';\r\n\r\nexport const DropdownRoot = styled(DropdownMenu.Root, {\r\n background: '$backgroundColor',\r\n});\r\n\r\nexport const DropdownStyle = styled(DropdownMenu.Trigger, {\r\n border: '2px solid $borderColor',\r\n background: '$backgroundColor',\r\n boxSizing: 'border-box',\r\n borderRadius: '14px',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n color: '$mainTextColor',\r\n width: '210px',\r\n height: '44px',\r\n padding: '0 15px',\r\n cursor: 'pointer',\r\n fontFamily: 'proxima-nova, sans-serif',\r\n\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n});\r\n\r\nexport const DropdownButtonContainer = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: 10,\r\n height: 10,\r\n padding: '10px 15px',\r\n margin: -10,\r\n color: '$mainTextColor',\r\n});\r\n\r\nexport const DropdownContent = styled(DropdownMenu.Content, {\r\n minWidth: '210px',\r\n boxSizing: 'border-box',\r\n boxShadow: '0px 4px 20px rgba(0, 0, 0, 0.15)',\r\n '@media (prefers-reduced-motion: no-preference)': {\r\n animationDuration: '400ms',\r\n animationTimingFunction: 'cubic-bezier(0.16, 1, 0.3, 1)',\r\n willChange: 'transform, opacity',\r\n },\r\n borderRadius: '15px',\r\n marginTop: '10px',\r\n padding: '0',\r\n cursor: 'pointer',\r\n background: '$backgroundColor',\r\n color: '$mainTextColor',\r\n border: '2px solid $borderColor',\r\n variants: {\r\n width: {\r\n small: {\r\n marginTop: '0',\r\n minWidth: '140px',\r\n left: '-20px',\r\n top: '-8px',\r\n position: 'absolute',\r\n },\r\n },\r\n },\r\n\r\n overflow: 'hidden',\r\n\r\n '& .list-item': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n padding: '15px',\r\n position: 'relative',\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n cursor: 'pointer',\r\n\r\n transition: 'background-color 0.2s ease-in-out',\r\n\r\n '& p': {\r\n margin: '0',\r\n },\r\n\r\n borderBottom: '1px solid $borderColor',\r\n '&:last-child': {\r\n borderBottom: 'none',\r\n },\r\n\r\n '&:hover': {\r\n background: '$borderColor',\r\n },\r\n\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n },\r\n});\r\n\r\nexport const DropdownRadioGroup = styled(DropdownMenu.RadioGroup, {\r\n display: 'block',\r\n borderRadius: '15px',\r\n});\r\n\r\nexport const DropdownGroup = styled(DropdownMenu.Group, {\r\n display: 'block',\r\n});\r\n\r\nexport const DropdownRadioMenuItem = styled(\r\n DropdownMenu.RadioItem,\r\n {},\r\n);\r\n\r\nexport const DropdownMenuItem = styled(DropdownMenu.Item, {});\r\n\r\nexport const EllipsisIcon = styled(Icon, {\r\n color: '$iconGrey',\r\n});\r\n","import React, { useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n filterActions,\r\n useAppDispatch,\r\n useFilterStore,\r\n} from '../../../store';\r\nimport {\r\n DropdownRoot,\r\n DropdownStyle,\r\n DropdownContent,\r\n DropdownRadioMenuItem,\r\n DropdownRadioGroup,\r\n} from './styles';\r\nimport { AppLog } from '../../../utils/log';\r\nimport { Icon } from '../../icons';\r\nimport { useTheme } from '../../../hooks';\r\nimport { SortOptions } from '../../../constants/sort-options';\r\n\r\nexport const SortByFilterDropdown = React.memo(() => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const { sortBy } = useFilterStore();\r\n\r\n const [selectedValue, setSelectedValue] = useState(\r\n `${t('translation:dropdown.priceFilter.recentlyActioned')}`,\r\n );\r\n const [, themeObject] = useTheme();\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const sortOptions = [\r\n {\r\n key: SortOptions.LastModified,\r\n value: `${t(\r\n 'translation:dropdown.priceFilter.recentlyActioned',\r\n )}`,\r\n },\r\n {\r\n key: SortOptions.LastSale,\r\n value: `${t('translation:dropdown.priceFilter.recentlySold')}`,\r\n },\r\n {\r\n key: SortOptions.LastSalePrice,\r\n value: `${t(\r\n 'translation:dropdown.priceFilter.highestLastSale',\r\n )}`,\r\n },\r\n {\r\n key: SortOptions.LastOfferPrice,\r\n value: `${t(\r\n 'translation:dropdown.priceFilter.highestLastOffer',\r\n )}`,\r\n },\r\n {\r\n key: SortOptions.PriceLowToHigh,\r\n value: `${t('translation:dropdown.priceFilter.lowToHigh')}`,\r\n },\r\n {\r\n key: SortOptions.PriceHighToLow,\r\n value: `${t('translation:dropdown.priceFilter.highToLow')}`,\r\n },\r\n ];\r\n\r\n const setSortBy = (key: string) => {\r\n const translated = sortOptions.find(\r\n (item) => item.key === key,\r\n )?.value;\r\n\r\n if (!translated) {\r\n AppLog.warn(\r\n `Oops! Sort by key (${key}) translation does not exist`,\r\n );\r\n\r\n return;\r\n }\r\n\r\n setSelectedValue(translated);\r\n dispatch(filterActions.setSortingFilter(key));\r\n };\r\n\r\n const sortValue = useMemo(() => {\r\n return sortOptions.find((sortItem) => sortItem.key === sortBy)\r\n ?.value;\r\n }, [sortOptions, sortBy]);\r\n\r\n return (\r\n \r\n e.preventDefault()} asChild>\r\n

\r\n

{sortValue}

\r\n \r\n
\r\n \r\n\r\n \r\n \r\n {sortOptions.map((item) => (\r\n \r\n {item.value}\r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n});\r\n","import React from 'react';\r\nimport copyToClipboard from 'copy-to-clipboard';\r\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { notificationActions, useAppDispatch } from '../../../store';\r\nimport {\r\n DropdownContent,\r\n DropdownMenuItem,\r\n DropdownGroup,\r\n DropdownButtonContainer,\r\n EllipsisIcon,\r\n} from './styles';\r\nimport { NFTMetadata } from '../../../declarations/legacy';\r\nimport { Icon } from '../../icons';\r\nimport { useTheme } from '../../../hooks';\r\n\r\nexport type CardOptionsDropdownProps = {\r\n data: NFTMetadata;\r\n};\r\n\r\nexport const CardOptionsDropdown = ({\r\n data,\r\n}: CardOptionsDropdownProps) => {\r\n const { t } = useTranslation();\r\n const [, themeObject] = useTheme();\r\n const dispatch = useAppDispatch();\r\n\r\n const handleCopy = (e: any) => {\r\n e.preventDefault();\r\n copyToClipboard(`${window.location.href}nft/${data.id}`);\r\n dispatch(\r\n notificationActions.setSuccessMessage(\r\n `${t('translation:successMessages.copyToClipboard')}`,\r\n ),\r\n );\r\n };\r\n\r\n return (\r\n \r\n e.preventDefault()}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n handleCopy(e)}\r\n >\r\n \r\n \r\n

\r\n {`${t('translation:dropdown.moreOptions.copyLink')}`}\r\n

\r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n","import { styled } from '../../../stitches.config';\r\nimport { Icon } from '../../icons';\r\n\r\nexport const Container = styled('div', {\r\n // base styles\r\n position: 'relative',\r\n width: '100%',\r\n\r\n // variants\r\n variants: {\r\n name: {\r\n searchInput: {\r\n width: '100%',\r\n maxWidth: '600px',\r\n height: '44px',\r\n },\r\n filterInput: {\r\n width: '135px',\r\n height: '44px',\r\n },\r\n modalInput: {\r\n width: '430px',\r\n height: '56px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const Input = styled('input', {\r\n // base styles\r\n all: 'unset',\r\n width: '100%',\r\n height: '100%',\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n borderRadius: 14,\r\n fontSize: 16,\r\n lineHeight: 1,\r\n color: '$mainTextColor',\r\n\r\n border: '1.5px solid $borderColor',\r\n boxSizing: 'border-box',\r\n\r\n // variants\r\n variants: {\r\n name: {\r\n searchInput: {\r\n padding: '13px 16px 13px 44px',\r\n fontSize: '16px',\r\n fontWeight: 500,\r\n lineHeight: '19px',\r\n },\r\n filterInput: {\r\n padding: '13px 16px',\r\n fontSize: '16px',\r\n fontWeight: 500,\r\n lineHeight: '19px',\r\n },\r\n modalInput: {\r\n padding: '15px 116px 15px 21px',\r\n fontSize: '22px',\r\n fontWeight: 500,\r\n lineHeight: '27px',\r\n },\r\n },\r\n error: {\r\n true: {\r\n borderColor: '1.5px solid $error',\r\n color: '$error',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const SearchIcon = styled(Icon, {\r\n color: '$mainTextColor',\r\n position: 'absolute',\r\n width: '16px',\r\n height: '16px',\r\n left: '0px',\r\n top: '0px',\r\n padding: '14px 16px',\r\n});\r\n\r\nexport const AmountTypeContainer = styled('div', {\r\n position: 'absolute',\r\n top: '0px',\r\n bottom: '0px',\r\n right: '0px',\r\n width: '93px',\r\n background: '$tableBackgroundColor',\r\n borderRadius: '0px 14px 14px 0px',\r\n border: '1.5px solid $borderColor',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: '$mainTextColor',\r\n});\r\n\r\nexport const AmountTypeTitle = styled('div', {\r\n fontSize: '18px',\r\n fontWeight: '500',\r\n lineHeight: '22px',\r\n});\r\n\r\nexport const AmountTypeIcon = styled('img', {\r\n width: '14px',\r\n height: '14px',\r\n marginRight: '5px',\r\n});\r\n","import React, { forwardRef, ChangeEvent } from 'react';\r\nimport { Container, Input, SearchIcon } from './styles';\r\n\r\nexport type SearchInputProps = {\r\n placeholder?: string;\r\n setValue?: (value: string) => void;\r\n handleClick?: () => void;\r\n handleSearch?: (value: string) => void;\r\n};\r\n\r\nexport const SearchInput = forwardRef<\r\n HTMLInputElement,\r\n SearchInputProps\r\n>(\r\n (\r\n { placeholder = '', setValue, handleClick, handleSearch },\r\n ref,\r\n ) => {\r\n const handleValueChange = (\r\n event: ChangeEvent,\r\n ) => {\r\n const value = event?.target?.value;\r\n if (setValue) {\r\n setValue(value);\r\n }\r\n // eslint-disable-next-line\r\n handleSearch && handleSearch(value);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n },\r\n);\r\n","import React, { forwardRef, useCallback } from 'react';\r\nimport { AppLog } from '../../../utils/log';\r\nimport { Input } from './styles';\r\n\r\nexport type InputValidatorProps = React.ComponentProps<\r\n typeof Input\r\n> & {\r\n validator?: 'wicp';\r\n onChange?: React.ChangeEventHandler;\r\n};\r\n\r\n/**\r\n * Currently the validator going to stop the\r\n * change event if the new value is invalid.\r\n * New validators can be added here in the future.\r\n */\r\nconst useValidatorCallback = (\r\n validator: InputValidatorProps['validator'],\r\n onChange: InputValidatorProps['onChange'],\r\n) =>\r\n useCallback(\r\n (e: React.ChangeEvent): void => {\r\n try {\r\n switch (validator) {\r\n case 'wicp':\r\n if (!e.currentTarget.value.match(/^\\d*((.\\d{0,8})|)$/))\r\n throw new Error('ValidatorError');\r\n break;\r\n default:\r\n }\r\n\r\n if (onChange) onChange(e);\r\n } catch (error) {\r\n // Log only if is a unknown error\r\n if (\r\n error instanceof Error &&\r\n error.message !== 'ValidatorError'\r\n ) {\r\n AppLog.error(\r\n 'Invalid input typing',\r\n `[validator: ${validator}]`,\r\n error,\r\n );\r\n }\r\n\r\n e.stopPropagation();\r\n }\r\n },\r\n [validator, onChange],\r\n );\r\n\r\nexport const InputValidator: React.VFC =\r\n forwardRef(\r\n ({ validator, onChange, ...inputProps }, ref) => {\r\n const changeValidation = useValidatorCallback(\r\n validator,\r\n onChange,\r\n );\r\n\r\n return (\r\n \r\n );\r\n },\r\n );\r\n","import React, { forwardRef, ChangeEvent } from 'react';\r\nimport { InputValidator } from './input-validator';\r\nimport { Container } from './styles';\r\n\r\nexport type FilterInputProps = {\r\n placeholder?: string;\r\n inputValue?: string;\r\n setValue?: (value: string) => void;\r\n};\r\n\r\nexport const FilterInput = forwardRef<\r\n HTMLInputElement,\r\n FilterInputProps\r\n>(({ placeholder = '', setValue, inputValue = '' }, ref) => {\r\n const handleValueChange = (\r\n event: ChangeEvent,\r\n ) => {\r\n const value = event?.target?.value;\r\n if (setValue) {\r\n setValue(\r\n value !== '' ? Math.abs(Number(value)).toString() : value,\r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","var _rect, _path, _path2, _path3;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgWicp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 18,\n height: 18,\n rx: 9,\n fill: \"black\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.3584 6.00049C11.6284 6.00049 10.8327 6.37456 9.99156 7.11137C9.59255 7.46051 9.24795 7.83458 8.9895 8.13384C8.9895 8.13384 8.9895 8.13384 8.99177 8.13611V8.13384C8.99177 8.13384 9.39985 8.57819 9.851 9.05429C10.0936 8.76636 10.4427 8.37415 10.844 8.02048C11.5921 7.36529 12.0796 7.22699 12.3584 7.22699C13.4081 7.22699 14.2605 8.05902 14.2605 9.08149C14.2605 10.0972 13.4058 10.9292 12.3584 10.936C12.3108 10.936 12.2496 10.9292 12.1725 10.9133C12.4786 11.0448 12.8073 11.14 13.1202 11.14C15.0427 11.14 15.419 9.88631 15.444 9.79563C15.5006 9.56665 15.5301 9.32634 15.5301 9.07922C15.5301 7.38343 14.1064 6.00049 12.3584 6.00049Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.64288 12.1669C6.37289 12.1669 7.16864 11.7928 8.00974 11.056C8.40875 10.7069 8.75335 10.3328 9.0118 10.0335C9.0118 10.0335 9.0118 10.0335 9.00954 10.0313V10.0335C9.00954 10.0335 8.60146 9.58918 8.1503 9.11308C7.90772 9.40101 7.55859 9.79322 7.15731 10.1469C6.40916 10.8021 5.92173 10.9404 5.64288 10.9404C4.59321 10.9404 3.74077 10.1083 3.74077 9.08588C3.74077 8.07021 4.59547 7.23818 5.64288 7.23138C5.69049 7.23138 5.7517 7.23818 5.82878 7.25405C5.52272 7.12256 5.19399 7.02734 4.88113 7.02734C2.95862 7.02734 2.58228 8.28106 2.55734 8.37174C2.50066 8.60072 2.47119 8.84103 2.47119 9.08815C2.47119 10.7839 3.89494 12.1669 5.64288 12.1669Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.116 11.1135C12.1321 11.0885 11.1096 10.3132 10.9011 10.1205C10.3615 9.62173 9.11686 8.27279 9.01937 8.16624C8.10799 7.14604 6.87242 6.00342 5.64364 6.00342H5.64138H5.63911C4.14735 6.01022 2.89137 7.02135 2.55811 8.37028C2.58304 8.28186 3.07501 7.00321 4.87963 7.04856C5.86355 7.07349 6.89055 7.86018 7.10139 8.05288C7.64097 8.55165 8.88561 9.90058 8.9831 10.0071C9.89447 11.0273 11.13 12.17 12.3588 12.17H12.3611H12.3634C13.8551 12.1632 15.1111 11.152 15.4444 9.80309C15.4172 9.88924 14.9229 11.1566 13.116 11.1135Z\",\n fill: \"white\"\n })));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgWicp);\nexport default __webpack_public_path__ + \"static/media/wicp.b7488d52d2d03e18da42af9fec79d670.svg\";\nexport { ForwardRef as ReactComponent };","import React, { forwardRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport wicpLogo from '../../../assets/wicp.svg';\r\nimport { InputValidator } from './input-validator';\r\nimport {\r\n Container,\r\n Input,\r\n AmountTypeContainer,\r\n AmountTypeTitle,\r\n AmountTypeIcon,\r\n} from './styles';\r\n\r\nexport type ModalInputProps = React.ComponentProps;\r\n\r\nexport const ModalInput = forwardRef<\r\n HTMLInputElement,\r\n ModalInputProps\r\n>((inputProps, ref) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t('translation:inputField.amountTypes.wicp')}\r\n \r\n \r\n \r\n );\r\n});\r\n","import { styled } from '../../../stitches.config';\r\n\r\nexport const CountContainer = styled('div', {\r\n // base styles\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '19px',\r\n color: '#777E90',\r\n display: 'flex',\r\n alignItems: 'center',\r\n margin: '0px 25px 0px 0px',\r\n});\r\n\r\nexport const CountLabel = styled('div', {\r\n marginRight: '4px',\r\n});\r\n\r\nexport const CountInNumbers = styled('div', {\r\n color: '$mainTextColor',\r\n fontWeight: '600',\r\n});\r\n\r\nexport const CountLogo = styled('img', {\r\n width: '15px',\r\n height: '15px',\r\n marginLeft: '5px',\r\n});\r\n\r\nexport const TraitChipContainer = styled('div', {\r\n // base styles\r\n boxSizing: 'border-box',\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '12px 10px',\r\n borderRadius: '14px',\r\n background: '$chipsBackgroundColor',\r\n color: '$chipsTextColor',\r\n\r\n // variants\r\n variants: {\r\n type: {\r\n filtered: {\r\n background: 'rgba(34, 83, 255, 0.1)',\r\n border: '1.5px solid #87A1FF',\r\n margin: '0px 10px 10px 0px',\r\n },\r\n\r\n nft: {\r\n minWidth: '150px',\r\n background: '$chipsNftBackgroundColor',\r\n border: '1.5px solid $borderColor',\r\n margin: '0px 15px 15px 0px',\r\n\r\n '&:nth-child(3)': {\r\n marginRight: '0px',\r\n },\r\n },\r\n },\r\n },\r\n\r\n '&:last-child': {\r\n marginRight: '0px',\r\n },\r\n});\r\n\r\nexport const TraitSpecsContainer = styled('div', {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n marginRight: '20px',\r\n});\r\n\r\nexport const TraitName = styled('div', {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '19px',\r\n marginBottom: '2px',\r\n\r\n // variants\r\n variants: {\r\n type: {\r\n nft: {\r\n marginBottom: '4px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const TraitRim = styled('div', {\r\n // base styles\r\n fontSize: '12px',\r\n fontWeight: '500',\r\n lineHeight: '15px',\r\n color: '#767D8E',\r\n\r\n // variants\r\n variants: {\r\n type: {\r\n nft: {\r\n marginBottom: '3px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const TraitLabel = styled('div', {\r\n // base styles\r\n fontSize: '12px',\r\n fontWeight: '500',\r\n lineHeight: '15px',\r\n color: '#767D8E',\r\n\r\n // variants\r\n variants: {\r\n type: {\r\n nft: {\r\n marginBottom: '3px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const Traitvalue = styled('div', {\r\n fontSize: '14px',\r\n fontWeight: 'normal',\r\n lineHeight: '17px',\r\n color: '$mainTextColor',\r\n});\r\n\r\nexport const TraitActionContainer = styled('div', {\r\n display: 'flex',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n});\r\n\r\nexport const TraitClear = styled('img', {\r\n maxWidth: '12px',\r\n\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n});\r\n\r\nexport const Image = styled('img', {\r\n width: '20px',\r\n marginRight: '10px',\r\n});\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport wicpImage from '../../../assets/wicp.svg';\r\nimport {\r\n CountContainer,\r\n CountLabel,\r\n CountInNumbers,\r\n CountLogo,\r\n} from './styles';\r\n\r\nexport interface FilteredCountChipProps {\r\n label?: string;\r\n count?: number;\r\n showLogo?: boolean;\r\n}\r\n\r\nexport const FilteredCountChip = ({\r\n label,\r\n count,\r\n showLogo,\r\n}: FilteredCountChipProps) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n {label}\r\n {count}\r\n {showLogo && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { useTranslation } from 'react-i18next';\r\nimport wicpIcon from '../../../assets/wicp.svg';\r\nimport {\r\n TraitChipContainer,\r\n TraitSpecsContainer,\r\n TraitName,\r\n TraitRim,\r\n TraitActionContainer,\r\n Image,\r\n} from './styles';\r\nimport { Icon } from '../../icons';\r\n\r\nexport interface FilteredTraitsChipProps {\r\n name?: string;\r\n rim?: string;\r\n appliedFilterValue?: any;\r\n removeFilter: () => void;\r\n}\r\n\r\nexport const FilteredTraitsChip = ({\r\n name,\r\n rim,\r\n appliedFilterValue = {},\r\n removeFilter,\r\n}: FilteredTraitsChipProps) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n {appliedFilterValue.filterCategory ===\r\n `${t('translation:filters.priceRange')}` && (\r\n \"mini-dfinity\"\r\n )}\r\n \r\n {name}\r\n {rim}\r\n \r\n removeFilter()}>\r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n TraitChipContainer,\r\n TraitSpecsContainer,\r\n TraitName,\r\n TraitLabel,\r\n Traitvalue,\r\n} from './styles';\r\n\r\nexport interface NFTTraitsChipProps {\r\n label?: string;\r\n name?: string;\r\n rimValue?: string;\r\n}\r\n\r\nexport const NFTTraitsChip = ({\r\n label,\r\n name,\r\n rimValue,\r\n}: NFTTraitsChipProps) => (\r\n \r\n \r\n {label}\r\n {name ? name : '-'}\r\n {rimValue ? rimValue : '-'}\r\n \r\n \r\n);\r\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Presence } from '@radix-ui/react-presence';\nimport { useId } from '@radix-ui/react-id';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Collapsible\n * -----------------------------------------------------------------------------------------------*/\n\nconst COLLAPSIBLE_NAME = 'Collapsible';\n\ntype ScopedProps

= P & { __scopeCollapsible?: Scope };\nconst [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\n\ntype CollapsibleContextValue = {\n contentId: string;\n disabled?: boolean;\n open: boolean;\n onOpenToggle(): void;\n};\n\nconst [CollapsibleProvider, useCollapsibleContext] =\n createCollapsibleContext(COLLAPSIBLE_NAME);\n\ntype CollapsibleElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface CollapsibleProps extends PrimitiveDivProps {\n defaultOpen?: boolean;\n open?: boolean;\n disabled?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst Collapsible = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n setOpen((prevOpen) => !prevOpen), [setOpen])}\n >\n \n \n );\n }\n);\n\nCollapsible.displayName = COLLAPSIBLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsibleTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'CollapsibleTrigger';\n\ntype CollapsibleTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef;\ninterface CollapsibleTriggerProps extends PrimitiveButtonProps {}\n\nconst CollapsibleTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return (\n \n );\n }\n);\n\nCollapsibleTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsibleContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'CollapsibleContent';\n\ntype CollapsibleContentElement = CollapsibleContentImplElement;\ninterface CollapsibleContentProps extends Omit {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst CollapsibleContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return (\n \n {({ present }) => (\n \n )}\n \n );\n }\n);\n\nCollapsibleContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype CollapsibleContentImplElement = React.ElementRef;\ninterface CollapsibleContentImplProps extends PrimitiveDivProps {\n present: boolean;\n}\n\nconst CollapsibleContentImpl = React.forwardRef<\n CollapsibleContentImplElement,\n CollapsibleContentImplProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n // when opening we want it to immediately open to retrieve dimensions\n // when closing we delay `present` to retrieve dimensions before closing\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef>();\n\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => (isMountAnimationPreventedRef.current = false));\n return () => cancelAnimationFrame(rAF);\n }, []);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationDuration: node.style.animationDuration,\n animationFillMode: node.style.animationFillMode,\n };\n // block any animations/transitions so the element renders at its full dimensions\n node.style.transitionDuration = '0s';\n node.style.animationDuration = '0s';\n node.style.animationFillMode = 'none';\n\n // get width and height from full dimensions\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n\n // kick off any animations/transitions that were originally set up if it isn't the initial mount\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationDuration = originalStylesRef.current.animationDuration;\n node.style.animationFillMode = originalStylesRef.current.animationFillMode;\n }\n\n setIsPresent(present);\n }\n /**\n * depends on `context.open` because it will change to `false`\n * when a close is triggered but `present` will be `false` on\n * animation end (so when close finishes). This allows us to\n * retrieve the dimensions *before* closing.\n */\n }, [context.open, present]);\n\n return (\n

= P & { __scopeAccordion?: Scope };\nconst [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n createCollectionScope,\n createCollapsibleScope,\n]);\nconst useCollapsibleScope = createCollapsibleScope();\n\ntype AccordionElement = AccordionImplMultipleElement | AccordionImplSingleElement;\ninterface AccordionSingleProps extends AccordionImplSingleProps {\n type: 'single';\n}\ninterface AccordionMultipleProps extends AccordionImplMultipleProps {\n type: 'multiple';\n}\n\nconst Accordion = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { type, ...accordionProps } = props;\n const singleProps = accordionProps as AccordionImplSingleProps;\n const multipleProps = accordionProps as AccordionImplMultipleProps;\n return (\n \n {type === 'multiple' ? (\n \n ) : (\n \n )}\n \n );\n }\n);\n\nAccordion.displayName = ACCORDION_NAME;\n\nAccordion.propTypes = {\n type(props) {\n const value = props.value || props.defaultValue;\n if (props.type && !['single', 'multiple'].includes(props.type)) {\n return new Error(\n 'Invalid prop `type` supplied to `Accordion`. Expected one of `single | multiple`.'\n );\n }\n if (props.type === 'multiple' && typeof value === 'string') {\n return new Error(\n 'Invalid prop `type` supplied to `Accordion`. Expected `single` when `defaultValue` or `value` is type `string`.'\n );\n }\n if (props.type === 'single' && Array.isArray(value)) {\n return new Error(\n 'Invalid prop `type` supplied to `Accordion`. Expected `multiple` when `defaultValue` or `value` is type `string[]`.'\n );\n }\n return null;\n },\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype AccordionValueContextValue = {\n value: string[];\n onItemOpen(value: string): void;\n onItemClose(value: string): void;\n};\n\nconst [AccordionValueProvider, useAccordionValueContext] =\n createAccordionContext(ACCORDION_NAME);\n\nconst [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n ACCORDION_NAME,\n { collapsible: false }\n);\n\ntype AccordionImplSingleElement = AccordionImplElement;\ninterface AccordionImplSingleProps extends AccordionImplProps {\n /**\n * The controlled stateful value of the accordion item whose content is expanded.\n */\n value?: string;\n /**\n * The value of the item whose content is expanded when the accordion is initially rendered. Use\n * `defaultValue` if you do not need to control the state of an accordion.\n */\n defaultValue?: string;\n /**\n * The callback that fires when the state of the accordion changes.\n */\n onValueChange?(value: string): void;\n /**\n * Whether an accordion item can be collapsed after it has been opened.\n * @default false\n */\n collapsible?: boolean;\n}\n\nconst AccordionImplSingle = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {},\n collapsible = false,\n ...accordionSingleProps\n } = props;\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n });\n\n return (\n collapsible && setValue(''), [collapsible, setValue])}\n >\n \n \n \n \n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype AccordionImplMultipleElement = AccordionImplElement;\ninterface AccordionImplMultipleProps extends AccordionImplProps {\n /**\n * The controlled stateful value of the accordion items whose contents are expanded.\n */\n value?: string[];\n /**\n * The value of the items whose contents are expanded when the accordion is initially rendered. Use\n * `defaultValue` if you do not need to control the state of an accordion.\n */\n defaultValue?: string[];\n /**\n * The callback that fires when the state of the accordion changes.\n */\n onValueChange?(value: string[]): void;\n}\n\nconst AccordionImplMultiple = React.forwardRef<\n AccordionImplMultipleElement,\n AccordionImplMultipleProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {},\n ...accordionMultipleProps\n } = props;\n\n const [value = [], setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n });\n\n const handleItemOpen = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n\n const handleItemClose = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value) => value !== itemValue)),\n [setValue]\n );\n\n return (\n \n \n \n \n \n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype AccordionImplContextValue = {\n disabled?: boolean;\n};\n\nconst [AccordionImplProvider, useAccordionContext] =\n createAccordionContext(ACCORDION_NAME);\n\ntype AccordionImplElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface AccordionImplProps extends PrimitiveDivProps {\n /**\n * Whether or not an accordion is disabled from user interaction.\n *\n * @defaultValue false\n */\n disabled?: boolean;\n}\n\nconst AccordionImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAccordion, disabled, ...accordionProps } = props;\n const accordionRef = React.useRef(null);\n const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n const getItems = useCollection(__scopeAccordion);\n\n const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n if (!ACCORDION_KEYS.includes(event.key)) return;\n const target = event.target as HTMLElement;\n const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n const triggerCount = triggerCollection.length;\n\n if (triggerIndex === -1) return;\n\n // Prevents page scroll while user is navigating\n event.preventDefault();\n\n let nextIndex = triggerIndex;\n switch (event.key) {\n case 'Home':\n nextIndex = 0;\n break;\n case 'End':\n nextIndex = triggerCount - 1;\n break;\n case 'ArrowDown':\n nextIndex = triggerIndex + 1;\n break;\n case 'ArrowUp':\n nextIndex = triggerIndex - 1;\n if (nextIndex < 0) {\n nextIndex = triggerCount - 1;\n }\n break;\n }\n\n const clampedIndex = nextIndex % triggerCount;\n triggerCollection[clampedIndex].ref.current?.focus();\n });\n\n return (\n \n \n \n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'AccordionItem';\n\ntype AccordionItemContextValue = { open?: boolean; disabled?: boolean; triggerId: string };\nconst [AccordionItemProvider, useAccordionItemContext] =\n createAccordionContext(ITEM_NAME);\n\ntype AccordionItemElement = React.ElementRef;\ntype CollapsibleProps = Radix.ComponentPropsWithoutRef;\ninterface AccordionItemProps\n extends Omit {\n /**\n * Whether or not an accordion item is disabled from user interaction.\n *\n * @defaultValue false\n */\n disabled?: boolean;\n /**\n * A string value for the accordion item. All items within an accordion should use a unique value.\n */\n value: string;\n}\n\n/**\n * `AccordionItem` contains all of the parts of a collapsible section inside of an `Accordion`.\n */\nconst AccordionItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAccordion, value, ...accordionItemProps } = props;\n const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n const triggerId = useId();\n const open = (value && valueContext.value.includes(value)) || false;\n const disabled = accordionContext.disabled || props.disabled;\n\n return (\n \n {\n if (open) {\n valueContext.onItemOpen(value);\n } else {\n valueContext.onItemClose(value);\n }\n }}\n />\n \n );\n }\n);\n\nAccordionItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst HEADER_NAME = 'AccordionHeader';\n\ntype AccordionHeaderElement = React.ElementRef;\ntype PrimitiveHeading3Props = Radix.ComponentPropsWithoutRef;\ninterface AccordionHeaderProps extends PrimitiveHeading3Props {}\n\n/**\n * `AccordionHeader` contains the content for the parts of an `AccordionItem` that will be visible\n * whether or not its content is collapsed.\n */\nconst AccordionHeader = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAccordion, ...headerProps } = props;\n const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n return (\n \n );\n }\n);\n\nAccordionHeader.displayName = HEADER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'AccordionTrigger';\n\ntype AccordionTriggerElement = React.ElementRef;\ntype CollapsibleTriggerProps = Radix.ComponentPropsWithoutRef;\ninterface AccordionTriggerProps extends CollapsibleTriggerProps {}\n\n/**\n * `AccordionTrigger` is the trigger that toggles the collapsed state of an `AccordionItem`. It\n * should always be nested inside of an `AccordionHeader`.\n */\nconst AccordionTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAccordion, ...triggerProps } = props;\n const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return (\n \n \n \n );\n }\n);\n\nAccordionTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'AccordionContent';\n\ntype AccordionContentElement = React.ElementRef;\ntype CollapsibleContentProps = Radix.ComponentPropsWithoutRef;\ninterface AccordionContentProps extends CollapsibleContentProps {}\n\n/**\n * `AccordionContent` contains the collapsible content for an `AccordionItem`.\n */\nconst AccordionContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAccordion, ...contentProps } = props;\n const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return (\n \n );\n }\n);\n\nAccordionContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open?: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Accordion;\nconst Item = AccordionItem;\nconst Header = AccordionHeader;\nconst Trigger = AccordionTrigger;\nconst Content = AccordionContent;\n\nexport {\n createAccordionScope,\n //\n Accordion,\n AccordionItem,\n AccordionHeader,\n AccordionTrigger,\n AccordionContent,\n //\n Root,\n Item,\n Header,\n Trigger,\n Content,\n};\nexport type {\n AccordionSingleProps,\n AccordionMultipleProps,\n AccordionItemProps,\n AccordionHeaderProps,\n AccordionTriggerProps,\n AccordionContentProps,\n};\n","import { styled } from '../../../stitches.config';\r\n\r\nexport const Wrapper = styled('div', {\r\n padding: '8px 0',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n\r\n '&:last-child': {\r\n paddingBottom: '15px',\r\n },\r\n\r\n '& label': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '20px',\r\n color: '$mainTextColor',\r\n width: '60%',\r\n cursor: 'pointer',\r\n\r\n '& input[type=\"checkbox\"]': {\r\n display: 'none',\r\n },\r\n\r\n '& input[type=\"checkbox\"] + span:before': {\r\n content: '\\\\00a0',\r\n marginRight: '8px',\r\n marginLeft: '0px',\r\n border: '1px solid #777E8F',\r\n boxSizing: 'border-box',\r\n borderRadius: '4px',\r\n width: '18px',\r\n height: '17px',\r\n cursor: 'pointer',\r\n display: 'inline-block',\r\n },\r\n\r\n '& input[type=\"checkbox\"]:checked + span:before': {\r\n background: '$primary',\r\n borderColor: '$primary',\r\n color: '#ffffff',\r\n content: '\\\\2713',\r\n width: '18px',\r\n height: '17px',\r\n cursor: 'pointer',\r\n boxSizing: 'border-box',\r\n borderRadius: '4px',\r\n marginRight: '8px',\r\n marginLeft: '0px',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n\r\n '& input[type=\"checkbox\"]:checked + span:after': {\r\n fontWeight: 'bold',\r\n color: 'white',\r\n },\r\n },\r\n});\r\n\r\nexport const RarityValue = styled('span', {\r\n color: '$regentGrey',\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n textAlign: 'right',\r\n});\r\n","import React from 'react';\r\nimport { roundOffDecimalValue } from '../../../utils/nfts';\r\nimport { Wrapper, RarityValue } from './styles';\r\n\r\nexport type CheckboxProps = {\r\n title?: string;\r\n value: string; // Red\r\n filterValueExists: boolean;\r\n percentage: string; // 1291 (12.9%)\r\n occurence: string;\r\n handleSelectedFilters: (\r\n value: React.MouseEvent,\r\n ) => void;\r\n};\r\n\r\nexport const Checkbox = ({\r\n value,\r\n percentage,\r\n occurence,\r\n filterValueExists,\r\n handleSelectedFilters,\r\n}: CheckboxProps) => (\r\n {\r\n // Keyboard accessibility\r\n if (\r\n event.keyCode === 13 &&\r\n typeof handleSelectedFilters === 'function'\r\n ) {\r\n event.target.value = value;\r\n handleSelectedFilters(event);\r\n }\r\n }}\r\n >\r\n \r\n {`${occurence} (${roundOffDecimalValue(\r\n Number(percentage),\r\n 1,\r\n )}%)`}\r\n \r\n);\r\n","import { keyframes, styled } from '../../../stitches.config';\r\n\r\nconst fadeInOut = keyframes({\r\n '0%': {\r\n opacity: '1',\r\n },\r\n '50%': {\r\n opacity: '0.5',\r\n },\r\n '100%': {\r\n opacity: '1',\r\n },\r\n});\r\n\r\nexport const SkeletonBox = styled('div', {\r\n width: '106px',\r\n height: '1.4rem',\r\n borderRadius: '10px',\r\n backgroundColor: 'rgba(0, 0, 0, 0.11)',\r\n background: '$skeletonBackground',\r\n animation: `${fadeInOut} 1.2s linear infinite`,\r\n transitionTimingFunction: 'ease-in-out',\r\n variants: {\r\n size: {\r\n small: {\r\n width: '85px',\r\n },\r\n },\r\n },\r\n});\r\n","import * as Accordion from '@radix-ui/react-accordion';\r\nimport { styled, keyframes } from '../../../stitches.config';\r\nimport { SkeletonBox } from '../skeleton';\r\n\r\nconst slideDown = keyframes({\r\n from: { maxHeight: 0 },\r\n to: { maxHeight: 'var(--radix-accordion-content-height)' },\r\n});\r\n\r\nconst slideUp = keyframes({\r\n from: { height: 'var(--radix-accordion-content-height)' },\r\n to: { height: 0 },\r\n});\r\n\r\nexport const AccordionStyle = styled(Accordion.Root, {\r\n border: '2px solid $borderColor',\r\n borderRadius: '15px',\r\n marginBottom: '25px',\r\n\r\n variants: {\r\n backgroundColor: {\r\n open: {\r\n backgroundColor: '$openAccordion',\r\n },\r\n notopen: {\r\n backgroundColor: '$closeAccordion',\r\n },\r\n },\r\n width: {\r\n small: {\r\n width: '100%',\r\n },\r\n medium: {\r\n width: '100%',\r\n maxWidth: '670px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const AccordionHead = styled('div', {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n padding: '25px',\r\n flexWrap: 'wrap',\r\n\r\n // variants\r\n variants: {\r\n flexDirection: {\r\n column: {\r\n flexDirection: 'column',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const AccordionHeadContent = styled('div', {\r\n display: 'flex',\r\n\r\n variants: {\r\n flexProperties: {\r\n offer: {\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const MetaDataDetails = styled('div', {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n});\r\n\r\nexport const MetaDataTitle = styled('span', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '14px',\r\n lineHeight: '17px',\r\n display: 'flex',\r\n alignitems: 'center',\r\n color: '$greyMid',\r\n});\r\n\r\nexport const MetaDataDescription = styled('p', {\r\n margin: '5px 0 0',\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '18px',\r\n lineHeight: '22px',\r\n display: 'flex',\r\n alignitems: 'center',\r\n color: '$mainTextColor',\r\n});\r\n\r\nexport const PriceWrapper = styled('div', {\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n});\r\n\r\nexport const CurrentPriceWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n});\r\n\r\nexport const OfferLabel = styled('div', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '18px',\r\n color: '$greyMid',\r\n});\r\n\r\nexport const OfferPrice = styled('div', {\r\n margin: '5px 0 0',\r\n fontStyle: 'normal',\r\n fontWeight: 'bold',\r\n fontSize: '32px',\r\n lineHeight: '39px',\r\n display: 'flex',\r\n alignitems: 'center',\r\n color: '$mainTextColor',\r\n});\r\n\r\nexport const MarketPrice = styled('div', {\r\n fontStyle: 'normal',\r\n fontWeight: 'normal',\r\n fontSize: '32px',\r\n lineHeight: '39px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n textAlign: 'right',\r\n color: '$mainTextColor',\r\n margin: '0',\r\n});\r\n\r\nexport const LogoWrapper = styled('div', {\r\n marginRight: '12px',\r\n width: '42px',\r\n height: '42px',\r\n borderRadius: '50%',\r\n backgroundSize: 'contain',\r\n backgroundPosition: 'center',\r\n backgroundRepeat: 'no-repeat',\r\n\r\n variants: {\r\n size: {\r\n large: {\r\n width: '60px',\r\n height: '60px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const FlexRight = styled('div', {\r\n display: 'flex',\r\n width: '50%',\r\n alignItems: 'center',\r\n});\r\n\r\nexport const AccordionTrigger = styled(Accordion.Trigger, {\r\n color: '$mainTextColor',\r\n\r\n variants: {\r\n backgroundColor: {\r\n open: {\r\n background: '$openAccordion',\r\n borderRadius: '0px',\r\n },\r\n notopen: {\r\n background: '$closeAccordion',\r\n },\r\n none: {\r\n backgroundColor: 'unset',\r\n },\r\n },\r\n padding: {\r\n small: {\r\n padding: '0 15px',\r\n height: '44px',\r\n },\r\n medium: {\r\n padding: '25px 25px',\r\n },\r\n },\r\n borderTop: {\r\n none: {\r\n border: 'none',\r\n },\r\n borderSet: {\r\n borderRadius: '0px 0px 15px 15px',\r\n borderTop: '1.5px solid $borderColor',\r\n borderRight: 'none',\r\n borderLeft: 'none',\r\n borderBottom: 'none',\r\n },\r\n },\r\n },\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n cursor: 'pointer',\r\n boxSizing: 'border-box',\r\n fontFamily: 'proxima-nova, sans-serif',\r\n\r\n '& div': {\r\n display: 'flex',\r\n\r\n '& img': {\r\n marginRight: '10px',\r\n },\r\n },\r\n\r\n '& p': {\r\n margin: '0',\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n variants: {\r\n fontSize: {\r\n small: {\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n },\r\n medium: {\r\n fontSize: '18px',\r\n lineHeight: '22px',\r\n },\r\n },\r\n },\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n '& span': {\r\n margin: '0 0 0 5px',\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: '$primary',\r\n },\r\n },\r\n\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n});\r\n\r\nexport const AccordionContent = styled(Accordion.Content, {\r\n color: '$mainTextColor',\r\n overflow: 'scroll',\r\n msOverflowStyle: 'none',\r\n scrollbarWidth: 'none',\r\n\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n\r\n '&[data-state=\"open\"]': {\r\n animation: `${slideDown} 700ms cubic-bezier(0.87, 0, 0.13, 1) forwards`,\r\n },\r\n\r\n '&[data-state=\"closed\"]': {\r\n animation: `${slideUp} 600ms cubic-bezier(0.87, 0, 0.13, 1) forwards`,\r\n },\r\n\r\n variants: {\r\n backgroundColor: {\r\n open: {\r\n background: '$openAccordion',\r\n },\r\n notopen: {\r\n backgroundColor: '$closeAccordion',\r\n },\r\n none: {\r\n backgroundColor: 'unset',\r\n },\r\n },\r\n padding: {\r\n small: {\r\n padding: '0 15px',\r\n },\r\n medium: {\r\n padding: '0 25px',\r\n },\r\n none: {\r\n padding: '0',\r\n },\r\n },\r\n },\r\n borderBottomLeftRadius: '15px',\r\n borderBottomRightRadius: '15px',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n border: 'none',\r\n});\r\n\r\nexport const Form = styled('div', {\r\n width: '100%',\r\n});\r\n\r\nexport const Description = styled('p', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n color: '#777E90',\r\n margin: '0',\r\n padding: '15px 0 25px',\r\n});\r\n\r\nexport const Flex = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n});\r\n\r\nexport const Subtext = styled('p', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n color: '#777E90',\r\n margin: '10px 0px',\r\n\r\n '&:last-child': {\r\n fontWeight: 'bold',\r\n color: '$mainTextColor',\r\n },\r\n});\r\n\r\nexport const ButtonWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '25px 0',\r\n});\r\n\r\nexport const PlugButtonWrapper = styled('div', {\r\n paddingTop: '30px',\r\n\r\n '.plug-button': {\r\n marginLeft: '0px',\r\n },\r\n});\r\n\r\nexport const UndefinedPrice = styled('div', {\r\n fontSize: '32px',\r\n color: '$greyMid',\r\n});\r\n\r\nexport const OffersCount = styled('div', {\r\n marginLeft: '5px',\r\n});\r\n\r\nexport const ButtonListWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n paddingTop: '30px',\r\n});\r\n\r\nexport const ButtonDetailsWrapper = styled('div', {\r\n marginLeft: '0px',\r\n});\r\n\r\nexport const CheckboxSkeletonWrapper = styled(SkeletonBox, {\r\n borderRadius: '15px',\r\n marginBottom: '25px',\r\n padding: '0 15px',\r\n height: '44px',\r\n width: '270px',\r\n});\r\n\r\nexport const ItemCount = styled('span', {\r\n margin: '0 0 0 5px',\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: '$checkboxSelectedFiltersText',\r\n});\r\n","import React, { useState } from 'react';\r\nimport * as Accordion from '@radix-ui/react-accordion';\r\nimport {\r\n useFilterStore,\r\n useAppDispatch,\r\n filterActions,\r\n} from '../../../store';\r\nimport { Checkbox } from '../checkbox/checkbox';\r\nimport {\r\n AccordionStyle,\r\n AccordionTrigger,\r\n AccordionContent,\r\n Form,\r\n ItemCount,\r\n} from './styles';\r\nimport { Icon } from '../../icons';\r\n\r\nexport type CheckboxFilterAccordionProps = {\r\n id: string;\r\n checkboxData: any;\r\n};\r\n\r\nexport const CheckboxFilterAccordion = ({\r\n id,\r\n checkboxData,\r\n}: CheckboxFilterAccordionProps) => {\r\n const dispatch = useAppDispatch();\r\n const { traits } = useFilterStore();\r\n const [isAccordionOpen, setIsAccordionOpen] = useState(true);\r\n const filterValueExists = (\r\n traitsValue: string,\r\n checkboxKey: string,\r\n ) =>\r\n traits.some(\r\n (trait) =>\r\n trait.values.includes(traitsValue) &&\r\n trait.key === checkboxKey,\r\n );\r\n const traitsCount = traits.find(\r\n (trait) => trait.name === checkboxData.name,\r\n )?.values?.length;\r\n\r\n const handleSelectedFilters = (e: any) => {\r\n const [key, value] = e.target.value.split('-');\r\n const checkFilterValueExists = filterValueExists(value, key);\r\n\r\n if (checkFilterValueExists) {\r\n dispatch(\r\n filterActions.removeTraitsFilter({\r\n value: value,\r\n key: key,\r\n }),\r\n );\r\n return;\r\n }\r\n\r\n dispatch(\r\n filterActions.applytraits({\r\n key: key,\r\n name: checkboxData.name,\r\n values: [value],\r\n }),\r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n setIsAccordionOpen(!isAccordionOpen)}\r\n >\r\n

\r\n {checkboxData.key}\r\n {traitsCount && (\r\n {`(${traitsCount})`}\r\n )}\r\n

\r\n\r\n \r\n \r\n \r\n
\r\n {checkboxData.values.map((data: any) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n","var _circle,_rect,_defs;function _extends(){_extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i {\n const owner = Principal.fromText(plugPrincipalId);\n const icnsName = await reverseNameActor.getReverseName(owner);\n return icnsName;\n};\n\nexport const formatICNSName = (name: string) => {\n if (!name) {\n return '';\n }\n\n if (name.length < 14) return name;\n\n return `${name.substring(0, 4)}...${name.substring(\n name.length - 6,\n name.length,\n )}`;\n};\n","import React, { useState, useMemo, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport copyToClipboard from 'copy-to-clipboard';\r\nimport { useTranslation } from 'react-i18next';\r\nimport * as Accordion from '@radix-ui/react-accordion';\r\nimport { useAppDispatch, usePlugStore } from '../../../store';\r\nimport { LinkButton } from '../buttons';\r\nimport { SkeletonBox } from '../skeleton';\r\nimport {\r\n AccordionStyle,\r\n AccordionTrigger,\r\n AccordionContent,\r\n Description,\r\n ButtonWrapper,\r\n AccordionHead,\r\n AccordionHeadContent,\r\n Flex,\r\n Subtext,\r\n LogoWrapper,\r\n MetaDataDetails,\r\n MetaDataTitle,\r\n MetaDataDescription,\r\n} from './styles';\r\nimport plugIcon from '../../../assets/plug-circle.svg';\r\n\r\nimport { isNFTOwner } from '../../../integrations/kyasshu/utils';\r\nimport { Icon } from '../../icons';\r\nimport { notificationActions } from '../../../store/features/notifications';\r\nimport config from '../../../config/env';\r\nimport { formatUserAddress } from '../../../utils/addresses';\r\nimport { AppLog } from '../../../utils/log';\r\n\r\nexport type AboutAccordionProps = {\r\n owner?: string;\r\n};\r\n\r\nexport const AboutAccordion = ({ owner }: AboutAccordionProps) => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const { id } = useParams();\r\n const [isAccordionOpen, setIsAccordionOpen] = useState(true);\r\n\r\n const [ownerAddress, setOwnerAddress] = useState('');\r\n const [loadingOwnerAddress, setLoadingOwnerAddress] =\r\n useState(true);\r\n\r\n const { isConnected, principalId: plugPrincipal } = usePlugStore();\r\n\r\n const isOwner = isNFTOwner({\r\n isConnected,\r\n owner,\r\n principalId: plugPrincipal,\r\n });\r\n\r\n const AccordionHeadContentData = [\r\n {\r\n subheading: 'CAP Crowns',\r\n heading: 'Collection',\r\n // TODO: replace with collection url after integration is done\r\n image:\r\n 'https://storageapi2.fleek.co/fleek-team-bucket/logos/crowns-ooo.png',\r\n },\r\n {\r\n subheading: 'Psychedelic',\r\n heading: 'Creator',\r\n // TODO: replace with creator url after integration is done\r\n image: 'https://psychedelic.ooo/images/11-2.svg',\r\n },\r\n ];\r\n\r\n const AccordionContentMetaData = useMemo(\r\n () => [\r\n {\r\n title: t('translation:accordions.about.header.canisterId'),\r\n value: config.nftCollectionId,\r\n },\r\n {\r\n title: t('translation:accordions.about.header.tokenStandard'),\r\n value: t('translation:accordions.about.details.dip721'),\r\n },\r\n {\r\n title: t('translation:accordions.about.header.tokenId'),\r\n value: id,\r\n },\r\n {\r\n title: t('translation:accordions.about.header.blockchain'),\r\n value: t(\r\n 'translation:accordions.about.details.internetComputer',\r\n ),\r\n },\r\n ],\r\n [config, id],\r\n );\r\n\r\n useEffect(() => {\r\n (async () => {\r\n if (isOwner) {\r\n setOwnerAddress(t('translation:accordions.about.header.you'));\r\n setLoadingOwnerAddress(false);\r\n\r\n return;\r\n }\r\n\r\n setLoadingOwnerAddress(true);\r\n\r\n try {\r\n const formattedOwnerAddress = await formatUserAddress(owner);\r\n\r\n setOwnerAddress(formattedOwnerAddress);\r\n setLoadingOwnerAddress(false);\r\n } catch (error) {\r\n setLoadingOwnerAddress(false);\r\n AppLog.error(error);\r\n }\r\n })();\r\n }, [owner]);\r\n\r\n return (\r\n \r\n \r\n {AccordionHeadContentData.map((data) => (\r\n \r\n \r\n \r\n {data.heading}\r\n \r\n {data.subheading}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {t('translation:accordions.about.header.owner')}\r\n \r\n \r\n {loadingOwnerAddress ? (\r\n \r\n ) : (\r\n ownerAddress\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n setIsAccordionOpen(!isAccordionOpen)}\r\n >\r\n
\r\n \r\n

\r\n {`${t(\r\n 'translation:accordions.about.header.aboutCrowns',\r\n )}`}\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n {`${t('translation:common.crownsDescription')}`}\r\n \r\n
\r\n {AccordionContentMetaData.map((data) => (\r\n \r\n {data.title}\r\n {data.value}\r\n \r\n ))}\r\n \r\n \r\n {t('translation:buttons.links.website')}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {\r\n copyToClipboard(window.location.href);\r\n dispatch(\r\n notificationActions.setSuccessMessage(\r\n `${t(\r\n 'translation:successMessages.copyToClipboard',\r\n )}`,\r\n ),\r\n );\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n","import { getICNSName, formatICNSName } from './icns';\nimport { formatAddress } from './formatters';\n\nexport const formatUserAddress = async (principal?: string) => {\n if (!principal) return '';\n\n const icnsName = await getICNSName(principal);\n\n if (icnsName) return formatICNSName(icnsName);\n\n return formatAddress(principal);\n};\n","import InfiniteScroll from 'react-infinite-scroller';\r\nimport { styled } from '../../stitches.config';\r\n\r\nexport const Container = styled('div', {\r\n width: '100%',\r\n paddingBottom: '8px', // TODO: make variant\r\n});\r\n\r\nexport const TableWrapper = styled('div', {\r\n // marginTop: '44px', // TODO: make variant\r\n width: '100%',\r\n\r\n table: {\r\n borderSpacing: '0',\r\n width: 'inherit',\r\n background: '$tableBackgroundColor',\r\n\r\n th: {\r\n textAlign: 'left',\r\n color: '#858585',\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n borderBottom: '1px solid #292929',\r\n whiteSpace: 'nowrap',\r\n },\r\n\r\n thead: {\r\n tr: {\r\n th: {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '19px',\r\n color: '$mainTextColor',\r\n padding: '25px 0px 25px 10px',\r\n borderTop: '1px solid $borderColor',\r\n borderBottom: '1px solid $borderColor',\r\n minWidth: '100px',\r\n\r\n '&:first-child': {\r\n paddingLeft: '80px',\r\n },\r\n },\r\n },\r\n },\r\n\r\n tbody: {\r\n tr: {\r\n opacity: 1,\r\n background: '$backgroundColor',\r\n\r\n td: {\r\n fontWeight: '500',\r\n padding: '25px 0px 25px 10px',\r\n borderBottom: '1px solid $borderColor',\r\n whiteSpace: 'nowrap',\r\n\r\n '&:first-child': {\r\n paddingLeft: '80px',\r\n },\r\n },\r\n '&:hover': {\r\n background: '$tableRowHoverColor',\r\n '.item-name': {\r\n color: '$primary',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n\r\n // Variants\r\n variants: {\r\n type: {\r\n offers: {\r\n height: 'initial',\r\n table: {\r\n background: '$backgroundColor',\r\n thead: {\r\n tr: {\r\n th: {\r\n color: '$tableTextColor',\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '19px',\r\n borderBottom: '1px solid $borderColor',\r\n padding: '10px 20px',\r\n minWidth: 'unset',\r\n\r\n '&:first-child': {\r\n paddingLeft: '20px',\r\n },\r\n },\r\n },\r\n },\r\n tbody: {\r\n tr: {\r\n background: '$tableBackgroundColor',\r\n td: {\r\n color: '$tableTextColor',\r\n padding: '16px 20px',\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '19px',\r\n borderBottom: '1px solid $borderColor',\r\n '&:first-child': {\r\n paddingLeft: '20px',\r\n },\r\n },\r\n '&:last-child': {\r\n td: {\r\n borderBottom: 'initial',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n\r\n nftActivity: {\r\n table: {\r\n background: '$tableBackgroundColor',\r\n border: '1.5px solid $borderColor',\r\n boxSizing: 'border-box',\r\n borderRadius: '15px',\r\n thead: {\r\n tr: {\r\n th: {\r\n color: '$greyMid',\r\n fontSize: '18px',\r\n fontWeight: '500',\r\n lineHeight: '22px',\r\n borderTop: 'initial',\r\n borderBottom: '1px solid $borderColor',\r\n padding: '16px 20px',\r\n\r\n '&:first-child': {\r\n paddingLeft: '20px',\r\n },\r\n },\r\n },\r\n },\r\n tbody: {\r\n tr: {\r\n background: '$tableBackgroundColor',\r\n td: {\r\n color: '$mainTextColor',\r\n padding: '24px 20px',\r\n fontSize: '18px',\r\n fontWeight: '500',\r\n lineHeight: '22px',\r\n borderBottom: '1px solid $borderColor',\r\n '&:first-child': {\r\n paddingLeft: '20px',\r\n },\r\n },\r\n '&:last-child': {\r\n borderRadius: '15px',\r\n td: {\r\n borderBottom: 'initial',\r\n '&:first-child': {\r\n borderRadius: '15px',\r\n },\r\n '&:last-child': {\r\n borderRadius: '15px',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n dontShowTableRows: {\r\n true: {\r\n table: {\r\n borderRadius: '15px 15px 0px 0px',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const ButtonWrapper = styled('div', {\r\n width: '98px',\r\n height: '33px',\r\n});\r\n\r\nexport const InfiniteScrollWrapper = styled(InfiniteScroll as any, {\r\n table: {\r\n width: 'inherit',\r\n\r\n tr: {\r\n td: {\r\n padding: '25px 0px 25px 10px',\r\n\r\n '&:first-child': {\r\n paddingLeft: '80px',\r\n },\r\n },\r\n },\r\n },\r\n\r\n '&:hover': {\r\n background: '$tableRowHoverColor',\r\n },\r\n});\r\n\r\nexport const TableSkeletonsWrapper = styled('tr', {\r\n // variants\r\n variants: {\r\n type: {\r\n small: {\r\n padding: '10px 20px',\r\n\r\n '&:nth-child(1)': {\r\n paddingTop: '15px',\r\n },\r\n },\r\n medium: {\r\n padding: '10px 30px',\r\n },\r\n large: {\r\n padding: '5px 80px',\r\n\r\n '&:nth-child(1)': {\r\n paddingTop: '30px',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const Flex = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '10px',\r\n});\r\n\r\nexport const EmptyStateContainer = styled('th', {\r\n border: 'none !important',\r\n});\r\n\r\nexport const EmptyStateMessage = styled('div', {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n fontStyle: 'normal',\r\n\r\n // variants\r\n variants: {\r\n type: {\r\n smallTable: {\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n color: '$mainTextColor',\r\n padding: '50px 25px',\r\n },\r\n mediumTable: {\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n color: '$mainTextColor',\r\n padding: '50px 25px',\r\n margin: '0px',\r\n },\r\n largeTable: {\r\n height: '100vh',\r\n fontWeight: '700',\r\n fontSize: '32px',\r\n lineHeight: '39px',\r\n color: '$mainTextColor',\r\n margin: '150px 50px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const LoadingContainer = styled('div', {\r\n border: '1px solid $borderColor',\r\n borderRadius: '0px 0px 15px 15px',\r\n borderTop: '0px',\r\n padding: '20px 10px 20px 0px',\r\n});\r\n","import { SkeletonBox } from '../core/skeleton';\r\nimport { TableSkeletonsWrapper, Flex, Container } from './styles';\r\n\r\nexport type TableSkeletonProps = {\r\n loaderDetails: {\r\n showItemDetails?: boolean;\r\n showTypeDetails?: boolean;\r\n type?: any;\r\n hideColumns?: boolean;\r\n infiniteLoader?: boolean;\r\n };\r\n};\r\n\r\nexport type TableStringsProps = {\r\n type?: any;\r\n hideColumns?: boolean;\r\n};\r\n\r\nexport const ItemDetail = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const TypeDetail = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const PriceDetail = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const TableStrings = ({\r\n type,\r\n hideColumns,\r\n}: TableStringsProps) => (\r\n \r\n \r\n \r\n);\r\n\r\nconst TableSkeletons = ({\r\n loaderDetails: {\r\n showItemDetails = true,\r\n showTypeDetails = true,\r\n type = 'large',\r\n hideColumns,\r\n infiniteLoader,\r\n },\r\n}: TableSkeletonProps) =>\r\n infiniteLoader ? (\r\n \r\n \r\n \r\n \r\n {showItemDetails && }\r\n {showTypeDetails && }\r\n \r\n \r\n \r\n \r\n {hideColumns === false && (\r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n ) : (\r\n \r\n {showItemDetails && }\r\n {showTypeDetails && }\r\n \r\n \r\n \r\n \r\n {hideColumns === false && (\r\n \r\n )}\r\n \r\n );\r\nexport default TableSkeletons;\r\n","import { useTable } from 'react-table';\r\nimport {\r\n TableWrapper,\r\n EmptyStateContainer,\r\n EmptyStateMessage,\r\n} from './styles';\r\nimport TableSkeletons from './table-skeletons';\r\n\r\nexport interface TableLayoutProps {\r\n columns: any;\r\n data: Array;\r\n tableType: any;\r\n columnsToHide?: Array;\r\n loading?: boolean;\r\n loaderDetails: {\r\n showItemDetails?: boolean;\r\n showTypeDetails?: boolean;\r\n type?: string;\r\n hideColumns?: boolean;\r\n };\r\n loadingTableRows?: boolean;\r\n emptyMessage?: string;\r\n}\r\n\r\nexport const TableLayout = ({\r\n columns,\r\n data,\r\n tableType,\r\n columnsToHide = [],\r\n loading,\r\n loaderDetails,\r\n emptyMessage,\r\n}: TableLayoutProps) => {\r\n const {\r\n getTableProps,\r\n getTableBodyProps,\r\n headerGroups,\r\n rows,\r\n prepareRow,\r\n } = useTable({\r\n columns,\r\n data,\r\n initialState: {\r\n hiddenColumns: columnsToHide,\r\n },\r\n });\r\n\r\n const isTableDataEmpty = data.length === 0;\r\n\r\n return (\r\n \r\n \r\n \r\n {headerGroups.map((headerGroup, idx) => (\r\n \r\n {headerGroup.headers.map((column) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n {loading && isTableDataEmpty && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {rows.map((row) => {\r\n prepareRow(row);\r\n return (\r\n \r\n {row.cells.map((cell) => (\r\n \r\n ))}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n {!loading && isTableDataEmpty && (\r\n \r\n \r\n {emptyMessage}\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n {column.render('Header')}\r\n
\r\n {cell.render('Cell')}\r\n
\r\n
\r\n );\r\n};\r\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()).\nvar getRandomValues;\nvar 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. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\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}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","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\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 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 var uuid = (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(); // 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 rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var 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 (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import crc32 from 'buffer-crc32';\r\nimport CryptoJS from 'crypto-js';\r\nimport { Buffer } from 'buffer';\r\nimport { Principal } from '@dfinity/principal';\r\nimport config from '../config/env';\r\n\r\n/* eslint-disable no-bitwise, no-prototype-builtins */\r\n\r\nexport const ACCOUNT_DOMAIN_SEPERATOR = '\\x0Aaccount-id';\r\n\r\nconst byteArrayToWordArray = (\r\n byteArray: Uint8Array,\r\n): CryptoJS.lib.WordArray => {\r\n const wordArray = [] as any;\r\n let i;\r\n for (i = 0; i < byteArray.length; i += 1) {\r\n wordArray[(i / 4) | 0] |= byteArray[i] << (24 - 8 * i);\r\n }\r\n // eslint-disable-next-line\r\n const result = CryptoJS.lib.WordArray.create(\r\n wordArray,\r\n byteArray.length,\r\n );\r\n return result;\r\n};\r\n\r\nconst wordToByteArray = (word: number, length: number): number[] => {\r\n const byteArray: number[] = [];\r\n const xFF = 0xff;\r\n if (length > 0) byteArray.push(word >>> 24);\r\n if (length > 1) byteArray.push((word >>> 16) & xFF);\r\n if (length > 2) byteArray.push((word >>> 8) & xFF);\r\n if (length > 3) byteArray.push(word & xFF);\r\n\r\n return byteArray;\r\n};\r\n\r\nconst wordArrayToByteArray = (\r\n wordArray: any,\r\n length: number,\r\n): Uint8Array => {\r\n if (\r\n wordArray.hasOwnProperty('sigBytes') &&\r\n wordArray.hasOwnProperty('words')\r\n ) {\r\n length = wordArray.sigBytes;\r\n wordArray = wordArray.words;\r\n }\r\n\r\n let result: any = [];\r\n let bytes;\r\n let i = 0;\r\n while (length > 0) {\r\n bytes = wordToByteArray(wordArray[i], Math.min(4, length));\r\n length -= bytes.length;\r\n result = [...result, bytes];\r\n i += 1;\r\n }\r\n return [].concat(...result) as unknown as Uint8Array;\r\n};\r\n\r\n// eslint-disable-next-line\r\nconst intToHex = (val: number): string =>\r\n val < 0\r\n ? (Number(val) >>> 0).toString(16)\r\n : Number(val).toString(16);\r\n\r\n// We generate a CRC32 checksum, and trnasform it into a hexString\r\nconst generateChecksum = (hash: Uint8Array): string => {\r\n const crc = crc32.unsigned(Buffer.from(hash));\r\n const hex = intToHex(crc);\r\n return hex.padStart(8, '0');\r\n};\r\n\r\n/*\r\n Used dfinity/keysmith/account/account.go as a base for the ID generation\r\n*/\r\nexport const getAccountId = (\r\n principalId: string,\r\n subAccount?: number,\r\n): string => {\r\n const principal = Principal.fromText(principalId);\r\n const sha = CryptoJS.algo.SHA224.create();\r\n sha.update(ACCOUNT_DOMAIN_SEPERATOR); // Internally parsed with UTF-8, like go does\r\n sha.update(byteArrayToWordArray(principal.toUint8Array()));\r\n\r\n const SUB_ACCOUNT_ZERO = Buffer.alloc(32);\r\n\r\n const subBuffer = Buffer.from(SUB_ACCOUNT_ZERO);\r\n if (subAccount) {\r\n subBuffer.writeUInt32BE(subAccount);\r\n }\r\n sha.update(byteArrayToWordArray(subBuffer));\r\n const hash = sha.finalize();\r\n\r\n /// While this is backed by an array of length 28, it's canonical representation\r\n /// is a hex string of length 64. The first 8 characters are the CRC-32 encoded\r\n /// hash of the following 56 characters of hex. Both, upper and lower case\r\n /// characters are valid in the input string and can even be mixed.\r\n /// [ic/rs/rosetta-api/ledger_canister/src/account_identifier.rs]\r\n const byteArray = wordArrayToByteArray(hash, 28);\r\n const checksum = generateChecksum(byteArray);\r\n const val = checksum + hash.toString();\r\n\r\n return val;\r\n};\r\n\r\nexport const getICAccountLink = (principalId: string): string =>\r\n `${config.icScan}/${principalId}`;\r\n","import React, { useMemo, useEffect, useCallback } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { Principal } from '@dfinity/principal';\r\nimport { v4 as uuid } from 'uuid';\r\nimport {\r\n useThemeStore,\r\n useAppDispatch,\r\n useTableStore,\r\n tableActions,\r\n capActions,\r\n RootState,\r\n useCapStore,\r\n} from '../../store';\r\nimport {\r\n ItemDetailsCell,\r\n TypeDetailsCell,\r\n PriceDetailsCell,\r\n TextCell,\r\n TextLinkCell,\r\n} from '../core';\r\nimport { TableLayout } from './table-layout';\r\nimport { Container, InfiniteScrollWrapper } from './styles';\r\nimport { NFTMetadata } from '../../declarations/legacy';\r\nimport TableSkeletons from './table-skeletons';\r\nimport {\r\n parseE8SAmountToWICP,\r\n formatAddress,\r\n} from '../../utils/formatters';\r\nimport { getICAccountLink } from '../../utils/account-id';\r\nimport config from '../../config/env';\r\nimport { OperationType } from '../../constants';\r\n\r\ninterface RowProps {\r\n item: {\r\n name: string;\r\n logo: string;\r\n token_id: string;\r\n };\r\n type: OperationType;\r\n price: string;\r\n quantity: string;\r\n seller: Principal;\r\n buyer?: Principal;\r\n time: string;\r\n data: NFTMetadata;\r\n callerDfinityExplorerUrl: string;\r\n}\r\n\r\nexport const ActivityTable = () => {\r\n const { t } = useTranslation();\r\n const { theme } = useThemeStore();\r\n const {\r\n loadedCapActivityData,\r\n hasMoreData,\r\n loadingTableData,\r\n nextPageNo,\r\n } = useTableStore();\r\n const { loading: capLoading } = useCapStore();\r\n const dispatch = useAppDispatch();\r\n const bucketId = useSelector(\r\n (state: RootState) => state.cap.bucketId,\r\n );\r\n const tableSkeletonId = uuid();\r\n\r\n useEffect(() => {\r\n dispatch(\r\n capActions.getTokenContractRootBucket({\r\n marketplaceCanisterId: config?.marketplaceCanisterId,\r\n }),\r\n );\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n if (!bucketId) return;\r\n\r\n dispatch(\r\n tableActions.getCAPActivity({ pageCount: 'last', bucketId }),\r\n );\r\n }, [dispatch, bucketId]);\r\n\r\n const loadMoreData = useCallback(() => {\r\n if (loadingTableData || !hasMoreData || !bucketId) return;\r\n dispatch(\r\n tableActions.getCAPActivity({\r\n pageCount: nextPageNo.toString(),\r\n bucketId,\r\n }),\r\n );\r\n }, [dispatch, loadingTableData, hasMoreData, nextPageNo, bucketId]);\r\n\r\n const isTableLoading = useMemo(\r\n () => capLoading || loadingTableData,\r\n [loadingTableData, capLoading],\r\n );\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t('translation:tables.titles.item'),\r\n // eslint-disable-next-line\r\n accessor: ({ item }: RowProps) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: t('translation:tables.titles.type'),\r\n accessor: ({ type }: RowProps) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: t('translation:tables.titles.price'),\r\n accessor: ({ price }: RowProps) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: t('translation:tables.titles.seller'),\r\n accessor: ({ seller }: RowProps) => {\r\n const principalText = seller.toText();\r\n const short = formatAddress(principalText);\r\n const url = getICAccountLink(principalText);\r\n\r\n return (\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: t('translation:tables.titles.buyer'),\r\n accessor: ({ buyer }: RowProps) => {\r\n if (!buyer) {\r\n return ;\r\n }\r\n\r\n const principalText = buyer.toText();\r\n const short = formatAddress(principalText);\r\n const url = getICAccountLink(principalText);\r\n\r\n return (\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: t('translation:tables.titles.time'),\r\n accessor: ({ time }: RowProps) => (\r\n \r\n ),\r\n },\r\n ],\r\n [t, theme], // eslint-disable-line react-hooks/exhaustive-deps\r\n );\r\n\r\n return (\r\n = 0 ? loadMoreData : () => {}}\r\n hasMore={hasMoreData}\r\n loader={\r\n \r\n }\r\n useWindow={true || false}\r\n threshold={250 * 5}\r\n className=\"infinite-loader\"\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useEffect, useMemo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport {\r\n useThemeStore,\r\n tableActions,\r\n RootState,\r\n useAppDispatch,\r\n} from '../../store';\r\nimport {\r\n TypeDetailsCell,\r\n PriceDetailsCell,\r\n TextCell,\r\n TextLinkCell,\r\n} from '../core';\r\nimport { TableLayout } from './table-layout';\r\nimport { TokenTransactionItem } from '../../utils/parser';\r\nimport { Container } from './styles';\r\nimport { recentNFTUpdatesCount } from '../../hooks/use-marketplace-store';\r\nimport { getICAccountLink } from '../../utils/account-id';\r\n\r\ntype RowProps = TokenTransactionItem;\r\n\r\nexport const NFTActivityTable = () => {\r\n const { t } = useTranslation();\r\n const { theme } = useThemeStore();\r\n const dispatch = useAppDispatch();\r\n const tokenTransactions = useSelector(\r\n (state: RootState) => state.table.tokenTransactions,\r\n );\r\n\r\n const loadingTokenTransactions = useSelector(\r\n (state: RootState) => state.table.loadingTokenTransactions,\r\n );\r\n\r\n const recentCountOfNFTUpdates = recentNFTUpdatesCount();\r\n\r\n const { id: tokenId } = useParams();\r\n\r\n useEffect(() => {\r\n if (!tokenId) return;\r\n\r\n dispatch(\r\n tableActions.getTokenTransactions({ tokenId: Number(tokenId) }),\r\n );\r\n }, [dispatch, tokenId, recentCountOfNFTUpdates]);\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t('translation:tables.titles.event'),\r\n accessor: ({ type }: RowProps) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: t('translation:tables.titles.price'),\r\n accessor: ({ price }: RowProps) => {\r\n if (!price) return ;\r\n\r\n return (\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: t('translation:tables.titles.seller'),\r\n accessor: ({ seller }: RowProps) => {\r\n const url = getICAccountLink(seller.raw);\r\n\r\n return (\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: t('translation:tables.titles.buyer'),\r\n accessor: ({ buyer }: RowProps) => {\r\n const url = getICAccountLink(buyer.raw);\r\n\r\n return (\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: t('translation:tables.titles.date'),\r\n accessor: ({ date }: RowProps) => (\r\n \r\n ),\r\n },\r\n ],\r\n [t, theme], // eslint-disable-line react-hooks/exhaustive-deps\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import { useSelector } from 'react-redux';\nimport { RootState } from '../store';\n\nexport const recentNFTUpdatesCount = () => {\n const recentNFTActions = useSelector((state: RootState) => {\n const {\n recentlyListedForSale,\n recentlyCancelledItems,\n recentlyAcceptedOffers,\n recentlyCancelledOffers,\n recentlyMadeOffers,\n } = state.marketplace;\n\n return [\n ...recentlyListedForSale,\n ...recentlyCancelledItems,\n ...recentlyAcceptedOffers,\n ...recentlyCancelledOffers,\n ...recentlyMadeOffers,\n ];\n });\n\n return recentNFTActions.length;\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { UnstablePortal } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps

= P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject;\n contentRef: React.RefObject;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n allowPinchZoom: DialogProps['allowPinchZoom'];\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\n\ntype RemoveScrollProps = React.ComponentProps;\ninterface DialogProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom'];\n children?: React.ReactNode;\n}\n\nconst Dialog: React.FC = (props: ScopedProps) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n allowPinchZoom,\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n allowPinchZoom={allowPinchZoom}\n >\n {children}\n \n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return (\n \n );\n }\n);\n\nDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal';\n\ntype PortalProps = React.ComponentPropsWithoutRef;\ninterface DialogPortalProps extends Omit {\n children?: React.ReactNode;\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogPortal: React.FC = (props: ScopedProps) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n <>\n {React.Children.map(children, (child) => (\n \n \n {child}\n \n \n ))}\n \n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogOverlay = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n \n \n \n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst DialogOverlayImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n \n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n \n {context.modal ? (\n \n ) : (\n \n )}\n \n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit {}\n\nconst DialogContentModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n })}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n\n return (\n {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true;\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ElementRef;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef;\ninterface DialogContentImplProps extends Omit {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst DialogContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n \n context.onOpenChange(false)}\n />\n \n {process.env.NODE_ENV !== 'production' && (\n <>\n \n \n \n )}\n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ElementRef;\ntype PrimitiveHeading2Props = Radix.ComponentPropsWithoutRef;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return ;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ElementRef;\ntype PrimitiveParagraphProps = Radix.ComponentPropsWithoutRef;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return ;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ElementRef;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n context.onOpenChange(false))}\n />\n );\n }\n);\n\nDialogClose.displayName = CLOSE_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning';\n\nconst [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n});\n\ntype WarningProps = {\n contentRef: React.RefObject;\n};\n\nconst TitleWarning: React.FC = ({ contentRef }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n\n React.useEffect(() => {\n const hasLabel =\n contentRef.current?.getAttribute('aria-label') ||\n document.getElementById(contentRef.current?.getAttribute('aria-labelledby')!);\n\n if (!hasLabel) throw new Error(MESSAGE);\n }, [MESSAGE, contentRef]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\nconst DescriptionWarning: React.FC = ({ contentRef }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute('aria-describedby');\n if (describedById) {\n const hasDescription = document.getElementById(describedById);\n if (describedById && !hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n","import * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport { styled, keyframes } from '../../stitches.config';\r\nimport { Icon } from '../icons';\r\n\r\nconst overlayShow = keyframes({\r\n '0%': {\r\n opacity: 0,\r\n },\r\n '100%': {\r\n opacity: 1,\r\n },\r\n});\r\n\r\nconst contentShow = keyframes({\r\n '0%': {\r\n opacity: 0,\r\n transform: 'translate(-50%, -48%) scale(.96)',\r\n },\r\n '100%': {\r\n opacity: 1,\r\n transform: 'translate(-50%, -50%) scale(1)',\r\n },\r\n});\r\n\r\nexport const SellModalTrigger = styled('div', {\r\n width: '140px',\r\n height: '50px',\r\n marginLeft: '10px',\r\n});\r\n\r\nexport const ChangePriceModalTrigger = styled('div', {\r\n width: '155px',\r\n height: '50px',\r\n marginLeft: '10px',\r\n});\r\n\r\nexport const BuyNowModalTrigger = styled('div', {\r\n width: '140px',\r\n height: '50px',\r\n marginRight: '10px',\r\n});\r\n\r\nexport const MakeOfferModalTrigger = styled('div', {\r\n width: '140px',\r\n height: '50px',\r\n marginRight: '10px',\r\n});\r\n\r\nexport const CancelListingModalTrigger = styled('div', {\r\n width: '155px',\r\n height: '50px',\r\n marginLeft: '10px',\r\n});\r\n\r\nexport const CancelOfferModalTrigger = styled('div', {\r\n width: '98px',\r\n height: '33px',\r\n marginRight: '10px',\r\n\r\n variants: {\r\n largeButton: {\r\n true: {\r\n width: '140px',\r\n height: '50px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const AcceptOfferModalTrigger = styled('div', {\r\n width: '98px',\r\n height: '33px',\r\n});\r\n\r\nexport const WithdrawModalTrigger = styled('div', {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '22px',\r\n marginLeft: '5px',\r\n textDecoration: 'underline',\r\n cursor: 'pointer',\r\n});\r\n\r\nexport const ModalOverlayContainer = styled(DialogPrimitive.Overlay, {\r\n backgroundColor: '$modalOverlay',\r\n position: 'fixed',\r\n inset: 0,\r\n zIndex: 5,\r\n '@media (prefers-reduced-motion: no-preference)': {\r\n animation: `${overlayShow} 150ms cubic-bezier(0.16, 1, 0.3, 1)`,\r\n },\r\n});\r\n\r\nexport const ModalContent = styled(DialogPrimitive.Content, {\r\n backgroundColor: '$backgroundColor',\r\n borderRadius: '30px',\r\n border: '1.5px solid $borderColor',\r\n boxShadow: '0px 4px 24px rgba(0, 0, 0, 0.25)',\r\n position: 'fixed',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n padding: 45,\r\n zIndex: 6,\r\n '@media (prefers-reduced-motion: no-preference)': {\r\n animation: `${contentShow} 150ms cubic-bezier(0.16, 1, 0.3, 1)`,\r\n },\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n});\r\n\r\nexport const SellModalPreviewWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'end',\r\n gap: '65px',\r\n});\r\n\r\nexport const SellModalPreviewContainer = styled('div', {\r\n width: '100%',\r\n maxWidth: '430px',\r\n});\r\n\r\nexport const NFTCardPreview = styled('div', {\r\n width: '210px',\r\n '.card-router': {\r\n cursor: 'default',\r\n },\r\n});\r\n\r\nexport const NFTPreviewText = styled('div', {\r\n color: '$modalText',\r\n fontSize: '18px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n marginBottom: '20px',\r\n});\r\n\r\nexport const Container = styled('div', {\r\n width: '100%',\r\n});\r\n\r\nexport const ModalHeader = styled('div', {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n margin: '0px 0px 30px',\r\n});\r\n\r\nexport const ModalTitle = styled(DialogPrimitive.Title, {\r\n fontSize: '32px',\r\n fontWeight: 'bold',\r\n lineHeight: '39px',\r\n color: '$mainTextColor',\r\n margin: '0px 0px 20px',\r\n});\r\n\r\nexport const ModalDescription = styled(DialogPrimitive.Description, {\r\n fontSize: '18px',\r\n fontWeight: '500',\r\n lineHeight: '20px',\r\n color: '$greyMid',\r\n margin: '0px',\r\n\r\n variants: {\r\n size: {\r\n medium: {\r\n maxWidth: '396px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const SaleContentWrapper = styled('div', {\r\n minWidth: '430px',\r\n});\r\n\r\nexport const FeeContainer = styled('div', {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n margin: '35px 0px 0px',\r\n});\r\n\r\nexport const FeeDetails = styled('div', {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginBottom: '20px',\r\n\r\n '&:last-child': {\r\n marginBottom: '0px',\r\n },\r\n});\r\n\r\nexport const FeeLabelContainer = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n});\r\n\r\nexport const FeeLabel = styled('div', {\r\n fontSize: '18px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n color: '#767D8E',\r\n marginRight: '6px',\r\n});\r\n\r\nexport const InfoIcon = styled(Icon, {\r\n color: '$modalText',\r\n width: '16px',\r\n height: '16px',\r\n marginBottom: '-3px',\r\n});\r\n\r\nexport const FeePercent = styled('div', {\r\n fontSize: '18px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n color: '#767D8E',\r\n marginLeft: '6px',\r\n});\r\n\r\nexport const ItemDetailsWrapper = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n padding: '12px 0px 32px',\r\n borderBottom: '1.5px solid #E5E8EB',\r\n\r\n // variants\r\n variants: {\r\n lastChild: {\r\n true: {\r\n padding: '32px 0px 12px',\r\n borderTop: '1.5px solid #E5E8EB',\r\n borderBottom: 'initial',\r\n marginTop: '35px',\r\n },\r\n },\r\n\r\n type: {\r\n withdraw: {\r\n padding: '0px 0px 32px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const ItemDetails = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n alignItems: 'center',\r\n});\r\n\r\nexport const ItemStatus = styled('div', {\r\n fontSize: '18px',\r\n fontWeight: '500',\r\n lineHeight: '20px',\r\n color: '$modalText',\r\n});\r\n\r\nexport const ItemLogo = styled('img', {\r\n width: '48px',\r\n height: '48px',\r\n borderRadius: '10px',\r\n marginRight: '12px',\r\n\r\n // variants\r\n variants: {\r\n withoutBorderRadius: {\r\n true: {\r\n borderRadius: '0px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const ItemName = styled('div', {\r\n fontSize: '18px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n color: '$mainTextColor',\r\n});\r\n\r\nexport const PriceDetails = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n flexDirection: 'column',\r\n});\r\n\r\nexport const WICPContainer = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginBottom: '6px',\r\n\r\n // variants\r\n variants: {\r\n size: {\r\n small: {\r\n marginBottom: '4px',\r\n },\r\n\r\n large: {\r\n marginBottom: '8px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const WICPText = styled('div', {\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n color: '$mainTextColor',\r\n\r\n // variants\r\n variants: {\r\n size: {\r\n small: {\r\n fontSize: '18px',\r\n },\r\n\r\n large: {\r\n fontSize: '24px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const WICPLogo = styled('img', {\r\n width: '15px',\r\n height: '15px',\r\n marginRight: '5px',\r\n\r\n // variants\r\n variants: {\r\n size: {\r\n large: {\r\n width: '20px',\r\n height: '20px',\r\n marginRight: '4px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const PriceText = styled('div', {\r\n fontSize: '18px',\r\n fontWeight: '500',\r\n lineHeight: '20px',\r\n color: '#777E90',\r\n textAlign: 'right',\r\n\r\n // variants\r\n variants: {\r\n size: {\r\n large: {\r\n fontSize: '20px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const ModalButtonsList = styled('div', {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginTop: '35px',\r\n});\r\n\r\nexport const ModalButtonWrapper = styled('div', {\r\n width: '205px',\r\n height: '56px',\r\n marginRight: '21px',\r\n\r\n '&:last-child': {\r\n marginRight: '0px',\r\n },\r\n\r\n variants: {\r\n fullWidth: {\r\n true: {\r\n width: '430px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const ActionTextWrapper = styled('span', {\r\n cursor: 'pointer',\r\n\r\n variants: {\r\n isDisabled: {\r\n true: {\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const ActionText = styled('span', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n color: '$primary',\r\n\r\n '&:hover': {\r\n opacity: '60%',\r\n },\r\n\r\n variants: {\r\n isDisabled: {\r\n true: {\r\n pointerEvents: 'none',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const PlugButtonContainer = styled('div', {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n\r\n '.plug-button': {\r\n marginLeft: '0px',\r\n width: '100%',\r\n fontSize: '18px',\r\n fontWeight: '700',\r\n },\r\n\r\n '.plug-button-text': {\r\n width: '100%',\r\n height: '50px',\r\n },\r\n});\r\n","export enum ListingStatusCodes {\r\n ListingInfo = 'listingInfo',\r\n Confirmed = 'confirmed',\r\n Pending = 'pending',\r\n CancelList = 'cancelList',\r\n Submitted = 'submitted',\r\n OfferInfo = 'offerInfo',\r\n Accepted = 'accepted',\r\n CancelOffer = 'cancelOffer',\r\n WithdrawInfo = 'withdrawInfo',\r\n Completed = 'completed',\r\n InsufficientBalance = 'insufficientBalance',\r\n}\r\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EventDispatcher_listeners;\nexport class EventDispatcher {\n constructor() {\n _EventDispatcher_listeners.set(this, void 0);\n __classPrivateFieldSet(this, _EventDispatcher_listeners, new Map(), \"f\");\n }\n addEventListener(type, listener) {\n var _a;\n this.removeEventListener(type, listener);\n if (!__classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type)) {\n __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").set(type, []);\n }\n (_a = __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type)) === null || _a === void 0 ? void 0 : _a.push(listener);\n }\n dispatchEvent(type, args) {\n var _a;\n (_a = __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type)) === null || _a === void 0 ? void 0 : _a.forEach((handler) => handler(args));\n }\n hasEventListener(type) {\n return !!__classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type);\n }\n removeAllEventListeners(type) {\n if (!type) {\n __classPrivateFieldSet(this, _EventDispatcher_listeners, new Map(), \"f\");\n }\n else {\n __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").delete(type);\n }\n }\n removeEventListener(type, listener) {\n const arr = __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type);\n if (!arr) {\n return;\n }\n const length = arr.length, idx = arr.indexOf(listener);\n if (idx < 0) {\n return;\n }\n if (length === 1) {\n __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").delete(type);\n }\n else {\n arr.splice(idx, 1);\n }\n }\n}\n_EventDispatcher_listeners = new WeakMap();\n","export class Vector {\n constructor(xOrCoords, y) {\n if (typeof xOrCoords !== \"number\" && xOrCoords) {\n this.x = xOrCoords.x;\n this.y = xOrCoords.y;\n }\n else if (xOrCoords !== undefined && y !== undefined) {\n this.x = xOrCoords;\n this.y = y;\n }\n else {\n throw new Error(\"tsParticles - Vector not initialized correctly\");\n }\n }\n static get origin() {\n return Vector.create(0, 0);\n }\n get angle() {\n return Math.atan2(this.y, this.x);\n }\n set angle(angle) {\n this.updateFromAngle(angle, this.length);\n }\n get length() {\n return Math.sqrt(this.getLengthSq());\n }\n set length(length) {\n this.updateFromAngle(this.angle, length);\n }\n static clone(source) {\n return Vector.create(source.x, source.y);\n }\n static create(x, y) {\n return new Vector(x, y);\n }\n add(v) {\n return Vector.create(this.x + v.x, this.y + v.y);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n }\n copy() {\n return Vector.clone(this);\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n div(n) {\n return Vector.create(this.x / n, this.y / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n }\n getLengthSq() {\n return this.x ** 2 + this.y ** 2;\n }\n manhattanDistanceTo(v) {\n return Math.abs(v.x - this.x) + Math.abs(v.y - this.y);\n }\n mult(n) {\n return Vector.create(this.x * n, this.y * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n }\n rotate(angle) {\n return Vector.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle));\n }\n setTo(v) {\n this.x = v.x;\n this.y = v.y;\n }\n sub(v) {\n return Vector.create(this.x - v.x, this.y - v.y);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n }\n updateFromAngle(angle, length) {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n }\n}\n","import { Vector } from \"../Core/Utils/Vector\";\nexport function clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nexport function mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nexport function randomInRange(r) {\n const max = getRangeMax(r);\n let min = getRangeMin(r);\n if (max === min) {\n min = 0;\n }\n return Math.random() * (max - min) + min;\n}\nexport function getRangeValue(value) {\n return typeof value === \"number\" ? value : randomInRange(value);\n}\nexport function getRangeMin(value) {\n return typeof value === \"number\" ? value : value.min;\n}\nexport function getRangeMax(value) {\n return typeof value === \"number\" ? value : value.max;\n}\nexport function setRangeValue(source, value) {\n if (source === value || value === undefined && typeof source === \"number\") {\n return source;\n }\n const min = getRangeMin(source), max = getRangeMax(source);\n return value !== undefined\n ? {\n min: Math.min(min, value),\n max: Math.max(max, value),\n }\n : setRangeValue(min, max);\n}\nexport function getValue(options) {\n const random = options.random, { enable, minimumValue } = typeof random === \"boolean\"\n ? {\n enable: random,\n minimumValue: 0,\n }\n : random;\n return enable ? getRangeValue(setRangeValue(options.value, minimumValue)) : getRangeValue(options.value);\n}\nexport function getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x, dy = pointA.y - pointB.y;\n return { dx: dx, dy: dy, distance: Math.sqrt(dx * dx + dy * dy) };\n}\nexport function getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nexport function getParticleDirectionAngle(direction, position, center) {\n if (typeof direction === \"number\") {\n return direction * Math.PI / 180;\n }\n else {\n switch (direction) {\n case \"top\":\n return -Math.PI / 2;\n case \"top-right\":\n return -Math.PI / 4;\n case \"right\":\n return 0;\n case \"bottom-right\":\n return Math.PI / 4;\n case \"bottom\":\n return Math.PI / 2;\n case \"bottom-left\":\n return 3 * Math.PI / 4;\n case \"left\":\n return Math.PI;\n case \"top-left\":\n return -3 * Math.PI / 4;\n case \"inside\":\n return Math.atan2(center.y - position.y, center.x - position.x);\n case \"outside\":\n return Math.atan2(position.y - center.y, position.x - center.x);\n case \"none\":\n default:\n return Math.random() * Math.PI * 2;\n }\n }\n}\nexport function getParticleBaseVelocity(direction) {\n const baseVelocity = Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nexport function collisionVelocity(v1, v2, m1, m2) {\n return Vector.create(v1.x * (m1 - m2) / (m1 + m2) + v2.x * 2 * m2 / (m1 + m2), v1.y);\n}\nexport function calcEasing(value, type) {\n switch (type) {\n case \"ease-out-quad\":\n return 1 - (1 - value) ** 2;\n case \"ease-out-cubic\":\n return 1 - (1 - value) ** 3;\n case \"ease-out-quart\":\n return 1 - (1 - value) ** 4;\n case \"ease-out-quint\":\n return 1 - (1 - value) ** 5;\n case \"ease-out-expo\":\n return value === 1 ? 1 : 1 - Math.pow(2, -10 * value);\n case \"ease-out-sine\":\n return Math.sin(value * Math.PI / 2);\n case \"ease-out-back\": {\n const c1 = 1.70158, c3 = c1 + 1;\n return 1 + c3 * Math.pow(value - 1, 3) + c1 * Math.pow(value - 1, 2);\n }\n case \"ease-out-circ\":\n return Math.sqrt(1 - Math.pow(value - 1, 2));\n default:\n return value;\n }\n}\nexport function calcPositionFromSize(data) {\n var _a, _b;\n return ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined && ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined\n ? {\n x: data.position.x * data.size.width / 100,\n y: data.position.y * data.size.height / 100,\n }\n : undefined;\n}\nexport function calcPositionOrRandomFromSize(data) {\n var _a, _b, _c, _d;\n return {\n x: ((_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : Math.random() * 100) * data.size.width / 100,\n y: ((_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : Math.random() * 100) * data.size.height / 100,\n };\n}\nexport function calcPositionOrRandomFromSizeRanged(data) {\n var _a, _b;\n const position = {\n x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,\n y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcPositionOrRandomFromSize({ size: data.size, position });\n}\nexport function calcExactPositionOrRandomFromSize(data) {\n var _a, _b, _c, _d;\n return {\n x: (_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : Math.random() * data.size.width,\n y: (_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : Math.random() * data.size.height,\n };\n}\nexport function calcExactPositionOrRandomFromSizeRanged(data) {\n var _a, _b;\n const position = {\n x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,\n y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcExactPositionOrRandomFromSize({ size: data.size, position });\n}\n","import { collisionVelocity, getDistances, getValue } from \"./NumberUtils\";\nimport { Vector } from \"../Core/Utils/Vector\";\nfunction rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {\n const res = { bounced: false };\n if (pOtherSide.min < rectOtherSide.min ||\n pOtherSide.min > rectOtherSide.max ||\n pOtherSide.max < rectOtherSide.min ||\n pOtherSide.max > rectOtherSide.max) {\n return res;\n }\n if (pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) / 2 && velocity > 0 ||\n pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) / 2 && velocity < 0) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n if (!(selectors instanceof Array)) {\n return element.matches(selectors);\n }\n for (const selector of selectors) {\n if (element.matches(selector)) {\n return true;\n }\n }\n return false;\n}\nexport function isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nexport function animate() {\n return isSsr()\n ? (callback) => setTimeout(callback)\n : (callback) => (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n window.setTimeout)(callback);\n}\nexport function cancelAnimation() {\n return isSsr()\n ? (handle) => clearTimeout(handle)\n : (handle) => (window.cancelAnimationFrame ||\n window.webkitCancelRequestAnimationFrame ||\n window.mozCancelRequestAnimationFrame ||\n window.oCancelRequestAnimationFrame ||\n window.msCancelRequestAnimationFrame ||\n window.clearTimeout)(handle);\n}\nexport function isInArray(value, array) {\n return value === array || array instanceof Array && array.indexOf(value) > -1;\n}\nexport async function loadFont(font, weight) {\n try {\n await document.fonts.load(`${weight !== null && weight !== void 0 ? weight : \"400\"} 36px '${font !== null && font !== void 0 ? font : \"Verdana\"}'`);\n }\n catch (_a) {\n }\n}\nexport function arrayRandomIndex(array) {\n return Math.floor(Math.random() * array.length);\n}\nexport function itemFromArray(array, index, useIndex = true) {\n const fixedIndex = index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array);\n return array[fixedIndex];\n}\nexport function isPointInside(point, size, offset, radius, direction) {\n return areBoundsInside(calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, offset, direction);\n}\nexport function areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === \"bottom\") {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === \"left\")) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === \"right\")) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === \"top\")) {\n inside = bounds.bottom > offset.y;\n }\n return inside;\n}\nexport function calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius,\n };\n}\nexport function deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (typeof source !== \"object\") {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && (typeof destination !== \"object\" || !destination || !Array.isArray(destination))) {\n destination = [];\n }\n else if (!sourceIsArray && (typeof destination !== \"object\" || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source, value = sourceDict[key], isObject = typeof value === \"object\", destDict = destination;\n destDict[key] =\n isObject && Array.isArray(value)\n ? value.map((v) => deepExtend(destDict[key], v))\n : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nexport function isDivModeEnabled(mode, divs) {\n return divs instanceof Array ? !!divs.find((t) => t.enable && isInArray(mode, t.mode)) : isInArray(mode, divs.mode);\n}\nexport function divModeExecute(mode, divs, callback) {\n if (divs instanceof Array) {\n for (const div of divs) {\n const divMode = div.mode, divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n }\n }\n else {\n const divMode = divs.mode, divEnabled = divs.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(divs, callback);\n }\n }\n}\nexport function singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n if (selectors instanceof Array) {\n for (const selector of selectors) {\n callback(selector, div);\n }\n }\n else {\n callback(selectors, div);\n }\n}\nexport function divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n if (divs instanceof Array) {\n return divs.find((d) => checkSelector(element, d.selectors));\n }\n else if (checkSelector(element, divs.selectors)) {\n return divs;\n }\n}\nexport function circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: Vector.create(getValue(p.options.bounce.horizontal), getValue(p.options.bounce.vertical)),\n };\n}\nexport function circleBounce(p1, p2) {\n const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = getDistances(pos2, pos1);\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < 0) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = collisionVelocity(u1, u2, m1, m2), v2 = collisionVelocity(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n}\nexport function rectBounce(particle, divBounds) {\n const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size);\n const resH = rectSideBounce({\n min: bounds.left,\n max: bounds.right,\n }, {\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, particle.velocity.x, getValue(particle.options.bounce.horizontal));\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.x = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: bounds.left,\n max: bounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, particle.velocity.y, getValue(particle.options.bounce.vertical));\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.y = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n}\n","export const generatedAttribute = \"generated\";\nexport const randomColorValue = \"random\";\nexport const midColorValue = \"mid\";\nexport const touchEndEvent = \"touchend\";\nexport const mouseDownEvent = \"mousedown\";\nexport const mouseUpEvent = \"mouseup\";\nexport const mouseMoveEvent = \"mousemove\";\nexport const touchStartEvent = \"touchstart\";\nexport const touchMoveEvent = \"touchmove\";\nexport const mouseLeaveEvent = \"mouseleave\";\nexport const mouseOutEvent = \"mouseout\";\nexport const touchCancelEvent = \"touchcancel\";\nexport const resizeEvent = \"resize\";\nexport const visibilityChangeEvent = \"visibilitychange\";\nexport const noPolygonDataLoaded = \"No polygon data loaded.\";\nexport const noPolygonFound = \"No polygon found, you need to specify SVG url in config.\";\n","import { getRangeValue, mix, randomInRange, setRangeValue } from \"./NumberUtils\";\nimport { midColorValue, randomColorValue } from \"../Core/Utils/Constants\";\nimport { itemFromArray } from \"./Utils\";\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\nfunction stringToRgba(input) {\n if (input.startsWith(\"rgb\")) {\n const regex = /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([\\d.]+)\\s*)?\\)/i, result = regex.exec(input);\n return result\n ? {\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n b: parseInt(result[3], 10),\n g: parseInt(result[2], 10),\n r: parseInt(result[1], 10),\n }\n : undefined;\n }\n else if (input.startsWith(\"hsl\")) {\n const regex = /hsla?\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i, result = regex.exec(input);\n return result\n ? hslaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n l: parseInt(result[3], 10),\n s: parseInt(result[2], 10),\n })\n : undefined;\n }\n else if (input.startsWith(\"hsv\")) {\n const regex = /hsva?\\(\\s*(\\d+)°\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i, result = regex.exec(input);\n return result\n ? hsvaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n s: parseInt(result[2], 10),\n v: parseInt(result[3], 10),\n })\n : undefined;\n }\n else {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i, hexFixed = input.replace(shorthandRegex, (_, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n }), regex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i, result = regex.exec(hexFixed);\n return result\n ? {\n a: result[4] !== undefined ? parseInt(result[4], 16) / 0xff : 1,\n b: parseInt(result[3], 16),\n g: parseInt(result[2], 16),\n r: parseInt(result[1], 16),\n }\n : undefined;\n }\n}\nexport function rangeColorToRgb(input, index, useIndex = true) {\n var _a, _b, _c;\n if (input === undefined) {\n return undefined;\n }\n const color = typeof input === \"string\" ? { value: input } : input;\n if (typeof color.value === \"string\") {\n return colorToRgb(color.value, index, useIndex);\n }\n if (color.value instanceof Array) {\n return rangeColorToRgb({\n value: itemFromArray(color.value, index, useIndex),\n });\n }\n const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n return {\n r: getRangeValue(rgbColor.r),\n g: getRangeValue(rgbColor.g),\n b: getRangeValue(rgbColor.b),\n };\n }\n const hslColor = (_b = colorValue.hsl) !== null && _b !== void 0 ? _b : color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n return hslToRgb({\n h: getRangeValue(hslColor.h),\n l: getRangeValue(hslColor.l),\n s: getRangeValue(hslColor.s),\n });\n }\n const hsvColor = (_c = colorValue.hsv) !== null && _c !== void 0 ? _c : color.value;\n if (hsvColor.h !== undefined && hsvColor.v !== undefined) {\n const res = hsvToRgb({\n h: getRangeValue(hsvColor.h),\n s: getRangeValue(hsvColor.s),\n v: getRangeValue(hsvColor.v),\n });\n return res;\n }\n return undefined;\n}\nexport function colorToRgb(input, index, useIndex = true) {\n var _a, _b, _c;\n if (input === undefined) {\n return;\n }\n const color = typeof input === \"string\" ? { value: input } : input;\n if (typeof color.value === \"string\") {\n return color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(color.value);\n }\n if (color.value instanceof Array) {\n return colorToRgb({\n value: itemFromArray(color.value, index, useIndex),\n });\n }\n const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n return rgbColor;\n }\n const hslColor = (_b = colorValue.hsl) !== null && _b !== void 0 ? _b : color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n return hslToRgb(hslColor);\n }\n const hsvColor = (_c = colorValue.hsv) !== null && _c !== void 0 ? _c : color.value;\n if (hsvColor.h !== undefined && hsvColor.v !== undefined) {\n return hsvToRgb(hsvColor);\n }\n return undefined;\n}\nexport function colorToHsl(color, index, useIndex = true) {\n const rgb = colorToRgb(color, index, useIndex);\n return rgb !== undefined ? rgbToHsl(rgb) : undefined;\n}\nexport function rangeColorToHsl(color, index, useIndex = true) {\n const rgb = rangeColorToRgb(color, index, useIndex);\n return rgb !== undefined ? rgbToHsl(rgb) : undefined;\n}\nexport function rgbToHsl(color) {\n const r1 = color.r / 255, g1 = color.g / 255, b1 = color.b / 255, max = Math.max(r1, g1, b1), min = Math.min(r1, g1, b1), res = {\n h: 0,\n l: (max + min) / 2,\n s: 0,\n };\n if (max !== min) {\n res.s = res.l < 0.5 ? (max - min) / (max + min) : (max - min) / (2.0 - max - min);\n res.h =\n r1 === max\n ? (g1 - b1) / (max - min)\n : res.h = g1 === max ? 2.0 + (b1 - r1) / (max - min) : 4.0 + (r1 - g1) / (max - min);\n }\n res.l *= 100;\n res.s *= 100;\n res.h *= 60;\n if (res.h < 0) {\n res.h += 360;\n }\n if (res.h >= 360) {\n res.h -= 360;\n }\n return res;\n}\nexport function stringToAlpha(input) {\n var _a;\n return (_a = stringToRgba(input)) === null || _a === void 0 ? void 0 : _a.a;\n}\nexport function stringToRgb(input) {\n return stringToRgba(input);\n}\nexport function hslToRgb(hsl) {\n const result = { b: 0, g: 0, r: 0 }, hslPercent = {\n h: hsl.h / 360,\n l: hsl.l / 100,\n s: hsl.s / 100,\n };\n if (!hslPercent.s) {\n result.b = hslPercent.l;\n result.g = hslPercent.l;\n result.r = hslPercent.l;\n }\n else {\n const q = hslPercent.l < 0.5\n ? hslPercent.l * (1 + hslPercent.s)\n : hslPercent.l + hslPercent.s - hslPercent.l * hslPercent.s, p = 2 * hslPercent.l - q;\n result.r = hue2rgb(p, q, hslPercent.h + 1 / 3);\n result.g = hue2rgb(p, q, hslPercent.h);\n result.b = hue2rgb(p, q, hslPercent.h - 1 / 3);\n }\n result.r = Math.floor(result.r * 255);\n result.g = Math.floor(result.g * 255);\n result.b = Math.floor(result.b * 255);\n return result;\n}\nexport function hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexport function hslToHsv(hsl) {\n const l = hsl.l / 100, sl = hsl.s / 100, v = l + sl * Math.min(l, 1 - l), sv = !v ? 0 : 2 * (1 - l / v);\n return {\n h: hsl.h,\n s: sv * 100,\n v: v * 100,\n };\n}\nexport function hslaToHsva(hsla) {\n return Object.assign({ a: hsla.a }, hslToHsv(hsla));\n}\nexport function hsvToHsl(hsv) {\n const v = hsv.v / 100, sv = hsv.s / 100, l = v * (1 - sv / 2), sl = l === 0 || l === 1 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h: hsv.h,\n l: l * 100,\n s: sl * 100,\n };\n}\nexport function hsvaToHsla(hsva) {\n return Object.assign({ a: hsva.a }, hsvToHsl(hsva));\n}\nexport function hsvToRgb(hsv) {\n const result = { b: 0, g: 0, r: 0 }, hsvPercent = {\n h: hsv.h / 60,\n s: hsv.s / 100,\n v: hsv.v / 100,\n }, c = hsvPercent.v * hsvPercent.s, x = c * (1 - Math.abs(hsvPercent.h % 2 - 1));\n let tempRgb;\n if (hsvPercent.h >= 0 && hsvPercent.h <= 1) {\n tempRgb = {\n r: c,\n g: x,\n b: 0,\n };\n }\n else if (hsvPercent.h > 1 && hsvPercent.h <= 2) {\n tempRgb = {\n r: x,\n g: c,\n b: 0,\n };\n }\n else if (hsvPercent.h > 2 && hsvPercent.h <= 3) {\n tempRgb = {\n r: 0,\n g: c,\n b: x,\n };\n }\n else if (hsvPercent.h > 3 && hsvPercent.h <= 4) {\n tempRgb = {\n r: 0,\n g: x,\n b: c,\n };\n }\n else if (hsvPercent.h > 4 && hsvPercent.h <= 5) {\n tempRgb = {\n r: x,\n g: 0,\n b: c,\n };\n }\n else if (hsvPercent.h > 5 && hsvPercent.h <= 6) {\n tempRgb = {\n r: c,\n g: 0,\n b: x,\n };\n }\n if (tempRgb) {\n const m = hsvPercent.v - c;\n result.r = Math.floor((tempRgb.r + m) * 255);\n result.g = Math.floor((tempRgb.g + m) * 255);\n result.b = Math.floor((tempRgb.b + m) * 255);\n }\n return result;\n}\nexport function hsvaToRgba(hsva) {\n return Object.assign({ a: hsva.a }, hsvToRgb(hsva));\n}\nexport function rgbToHsv(rgb) {\n const rgbPercent = {\n r: rgb.r / 255,\n g: rgb.g / 255,\n b: rgb.b / 255,\n }, xMax = Math.max(rgbPercent.r, rgbPercent.g, rgbPercent.b), xMin = Math.min(rgbPercent.r, rgbPercent.g, rgbPercent.b), v = xMax, c = xMax - xMin;\n let h = 0;\n if (v === rgbPercent.r) {\n h = 60 * ((rgbPercent.g - rgbPercent.b) / c);\n }\n else if (v === rgbPercent.g) {\n h = 60 * (2 + (rgbPercent.b - rgbPercent.r) / c);\n }\n else if (v === rgbPercent.b) {\n h = 60 * (4 + (rgbPercent.r - rgbPercent.g) / c);\n }\n const s = !v ? 0 : c / v;\n return {\n h,\n s: s * 100,\n v: v * 100,\n };\n}\nexport function rgbaToHsva(rgba) {\n return Object.assign({ a: rgba.a }, rgbToHsv(rgba));\n}\nexport function getRandomRgbColor(min) {\n const fixedMin = min !== null && min !== void 0 ? min : 0;\n return {\n b: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n g: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n r: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n };\n}\nexport function getStyleFromRgb(color, opacity) {\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexport function getStyleFromHsl(color, opacity) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexport function getStyleFromHsv(color, opacity) {\n return getStyleFromHsl(hsvToHsl(color), opacity);\n}\nexport function colorMix(color1, color2, size1, size2) {\n let rgb1 = color1, rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: mix(rgb1.b, rgb2.b, size1, size2),\n g: mix(rgb1.g, rgb2.g, size1, size2),\n r: mix(rgb1.r, rgb2.r, size1, size2),\n };\n}\nexport function getLinkColor(p1, p2, linkColor) {\n var _a, _b;\n if (linkColor === randomColorValue) {\n return getRandomRgbColor();\n }\n else if (linkColor === \"mid\") {\n const sourceColor = (_a = p1.getFillColor()) !== null && _a !== void 0 ? _a : p1.getStrokeColor(), destColor = (_b = p2 === null || p2 === void 0 ? void 0 : p2.getFillColor()) !== null && _b !== void 0 ? _b : p2 === null || p2 === void 0 ? void 0 : p2.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n }\n else {\n const hslColor = sourceColor !== null && sourceColor !== void 0 ? sourceColor : destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n }\n else {\n return linkColor;\n }\n}\nexport function getLinkRandomColor(optColor, blink, consent) {\n const color = typeof optColor === \"string\" ? optColor : optColor.value;\n if (color === randomColorValue) {\n if (consent) {\n return rangeColorToRgb({\n value: color,\n });\n }\n if (blink) {\n return randomColorValue;\n }\n return midColorValue;\n }\n else {\n return rangeColorToRgb({\n value: color,\n });\n }\n}\nexport function getHslFromAnimation(animation) {\n return animation !== undefined\n ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value,\n }\n : undefined;\n}\nexport function getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h,\n },\n s: {\n enable: false,\n value: hsl.s,\n },\n l: {\n enable: false,\n value: hsl.l,\n },\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = getRangeValue(colorAnimation.speed) / 100 * reduceFactor;\n colorValue.decay = 1 - getRangeValue(colorAnimation.decay);\n colorValue.status = 0;\n if (!colorAnimation.sync) {\n colorValue.velocity *= Math.random();\n colorValue.value *= Math.random();\n }\n }\n else {\n colorValue.velocity = 0;\n }\n}\n","import { colorMix, getStyleFromHsl, getStyleFromRgb } from \"./ColorUtils\";\nexport function drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nexport function drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nexport function paintBase(context, dimension, baseColor) {\n context.save();\n context.fillStyle = baseColor !== null && baseColor !== void 0 ? baseColor : \"rgba(0,0,0,0)\";\n context.fillRect(0, 0, dimension.width, dimension.height);\n context.restore();\n}\nexport function clear(context, dimension) {\n context.clearRect(0, 0, dimension.width, dimension.height);\n}\nexport function gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius()), color1 = p1.getFillColor(), color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition(), destPos = p2.getPosition(), midRgb = colorMix(color1, color2, p1.getRadius(), p2.getRadius()), grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(0, getStyleFromHsl(color1, opacity));\n grad.addColorStop(gradStop > 1 ? 1 : gradStop, getStyleFromRgb(midRgb, opacity));\n grad.addColorStop(1, getStyleFromHsl(color2, opacity));\n return grad;\n}\nexport function drawParticle(container, context, particle, delta, colorStyles, backgroundMask, composite, radius, opacity, shadow, transform) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n const pos = particle.getPosition();\n context.save();\n if (transform.a !== undefined ||\n transform.b !== undefined ||\n transform.c !== undefined ||\n transform.d !== undefined) {\n context.setTransform((_a = transform.a) !== null && _a !== void 0 ? _a : 1, (_b = transform.b) !== null && _b !== void 0 ? _b : 0, (_c = transform.c) !== null && _c !== void 0 ? _c : 0, (_d = transform.d) !== null && _d !== void 0 ? _d : 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n context.beginPath();\n const angle = ((_f = (_e = particle.rotate) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : 0) + (particle.options.rotate.path ? particle.velocity.angle : 0);\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n const shadowColor = particle.shadowColor;\n if (shadow.enable && shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n context.shadowOffsetX = shadow.offset.x;\n context.shadowOffsetY = shadow.offset.y;\n }\n if (colorStyles.fill) {\n context.fillStyle = colorStyles.fill;\n }\n const stroke = particle.stroke;\n context.lineWidth = (_g = particle.strokeWidth) !== null && _g !== void 0 ? _g : 0;\n if (colorStyles.stroke) {\n context.strokeStyle = colorStyles.stroke;\n }\n drawShape(container, context, particle, radius, opacity, delta);\n if (((_h = stroke === null || stroke === void 0 ? void 0 : stroke.width) !== null && _h !== void 0 ? _h : 0) > 0) {\n context.stroke();\n }\n if (particle.close) {\n context.closePath();\n }\n if (particle.fill) {\n context.fill();\n }\n context.restore();\n context.save();\n if (transform.a !== undefined ||\n transform.b !== undefined ||\n transform.c !== undefined ||\n transform.d !== undefined) {\n context.setTransform((_j = transform.a) !== null && _j !== void 0 ? _j : 1, (_k = transform.b) !== null && _k !== void 0 ? _k : 0, (_l = transform.c) !== null && _l !== void 0 ? _l : 0, (_m = transform.d) !== null && _m !== void 0 ? _m : 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n drawShapeAfterEffect(container, context, particle, radius, opacity, delta);\n context.restore();\n}\nexport function drawShape(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n drawer.draw(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexport function drawShapeAfterEffect(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!(drawer === null || drawer === void 0 ? void 0 : drawer.afterEffect)) {\n return;\n }\n drawer.afterEffect(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexport function drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n context.save();\n plugin.draw(context, delta);\n context.restore();\n}\nexport function drawParticlePlugin(context, plugin, particle, delta) {\n if (!plugin.drawParticle) {\n return;\n }\n context.save();\n plugin.drawParticle(context, particle, delta);\n context.restore();\n}\nexport function drawEllipse(context, particle, fillColorValue, radius, opacity, width, rotation, start, end) {\n if (width <= 0) {\n return;\n }\n const pos = particle.getPosition();\n if (fillColorValue) {\n context.strokeStyle = getStyleFromHsl(fillColorValue, opacity);\n }\n context.lineWidth = width;\n const rotationRadian = rotation * Math.PI / 180;\n context.beginPath();\n context.ellipse(pos.x, pos.y, radius / 2, radius * 2, rotationRadian, start, end);\n context.stroke();\n}\nexport function alterHsl(color, type, value) {\n return {\n h: color.h,\n s: color.s,\n l: color.l + (type === \"darken\" ? -1 : 1) * value,\n };\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Canvas_context;\nimport { clear, drawParticle, drawParticlePlugin, drawPlugin, paintBase } from \"../Utils/CanvasUtils\";\nimport { getStyleFromHsl, getStyleFromRgb, rangeColorToHsl, rangeColorToRgb } from \"../Utils/ColorUtils\";\nimport { deepExtend } from \"../Utils/Utils\";\nimport { generatedAttribute } from \"./Utils/Constants\";\nfunction setTransformValue(factor, newFactor, key) {\n var _a;\n const newValue = newFactor[key];\n if (newValue !== undefined) {\n factor[key] = ((_a = factor[key]) !== null && _a !== void 0 ? _a : 1) * newValue;\n }\n}\nexport class Canvas {\n constructor(container) {\n this.container = container;\n _Canvas_context.set(this, void 0);\n this.size = {\n height: 0,\n width: 0,\n };\n __classPrivateFieldSet(this, _Canvas_context, null, \"f\");\n this.generatedCanvas = false;\n }\n clear() {\n const options = this.container.actualOptions, trail = options.particles.move.trail;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > 0 && this.trailFillColor) {\n this.paintBase(getStyleFromRgb(this.trailFillColor, 1 / trail.length));\n }\n else {\n this.draw((ctx) => {\n clear(ctx, this.size);\n });\n }\n }\n destroy() {\n var _a;\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n else {\n this.resetOriginalStyle();\n }\n this.draw((ctx) => {\n clear(ctx, this.size);\n });\n }\n draw(cb) {\n if (!__classPrivateFieldGet(this, _Canvas_context, \"f\")) {\n return;\n }\n return cb(__classPrivateFieldGet(this, _Canvas_context, \"f\"));\n }\n drawParticle(particle, delta) {\n var _a, _b, _c, _d, _e, _f;\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const radius = particle.getRadius();\n if (radius <= 0) {\n return;\n }\n const pfColor = particle.getFillColor(), psColor = (_a = particle.getStrokeColor()) !== null && _a !== void 0 ? _a : pfColor;\n if (!pfColor && !psColor) {\n return;\n }\n let [fColor, sColor] = this.getPluginParticleColors(particle);\n if (!fColor || !sColor) {\n if (!fColor) {\n fColor = pfColor ? pfColor : undefined;\n }\n if (!sColor) {\n sColor = psColor ? psColor : undefined;\n }\n }\n const options = this.container.actualOptions, zIndexOptions = particle.options.zIndex, zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate, opacity = (_d = (_b = particle.bubble.opacity) !== null && _b !== void 0 ? _b : (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1, strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity, zOpacity = opacity * zOpacityFactor, zStrokeOpacity = strokeOpacity * zOpacityFactor;\n const colorStyles = {\n fill: fColor ? getStyleFromHsl(fColor, zOpacity) : undefined,\n };\n colorStyles.stroke = sColor ? getStyleFromHsl(sColor, zStrokeOpacity) : colorStyles.fill;\n this.draw((ctx) => {\n const transform = {};\n const zSizeFactor = (1 - particle.zIndexFactor) ** zIndexOptions.sizeRate, container = this.container;\n for (const updater of container.particles.updaters) {\n if (updater.beforeDraw) {\n updater.beforeDraw(particle);\n }\n if (updater.getColorStyles) {\n const { fill, stroke } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n if (updater.getTransformValues) {\n const updaterTransform = updater.getTransformValues(particle);\n for (const key in updaterTransform) {\n setTransformValue(transform, updaterTransform, key);\n }\n }\n }\n drawParticle(container, ctx, particle, delta, colorStyles, options.backgroundMask.enable, options.backgroundMask.composite, radius * zSizeFactor, zOpacity, particle.options.shadow, transform);\n for (const updater of container.particles.updaters) {\n if (updater.afterDraw) {\n updater.afterDraw(particle);\n }\n }\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw((ctx) => {\n drawParticlePlugin(ctx, plugin, particle, delta);\n });\n }\n drawPlugin(plugin, delta) {\n this.draw((ctx) => {\n drawPlugin(ctx, plugin, delta);\n });\n }\n init() {\n this.resize();\n this.initStyle();\n this.initCover();\n this.initTrail();\n this.initBackground();\n this.paint();\n }\n initBackground() {\n const options = this.container.actualOptions, background = options.background, element = this.element, elementStyle = element === null || element === void 0 ? void 0 : element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = rangeColorToRgb(background.color);\n elementStyle.backgroundColor = color ? getStyleFromRgb(color, background.opacity) : \"\";\n }\n else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n loadCanvas(canvas) {\n var _a;\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.generatedCanvas =\n canvas.dataset && generatedAttribute in canvas.dataset\n ? canvas.dataset[generatedAttribute] === \"true\"\n : this.generatedCanvas;\n this.element = canvas;\n this.originalStyle = deepExtend({}, this.element.style);\n this.size.height = canvas.offsetHeight;\n this.size.width = canvas.offsetWidth;\n __classPrivateFieldSet(this, _Canvas_context, this.element.getContext(\"2d\"), \"f\");\n this.container.retina.init();\n this.initBackground();\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw((ctx) => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n clear(ctx, this.size);\n this.paintBase(this.coverColorStyle);\n }\n else {\n this.paintBase();\n }\n });\n }\n resize() {\n if (!this.element) {\n return;\n }\n const container = this.container, pxRatio = container.retina.pixelRatio, size = container.canvas.size, newSize = {\n width: this.element.offsetWidth * pxRatio,\n height: this.element.offsetHeight * pxRatio,\n };\n if (newSize.height === size.height &&\n newSize.width === size.width &&\n newSize.height === this.element.height &&\n newSize.width === this.element.width) {\n return;\n }\n const oldSize = Object.assign({}, size);\n this.element.width = size.width = this.element.offsetWidth * pxRatio;\n this.element.height = size.height = this.element.offsetHeight * pxRatio;\n if (this.container.started) {\n this.resizeFactor = {\n width: size.width / oldSize.width,\n height: size.height / oldSize.height,\n };\n }\n }\n async windowResize() {\n if (!this.element) {\n return;\n }\n this.resize();\n const container = this.container, needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n for (const [, plugin] of container.plugins) {\n if (plugin.resize !== undefined) {\n plugin.resize();\n }\n }\n if (needsRefresh) {\n await container.refresh();\n }\n }\n getPluginParticleColors(particle) {\n let fColor, sColor;\n for (const [, plugin] of this.container.plugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = rangeColorToHsl(plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = rangeColorToHsl(plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n }\n initCover() {\n const options = this.container.actualOptions, cover = options.backgroundMask.cover, color = cover.color, coverRgb = rangeColorToRgb(color);\n if (coverRgb) {\n const coverColor = {\n r: coverRgb.r,\n g: coverRgb.g,\n b: coverRgb.b,\n a: cover.opacity,\n };\n this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);\n }\n }\n initStyle() {\n const element = this.element, options = this.container.actualOptions;\n if (!element) {\n return;\n }\n if (options.fullScreen.enable) {\n this.originalStyle = deepExtend({}, element.style);\n element.style.setProperty(\"position\", \"fixed\", \"important\");\n element.style.setProperty(\"z-index\", options.fullScreen.zIndex.toString(10), \"important\");\n element.style.setProperty(\"top\", \"0\", \"important\");\n element.style.setProperty(\"left\", \"0\", \"important\");\n element.style.setProperty(\"width\", \"100%\", \"important\");\n element.style.setProperty(\"height\", \"100%\", \"important\");\n }\n else {\n this.resetOriginalStyle();\n }\n for (const key in options.style) {\n if (!key || !options.style) {\n continue;\n }\n const value = options.style[key];\n if (!value) {\n continue;\n }\n element.style.setProperty(key, value, \"important\");\n }\n }\n initTrail() {\n const options = this.container.actualOptions, trail = options.particles.move.trail, fillColor = rangeColorToRgb(trail.fillColor);\n if (fillColor) {\n const trail = options.particles.move.trail;\n this.trailFillColor = {\n r: fillColor.r,\n g: fillColor.g,\n b: fillColor.b,\n a: 1 / trail.length,\n };\n }\n }\n paintBase(baseColor) {\n this.draw((ctx) => {\n paintBase(ctx, this.size, baseColor);\n });\n }\n resetOriginalStyle() {\n const element = this.element, originalStyle = this.originalStyle;\n if (element && originalStyle) {\n element.style.position = originalStyle.position;\n element.style.zIndex = originalStyle.zIndex;\n element.style.top = originalStyle.top;\n element.style.left = originalStyle.left;\n element.style.width = originalStyle.width;\n element.style.height = originalStyle.height;\n }\n }\n}\n_Canvas_context = new WeakMap();\n","import { mouseDownEvent, mouseLeaveEvent, mouseMoveEvent, mouseOutEvent, mouseUpEvent, resizeEvent, touchCancelEvent, touchEndEvent, touchMoveEvent, touchStartEvent, visibilityChangeEvent, } from \"./Constants\";\nimport { isSsr } from \"../../Utils/Utils\";\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (typeof options === \"boolean\") {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nexport class EventListeners {\n constructor(container) {\n this.container = container;\n this.canPush = true;\n this.mouseMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchStartHandler = (e) => this.mouseTouchMove(e);\n this.touchMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchEndHandler = () => this.mouseTouchFinish();\n this.mouseLeaveHandler = () => this.mouseTouchFinish();\n this.touchCancelHandler = () => this.mouseTouchFinish();\n this.touchEndClickHandler = (e) => this.mouseTouchClick(e);\n this.mouseUpHandler = (e) => this.mouseTouchClick(e);\n this.mouseDownHandler = () => this.mouseDown();\n this.visibilityChangeHandler = () => this.handleVisibilityChange();\n this.themeChangeHandler = (e) => this.handleThemeChange(e);\n this.oldThemeChangeHandler = (e) => this.handleThemeChange(e);\n this.resizeHandler = () => this.handleWindowResize();\n }\n addListeners() {\n this.manageListeners(true);\n }\n removeListeners() {\n this.manageListeners(false);\n }\n doMouseTouchClick(e) {\n const container = this.container, options = container.actualOptions;\n if (this.canPush) {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n container.interactivity.mouse.clickPosition = {\n x: mousePos.x,\n y: mousePos.y,\n };\n container.interactivity.mouse.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n if (onClick.mode instanceof Array) {\n for (const mode of onClick.mode) {\n this.handleClickMode(mode);\n }\n }\n else {\n this.handleClickMode(onClick.mode);\n }\n }\n if (e.type === \"touchend\") {\n setTimeout(() => this.mouseTouchFinish(), 500);\n }\n }\n handleClickMode(mode) {\n this.container.handleClickMode(mode);\n }\n handleThemeChange(e) {\n const mediaEvent = e, themeName = mediaEvent.matches\n ? this.container.options.defaultDarkTheme\n : this.container.options.defaultLightTheme, theme = this.container.options.themes.find((theme) => theme.name === themeName);\n if (theme && theme.default.auto) {\n this.container.loadTheme(themeName);\n }\n }\n handleVisibilityChange() {\n const container = this.container, options = container.actualOptions;\n this.mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document === null || document === void 0 ? void 0 : document.hidden) {\n container.pageHidden = true;\n container.pause();\n }\n else {\n container.pageHidden = false;\n if (container.getAnimationStatus()) {\n container.play(true);\n }\n else {\n container.draw(true);\n }\n }\n }\n handleWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n delete this.resizeTimeout;\n }\n this.resizeTimeout = setTimeout(async () => { var _a; return (_a = this.container.canvas) === null || _a === void 0 ? void 0 : _a.windowResize(); }, 500);\n }\n manageListeners(add) {\n var _a;\n const container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn;\n let mouseLeaveTmpEvent = mouseLeaveEvent;\n if (detectType === \"window\") {\n container.interactivity.element = window;\n mouseLeaveTmpEvent = mouseOutEvent;\n }\n else if (detectType === \"parent\" && container.canvas.element) {\n const canvasEl = container.canvas.element;\n container.interactivity.element = (_a = canvasEl.parentElement) !== null && _a !== void 0 ? _a : canvasEl.parentNode;\n }\n else {\n container.interactivity.element = container.canvas.element;\n }\n const mediaMatch = !isSsr() && typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\");\n if (mediaMatch) {\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", this.themeChangeHandler, add);\n }\n else if (mediaMatch.addListener !== undefined) {\n if (add) {\n mediaMatch.addListener(this.oldThemeChangeHandler);\n }\n else {\n mediaMatch.removeListener(this.oldThemeChangeHandler);\n }\n }\n }\n const interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl;\n if (options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, mouseMoveEvent, this.mouseMoveHandler, add);\n manageListener(interactivityEl, touchStartEvent, this.touchStartHandler, add);\n manageListener(interactivityEl, touchMoveEvent, this.touchMoveHandler, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, touchEndEvent, this.touchEndHandler, add);\n }\n else {\n manageListener(interactivityEl, touchEndEvent, this.touchEndClickHandler, add);\n manageListener(interactivityEl, mouseUpEvent, this.mouseUpHandler, add);\n manageListener(interactivityEl, mouseDownEvent, this.mouseDownHandler, add);\n }\n manageListener(interactivityEl, mouseLeaveTmpEvent, this.mouseLeaveHandler, add);\n manageListener(interactivityEl, touchCancelEvent, this.touchCancelHandler, add);\n }\n if (container.canvas.element) {\n container.canvas.element.style.pointerEvents = html === container.canvas.element ? \"initial\" : \"none\";\n }\n if (options.interactivity.events.resize) {\n if (typeof ResizeObserver !== \"undefined\") {\n if (this.resizeObserver && !add) {\n if (container.canvas.element) {\n this.resizeObserver.unobserve(container.canvas.element);\n }\n this.resizeObserver.disconnect();\n delete this.resizeObserver;\n }\n else if (!this.resizeObserver && add && container.canvas.element) {\n this.resizeObserver = new ResizeObserver((entries) => {\n const entry = entries.find((e) => e.target === container.canvas.element);\n if (!entry) {\n return;\n }\n this.handleWindowResize();\n });\n this.resizeObserver.observe(container.canvas.element);\n }\n }\n else {\n manageListener(window, resizeEvent, this.resizeHandler, add);\n }\n }\n if (document) {\n manageListener(document, visibilityChangeEvent, this.visibilityChangeHandler, add, false);\n }\n }\n mouseDown() {\n const interactivity = this.container.interactivity;\n if (interactivity) {\n const mouse = interactivity.mouse;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n }\n }\n mouseTouchClick(e) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (!mousePosition || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const [, plugin] of container.plugins) {\n if (!plugin.clickPositionValid) {\n continue;\n }\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n if (!handled) {\n this.doMouseTouchClick(e);\n }\n mouse.clicking = false;\n }\n mouseTouchFinish() {\n const interactivity = this.container.interactivity;\n if (!interactivity) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n }\n mouseTouchMove(e) {\n var _a, _b, _c, _d, _e, _f, _g;\n const container = this.container, options = container.actualOptions;\n if (!((_a = container.interactivity) === null || _a === void 0 ? void 0 : _a.element)) {\n return;\n }\n container.interactivity.mouse.inside = true;\n let pos;\n const canvas = container.canvas.element;\n if (e.type.startsWith(\"mouse\")) {\n this.canPush = true;\n const mouseEvent = e;\n if (container.interactivity.element === window) {\n if (canvas) {\n const clientRect = canvas.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top,\n };\n }\n }\n else if (options.interactivity.detectsOn === \"parent\") {\n const source = mouseEvent.target;\n const target = mouseEvent.currentTarget;\n const canvasEl = container.canvas.element;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect();\n const targetRect = target.getBoundingClientRect();\n const canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + 2 * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + 2 * sourceRect.top - (targetRect.top + canvasRect.top),\n };\n }\n else {\n pos = {\n x: (_b = mouseEvent.offsetX) !== null && _b !== void 0 ? _b : mouseEvent.clientX,\n y: (_c = mouseEvent.offsetY) !== null && _c !== void 0 ? _c : mouseEvent.clientY,\n };\n }\n }\n else {\n if (mouseEvent.target === container.canvas.element) {\n pos = {\n x: (_d = mouseEvent.offsetX) !== null && _d !== void 0 ? _d : mouseEvent.clientX,\n y: (_e = mouseEvent.offsetY) !== null && _e !== void 0 ? _e : mouseEvent.clientY,\n };\n }\n }\n }\n else {\n this.canPush = e.type !== \"touchmove\";\n const touchEvent = e;\n const lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n const canvasRect = canvas === null || canvas === void 0 ? void 0 : canvas.getBoundingClientRect();\n pos = {\n x: lastTouch.clientX - ((_f = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _f !== void 0 ? _f : 0),\n y: lastTouch.clientY - ((_g = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _g !== void 0 ? _g : 0),\n };\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n container.interactivity.mouse.position = pos;\n container.interactivity.status = mouseMoveEvent;\n }\n}\n","export class FrameManager {\n constructor(container) {\n this.container = container;\n }\n async nextFrame(timestamp) {\n var _a;\n try {\n const container = this.container;\n if (container.lastFrameTime !== undefined &&\n timestamp < container.lastFrameTime + 1000 / container.fpsLimit) {\n container.draw(false);\n return;\n }\n (_a = container.lastFrameTime) !== null && _a !== void 0 ? _a : (container.lastFrameTime = timestamp);\n const deltaValue = timestamp - container.lastFrameTime, delta = {\n value: deltaValue,\n factor: 60 * deltaValue / 1000,\n };\n container.lifeTime += delta.value;\n container.lastFrameTime = timestamp;\n if (deltaValue > 1000) {\n container.draw(false);\n return;\n }\n await container.particles.draw(delta);\n if (container.duration > 0 && container.lifeTime > container.duration) {\n container.destroy();\n return;\n }\n if (container.getAnimationStatus()) {\n container.draw(false);\n }\n }\n catch (e) {\n console.error(\"tsParticles error in animation loop\", e);\n }\n }\n}\n","export class OptionsColor {\n constructor() {\n this.value = \"\";\n }\n static create(source, data) {\n const color = new OptionsColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n if ((data === null || data === void 0 ? void 0 : data.value) === undefined) {\n return;\n }\n this.value = data.value;\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class Background {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"\";\n this.image = \"\";\n this.position = \"\";\n this.repeat = \"\";\n this.size = \"\";\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.position !== undefined) {\n this.position = data.position;\n }\n if (data.repeat !== undefined) {\n this.repeat = data.repeat;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class BackgroundMaskCover {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { BackgroundMaskCover } from \"./BackgroundMaskCover\";\nexport class BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover;\n const color = (typeof data.cover === \"string\" ? { color: data.cover } : data.cover);\n this.cover.load(cover.color !== undefined ? cover : { color: color });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","export class FullScreen {\n constructor() {\n this.enable = true;\n this.zIndex = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.zIndex !== undefined) {\n this.zIndex = data.zIndex;\n }\n }\n}\n","export class ClickEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n }\n}\n","export class DivEvent {\n constructor() {\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = \"circle\";\n }\n get el() {\n return this.elementId;\n }\n set el(value) {\n this.elementId = value;\n }\n get elementId() {\n return this.ids;\n }\n set elementId(value) {\n this.ids = value;\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n const ids = (_b = (_a = data.ids) !== null && _a !== void 0 ? _a : data.elementId) !== null && _b !== void 0 ? _b : data.el;\n if (ids !== undefined) {\n this.ids = ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n","export class Parallax {\n constructor() {\n this.enable = false;\n this.force = 2;\n this.smooth = 10;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.force !== undefined) {\n this.force = data.force;\n }\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n }\n}\n","import { Parallax } from \"./Parallax\";\nexport class HoverEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n this.parallax = new Parallax();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.parallax.load(data.parallax);\n }\n}\n","import { ClickEvent } from \"./ClickEvent\";\nimport { DivEvent } from \"./DivEvent\";\nimport { HoverEvent } from \"./HoverEvent\";\nexport class Events {\n constructor() {\n this.onClick = new ClickEvent();\n this.onDiv = new DivEvent();\n this.onHover = new HoverEvent();\n this.resize = true;\n }\n get onclick() {\n return this.onClick;\n }\n set onclick(value) {\n this.onClick = value;\n }\n get ondiv() {\n return this.onDiv;\n }\n set ondiv(value) {\n this.onDiv = value;\n }\n get onhover() {\n return this.onHover;\n }\n set onhover(value) {\n this.onHover = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n this.onClick.load((_a = data.onClick) !== null && _a !== void 0 ? _a : data.onclick);\n const onDiv = (_b = data.onDiv) !== null && _b !== void 0 ? _b : data.ondiv;\n if (onDiv !== undefined) {\n if (onDiv instanceof Array) {\n this.onDiv = onDiv.map((div) => {\n const tmp = new DivEvent();\n tmp.load(div);\n return tmp;\n });\n }\n else {\n this.onDiv = new DivEvent();\n this.onDiv.load(onDiv);\n }\n }\n this.onHover.load((_c = data.onHover) !== null && _c !== void 0 ? _c : data.onhover);\n if (data.resize !== undefined) {\n this.resize = data.resize;\n }\n }\n}\n","export class Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.easing = \"ease-out-quad\";\n this.factor = 1;\n this.maxSpeed = 50;\n this.speed = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\n","export class Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.mix !== undefined) {\n this.mix = data.mix;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n if (data.color instanceof Array) {\n this.color = data.color.map((s) => OptionsColor.create(undefined, s));\n }\n else {\n if (this.color instanceof Array) {\n this.color = new OptionsColor();\n }\n this.color = OptionsColor.create(this.color, data.color);\n }\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\n","import { BubbleBase } from \"./BubbleBase\";\nexport class BubbleDiv extends BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","import { BubbleBase } from \"./BubbleBase\";\nimport { BubbleDiv } from \"./BubbleDiv\";\nexport class Bubble extends BubbleBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new BubbleDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new BubbleDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\n","export class ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { ConnectLinks } from \"./ConnectLinks\";\nexport class Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks();\n this.radius = 60;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { GrabLinks } from \"./GrabLinks\";\nexport class Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks();\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LightGradient {\n constructor() {\n this.start = new OptionsColor();\n this.stop = new OptionsColor();\n this.start.value = \"#ffffff\";\n this.stop.value = \"#000000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.start = OptionsColor.create(this.start, data.start);\n this.stop = OptionsColor.create(this.stop, data.stop);\n }\n}\n","import { LightGradient } from \"./LightGradient\";\nexport class LightArea {\n constructor() {\n this.gradient = new LightGradient();\n this.radius = 1000;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.gradient.load(data.gradient);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LightShadow {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"#000000\";\n this.length = 2000;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\n","import { LightArea } from \"./LightArea\";\nimport { LightShadow } from \"./LightShadow\";\nexport class Light {\n constructor() {\n this.area = new LightArea();\n this.shadow = new LightShadow();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.area.load(data.area);\n this.shadow.load(data.shadow);\n }\n}\n","export class Push {\n constructor() {\n this.default = true;\n this.groups = [];\n this.quantity = 4;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n if (data.groups !== undefined) {\n this.groups = data.groups.map((t) => t);\n }\n if (!this.groups.length) {\n this.default = true;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\n","export class Remove {\n constructor() {\n this.quantity = 2;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\n","export class RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.factor = 100;\n this.speed = 1;\n this.maxSpeed = 50;\n this.easing = \"ease-out-quad\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\n","import { RepulseBase } from \"./RepulseBase\";\nexport class RepulseDiv extends RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n if (this.selectors instanceof Array) {\n return this.selectors.map((t) => t.replace(\"#\", \"\"));\n }\n else {\n return this.selectors.replace(\"#\", \"\");\n }\n }\n set ids(value) {\n if (value instanceof Array) {\n this.selectors = value.map(() => `#${value}`);\n }\n else {\n this.selectors = `#${value}`;\n }\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","import { RepulseBase } from \"./RepulseBase\";\nimport { RepulseDiv } from \"./RepulseDiv\";\nexport class Repulse extends RepulseBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new RepulseDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new RepulseDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\n","export class Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n get active() {\n return false;\n }\n set active(_value) {\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { deepExtend } from \"../../../../Utils/Utils\";\nexport class Trail {\n constructor() {\n this.delay = 1;\n this.pauseOnStop = false;\n this.quantity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.quantity !== undefined) {\n this.quantity = data.quantity;\n }\n if (data.particles !== undefined) {\n this.particles = deepExtend({}, data.particles);\n }\n if (data.pauseOnStop !== undefined) {\n this.pauseOnStop = data.pauseOnStop;\n }\n }\n}\n","import { Attract } from \"./Attract\";\nimport { Bounce } from \"./Bounce\";\nimport { Bubble } from \"./Bubble\";\nimport { Connect } from \"./Connect\";\nimport { Grab } from \"./Grab\";\nimport { Light } from \"./Light\";\nimport { Push } from \"./Push\";\nimport { Remove } from \"./Remove\";\nimport { Repulse } from \"./Repulse\";\nimport { Slow } from \"./Slow\";\nimport { Trail } from \"./Trail\";\nexport class Modes {\n constructor() {\n this.attract = new Attract();\n this.bounce = new Bounce();\n this.bubble = new Bubble();\n this.connect = new Connect();\n this.grab = new Grab();\n this.light = new Light();\n this.push = new Push();\n this.remove = new Remove();\n this.repulse = new Repulse();\n this.slow = new Slow();\n this.trail = new Trail();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.attract.load(data.attract);\n this.bubble.load(data.bubble);\n this.connect.load(data.connect);\n this.grab.load(data.grab);\n this.light.load(data.light);\n this.push.load(data.push);\n this.remove.load(data.remove);\n this.repulse.load(data.repulse);\n this.slow.load(data.slow);\n this.trail.load(data.trail);\n }\n}\n","import { Events } from \"./Events/Events\";\nimport { Modes } from \"./Modes/Modes\";\nexport class Interactivity {\n constructor() {\n this.detectsOn = \"window\";\n this.events = new Events();\n this.modes = new Modes();\n }\n get detect_on() {\n return this.detectsOn;\n }\n set detect_on(value) {\n this.detectsOn = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n const detectsOn = (_a = data.detectsOn) !== null && _a !== void 0 ? _a : data.detect_on;\n if (detectsOn !== undefined) {\n this.detectsOn = detectsOn;\n }\n this.events.load(data.events);\n this.modes.load(data.modes);\n if (((_c = (_b = data.modes) === null || _b === void 0 ? void 0 : _b.slow) === null || _c === void 0 ? void 0 : _c.active) === true) {\n if (this.events.onHover.mode instanceof Array) {\n if (this.events.onHover.mode.indexOf(\"slow\") < 0) {\n this.events.onHover.mode.push(\"slow\");\n }\n }\n else if (this.events.onHover.mode !== \"slow\") {\n this.events.onHover.mode = [this.events.onHover.mode, \"slow\"];\n }\n }\n }\n}\n","import { deepExtend } from \"../../Utils/Utils\";\nexport class ManualParticle {\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.position !== undefined) {\n this.position = {\n x: (_a = data.position.x) !== null && _a !== void 0 ? _a : 50,\n y: (_b = data.position.y) !== null && _b !== void 0 ? _b : 50,\n };\n }\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","export class MotionReduce {\n constructor() {\n this.factor = 4;\n this.value = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n","import { MotionReduce } from \"./MotionReduce\";\nexport class Motion {\n constructor() {\n this.disable = false;\n this.reduce = new MotionReduce();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.disable !== undefined) {\n this.disable = data.disable;\n }\n this.reduce.load(data.reduce);\n }\n}\n","import { deepExtend } from \"../../Utils/Utils\";\nexport class Responsive {\n constructor() {\n this.maxWidth = Infinity;\n this.options = {};\n this.mode = \"canvas\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.maxWidth !== undefined) {\n this.maxWidth = data.maxWidth;\n }\n if (data.mode !== undefined) {\n if (data.mode === \"screen\") {\n this.mode = \"screen\";\n }\n else {\n this.mode = \"canvas\";\n }\n }\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","export class ThemeDefault {\n constructor() {\n this.auto = false;\n this.mode = \"any\";\n this.value = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.auto !== undefined) {\n this.auto = data.auto;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n","import { ThemeDefault } from \"./ThemeDefault\";\nimport { deepExtend } from \"../../../Utils/Utils\";\nexport class Theme {\n constructor() {\n this.name = \"\";\n this.default = new ThemeDefault();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n this.default.load(data.default);\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","import { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class ColorAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.offset = 0;\n this.speed = 1;\n this.decay = 0;\n this.sync = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ColorAnimation } from \"./ColorAnimation\";\nexport class HslAnimation {\n constructor() {\n this.h = new ColorAnimation();\n this.s = new ColorAnimation();\n this.l = new ColorAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.h.load(data.h);\n this.s.load(data.s);\n this.l.load(data.l);\n }\n}\n","import { HslAnimation } from \"./HslAnimation\";\nimport { OptionsColor } from \"./OptionsColor\";\nexport class AnimatableColor extends OptionsColor {\n constructor() {\n super();\n this.animation = new HslAnimation();\n }\n static create(source, data) {\n const color = new AnimatableColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n const colorAnimation = data.animation;\n if (colorAnimation !== undefined) {\n if (colorAnimation.enable !== undefined) {\n this.animation.h.load(colorAnimation);\n }\n else {\n this.animation.load(data.animation);\n }\n }\n }\n}\n","import { setRangeValue } from \"../../../Utils/NumberUtils\";\nexport class GradientColorOpacityAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.sync = false;\n this.startValue = \"random\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n }\n}\n","import { GradientColorOpacityAnimation } from \"./GradientColorOpacityAnimation\";\nimport { setRangeValue } from \"../../../Utils/NumberUtils\";\nexport class GradientColorOpacity {\n constructor() {\n this.value = 0;\n this.animation = new GradientColorOpacityAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\n","import { AnimatableColor } from \"../AnimatableColor\";\nimport { GradientColorOpacity } from \"./GradientColorOpacity\";\nexport class AnimatableGradientColor {\n constructor() {\n this.stop = 0;\n this.value = new AnimatableColor();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.stop !== undefined) {\n this.stop = data.stop;\n }\n this.value = AnimatableColor.create(this.value, data.value);\n if (data.opacity !== undefined) {\n this.opacity = new GradientColorOpacity();\n if (typeof data.opacity === \"number\") {\n this.opacity.value = data.opacity;\n }\n else {\n this.opacity.load(data.opacity);\n }\n }\n }\n}\n","import { setRangeValue } from \"../../../Utils/NumberUtils\";\nexport class GradientAngleAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { GradientAngleAnimation } from \"./GradientAngleAnimation\";\nexport class GradientAngle {\n constructor() {\n this.value = 0;\n this.animation = new GradientAngleAnimation();\n this.direction = \"clockwise\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = data.value;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n }\n}\n","import { AnimatableGradientColor } from \"./AnimatableGradientColor\";\nimport { GradientAngle } from \"./GradientAngle\";\nexport class AnimatableGradient {\n constructor() {\n this.angle = new GradientAngle();\n this.colors = [];\n this.type = \"random\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.angle.load(data.angle);\n if (data.colors !== undefined) {\n this.colors = data.colors.map((s) => {\n const tmp = new AnimatableGradientColor();\n tmp.load(s);\n return tmp;\n });\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n","export class CollisionsOverlap {\n constructor() {\n this.enable = true;\n this.retries = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.retries !== undefined) {\n this.retries = data.retries;\n }\n }\n}\n","export class Random {\n constructor() {\n this.enable = false;\n this.minimumValue = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.minimumValue !== undefined) {\n this.minimumValue = data.minimumValue;\n }\n }\n}\n","import { Random } from \"./Random\";\nimport { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class ValueWithRandom {\n constructor() {\n this.random = new Random();\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (typeof data.random === \"boolean\") {\n this.random.enable = data.random;\n }\n else {\n this.random.load(data.random);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value, this.random.enable ? this.random.minimumValue : undefined);\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class ParticlesBounceFactor extends ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n}\n","import { ParticlesBounceFactor } from \"./ParticlesBounceFactor\";\nexport class ParticlesBounce {\n constructor() {\n this.horizontal = new ParticlesBounceFactor();\n this.vertical = new ParticlesBounceFactor();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.horizontal.load(data.horizontal);\n this.vertical.load(data.vertical);\n }\n}\n","import { CollisionsOverlap } from \"./CollisionsOverlap\";\nimport { ParticlesBounce } from \"../Bounce/ParticlesBounce\";\nexport class Collisions {\n constructor() {\n this.bounce = new ParticlesBounce();\n this.enable = false;\n this.mode = \"bounce\";\n this.overlap = new CollisionsOverlap();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.bounce.load(data.bounce);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.overlap.load(data.overlap);\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class SplitFactor extends ValueWithRandom {\n constructor() {\n super();\n this.value = 3;\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class SplitRate extends ValueWithRandom {\n constructor() {\n super();\n this.value = { min: 4, max: 9 };\n }\n}\n","import { SplitFactor } from \"./SplitFactor\";\nimport { SplitRate } from \"./SplitRate\";\nimport { deepExtend } from \"../../../../Utils/Utils\";\nexport class Split {\n constructor() {\n this.count = 1;\n this.factor = new SplitFactor();\n this.rate = new SplitRate();\n this.sizeOffset = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.factor.load(data.factor);\n this.rate.load(data.rate);\n if (data.particles !== undefined) {\n if (data.particles instanceof Array) {\n this.particles = data.particles.map((s) => {\n return deepExtend({}, s);\n });\n }\n else {\n this.particles = deepExtend({}, data.particles);\n }\n }\n if (data.sizeOffset !== undefined) {\n this.sizeOffset = data.sizeOffset;\n }\n }\n}\n","import { Split } from \"./Split\";\nexport class Destroy {\n constructor() {\n this.mode = \"none\";\n this.split = new Split();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.split.load(data.split);\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor();\n this.color.value = \"#000\";\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { LinksShadow } from \"./LinksShadow\";\nimport { LinksTriangle } from \"./LinksTriangle\";\nimport { OptionsColor } from \"../../OptionsColor\";\nexport class Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow();\n this.triangles = new LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveAngle {\n constructor() {\n this.offset = 0;\n this.value = 90;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveAttract {\n constructor() {\n this.distance = 200;\n this.enable = false;\n this.rotate = {\n x: 3000,\n y: 3000,\n };\n }\n get rotateX() {\n return this.rotate.x;\n }\n set rotateX(value) {\n this.rotate.x = value;\n }\n get rotateY() {\n return this.rotate.y;\n }\n set rotateY(value) {\n this.rotate.y = value;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;\n if (rotateX !== undefined) {\n this.rotate.x = rotateX;\n }\n const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;\n if (rotateY !== undefined) {\n this.rotate.y = rotateY;\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveGravity {\n constructor() {\n this.acceleration = 9.81;\n this.enable = false;\n this.inverse = false;\n this.maxSpeed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.inverse !== undefined) {\n this.inverse = data.inverse;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = setRangeValue(data.maxSpeed);\n }\n }\n}\n","import { ValueWithRandom } from \"../../../ValueWithRandom\";\nexport class MovePathDelay extends ValueWithRandom {\n constructor() {\n super();\n }\n}\n","import { MovePathDelay } from \"./MovePathDelay\";\nimport { deepExtend } from \"../../../../../Utils/Utils\";\nexport class MovePath {\n constructor() {\n this.clamp = true;\n this.delay = new MovePathDelay();\n this.enable = false;\n this.options = {};\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.clamp !== undefined) {\n this.clamp = data.clamp;\n }\n this.delay.load(data.delay);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.generator = data.generator;\n if (data.options) {\n this.options = deepExtend(this.options, data.options);\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class MoveTrail {\n constructor() {\n this.enable = false;\n this.length = 10;\n this.fillColor = new OptionsColor();\n this.fillColor.value = \"#000000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.fillColor = OptionsColor.create(this.fillColor, data.fillColor);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\n","export class OutModes {\n constructor() {\n this.default = \"out\";\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n this.bottom = (_a = data.bottom) !== null && _a !== void 0 ? _a : data.default;\n this.left = (_b = data.left) !== null && _b !== void 0 ? _b : data.default;\n this.right = (_c = data.right) !== null && _c !== void 0 ? _c : data.default;\n this.top = (_d = data.top) !== null && _d !== void 0 ? _d : data.default;\n }\n}\n","import { deepExtend } from \"../../../../Utils/Utils\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Spin {\n constructor() {\n this.acceleration = 0;\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.position = data.position ? deepExtend({}, data.position) : undefined;\n }\n}\n","import { MoveAngle } from \"./MoveAngle\";\nimport { MoveAttract } from \"./MoveAttract\";\nimport { MoveGravity } from \"./MoveGravity\";\nimport { MovePath } from \"./Path/MovePath\";\nimport { MoveTrail } from \"./MoveTrail\";\nimport { OutModes } from \"./OutModes\";\nimport { Spin } from \"./Spin\";\nimport { deepExtend } from \"../../../../Utils/Utils\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Move {\n constructor() {\n this.angle = new MoveAngle();\n this.attract = new MoveAttract();\n this.center = {\n x: 50,\n y: 50,\n radius: 0,\n };\n this.decay = 0;\n this.distance = {};\n this.direction = \"none\";\n this.drift = 0;\n this.enable = false;\n this.gravity = new MoveGravity();\n this.path = new MovePath();\n this.outModes = new OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new Spin();\n this.straight = false;\n this.trail = new MoveTrail();\n this.vibrate = false;\n this.warp = false;\n }\n get bounce() {\n return this.collisions;\n }\n set bounce(value) {\n this.collisions = value;\n }\n get collisions() {\n return false;\n }\n set collisions(value) {\n }\n get noise() {\n return this.path;\n }\n set noise(value) {\n this.path = value;\n }\n get outMode() {\n return this.outModes.default;\n }\n set outMode(value) {\n this.outModes.default = value;\n }\n get out_mode() {\n return this.outMode;\n }\n set out_mode(value) {\n this.outMode = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n if (data.angle !== undefined) {\n if (typeof data.angle === \"number\") {\n this.angle.value = data.angle;\n }\n else {\n this.angle.load(data.angle);\n }\n }\n this.attract.load(data.attract);\n this.center = deepExtend(this.center, data.center);\n if (data.decay !== undefined) {\n this.decay = data.decay;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance =\n typeof data.distance === \"number\"\n ? {\n horizontal: data.distance,\n vertical: data.distance,\n }\n : deepExtend({}, data.distance);\n }\n if (data.drift !== undefined) {\n this.drift = setRangeValue(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outMode = (_a = data.outMode) !== null && _a !== void 0 ? _a : data.out_mode;\n if (data.outModes !== undefined || outMode !== undefined) {\n if (typeof data.outModes === \"string\" || data.outModes === undefined && outMode !== undefined) {\n this.outModes.load({\n default: (_b = data.outModes) !== null && _b !== void 0 ? _b : outMode,\n });\n }\n else {\n this.outModes.load(data.outModes);\n }\n }\n this.path.load((_c = data.path) !== null && _c !== void 0 ? _c : data.noise);\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n this.spin.load(data.spin);\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n","import { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class AnimationOptions {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 1;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { AnimationOptions } from \"../../AnimationOptions\";\nexport class OpacityAnimation extends AnimationOptions {\n constructor() {\n super();\n this.destroy = \"none\";\n this.enable = false;\n this.speed = 2;\n this.startValue = \"random\";\n this.sync = false;\n }\n get opacity_min() {\n return this.minimumValue;\n }\n set opacity_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { OpacityAnimation } from \"./OpacityAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Opacity extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new OpacityAnimation();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\n","export class ParticlesDensity {\n constructor() {\n this.enable = false;\n this.area = 800;\n this.factor = 1000;\n }\n get value_area() {\n return this.area;\n }\n set value_area(value) {\n this.area = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const area = (_a = data.area) !== null && _a !== void 0 ? _a : data.value_area;\n if (area !== undefined) {\n this.area = area;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n }\n}\n","import { ParticlesDensity } from \"./ParticlesDensity\";\nexport class ParticlesNumber {\n constructor() {\n this.density = new ParticlesDensity();\n this.limit = 0;\n this.value = 100;\n }\n get max() {\n return this.limit;\n }\n set max(value) {\n this.limit = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n this.density.load(data.density);\n const limit = (_a = data.limit) !== null && _a !== void 0 ? _a : data.max;\n if (limit !== undefined) {\n this.limit = limit;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class ParticlesRepulse extends ValueWithRandom {\n constructor() {\n super();\n this.enabled = false;\n this.distance = 1;\n this.duration = 1;\n this.factor = 1;\n this.speed = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.enabled !== undefined) {\n this.enabled = data.enabled;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.duration !== undefined) {\n this.duration = setRangeValue(data.duration);\n }\n if (data.factor !== undefined) {\n this.factor = setRangeValue(data.factor);\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { RotateAnimation } from \"./RotateAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class Rotate extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation();\n this.direction = \"clockwise\";\n this.path = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.animation.load(data.animation);\n if (data.path !== undefined) {\n this.path = data.path;\n }\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class Shadow {\n constructor() {\n this.blur = 0;\n this.color = new OptionsColor();\n this.enable = false;\n this.offset = {\n x: 0,\n y: 0,\n };\n this.color.value = \"#000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset === undefined) {\n return;\n }\n if (data.offset.x !== undefined) {\n this.offset.x = data.offset.x;\n }\n if (data.offset.y !== undefined) {\n this.offset.y = data.offset.y;\n }\n }\n}\n","import { deepExtend } from \"../../../../Utils/Utils\";\nexport class Shape {\n constructor() {\n this.options = {};\n this.type = \"circle\";\n }\n get character() {\n var _a;\n return ((_a = this.options[\"character\"]) !== null && _a !== void 0 ? _a : this.options[\"char\"]);\n }\n set character(value) {\n this.options[\"character\"] = value;\n this.options[\"char\"] = value;\n }\n get custom() {\n return this.options;\n }\n set custom(value) {\n this.options = value;\n }\n get image() {\n var _a;\n return ((_a = this.options[\"image\"]) !== null && _a !== void 0 ? _a : this.options[\"images\"]);\n }\n set image(value) {\n this.options[\"image\"] = value;\n this.options[\"images\"] = value;\n }\n get images() {\n return this.image;\n }\n set images(value) {\n this.image = value;\n }\n get polygon() {\n var _a;\n return ((_a = this.options[\"polygon\"]) !== null && _a !== void 0 ? _a : this.options[\"star\"]);\n }\n set polygon(value) {\n this.options[\"polygon\"] = value;\n this.options[\"star\"] = value;\n }\n get stroke() {\n return [];\n }\n set stroke(_value) {\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n const options = (_a = data.options) !== null && _a !== void 0 ? _a : data.custom;\n if (options !== undefined) {\n for (const shape in options) {\n const item = options[shape];\n if (item) {\n this.options[shape] = deepExtend((_b = this.options[shape]) !== null && _b !== void 0 ? _b : {}, item);\n }\n }\n }\n this.loadShape(data.character, \"character\", \"char\", true);\n this.loadShape(data.polygon, \"polygon\", \"star\", false);\n this.loadShape((_c = data.image) !== null && _c !== void 0 ? _c : data.images, \"image\", \"images\", true);\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n loadShape(item, mainKey, altKey, altOverride) {\n var _a, _b, _c, _d;\n if (item === undefined) {\n return;\n }\n if (item instanceof Array) {\n if (!(this.options[mainKey] instanceof Array)) {\n this.options[mainKey] = [];\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = [];\n }\n }\n this.options[mainKey] = deepExtend((_a = this.options[mainKey]) !== null && _a !== void 0 ? _a : [], item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = deepExtend((_b = this.options[altKey]) !== null && _b !== void 0 ? _b : [], item);\n }\n }\n else {\n if (this.options[mainKey] instanceof Array) {\n this.options[mainKey] = {};\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = {};\n }\n }\n this.options[mainKey] = deepExtend((_c = this.options[mainKey]) !== null && _c !== void 0 ? _c : {}, item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = deepExtend((_d = this.options[altKey]) !== null && _d !== void 0 ? _d : {}, item);\n }\n }\n }\n}\n","import { AnimationOptions } from \"../../AnimationOptions\";\nexport class SizeAnimation extends AnimationOptions {\n constructor() {\n super();\n this.destroy = \"none\";\n this.enable = false;\n this.speed = 5;\n this.startValue = \"random\";\n this.sync = false;\n }\n get size_min() {\n return this.minimumValue;\n }\n set size_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n super.load(data);\n if (!data) {\n return;\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { SizeAnimation } from \"./SizeAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Size extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new SizeAnimation();\n this.random.minimumValue = 1;\n this.value = 3;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n super.load(data);\n if (!data) {\n return;\n }\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\n","import { AnimatableColor } from \"../AnimatableColor\";\nexport class Stroke {\n constructor() {\n this.width = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = AnimatableColor.create(this.color, data.color);\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class ZIndex extends ValueWithRandom {\n constructor() {\n super();\n this.opacityRate = 1;\n this.sizeRate = 1;\n this.velocityRate = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.opacityRate !== undefined) {\n this.opacityRate = data.opacityRate;\n }\n if (data.sizeRate !== undefined) {\n this.sizeRate = data.sizeRate;\n }\n if (data.velocityRate !== undefined) {\n this.velocityRate = data.velocityRate;\n }\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ParticlesOptions_container, _ParticlesOptions_engine;\nimport { AnimatableColor } from \"../AnimatableColor\";\nimport { AnimatableGradient } from \"../Gradients/AnimatableGradient\";\nimport { Collisions } from \"./Collisions/Collisions\";\nimport { Destroy } from \"./Destroy/Destroy\";\nimport { Links } from \"./Links/Links\";\nimport { Move } from \"./Move/Move\";\nimport { Opacity } from \"./Opacity/Opacity\";\nimport { ParticlesBounce } from \"./Bounce/ParticlesBounce\";\nimport { ParticlesNumber } from \"./Number/ParticlesNumber\";\nimport { ParticlesRepulse } from \"./Repulse/ParticlesRepulse\";\nimport { Rotate } from \"./Rotate/Rotate\";\nimport { Shadow } from \"./Shadow\";\nimport { Shape } from \"./Shape/Shape\";\nimport { Size } from \"./Size/Size\";\nimport { Stroke } from \"./Stroke\";\nimport { ZIndex } from \"./ZIndex/ZIndex\";\nimport { deepExtend } from \"../../../Utils/Utils\";\nexport class ParticlesOptions {\n constructor(engine, container) {\n _ParticlesOptions_container.set(this, void 0);\n _ParticlesOptions_engine.set(this, void 0);\n __classPrivateFieldSet(this, _ParticlesOptions_engine, engine, \"f\");\n __classPrivateFieldSet(this, _ParticlesOptions_container, container, \"f\");\n this.bounce = new ParticlesBounce();\n this.collisions = new Collisions();\n this.color = new AnimatableColor();\n this.color.value = \"#fff\";\n this.destroy = new Destroy();\n this.gradient = [];\n this.groups = {};\n this.links = new Links();\n this.move = new Move();\n this.number = new ParticlesNumber();\n this.opacity = new Opacity();\n this.reduceDuplicates = false;\n this.repulse = new ParticlesRepulse();\n this.rotate = new Rotate();\n this.shadow = new Shadow();\n this.shape = new Shape();\n this.size = new Size();\n this.stroke = new Stroke();\n this.zIndex = new ZIndex();\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (!data) {\n return;\n }\n this.bounce.load(data.bounce);\n this.color.load(AnimatableColor.create(this.color, data.color));\n this.destroy.load(data.destroy);\n const links = (_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked;\n if (links !== undefined) {\n this.links.load(links);\n }\n if (data.groups !== undefined) {\n for (const group in data.groups) {\n const item = data.groups[group];\n if (item !== undefined) {\n this.groups[group] = deepExtend((_c = this.groups[group]) !== null && _c !== void 0 ? _c : {}, item);\n }\n }\n }\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.repulse.load(data.repulse);\n this.rotate.load(data.rotate);\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.shadow.load(data.shadow);\n this.zIndex.load(data.zIndex);\n const collisions = (_e = (_d = data.move) === null || _d === void 0 ? void 0 : _d.collisions) !== null && _e !== void 0 ? _e : (_f = data.move) === null || _f === void 0 ? void 0 : _f.bounce;\n if (collisions !== undefined) {\n this.collisions.enable = collisions;\n }\n this.collisions.load(data.collisions);\n if (data.interactivity !== undefined) {\n this.interactivity = deepExtend({}, data.interactivity);\n }\n const strokeToLoad = (_g = data.stroke) !== null && _g !== void 0 ? _g : (_h = data.shape) === null || _h === void 0 ? void 0 : _h.stroke;\n if (strokeToLoad) {\n if (strokeToLoad instanceof Array) {\n this.stroke = strokeToLoad.map((s) => {\n const tmp = new Stroke();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.stroke instanceof Array) {\n this.stroke = new Stroke();\n }\n this.stroke.load(strokeToLoad);\n }\n }\n const gradientToLoad = data.gradient;\n if (gradientToLoad) {\n if (gradientToLoad instanceof Array) {\n this.gradient = gradientToLoad.map((s) => {\n const tmp = new AnimatableGradient();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.gradient instanceof Array) {\n this.gradient = new AnimatableGradient();\n }\n this.gradient.load(gradientToLoad);\n }\n }\n if (__classPrivateFieldGet(this, _ParticlesOptions_container, \"f\")) {\n const updaters = __classPrivateFieldGet(this, _ParticlesOptions_engine, \"f\").plugins.updaters.get(__classPrivateFieldGet(this, _ParticlesOptions_container, \"f\"));\n if (updaters) {\n for (const updater of updaters) {\n if (updater.loadOptions) {\n updater.loadOptions(this, data);\n }\n }\n }\n }\n }\n}\n_ParticlesOptions_container = new WeakMap(), _ParticlesOptions_engine = new WeakMap();\n","import { ParticlesOptions } from \"../Options/Classes/Particles/ParticlesOptions\";\nexport function loadOptions(options, ...sourceOptionsArr) {\n for (const sourceOptions of sourceOptionsArr) {\n options.load(sourceOptions);\n }\n}\nexport function loadParticlesOptions(engine, container, ...sourceOptionsArr) {\n const options = new ParticlesOptions(engine, container);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Options_instances, _Options_container, _Options_engine, _Options_findDefaultTheme;\nimport { Background } from \"./Background/Background\";\nimport { BackgroundMask } from \"./BackgroundMask/BackgroundMask\";\nimport { FullScreen } from \"./FullScreen/FullScreen\";\nimport { Interactivity } from \"./Interactivity/Interactivity\";\nimport { ManualParticle } from \"./ManualParticle\";\nimport { Motion } from \"./Motion/Motion\";\nimport { Responsive } from \"./Responsive\";\nimport { Theme } from \"./Theme/Theme\";\nimport { deepExtend } from \"../../Utils/Utils\";\nimport { loadParticlesOptions } from \"../../Utils/OptionsUtils\";\nexport class Options {\n constructor(engine, container) {\n _Options_instances.add(this);\n _Options_container.set(this, void 0);\n _Options_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Options_engine, engine, \"f\");\n __classPrivateFieldSet(this, _Options_container, container, \"f\");\n this.autoPlay = true;\n this.background = new Background();\n this.backgroundMask = new BackgroundMask();\n this.fullScreen = new FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.interactivity = new Interactivity();\n this.manualParticles = [];\n this.motion = new Motion();\n this.particles = loadParticlesOptions(__classPrivateFieldGet(this, _Options_engine, \"f\"), __classPrivateFieldGet(this, _Options_container, \"f\"));\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.style = {};\n this.themes = [];\n this.zLayers = 100;\n }\n get backgroundMode() {\n return this.fullScreen;\n }\n set backgroundMode(value) {\n this.fullScreen.load(value);\n }\n get fps_limit() {\n return this.fpsLimit;\n }\n set fps_limit(value) {\n this.fpsLimit = value;\n }\n get retina_detect() {\n return this.detectRetina;\n }\n set retina_detect(value) {\n this.detectRetina = value;\n }\n load(data) {\n var _a, _b, _c, _d, _e;\n if (!data) {\n return;\n }\n if (data.preset !== undefined) {\n if (data.preset instanceof Array) {\n for (const preset of data.preset) {\n this.importPreset(preset);\n }\n }\n else {\n this.importPreset(data.preset);\n }\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n const detectRetina = (_a = data.detectRetina) !== null && _a !== void 0 ? _a : data.retina_detect;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n const fpsLimit = (_b = data.fpsLimit) !== null && _b !== void 0 ? _b : data.fps_limit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n if (data.zLayers !== undefined) {\n this.zLayers = data.zLayers;\n }\n this.background.load(data.background);\n const fullScreen = (_c = data.fullScreen) !== null && _c !== void 0 ? _c : data.backgroundMode;\n if (typeof fullScreen === \"boolean\") {\n this.fullScreen.enable = fullScreen;\n }\n else {\n this.fullScreen.load(fullScreen);\n }\n this.backgroundMask.load(data.backgroundMask);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles !== undefined) {\n this.manualParticles = data.manualParticles.map((t) => {\n const tmp = new ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.motion.load(data.motion);\n this.particles.load(data.particles);\n this.style = deepExtend(this.style, data.style);\n __classPrivateFieldGet(this, _Options_engine, \"f\").plugins.loadOptions(this, data);\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new Responsive();\n optResponsive.load(responsive);\n this.responsive.push(optResponsive);\n }\n }\n this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const optTheme = new Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n }\n }\n this.defaultDarkTheme = (_d = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, \"dark\")) === null || _d === void 0 ? void 0 : _d.name;\n this.defaultLightTheme = (_e = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, \"light\")) === null || _e === void 0 ? void 0 : _e.name;\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find((t) => t.mode === \"screen\" && screen\n ? t.maxWidth * pxRatio > screen.availWidth\n : t.maxWidth * pxRatio > width);\n this.load(responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.options);\n return responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.maxWidth;\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find((theme) => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n }\n else {\n const mediaMatch = typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\"), clientDarkMode = mediaMatch && mediaMatch.matches, defaultTheme = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, clientDarkMode ? \"dark\" : \"light\");\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n importPreset(preset) {\n this.load(__classPrivateFieldGet(this, _Options_engine, \"f\").plugins.getPreset(preset));\n }\n}\n_Options_container = new WeakMap(), _Options_engine = new WeakMap(), _Options_instances = new WeakSet(), _Options_findDefaultTheme = function _Options_findDefaultTheme(mode) {\n var _a;\n return ((_a = this.themes.find((theme) => theme.default.value && theme.default.mode === mode)) !== null && _a !== void 0 ? _a : this.themes.find((theme) => theme.default.value && theme.default.mode === \"any\"));\n};\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _InteractionManager_engine;\nexport class InteractionManager {\n constructor(engine, container) {\n this.container = container;\n _InteractionManager_engine.set(this, void 0);\n __classPrivateFieldSet(this, _InteractionManager_engine, engine, \"f\");\n this.externalInteractors = [];\n this.particleInteractors = [];\n }\n async externalInteract(delta) {\n for (const interactor of this.externalInteractors) {\n if (interactor.isEnabled()) {\n await interactor.interact(delta);\n }\n }\n }\n handleClickMode(mode) {\n for (const interactor of this.externalInteractors) {\n if (interactor.handleClickMode) {\n interactor.handleClickMode(mode);\n }\n }\n }\n init() {\n const interactors = __classPrivateFieldGet(this, _InteractionManager_engine, \"f\").plugins.getInteractors(this.container, true);\n this.externalInteractors = [];\n this.particleInteractors = [];\n for (const interactor of interactors) {\n switch (interactor.type) {\n case 0:\n this.externalInteractors.push(interactor);\n break;\n case 1:\n this.particleInteractors.push(interactor);\n break;\n }\n interactor.init();\n }\n }\n async particlesInteract(particle, delta) {\n for (const interactor of this.externalInteractors) {\n interactor.clear(particle);\n }\n for (const interactor of this.particleInteractors) {\n if (interactor.isEnabled(particle)) {\n await interactor.interact(particle, delta);\n }\n }\n }\n async reset(particle) {\n for (const interactor of this.externalInteractors) {\n if (interactor.isEnabled()) {\n await interactor.reset(particle);\n }\n }\n for (const interactor of this.particleInteractors) {\n if (interactor.isEnabled(particle)) {\n await interactor.reset(particle);\n }\n }\n }\n}\n_InteractionManager_engine = new WeakMap();\n","import { Vector } from \"./Vector\";\nexport class Vector3d extends Vector {\n constructor(xOrCoords, y, z) {\n super(xOrCoords, y);\n if (typeof xOrCoords !== \"number\" && xOrCoords) {\n this.z = xOrCoords.z;\n }\n else if (z !== undefined) {\n this.z = z;\n }\n else {\n throw new Error(\"tsParticles - Vector not initialized correctly\");\n }\n }\n static get origin() {\n return Vector3d.create(0, 0, 0);\n }\n static clone(source) {\n return Vector3d.create(source.x, source.y, source.z);\n }\n static create(x, y, z) {\n return new Vector3d(x, y, z);\n }\n add(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z) : super.add(v);\n }\n addTo(v) {\n super.addTo(v);\n if (v instanceof Vector3d) {\n this.z += v.z;\n }\n }\n copy() {\n return Vector3d.clone(this);\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n super.divTo(n);\n this.z /= n;\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n super.multTo(n);\n this.z *= n;\n }\n setTo(v) {\n super.setTo(v);\n const v3d = v;\n if (v3d.z !== undefined) {\n this.z = v3d.z;\n }\n }\n sub(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z) : super.sub(v);\n }\n subFrom(v) {\n super.subFrom(v);\n if (v instanceof Vector3d) {\n this.z -= v.z;\n }\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Particle_engine;\nimport { calcExactPositionOrRandomFromSize, clamp, getDistance, getParticleBaseVelocity, getParticleDirectionAngle, getRangeMax, getRangeMin, getRangeValue, getValue, randomInRange, setRangeValue, } from \"../Utils/NumberUtils\";\nimport { deepExtend, isInArray, itemFromArray } from \"../Utils/Utils\";\nimport { getHslFromAnimation, rangeColorToRgb } from \"../Utils/ColorUtils\";\nimport { Interactivity } from \"../Options/Classes/Interactivity/Interactivity\";\nimport { Shape } from \"../Options/Classes/Particles/Shape/Shape\";\nimport { Vector } from \"./Utils/Vector\";\nimport { Vector3d } from \"./Utils/Vector3d\";\nimport { alterHsl } from \"../Utils/CanvasUtils\";\nimport { loadParticlesOptions } from \"../Utils/OptionsUtils\";\nconst fixOutMode = (data) => {\n if (!(isInArray(data.outMode, data.checkModes) || isInArray(data.outMode, data.checkModes))) {\n return;\n }\n if (data.coord > data.maxCoord - data.radius * 2) {\n data.setCb(-data.radius);\n }\n else if (data.coord < data.radius * 2) {\n data.setCb(data.radius);\n }\n};\nexport class Particle {\n constructor(engine, id, container, position, overrideOptions, group) {\n var _a, _b, _c, _d, _e, _f;\n this.id = id;\n this.container = container;\n this.group = group;\n _Particle_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Particle_engine, engine, \"f\");\n this.fill = true;\n this.close = true;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.splitCount = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {},\n };\n this.outType = \"normal\";\n this.ignoresResizeRatio = true;\n const pxRatio = container.retina.pixelRatio, mainOptions = container.actualOptions, particlesOptions = loadParticlesOptions(__classPrivateFieldGet(this, _Particle_engine, \"f\"), container, mainOptions.particles);\n const shapeType = particlesOptions.shape.type, reduceDuplicates = particlesOptions.reduceDuplicates;\n this.shape = shapeType instanceof Array ? itemFromArray(shapeType, this.id, reduceDuplicates) : shapeType;\n if (overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.shape) {\n if (overrideOptions.shape.type) {\n const overrideShapeType = overrideOptions.shape.type;\n this.shape =\n overrideShapeType instanceof Array\n ? itemFromArray(overrideShapeType, this.id, reduceDuplicates)\n : overrideShapeType;\n }\n const shapeOptions = new Shape();\n shapeOptions.load(overrideOptions.shape);\n if (this.shape) {\n this.shapeData = this.loadShapeData(shapeOptions, reduceDuplicates);\n }\n }\n else {\n this.shapeData = this.loadShapeData(particlesOptions.shape, reduceDuplicates);\n }\n particlesOptions.load(overrideOptions);\n particlesOptions.load((_a = this.shapeData) === null || _a === void 0 ? void 0 : _a.particles);\n this.interactivity = new Interactivity();\n this.interactivity.load(container.actualOptions.interactivity);\n this.interactivity.load(particlesOptions.interactivity);\n this.fill = (_c = (_b = this.shapeData) === null || _b === void 0 ? void 0 : _b.fill) !== null && _c !== void 0 ? _c : this.fill;\n this.close = (_e = (_d = this.shapeData) === null || _d === void 0 ? void 0 : _d.close) !== null && _e !== void 0 ? _e : this.close;\n this.options = particlesOptions;\n this.pathDelay = getValue(this.options.move.path.delay) * 1000;\n const zIndexValue = getRangeValue(this.options.zIndex.value);\n container.retina.initParticle(this);\n const sizeOptions = this.options.size, sizeRange = sizeOptions.value, sizeAnimation = sizeOptions.animation;\n this.size = {\n enable: sizeOptions.animation.enable,\n value: getRangeValue(sizeOptions.value) * container.retina.pixelRatio,\n max: getRangeMax(sizeRange) * pxRatio,\n min: getRangeMin(sizeRange) * pxRatio,\n loops: 0,\n maxLoops: getRangeValue(sizeOptions.animation.count),\n };\n if (sizeAnimation.enable) {\n this.size.status = 0;\n this.size.decay = 1 - getRangeValue(sizeAnimation.decay);\n switch (sizeAnimation.startValue) {\n case \"min\":\n this.size.value = this.size.min;\n this.size.status = 0;\n break;\n case \"random\":\n this.size.value = randomInRange(this.size) * pxRatio;\n this.size.status = Math.random() >= 0.5 ? 0 : 1;\n break;\n case \"max\":\n default:\n this.size.value = this.size.max;\n this.size.status = 1;\n break;\n }\n this.size.velocity =\n ((_f = this.retina.sizeAnimationSpeed) !== null && _f !== void 0 ? _f : container.retina.sizeAnimationSpeed) / 100 *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n this.size.velocity *= Math.random();\n }\n }\n this.bubble = {\n inRange: false,\n };\n this.position = this.calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers));\n this.initialPosition = this.position.copy();\n const canvasSize = container.canvas.size, moveCenterPerc = this.options.move.center;\n this.moveCenter = {\n x: canvasSize.width * moveCenterPerc.x / 100,\n y: canvasSize.height * moveCenterPerc.y / 100,\n radius: this.options.move.center.radius,\n };\n this.direction = getParticleDirectionAngle(this.options.move.direction, this.position, this.moveCenter);\n switch (this.options.move.direction) {\n case \"inside\":\n this.outType = \"inside\";\n break;\n case \"outside\":\n this.outType = \"outside\";\n break;\n }\n this.initialVelocity = this.calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n this.moveDecay = 1 - getRangeValue(this.options.move.decay);\n this.offset = Vector.origin;\n const particles = container.particles;\n particles.needsSort = particles.needsSort || particles.lastZIndex < this.position.z;\n particles.lastZIndex = this.position.z;\n this.zIndexFactor = this.position.z / container.zLayers;\n this.sides = 24;\n let drawer = container.drawers.get(this.shape);\n if (!drawer) {\n drawer = __classPrivateFieldGet(this, _Particle_engine, \"f\").plugins.getShapeDrawer(this.shape);\n if (drawer) {\n container.drawers.set(this.shape, drawer);\n }\n }\n if (drawer === null || drawer === void 0 ? void 0 : drawer.loadShape) {\n drawer === null || drawer === void 0 ? void 0 : drawer.loadShape(this);\n }\n const sideCountFunc = drawer === null || drawer === void 0 ? void 0 : drawer.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n this.spawning = false;\n this.shadowColor = rangeColorToRgb(this.options.shadow.color);\n for (const updater of container.particles.updaters) {\n if (updater.init) {\n updater.init(this);\n }\n }\n for (const mover of container.particles.movers) {\n if (mover.init) {\n mover.init(this);\n }\n }\n if (drawer && drawer.particleInit) {\n drawer.particleInit(container, this);\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.particleCreated) {\n plugin.particleCreated(this);\n }\n }\n }\n destroy(override) {\n if (this.unbreakable || this.destroyed) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (plugin.particleDestroyed) {\n plugin.particleDestroyed(this, override);\n }\n }\n if (override) {\n return;\n }\n const destroyOptions = this.options.destroy;\n if (destroyOptions.mode === \"split\") {\n this.split();\n }\n }\n draw(delta) {\n const container = this.container;\n for (const [, plugin] of container.plugins) {\n container.canvas.drawParticlePlugin(plugin, this, delta);\n }\n container.canvas.drawParticle(this, delta);\n }\n getFillColor() {\n var _a, _b;\n const color = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.color);\n if (color && this.roll && (this.backColor || this.roll.alter)) {\n const backFactor = this.roll.horizontal && this.roll.vertical ? 2 : 1, backSum = this.roll.horizontal ? Math.PI / 2 : 0, rolled = Math.floor((((_b = this.roll.angle) !== null && _b !== void 0 ? _b : 0) + backSum) / (Math.PI / backFactor)) % 2;\n if (rolled) {\n if (this.backColor) {\n return this.backColor;\n }\n if (this.roll.alter) {\n return alterHsl(color, this.roll.alter.type, this.roll.alter.value);\n }\n }\n }\n return color;\n }\n getMass() {\n return this.getRadius() ** 2 * Math.PI / 2;\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n z: this.position.z,\n };\n }\n getRadius() {\n var _a;\n return (_a = this.bubble.radius) !== null && _a !== void 0 ? _a : this.size.value;\n }\n getStrokeColor() {\n var _a, _b;\n return (_b = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.strokeColor)) !== null && _b !== void 0 ? _b : this.getFillColor();\n }\n isInsideCanvas() {\n const radius = this.getRadius(), canvasSize = this.container.canvas.size;\n return (this.position.x >= -radius &&\n this.position.y >= -radius &&\n this.position.y <= canvasSize.height + radius &&\n this.position.x <= canvasSize.width + radius);\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n reset() {\n if (this.opacity) {\n this.opacity.loops = 0;\n }\n this.size.loops = 0;\n }\n calcPosition(container, position, zIndex, tryCount = 0) {\n var _a, _b, _c, _d;\n for (const [, plugin] of container.plugins) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos !== undefined) {\n return Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size, exactPosition = calcExactPositionOrRandomFromSize({\n size: canvasSize,\n position: position,\n }), pos = Vector3d.create(exactPosition.x, exactPosition.y, zIndex), radius = this.getRadius(), outModes = this.options.move.outModes, fixHorizontal = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\", \"bounce-horizontal\"],\n coord: pos.x,\n maxCoord: container.canvas.size.width,\n setCb: (value) => pos.x += value,\n radius,\n });\n }, fixVertical = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\", \"bounce-vertical\"],\n coord: pos.y,\n maxCoord: container.canvas.size.height,\n setCb: (value) => pos.y += value,\n radius,\n });\n };\n fixHorizontal((_a = outModes.left) !== null && _a !== void 0 ? _a : outModes.default);\n fixHorizontal((_b = outModes.right) !== null && _b !== void 0 ? _b : outModes.default);\n fixVertical((_c = outModes.top) !== null && _c !== void 0 ? _c : outModes.default);\n fixVertical((_d = outModes.bottom) !== null && _d !== void 0 ? _d : outModes.default);\n if (this.checkOverlap(pos, tryCount)) {\n return this.calcPosition(container, undefined, zIndex, tryCount + 1);\n }\n return pos;\n }\n calculateVelocity() {\n const baseVelocity = getParticleBaseVelocity(this.direction);\n const res = baseVelocity.copy();\n const moveOptions = this.options.move;\n if (moveOptions.direction === \"inside\" || moveOptions.direction === \"outside\") {\n return res;\n }\n const rad = Math.PI / 180 * getRangeValue(moveOptions.angle.value);\n const radOffset = Math.PI / 180 * getRangeValue(moveOptions.angle.offset);\n const range = {\n left: radOffset - rad / 2,\n right: radOffset + rad / 2,\n };\n if (!moveOptions.straight) {\n res.angle += randomInRange(setRangeValue(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= Math.random();\n }\n return res;\n }\n checkOverlap(pos, tryCount = 0) {\n const collisionsOptions = this.options.collisions, radius = this.getRadius();\n if (!collisionsOptions.enable) {\n return false;\n }\n const overlapOptions = collisionsOptions.overlap;\n if (overlapOptions.enable) {\n return false;\n }\n const retries = overlapOptions.retries;\n if (retries >= 0 && tryCount > retries) {\n throw new Error(\"Particle is overlapping and can't be placed\");\n }\n let overlaps = false;\n for (const particle of this.container.particles.array) {\n if (getDistance(pos, particle.position) < radius + particle.getRadius()) {\n overlaps = true;\n break;\n }\n }\n return overlaps;\n }\n loadShapeData(shapeOptions, reduceDuplicates) {\n const shapeData = shapeOptions.options[this.shape];\n if (shapeData) {\n return deepExtend({}, shapeData instanceof Array ? itemFromArray(shapeData, this.id, reduceDuplicates) : shapeData);\n }\n }\n split() {\n const splitOptions = this.options.destroy.split;\n if (splitOptions.count >= 0 && this.splitCount++ > splitOptions.count) {\n return;\n }\n const rate = getValue(splitOptions.rate), particlesSplitOptions = splitOptions.particles instanceof Array\n ? itemFromArray(splitOptions.particles)\n : splitOptions.particles;\n for (let i = 0; i < rate; i++) {\n this.container.particles.addSplitParticle(this, particlesSplitOptions);\n }\n }\n}\n_Particle_engine = new WeakMap();\n","export class Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\n","export class Range {\n constructor(x, y) {\n this.position = {\n x: x,\n y: y,\n };\n }\n}\n","import { Range } from \"./Range\";\nimport { getDistance } from \"../../Utils/NumberUtils\";\nexport class Circle extends Range {\n constructor(x, y, radius) {\n super(x, y);\n this.radius = radius;\n }\n contains(point) {\n return getDistance(point, this.position) <= this.radius;\n }\n intersects(range) {\n const rect = range, circle = range, pos1 = this.position, pos2 = range.position, xDist = Math.abs(pos2.x - pos1.x), yDist = Math.abs(pos2.y - pos1.y), r = this.radius;\n if (circle.radius !== undefined) {\n const rSum = r + circle.radius, dist = Math.sqrt(xDist * xDist + yDist + yDist);\n return rSum > dist;\n }\n else if (rect.size !== undefined) {\n const w = rect.size.width, h = rect.size.height, edges = Math.pow(xDist - w, 2) + Math.pow(yDist - h, 2);\n if (xDist > r + w || yDist > r + h) {\n return false;\n }\n if (xDist <= w || yDist <= h) {\n return true;\n }\n return edges <= r * r;\n }\n return false;\n }\n}\n","import { Range } from \"./Range\";\nexport class Rectangle extends Range {\n constructor(x, y, width, height) {\n super(x, y);\n this.size = {\n height: height,\n width: width,\n };\n }\n contains(point) {\n const w = this.size.width, h = this.size.height, pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n const rect = range, circle = range, w = this.size.width, h = this.size.height, pos1 = this.position, pos2 = range.position;\n if (circle.radius !== undefined) {\n return circle.intersects(this);\n }\n if (!rect.size) {\n return false;\n }\n const size2 = rect.size, w2 = size2.width, h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n}\n","import { Circle } from \"./Circle\";\nimport { Rectangle } from \"./Rectangle\";\nexport class CircleWarp extends Circle {\n constructor(x, y, radius, canvasSize) {\n super(x, y, radius);\n this.canvasSize = canvasSize;\n this.canvasSize = Object.assign({}, canvasSize);\n }\n contains(point) {\n if (super.contains(point)) {\n return true;\n }\n const posNE = {\n x: point.x - this.canvasSize.width,\n y: point.y,\n };\n if (super.contains(posNE)) {\n return true;\n }\n const posSE = {\n x: point.x - this.canvasSize.width,\n y: point.y - this.canvasSize.height,\n };\n if (super.contains(posSE)) {\n return true;\n }\n const posSW = {\n x: point.x,\n y: point.y - this.canvasSize.height,\n };\n return super.contains(posSW);\n }\n intersects(range) {\n if (super.intersects(range)) {\n return true;\n }\n const rect = range, circle = range, newPos = {\n x: range.position.x - this.canvasSize.width,\n y: range.position.y - this.canvasSize.height,\n };\n if (circle.radius !== undefined) {\n const biggerCircle = new Circle(newPos.x, newPos.y, circle.radius * 2);\n return super.intersects(biggerCircle);\n }\n else if (rect.size !== undefined) {\n const rectSW = new Rectangle(newPos.x, newPos.y, rect.size.width * 2, rect.size.height * 2);\n return super.intersects(rectSW);\n }\n return false;\n }\n}\n","import { Circle } from \"./Circle\";\nimport { CircleWarp } from \"./CircleWarp\";\nimport { Rectangle } from \"./Rectangle\";\nimport { getDistance } from \"../../Utils/NumberUtils\";\nexport class QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this.points = [];\n this.divided = false;\n }\n insert(point) {\n var _a, _b, _c, _d, _e;\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this.points.length < this.capacity) {\n this.points.push(point);\n return true;\n }\n if (!this.divided) {\n this.subdivide();\n }\n return ((_e = (((_a = this.northEast) === null || _a === void 0 ? void 0 : _a.insert(point)) ||\n ((_b = this.northWest) === null || _b === void 0 ? void 0 : _b.insert(point)) ||\n ((_c = this.southEast) === null || _c === void 0 ? void 0 : _c.insert(point)) ||\n ((_d = this.southWest) === null || _d === void 0 ? void 0 : _d.insert(point)))) !== null && _e !== void 0 ? _e : false);\n }\n query(range, check, found) {\n var _a, _b, _c, _d;\n const res = found !== null && found !== void 0 ? found : [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n for (const p of this.points) {\n if (!range.contains(p.position) &&\n getDistance(range.position, p.position) > p.particle.getRadius() &&\n (!check || check(p.particle))) {\n continue;\n }\n res.push(p.particle);\n }\n if (this.divided) {\n (_a = this.northEast) === null || _a === void 0 ? void 0 : _a.query(range, check, res);\n (_b = this.northWest) === null || _b === void 0 ? void 0 : _b.query(range, check, res);\n (_c = this.southEast) === null || _c === void 0 ? void 0 : _c.query(range, check, res);\n (_d = this.southWest) === null || _d === void 0 ? void 0 : _d.query(range, check, res);\n }\n return res;\n }\n queryCircle(position, radius, check) {\n return this.query(new Circle(position.x, position.y, radius), check);\n }\n queryCircleWarp(position, radius, containerOrSize, check) {\n const container = containerOrSize, size = containerOrSize;\n return this.query(new CircleWarp(position.x, position.y, radius, container.canvas !== undefined ? container.canvas.size : size), check);\n }\n queryRectangle(position, size, check) {\n return this.query(new Rectangle(position.x, position.y, size.width, size.height), check);\n }\n subdivide() {\n const x = this.rectangle.position.x, y = this.rectangle.position.y, w = this.rectangle.size.width, h = this.rectangle.size.height, capacity = this.capacity;\n this.northEast = new QuadTree(new Rectangle(x, y, w / 2, h / 2), capacity);\n this.northWest = new QuadTree(new Rectangle(x + w / 2, y, w / 2, h / 2), capacity);\n this.southEast = new QuadTree(new Rectangle(x, y + h / 2, w / 2, h / 2), capacity);\n this.southWest = new QuadTree(new Rectangle(x + w / 2, y + h / 2, w / 2, h / 2), capacity);\n this.divided = true;\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Particles_engine;\nimport { calcPositionFromSize, getRangeMax, getRangeMin, getValue, randomInRange, setRangeValue, } from \"../Utils/NumberUtils\";\nimport { InteractionManager } from \"./Utils/InteractionManager\";\nimport { Particle } from \"./Particle\";\nimport { Point } from \"./Utils/Point\";\nimport { QuadTree } from \"./Utils/QuadTree\";\nimport { Rectangle } from \"./Utils/Rectangle\";\nimport { loadParticlesOptions } from \"../Utils/OptionsUtils\";\nexport class Particles {\n constructor(engine, container) {\n this.container = container;\n _Particles_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Particles_engine, engine, \"f\");\n this.nextId = 0;\n this.array = [];\n this.zArray = [];\n this.limit = 0;\n this.needsSort = false;\n this.lastZIndex = 0;\n this.freqs = {\n links: new Map(),\n triangles: new Map(),\n };\n this.interactionManager = new InteractionManager(__classPrivateFieldGet(this, _Particles_engine, \"f\"), container);\n const canvasSize = this.container.canvas.size;\n this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);\n this.movers = __classPrivateFieldGet(this, _Particles_engine, \"f\").plugins.getMovers(container, true);\n this.updaters = __classPrivateFieldGet(this, _Particles_engine, \"f\").plugins.getUpdaters(container, true);\n }\n get count() {\n return this.array.length;\n }\n addManualParticles() {\n const container = this.container, options = container.actualOptions;\n for (const particle of options.manualParticles) {\n this.addParticle(calcPositionFromSize({\n size: container.canvas.size,\n position: particle.position,\n }), particle.options);\n }\n }\n addParticle(position, overrideOptions, group) {\n const container = this.container, options = container.actualOptions, limit = options.particles.number.limit * container.density;\n if (limit > 0) {\n const countToRemove = this.count + 1 - limit;\n if (countToRemove > 0) {\n this.removeQuantity(countToRemove);\n }\n }\n return this.pushParticle(position, overrideOptions, group);\n }\n addSplitParticle(parent, splitParticlesOptions) {\n const splitOptions = parent.options.destroy.split, options = loadParticlesOptions(__classPrivateFieldGet(this, _Particles_engine, \"f\"), this.container, parent.options), factor = getValue(splitOptions.factor);\n options.color.load({\n value: {\n hsl: parent.getFillColor(),\n },\n });\n if (typeof options.size.value === \"number\") {\n options.size.value /= factor;\n }\n else {\n options.size.value.min /= factor;\n options.size.value.max /= factor;\n }\n options.load(splitParticlesOptions);\n const offset = splitOptions.sizeOffset ? setRangeValue(-parent.size.value, parent.size.value) : 0, position = {\n x: parent.position.x + randomInRange(offset),\n y: parent.position.y + randomInRange(offset),\n };\n return this.pushParticle(position, options, parent.group, (particle) => {\n if (particle.size.value < 0.5) {\n return false;\n }\n particle.velocity.length = randomInRange(setRangeValue(parent.velocity.length, particle.velocity.length));\n particle.splitCount = parent.splitCount + 1;\n particle.unbreakable = true;\n setTimeout(() => {\n particle.unbreakable = false;\n }, 500);\n return true;\n });\n }\n clear() {\n this.array = [];\n this.zArray = [];\n }\n destroy() {\n this.array = [];\n this.zArray = [];\n this.movers = [];\n this.updaters = [];\n }\n async draw(delta) {\n const container = this.container, canvasSize = this.container.canvas.size;\n this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);\n container.canvas.clear();\n await this.update(delta);\n if (this.needsSort) {\n this.zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);\n this.lastZIndex = this.zArray[this.zArray.length - 1].position.z;\n this.needsSort = false;\n }\n for (const [, plugin] of container.plugins) {\n container.canvas.drawPlugin(plugin, delta);\n }\n for (const p of this.zArray) {\n p.draw(delta);\n }\n }\n getLinkFrequency(p1, p2) {\n const range = setRangeValue(p1.id, p2.id), key = `${getRangeMin(range)}_${getRangeMax(range)}`;\n let res = this.freqs.links.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.links.set(key, res);\n }\n return res;\n }\n getTriangleFrequency(p1, p2, p3) {\n let [id1, id2, id3] = [p1.id, p2.id, p3.id];\n if (id1 > id2) {\n [id2, id1] = [id1, id2];\n }\n if (id2 > id3) {\n [id3, id2] = [id2, id3];\n }\n if (id1 > id3) {\n [id3, id1] = [id1, id3];\n }\n const key = `${id1}_${id2}_${id3}`;\n let res = this.freqs.triangles.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.triangles.set(key, res);\n }\n return res;\n }\n handleClickMode(mode) {\n this.interactionManager.handleClickMode(mode);\n }\n init() {\n var _a;\n const container = this.container, options = container.actualOptions;\n this.lastZIndex = 0;\n this.needsSort = false;\n this.freqs.links = new Map();\n this.freqs.triangles = new Map();\n let handled = false;\n this.updaters = __classPrivateFieldGet(this, _Particles_engine, \"f\").plugins.getUpdaters(container, true);\n this.interactionManager.init();\n for (const [, plugin] of container.plugins) {\n if (plugin.particlesInitialization !== undefined) {\n handled = plugin.particlesInitialization();\n }\n if (handled) {\n break;\n }\n }\n this.addManualParticles();\n if (!handled) {\n for (const group in options.particles.groups) {\n const groupOptions = options.particles.groups[group];\n for (let i = this.count, j = 0; j < ((_a = groupOptions.number) === null || _a === void 0 ? void 0 : _a.value) && i < options.particles.number.value; i++, j++) {\n this.addParticle(undefined, groupOptions, group);\n }\n }\n for (let i = this.count; i < options.particles.number.value; i++) {\n this.addParticle();\n }\n }\n this.interactionManager.init();\n container.pathGenerator.init(container);\n }\n push(nb, mouse, overrideOptions, group) {\n this.pushing = true;\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse === null || mouse === void 0 ? void 0 : mouse.position, overrideOptions, group);\n }\n this.pushing = false;\n }\n async redraw() {\n this.clear();\n this.init();\n await this.draw({ value: 0, factor: 0 });\n }\n remove(particle, group, override) {\n this.removeAt(this.array.indexOf(particle), undefined, group, override);\n }\n removeAt(index, quantity = 1, group, override) {\n if (!(index >= 0 && index <= this.count)) {\n return;\n }\n let deleted = 0;\n for (let i = index; deleted < quantity && i < this.count; i++) {\n const particle = this.array[i];\n if (!particle || particle.group !== group) {\n continue;\n }\n particle.destroy(override);\n this.array.splice(i--, 1);\n const zIdx = this.zArray.indexOf(particle);\n this.zArray.splice(zIdx, 1);\n deleted++;\n __classPrivateFieldGet(this, _Particles_engine, \"f\").dispatchEvent(\"particleRemoved\", {\n container: this.container,\n data: {\n particle,\n },\n });\n }\n }\n removeQuantity(quantity, group) {\n this.removeAt(0, quantity, group);\n }\n setDensity() {\n const options = this.container.actualOptions;\n for (const group in options.particles.groups) {\n this.applyDensity(options.particles.groups[group], 0, group);\n }\n this.applyDensity(options.particles, options.manualParticles.length);\n }\n async update(delta) {\n const container = this.container, particlesToDelete = [];\n container.pathGenerator.update();\n for (const [, plugin] of container.plugins) {\n if (plugin.update) {\n plugin.update(delta);\n }\n }\n for (const particle of this.array) {\n const resizeFactor = container.canvas.resizeFactor;\n if (resizeFactor && !particle.ignoresResizeRatio) {\n particle.position.x *= resizeFactor.width;\n particle.position.y *= resizeFactor.height;\n }\n particle.ignoresResizeRatio = false;\n await this.interactionManager.reset(particle);\n for (const [, plugin] of this.container.plugins) {\n if (particle.destroyed) {\n break;\n }\n if (plugin.particleUpdate) {\n plugin.particleUpdate(particle, delta);\n }\n }\n for (const mover of this.movers) {\n if (mover.isEnabled(particle)) {\n mover.move(particle, delta);\n }\n }\n if (particle.destroyed) {\n particlesToDelete.push(particle);\n continue;\n }\n this.quadTree.insert(new Point(particle.getPosition(), particle));\n }\n for (const particle of particlesToDelete) {\n this.remove(particle);\n }\n await this.interactionManager.externalInteract(delta);\n for (const particle of container.particles.array) {\n for (const updater of this.updaters) {\n updater.update(particle, delta);\n }\n if (!particle.destroyed && !particle.spawning) {\n await this.interactionManager.particlesInteract(particle, delta);\n }\n }\n delete container.canvas.resizeFactor;\n }\n applyDensity(options, manualCount, group) {\n var _a;\n if (!((_a = options.number.density) === null || _a === void 0 ? void 0 : _a.enable)) {\n return;\n }\n const numberOptions = options.number, densityFactor = this.initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, optParticlesLimit = numberOptions.limit > 0 ? numberOptions.limit : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, particlesCount = Math.min(this.count, this.array.filter((t) => t.group === group).length);\n this.limit = numberOptions.limit * densityFactor;\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);\n }\n else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber, group);\n }\n }\n initDensityFactor(densityOptions) {\n const container = this.container;\n if (!container.canvas.element || !densityOptions.enable) {\n return 1;\n }\n const canvas = container.canvas.element, pxRatio = container.retina.pixelRatio;\n return canvas.width * canvas.height / (densityOptions.factor * pxRatio ** 2 * densityOptions.area);\n }\n pushParticle(position, overrideOptions, group, initializer) {\n try {\n const particle = new Particle(__classPrivateFieldGet(this, _Particles_engine, \"f\"), this.nextId, this.container, position, overrideOptions, group);\n let canAdd = true;\n if (initializer) {\n canAdd = initializer(particle);\n }\n if (!canAdd) {\n return;\n }\n this.array.push(particle);\n this.zArray.push(particle);\n this.nextId++;\n __classPrivateFieldGet(this, _Particles_engine, \"f\").dispatchEvent(\"particleAdded\", {\n container: this.container,\n data: {\n particle,\n },\n });\n return particle;\n }\n catch (e) {\n console.warn(`error adding particle: ${e}`);\n return;\n }\n }\n}\n_Particles_engine = new WeakMap();\n","import { getRangeValue } from \"../Utils/NumberUtils\";\nimport { isSsr } from \"../Utils/Utils\";\nexport class Retina {\n constructor(container) {\n this.container = container;\n }\n init() {\n const container = this.container, options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || isSsr() ? 1 : window.devicePixelRatio;\n const motionOptions = this.container.actualOptions.motion;\n if (motionOptions && (motionOptions.disable || motionOptions.reduce.value)) {\n if (isSsr() || typeof matchMedia === \"undefined\" || !matchMedia) {\n this.reduceFactor = 1;\n }\n else {\n const mediaQuery = matchMedia(\"(prefers-reduced-motion: reduce)\");\n if (mediaQuery) {\n this.handleMotionChange(mediaQuery);\n const handleChange = () => {\n this.handleMotionChange(mediaQuery);\n container.refresh().catch(() => {\n });\n };\n if (mediaQuery.addEventListener !== undefined) {\n mediaQuery.addEventListener(\"change\", handleChange);\n }\n else if (mediaQuery.addListener !== undefined) {\n mediaQuery.addListener(handleChange);\n }\n }\n }\n }\n else {\n this.reduceFactor = 1;\n }\n const ratio = this.pixelRatio;\n if (container.canvas.element) {\n const element = container.canvas.element;\n container.canvas.size.width = element.offsetWidth * ratio;\n container.canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles;\n this.attractDistance = getRangeValue(particles.move.attract.distance) * ratio;\n this.linksDistance = particles.links.distance * ratio;\n this.linksWidth = particles.links.width * ratio;\n this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;\n this.maxSpeed = getRangeValue(particles.move.gravity.maxSpeed) * ratio;\n const modes = options.interactivity.modes;\n this.connectModeDistance = modes.connect.distance * ratio;\n this.connectModeRadius = modes.connect.radius * ratio;\n this.grabModeDistance = modes.grab.distance * ratio;\n this.repulseModeDistance = modes.repulse.distance * ratio;\n this.bounceModeDistance = modes.bounce.distance * ratio;\n this.attractModeDistance = modes.attract.distance * ratio;\n this.slowModeRadius = modes.slow.radius * ratio;\n this.bubbleModeDistance = modes.bubble.distance * ratio;\n if (modes.bubble.size) {\n this.bubbleModeSize = modes.bubble.size * ratio;\n }\n }\n initParticle(particle) {\n const options = particle.options, ratio = this.pixelRatio, moveDistance = options.move.distance, props = particle.retina;\n props.attractDistance = getRangeValue(options.move.attract.distance) * ratio;\n props.linksDistance = options.links.distance * ratio;\n props.linksWidth = options.links.width * ratio;\n props.moveDrift = getRangeValue(options.move.drift) * ratio;\n props.moveSpeed = getRangeValue(options.move.speed) * ratio;\n props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;\n const maxDistance = props.maxDistance;\n maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;\n maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;\n props.maxSpeed = getRangeValue(options.move.gravity.maxSpeed) * ratio;\n }\n handleMotionChange(mediaQuery) {\n const options = this.container.actualOptions;\n if (mediaQuery.matches) {\n const motion = options.motion;\n this.reduceFactor = motion.disable ? 0 : motion.reduce.value ? 1 / motion.reduce.factor : 1;\n }\n else {\n this.reduceFactor = 1;\n }\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Container_engine;\nimport { animate, cancelAnimation } from \"../Utils/Utils\";\nimport { Canvas } from \"./Canvas\";\nimport { EventListeners } from \"./Utils/EventListeners\";\nimport { FrameManager } from \"./Utils/FrameManager\";\nimport { Options } from \"../Options/Classes/Options\";\nimport { Particles } from \"./Particles\";\nimport { Retina } from \"./Retina\";\nimport { getRangeValue } from \"../Utils/NumberUtils\";\nimport { loadOptions } from \"../Utils/OptionsUtils\";\nfunction loadContainerOptions(engine, container, ...sourceOptionsArr) {\n const options = new Options(engine, container);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\nexport class Container {\n constructor(engine, id, sourceOptions) {\n this.id = id;\n _Container_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Container_engine, engine, \"f\");\n this.fpsLimit = 120;\n this.duration = 0;\n this.lifeTime = 0;\n this.firstStart = true;\n this.started = false;\n this.destroyed = false;\n this.paused = true;\n this.lastFrameTime = 0;\n this.zLayers = 100;\n this.pageHidden = false;\n this._sourceOptions = sourceOptions;\n this._initialSourceOptions = sourceOptions;\n this.retina = new Retina(this);\n this.canvas = new Canvas(this);\n this.particles = new Particles(__classPrivateFieldGet(this, _Container_engine, \"f\"), this);\n this.drawer = new FrameManager(this);\n this.pathGenerator = {\n generate: (p) => {\n const v = p.velocity.copy();\n v.angle += v.length * Math.PI / 180;\n return v;\n },\n init: () => {\n },\n update: () => {\n },\n };\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false,\n },\n };\n this.plugins = new Map();\n this.drawers = new Map();\n this.density = 1;\n this._options = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"), this);\n this.actualOptions = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"), this);\n this.eventListeners = new EventListeners(this);\n if (typeof IntersectionObserver !== \"undefined\" && IntersectionObserver) {\n this.intersectionObserver = new IntersectionObserver((entries) => this.intersectionManager(entries));\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerBuilt\", { container: this });\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n addClickHandler(callback) {\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (this.destroyed) {\n return;\n }\n const pxRatio = this.retina.pixelRatio, posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n }, particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n };\n const clickHandler = (e) => {\n if (this.destroyed) {\n return;\n }\n const mouseEvent = e, pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY,\n };\n clickOrTouchHandler(e, pos, 1);\n };\n const touchStartHandler = () => {\n if (this.destroyed) {\n return;\n }\n touched = true;\n touchMoved = false;\n };\n const touchMoveHandler = () => {\n if (this.destroyed) {\n return;\n }\n touchMoved = true;\n };\n const touchEndHandler = (e) => {\n var _a, _b, _c;\n if (this.destroyed) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n let lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n if (!lastTouch) {\n lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - 1];\n if (!lastTouch) {\n return;\n }\n }\n const canvasRect = (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect(), pos = {\n x: lastTouch.clientX - ((_b = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _b !== void 0 ? _b : 0),\n y: lastTouch.clientY - ((_c = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _c !== void 0 ? _c : 0),\n };\n clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY));\n }\n touched = false;\n touchMoved = false;\n };\n const touchCancelHandler = () => {\n if (this.destroyed) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false;\n let touchMoved = false;\n el.addEventListener(\"click\", clickHandler);\n el.addEventListener(\"touchstart\", touchStartHandler);\n el.addEventListener(\"touchmove\", touchMoveHandler);\n el.addEventListener(\"touchend\", touchEndHandler);\n el.addEventListener(\"touchcancel\", touchCancelHandler);\n }\n destroy() {\n this.stop();\n this.particles.destroy();\n this.canvas.destroy();\n for (const [, drawer] of this.drawers) {\n if (drawer.destroy) {\n drawer.destroy(this);\n }\n }\n for (const key of this.drawers.keys()) {\n this.drawers.delete(key);\n }\n this.destroyed = true;\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerDestroyed\", { container: this });\n }\n draw(force) {\n let refreshTime = force;\n this.drawAnimationFrame = animate()(async (timestamp) => {\n if (refreshTime) {\n this.lastFrameTime = undefined;\n refreshTime = false;\n }\n await this.drawer.nextFrame(timestamp);\n });\n }\n exportConfiguration() {\n return JSON.stringify(this.actualOptions, undefined, 2);\n }\n exportImage(callback, type, quality) {\n var _a;\n return (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.toBlob(callback, type !== null && type !== void 0 ? type : \"image/png\", quality);\n }\n exportImg(callback) {\n this.exportImage(callback);\n }\n getAnimationStatus() {\n return !this.paused && !this.pageHidden;\n }\n handleClickMode(mode) {\n this.particles.handleClickMode(mode);\n for (const [, plugin] of this.plugins) {\n if (plugin.handleClickMode) {\n plugin.handleClickMode(mode);\n }\n }\n }\n async init() {\n const shapes = __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getSupportedShapes();\n for (const type of shapes) {\n const drawer = __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getShapeDrawer(type);\n if (drawer) {\n this.drawers.set(type, drawer);\n }\n }\n this._options = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"), this, this._initialSourceOptions, this.sourceOptions);\n this.actualOptions = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"), this, this._options);\n this.retina.init();\n this.canvas.init();\n this.updateActualOptions();\n this.canvas.initBackground();\n this.canvas.resize();\n this.zLayers = this.actualOptions.zLayers;\n this.duration = getRangeValue(this.actualOptions.duration);\n this.lifeTime = 0;\n this.fpsLimit = this.actualOptions.fpsLimit > 0 ? this.actualOptions.fpsLimit : 120;\n const availablePlugins = __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n for (const [, drawer] of this.drawers) {\n if (drawer.init) {\n await drawer.init(this);\n }\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.init) {\n plugin.init(this.actualOptions);\n }\n else if (plugin.initAsync !== undefined) {\n await plugin.initAsync(this.actualOptions);\n }\n }\n const pathOptions = this.actualOptions.particles.move.path;\n if (pathOptions.generator) {\n this.setPath(__classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getPathGenerator(pathOptions.generator));\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerInit\", { container: this });\n this.particles.init();\n this.particles.setDensity();\n for (const [, plugin] of this.plugins) {\n if (plugin.particlesSetup !== undefined) {\n plugin.particlesSetup();\n }\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"particlesSetup\", { container: this });\n }\n async loadTheme(name) {\n this.currentTheme = name;\n await this.refresh();\n }\n pause() {\n if (this.drawAnimationFrame !== undefined) {\n cancelAnimation()(this.drawAnimationFrame);\n delete this.drawAnimationFrame;\n }\n if (this.paused) {\n return;\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.pause) {\n plugin.pause();\n }\n }\n if (!this.pageHidden) {\n this.paused = true;\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerPaused\", { container: this });\n }\n play(force) {\n const needsUpdate = this.paused || force;\n if (this.firstStart && !this.actualOptions.autoPlay) {\n this.firstStart = false;\n return;\n }\n if (this.paused) {\n this.paused = false;\n }\n if (needsUpdate) {\n for (const [, plugin] of this.plugins) {\n if (plugin.play) {\n plugin.play();\n }\n }\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerPlay\", { container: this });\n this.draw(needsUpdate || false);\n }\n refresh() {\n this.stop();\n return this.start();\n }\n reset() {\n this._options = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"), this);\n return this.refresh();\n }\n setNoise(noiseOrGenerator, init, update) {\n this.setPath(noiseOrGenerator, init, update);\n }\n setPath(pathOrGenerator, init, update) {\n var _a, _b, _c;\n if (!pathOrGenerator) {\n return;\n }\n if (typeof pathOrGenerator === \"function\") {\n this.pathGenerator.generate = pathOrGenerator;\n if (init) {\n this.pathGenerator.init = init;\n }\n if (update) {\n this.pathGenerator.update = update;\n }\n }\n else {\n const oldGenerator = this.pathGenerator;\n this.pathGenerator = pathOrGenerator;\n (_a = this.pathGenerator).generate || (_a.generate = oldGenerator.generate);\n (_b = this.pathGenerator).init || (_b.init = oldGenerator.init);\n (_c = this.pathGenerator).update || (_c.update = oldGenerator.update);\n }\n }\n async start() {\n if (this.started) {\n return;\n }\n await this.init();\n this.started = true;\n this.eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.startAsync !== undefined) {\n await plugin.startAsync();\n }\n else if (plugin.start !== undefined) {\n plugin.start();\n }\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerStarted\", { container: this });\n this.play();\n }\n stop() {\n if (!this.started) {\n return;\n }\n this.firstStart = true;\n this.started = false;\n this.eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.clear();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.unobserve(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.stop) {\n plugin.stop();\n }\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.destroy(this);\n delete this.particles.grabLineColor;\n this._sourceOptions = this._options;\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerStopped\", { container: this });\n }\n updateActualOptions() {\n this.actualOptions.responsive = [];\n const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options);\n this.actualOptions.setTheme(this.currentTheme);\n if (this.responsiveMaxWidth != newMaxWidth) {\n this.responsiveMaxWidth = newMaxWidth;\n return true;\n }\n return false;\n }\n intersectionManager(entries) {\n if (!this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n if (entry.isIntersecting) {\n this.play();\n }\n else {\n this.pause();\n }\n }\n }\n}\n_Container_engine = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Loader_engine;\nimport { Container } from \"./Container\";\nimport { generatedAttribute } from \"./Utils/Constants\";\nimport { itemFromArray } from \"../Utils/Utils\";\nfunction fetchError(statusCode) {\n console.error(`Error tsParticles - fetch status: ${statusCode}`);\n console.error(\"Error tsParticles - File config not found\");\n}\nasync function getDataFromUrl(jsonUrl, index) {\n const url = jsonUrl instanceof Array ? itemFromArray(jsonUrl, index) : jsonUrl;\n if (!url) {\n return;\n }\n const response = await fetch(url);\n if (!response.ok) {\n fetchError(response.status);\n return;\n }\n return response.json();\n}\nexport class Loader {\n constructor(engine) {\n _Loader_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Loader_engine, engine, \"f\");\n }\n load(tagId, options, index) {\n const params = { index, remote: false };\n if (typeof tagId === \"string\") {\n params.tagId = tagId;\n }\n else {\n params.options = tagId;\n }\n if (typeof options === \"number\") {\n params.index = options;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n async loadJSON(tagId, jsonUrl, index) {\n let url, id;\n if (typeof jsonUrl === \"number\" || jsonUrl === undefined) {\n url = tagId;\n }\n else {\n id = tagId;\n url = jsonUrl;\n }\n return this.loadRemoteOptions({ tagId: id, url, index, remote: true });\n }\n async loadOptions(params) {\n var _a, _b, _c;\n const tagId = (_a = params.tagId) !== null && _a !== void 0 ? _a : `tsparticles${Math.floor(Math.random() * 10000)}`, { index, url: jsonUrl, remote } = params, options = remote ? await getDataFromUrl(jsonUrl, index) : params.options;\n let domContainer = (_b = params.element) !== null && _b !== void 0 ? _b : document.getElementById(tagId);\n if (!domContainer) {\n domContainer = document.createElement(\"div\");\n domContainer.id = tagId;\n (_c = document.querySelector(\"body\")) === null || _c === void 0 ? void 0 : _c.append(domContainer);\n }\n const currentOptions = options instanceof Array ? itemFromArray(options, index) : options, dom = __classPrivateFieldGet(this, _Loader_engine, \"f\").dom(), oldIndex = dom.findIndex((v) => v.id === tagId);\n if (oldIndex >= 0) {\n const old = __classPrivateFieldGet(this, _Loader_engine, \"f\").domItem(oldIndex);\n if (old && !old.destroyed) {\n old.destroy();\n dom.splice(oldIndex, 1);\n }\n }\n let canvasEl;\n if (domContainer.tagName.toLowerCase() === \"canvas\") {\n canvasEl = domContainer;\n canvasEl.dataset[generatedAttribute] = \"false\";\n }\n else {\n const existingCanvases = domContainer.getElementsByTagName(\"canvas\");\n if (existingCanvases.length) {\n canvasEl = existingCanvases[0];\n canvasEl.dataset[generatedAttribute] = \"false\";\n }\n else {\n canvasEl = document.createElement(\"canvas\");\n canvasEl.dataset[generatedAttribute] = \"true\";\n domContainer.appendChild(canvasEl);\n }\n }\n if (!canvasEl.style.width) {\n canvasEl.style.width = \"100%\";\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = \"100%\";\n }\n const newItem = new Container(__classPrivateFieldGet(this, _Loader_engine, \"f\"), tagId, currentOptions);\n if (oldIndex >= 0) {\n dom.splice(oldIndex, 0, newItem);\n }\n else {\n dom.push(newItem);\n }\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n async loadRemoteOptions(params) {\n return this.loadOptions(params);\n }\n async set(id, domContainer, options, index) {\n const params = { index, remote: false };\n if (typeof id === \"string\") {\n params.tagId = id;\n }\n else {\n params.element = id;\n }\n if (domContainer instanceof HTMLElement) {\n params.element = domContainer;\n }\n else {\n params.options = domContainer;\n }\n if (typeof options === \"number\") {\n params.index = options;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n async setJSON(id, domContainer, jsonUrl, index) {\n let url, newId, newIndex, element;\n if (id instanceof HTMLElement) {\n element = id;\n url = domContainer;\n newIndex = jsonUrl;\n }\n else {\n newId = id;\n element = domContainer;\n url = jsonUrl;\n newIndex = index;\n }\n return this.loadRemoteOptions({ tagId: newId, url, index: newIndex, element, remote: true });\n }\n}\n_Loader_engine = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Plugins_engine;\nexport class Plugins {\n constructor(engine) {\n _Plugins_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Plugins_engine, engine, \"f\");\n this.plugins = [];\n this.interactorsInitializers = new Map();\n this.moversInitializers = new Map();\n this.updatersInitializers = new Map();\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.drawers = new Map();\n this.pathGenerators = new Map();\n }\n addInteractor(name, initInteractor) {\n this.interactorsInitializers.set(name, initInteractor);\n }\n addParticleMover(name, initMover) {\n this.moversInitializers.set(name, initMover);\n }\n addParticleUpdater(name, initUpdater) {\n this.updatersInitializers.set(name, initUpdater);\n }\n addPathGenerator(type, pathGenerator) {\n if (!this.getPathGenerator(type)) {\n this.pathGenerators.set(type, pathGenerator);\n }\n }\n addPlugin(plugin) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\n }\n addPreset(presetKey, options, override = false) {\n if (override || !this.getPreset(presetKey)) {\n this.presets.set(presetKey, options);\n }\n }\n addShapeDrawer(type, drawer) {\n if (!this.getShapeDrawer(type)) {\n this.drawers.set(type, drawer);\n }\n }\n destroy(container) {\n this.updaters.delete(container);\n this.movers.delete(container);\n this.interactors.delete(container);\n }\n getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (!plugin.needsPlugin(container.actualOptions)) {\n continue;\n }\n res.set(plugin.id, plugin.getPlugin(container));\n }\n return res;\n }\n getInteractors(container, force = false) {\n let res = this.interactors.get(container);\n if (!res || force) {\n res = [...this.interactorsInitializers.values()].map((t) => t(container));\n this.interactors.set(container, res);\n }\n return res;\n }\n getMovers(container, force = false) {\n let res = this.movers.get(container);\n if (!res || force) {\n res = [...this.moversInitializers.values()].map((t) => t(container));\n this.movers.set(container, res);\n }\n return res;\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n getPlugin(plugin) {\n return this.plugins.find((t) => t.id === plugin);\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n getShapeDrawer(type) {\n return this.drawers.get(type);\n }\n getSupportedShapes() {\n return this.drawers.keys();\n }\n getUpdaters(container, force = false) {\n let res = this.updaters.get(container);\n if (!res || force) {\n res = [...this.updatersInitializers.values()].map((t) => t(container));\n this.updaters.set(container, res);\n }\n return res;\n }\n loadOptions(options, sourceOptions) {\n for (const plugin of this.plugins) {\n plugin.loadOptions(options, sourceOptions);\n }\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n for (const updater of updaters) {\n if (updater.loadOptions) {\n updater.loadOptions(options, ...sourceOptions);\n }\n }\n }\n}\n_Plugins_engine = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Engine_initialized, _Engine_loader;\nimport { EventDispatcher } from \"./Utils/EventDispatcher\";\nimport { Loader } from \"./Core/Loader\";\nimport { Plugins } from \"./Core/Utils/Plugins\";\nexport class Engine {\n constructor() {\n _Engine_initialized.set(this, void 0);\n _Engine_loader.set(this, void 0);\n this.domArray = [];\n this.eventDispatcher = new EventDispatcher();\n __classPrivateFieldSet(this, _Engine_initialized, false, \"f\");\n __classPrivateFieldSet(this, _Engine_loader, new Loader(this), \"f\");\n this.plugins = new Plugins(this);\n }\n addEventListener(type, listener) {\n this.eventDispatcher.addEventListener(type, listener);\n }\n async addInteractor(name, interactorInitializer) {\n this.plugins.addInteractor(name, interactorInitializer);\n await this.refresh();\n }\n async addMover(name, moverInitializer) {\n this.plugins.addParticleMover(name, moverInitializer);\n await this.refresh();\n }\n async addParticleUpdater(name, updaterInitializer) {\n this.plugins.addParticleUpdater(name, updaterInitializer);\n await this.refresh();\n }\n async addPathGenerator(name, generator) {\n this.plugins.addPathGenerator(name, generator);\n await this.refresh();\n }\n async addPlugin(plugin) {\n this.plugins.addPlugin(plugin);\n await this.refresh();\n }\n async addPreset(preset, options, override = false) {\n this.plugins.addPreset(preset, options, override);\n await this.refresh();\n }\n async addShape(shape, drawer, init, afterEffect, destroy) {\n let customDrawer;\n if (typeof drawer === \"function\") {\n customDrawer = {\n afterEffect: afterEffect,\n destroy: destroy,\n draw: drawer,\n init: init,\n };\n }\n else {\n customDrawer = drawer;\n }\n this.plugins.addShapeDrawer(shape, customDrawer);\n await this.refresh();\n }\n dispatchEvent(type, args) {\n this.eventDispatcher.dispatchEvent(type, args);\n }\n dom() {\n return this.domArray;\n }\n domItem(index) {\n const dom = this.dom(), item = dom[index];\n if (item && !item.destroyed) {\n return item;\n }\n dom.splice(index, 1);\n }\n init() {\n if (!__classPrivateFieldGet(this, _Engine_initialized, \"f\")) {\n __classPrivateFieldSet(this, _Engine_initialized, true, \"f\");\n }\n }\n async load(tagId, options) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").load(tagId, options);\n }\n async loadFromArray(tagId, options, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").load(tagId, options, index);\n }\n async loadJSON(tagId, pathConfigJson, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").loadJSON(tagId, pathConfigJson, index);\n }\n async refresh() {\n for (const instance of this.dom()) {\n await instance.refresh();\n }\n }\n removeEventListener(type, listener) {\n this.eventDispatcher.removeEventListener(type, listener);\n }\n async set(id, element, options) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").set(id, element, options);\n }\n async setJSON(id, element, pathConfigJson, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").setJSON(id, element, pathConfigJson, index);\n }\n setOnClickHandler(callback) {\n const dom = this.dom();\n if (!dom.length) {\n throw new Error(\"Can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()\");\n }\n for (const domItem of dom) {\n domItem.addClickHandler(callback);\n }\n }\n}\n_Engine_initialized = new WeakMap(), _Engine_loader = new WeakMap();\n","export class ExternalInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = 0;\n }\n}\n","export class ParticlesInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = 1;\n }\n}\n","import { Engine } from \"./engine\";\nconst tsParticles = new Engine();\ntsParticles.init();\nexport * from \"./Core/Interfaces/Colors\";\nexport * from \"./Core/Interfaces/Gradients\";\nexport * from \"./Core/Interfaces/IBounds\";\nexport * from \"./Core/Interfaces/IBubbleParticleData\";\nexport * from \"./Core/Interfaces/ICircleBouncer\";\nexport * from \"./Core/Interfaces/IContainerInteractivity\";\nexport * from \"./Core/Interfaces/IContainerPlugin\";\nexport * from \"./Core/Interfaces/ICoordinates\";\nexport * from \"./Core/Interfaces/IDelta\";\nexport * from \"./Core/Interfaces/IDimension\";\nexport * from \"./Core/Interfaces/IDistance\";\nexport * from \"./Core/Interfaces/IExternalInteractor\";\nexport * from \"./Core/Interfaces/IInteractor\";\nexport * from \"./Core/Interfaces/IMouseData\";\nexport * from \"./Core/Interfaces/IMovePathGenerator\";\nexport * from \"./Core/Interfaces/IParticle\";\nexport * from \"./Core/Interfaces/IParticleColorStyle\";\nexport * from \"./Core/Interfaces/IParticleHslAnimation\";\nexport * from \"./Core/Interfaces/IParticlesInteractor\";\nexport * from \"./Core/Interfaces/IParticleLife\";\nexport * from \"./Core/Interfaces/IParticleRetinaProps\";\nexport * from \"./Core/Interfaces/IParticleRoll\";\nexport * from \"./Core/Interfaces/IParticleUpdater\";\nexport * from \"./Core/Interfaces/IParticleValueAnimation\";\nexport * from \"./Core/Interfaces/IParticleWobble\";\nexport * from \"./Core/Interfaces/IParticlesMover\";\nexport * from \"./Core/Interfaces/IPlugin\";\nexport * from \"./Core/Interfaces/IRangeValue\";\nexport * from \"./Core/Interfaces/IRectSideResult\";\nexport * from \"./Core/Interfaces/IShapeDrawer\";\nexport * from \"./Core/Interfaces/IShapeValues\";\nexport * from \"./Core/Utils/Circle\";\nexport * from \"./Core/Utils/CircleWarp\";\nexport * from \"./Core/Utils/Constants\";\nexport * from \"./Core/Utils/EventListeners\";\nexport * from \"./Core/Utils/ExternalInteractorBase\";\nexport * from \"./Core/Utils/FrameManager\";\nexport * from \"./Core/Utils/InteractionManager\";\nexport * from \"./Core/Utils/ParticlesInteractorBase\";\nexport * from \"./Core/Utils/Plugins\";\nexport * from \"./Core/Utils/Point\";\nexport * from \"./Core/Utils/QuadTree\";\nexport * from \"./Core/Utils/Range\";\nexport * from \"./Core/Utils/Rectangle\";\nexport * from \"./Core/Utils/Vector\";\nexport * from \"./Core/Utils/Vector3d\";\nexport * from \"./Core/Canvas\";\nexport * from \"./Core/Container\";\nexport * from \"./Core/Loader\";\nexport * from \"./Core/Particle\";\nexport * from \"./Core/Particles\";\nexport * from \"./Core/Retina\";\nexport * from \"./Enums/Directions/MoveDirection\";\nexport * from \"./Enums/Directions/RotateDirection\";\nexport * from \"./Enums/Directions/OutModeDirection\";\nexport * from \"./Enums/Modes/ClickMode\";\nexport * from \"./Enums/Modes/DestroyMode\";\nexport * from \"./Enums/Modes/DivMode\";\nexport * from \"./Enums/Modes/HoverMode\";\nexport * from \"./Enums/Modes/CollisionMode\";\nexport * from \"./Enums/Modes/OutMode\";\nexport * from \"./Enums/Modes/SizeMode\";\nexport * from \"./Enums/Modes/ThemeMode\";\nexport * from \"./Enums/Modes/ResponsiveMode\";\nexport * from \"./Enums/Types/AlterType\";\nexport * from \"./Enums/Types/DestroyType\";\nexport * from \"./Enums/Types/GradientType\";\nexport * from \"./Enums/Types/InteractorType\";\nexport * from \"./Enums/Types/ParticleOutType\";\nexport * from \"./Enums/Types/StartValueType\";\nexport * from \"./Enums/Types/DivType\";\nexport * from \"./Enums/Types/EasingType\";\nexport * from \"./Enums/AnimationStatus\";\nexport * from \"./Enums/InteractivityDetect\";\nexport { Engine, Engine as Main };\nexport * from \"./Options/Classes/AnimatableColor\";\nexport * from \"./Options/Classes/Gradients/AnimatableGradient\";\nexport * from \"./Options/Classes/Gradients/AnimatableGradientColor\";\nexport * from \"./Options/Classes/Gradients/GradientAngle\";\nexport * from \"./Options/Classes/Gradients/GradientAngleAnimation\";\nexport * from \"./Options/Classes/Gradients/GradientColorOpacity\";\nexport * from \"./Options/Classes/Gradients/GradientColorOpacityAnimation\";\nexport * from \"./Options/Classes/AnimationOptions\";\nexport * from \"./Options/Classes/Background/Background\";\nexport * from \"./Options/Classes/BackgroundMask/BackgroundMask\";\nexport * from \"./Options/Classes/BackgroundMask/BackgroundMaskCover\";\nexport * from \"./Options/Classes/ColorAnimation\";\nexport * from \"./Options/Classes/FullScreen/FullScreen\";\nexport * from \"./Options/Classes/HslAnimation\";\nexport * from \"./Options/Classes/Interactivity/Events/ClickEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/DivEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/ClickEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/DivEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/Events\";\nexport * from \"./Options/Classes/Interactivity/Events/HoverEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/Parallax\";\nexport * from \"./Options/Classes/Interactivity/Interactivity\";\nexport * from \"./Options/Classes/Interactivity/Modes/Attract\";\nexport * from \"./Options/Classes/Interactivity/Modes/Bounce\";\nexport * from \"./Options/Classes/Interactivity/Modes/Bubble\";\nexport * from \"./Options/Classes/Interactivity/Modes/BubbleBase\";\nexport * from \"./Options/Classes/Interactivity/Modes/BubbleDiv\";\nexport * from \"./Options/Classes/Interactivity/Modes/Connect\";\nexport * from \"./Options/Classes/Interactivity/Modes/ConnectLinks\";\nexport * from \"./Options/Classes/Interactivity/Modes/Grab\";\nexport * from \"./Options/Classes/Interactivity/Modes/GrabLinks\";\nexport * from \"./Options/Classes/Interactivity/Modes/Light\";\nexport * from \"./Options/Classes/Interactivity/Modes/LightArea\";\nexport * from \"./Options/Classes/Interactivity/Modes/LightGradient\";\nexport * from \"./Options/Classes/Interactivity/Modes/LightShadow\";\nexport * from \"./Options/Classes/Interactivity/Modes/Modes\";\nexport * from \"./Options/Classes/Interactivity/Modes/Push\";\nexport * from \"./Options/Classes/Interactivity/Modes/Remove\";\nexport * from \"./Options/Classes/Interactivity/Modes/Repulse\";\nexport * from \"./Options/Classes/Interactivity/Modes/RepulseBase\";\nexport * from \"./Options/Classes/Interactivity/Modes/RepulseDiv\";\nexport * from \"./Options/Classes/Interactivity/Modes/Slow\";\nexport * from \"./Options/Classes/Interactivity/Modes/Trail\";\nexport * from \"./Options/Classes/ManualParticle\";\nexport * from \"./Options/Classes/Motion/Motion\";\nexport * from \"./Options/Classes/Motion/MotionReduce\";\nexport * from \"./Options/Classes/Options\";\nexport * from \"./Options/Classes/OptionsColor\";\nexport * from \"./Options/Classes/Particles/Bounce/ParticlesBounce\";\nexport * from \"./Options/Classes/Particles/Bounce/ParticlesBounceFactor\";\nexport * from \"./Options/Classes/Particles/Collisions/Collisions\";\nexport * from \"./Options/Classes/Particles/Collisions/CollisionsOverlap\";\nexport * from \"./Options/Classes/Particles/Destroy/Destroy\";\nexport * from \"./Options/Classes/Particles/Destroy/Split\";\nexport * from \"./Options/Classes/Particles/Destroy/SplitFactor\";\nexport * from \"./Options/Classes/Particles/Destroy/SplitRate\";\nexport * from \"./Options/Classes/Particles/ParticlesOptions\";\nexport * from \"./Options/Classes/Particles/Shadow\";\nexport * from \"./Options/Classes/Particles/Stroke\";\nexport * from \"./Options/Classes/Particles/Links/Links\";\nexport * from \"./Options/Classes/Particles/Links/LinksShadow\";\nexport * from \"./Options/Classes/Particles/Links/LinksTriangle\";\nexport * from \"./Options/Classes/Particles/Move/MoveAttract\";\nexport * from \"./Options/Classes/Particles/Move/Move\";\nexport * from \"./Options/Classes/Particles/Move/MoveAngle\";\nexport * from \"./Options/Classes/Particles/Move/MoveGravity\";\nexport * from \"./Options/Classes/Particles/Move/OutModes\";\nexport * from \"./Options/Classes/Particles/Move/Path/MovePath\";\nexport * from \"./Options/Classes/Particles/Move/Path/MovePathDelay\";\nexport * from \"./Options/Classes/Particles/Move/Spin\";\nexport * from \"./Options/Classes/Particles/Move/MoveTrail\";\nexport * from \"./Options/Classes/Particles/Number/ParticlesNumber\";\nexport * from \"./Options/Classes/Particles/Number/ParticlesDensity\";\nexport * from \"./Options/Classes/Particles/Opacity/Opacity\";\nexport * from \"./Options/Classes/Particles/Opacity/OpacityAnimation\";\nexport * from \"./Options/Classes/Particles/Repulse/ParticlesRepulse\";\nexport * from \"./Options/Classes/Particles/Rotate/Rotate\";\nexport * from \"./Options/Classes/Particles/Rotate/RotateAnimation\";\nexport * from \"./Options/Classes/Particles/Shape/Shape\";\nexport * from \"./Options/Classes/Particles/Size/Size\";\nexport * from \"./Options/Classes/Particles/Size/SizeAnimation\";\nexport * from \"./Options/Classes/Particles/ZIndex/ZIndex\";\nexport * from \"./Options/Classes/Responsive\";\nexport * from \"./Options/Classes/Theme/Theme\";\nexport * from \"./Options/Classes/Theme/ThemeDefault\";\nexport * from \"./Options/Classes/ValueWithRandom\";\nexport * from \"./Options/Interfaces/Background/IBackground\";\nexport * from \"./Options/Interfaces/BackgroundMask/IBackgroundMask\";\nexport * from \"./Options/Interfaces/BackgroundMask/IBackgroundMaskCover\";\nexport * from \"./Options/Interfaces/FullScreen/IFullScreen\";\nexport * from \"./Options/Interfaces/IAnimatable\";\nexport * from \"./Options/Interfaces/IAnimatableColor\";\nexport * from \"./Options/Interfaces/IAnimatableGradient\";\nexport * from \"./Options/Interfaces/IAnimation\";\nexport * from \"./Options/Interfaces/IColorAnimation\";\nexport * from \"./Options/Interfaces/IHslAnimation\";\nexport * from \"./Options/Interfaces/IManualParticle\";\nexport * from \"./Options/Interfaces/IOptionLoader\";\nexport * from \"./Options/Interfaces/IOptions\";\nexport * from \"./Options/Interfaces/IOptionsColor\";\nexport * from \"./Options/Interfaces/IOptionsGradient\";\nexport * from \"./Options/Interfaces/IResponsive\";\nexport * from \"./Options/Interfaces/IValueWithRandom\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IClickEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IDivEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IEvents\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IHoverEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IParallax\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IAttract\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBounce\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBubble\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBubbleBase\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBubbleDiv\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IConnect\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IConnectLinks\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IGrab\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IGrabLinks\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILight\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILightArea\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILightGradient\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILightShadow\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IModeDiv\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IModes\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IPush\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRemove\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRepulse\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRepulseBase\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRepulseDiv\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ISlow\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ITrail\";\nexport * from \"./Options/Interfaces/Interactivity/IInteractivity\";\nexport * from \"./Options/Interfaces/Motion/IMotion\";\nexport * from \"./Options/Interfaces/Motion/IMotionReduce\";\nexport * from \"./Options/Interfaces/Particles/Bounce/IParticlesBounce\";\nexport * from \"./Options/Interfaces/Particles/Collisions/ICollisions\";\nexport * from \"./Options/Interfaces/Particles/Collisions/ICollisionsOverlap\";\nexport * from \"./Options/Interfaces/Particles/Destroy/IDestroy\";\nexport * from \"./Options/Interfaces/Particles/Destroy/ISplit\";\nexport * from \"./Options/Interfaces/Particles/IParticlesOptions\";\nexport * from \"./Options/Interfaces/Particles/IShadow\";\nexport * from \"./Options/Interfaces/Particles/IStroke\";\nexport * from \"./Options/Interfaces/Particles/Links/ILinks\";\nexport * from \"./Options/Interfaces/Particles/Links/ILinksShadow\";\nexport * from \"./Options/Interfaces/Particles/Links/ILinksTriangle\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveAttract\";\nexport * from \"./Options/Interfaces/Particles/Move/IMove\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveAngle\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveGravity\";\nexport * from \"./Options/Interfaces/Particles/Move/Path/IMovePath\";\nexport * from \"./Options/Interfaces/Particles/Move/IOutModes\";\nexport * from \"./Options/Interfaces/Particles/Move/ISpin\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveTrail\";\nexport * from \"./Options/Interfaces/Particles/Number/IParticlesDensity\";\nexport * from \"./Options/Interfaces/Particles/Number/IParticlesNumber\";\nexport * from \"./Options/Interfaces/Particles/Opacity/IOpacity\";\nexport * from \"./Options/Interfaces/Particles/Opacity/IOpacityAnimation\";\nexport * from \"./Options/Interfaces/Particles/Repulse/IParticlesRepulse\";\nexport * from \"./Options/Interfaces/Particles/Rotate/IRotate\";\nexport * from \"./Options/Interfaces/Particles/Rotate/IRotateAnimation\";\nexport * from \"./Options/Interfaces/Particles/Shape/ICharacterShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IImageShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IPolygonShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IShapeValues\";\nexport * from \"./Options/Interfaces/Particles/Shape/IStarShape\";\nexport * from \"./Options/Interfaces/Particles/Size/ISize\";\nexport * from \"./Options/Interfaces/Particles/Size/ISizeAnimation\";\nexport * from \"./Options/Interfaces/Particles/ZIndex/IZIndex\";\nexport * from \"./Options/Interfaces/Theme/ITheme\";\nexport * from \"./Options/Interfaces/Theme/IThemeDefault\";\nexport * from \"./Types/RangeValue\";\nexport * from \"./Types/RecursivePartial\";\nexport * from \"./Types/ShapeData\";\nexport * from \"./Types/ShapeDrawerFunctions\";\nexport * from \"./Types/SingleOrMultiple\";\nexport * from \"./Types/PathOptions\";\nexport * from \"./Utils/CanvasUtils\";\nexport * from \"./Utils/ColorUtils\";\nexport * from \"./Utils/NumberUtils\";\nexport * from \"./Utils/OptionsUtils\";\nexport * from \"./Utils/Utils\";\nexport { tsParticles };\n","import React, { Component } from \"react\";\nimport { tsParticles } from \"tsparticles-engine\";\nimport equal from \"fast-deep-equal/react\";\nconst defaultId = \"tsparticles\";\nexport default class Particles extends Component {\n constructor(props) {\n super(props);\n this.state = {\n init: false,\n library: undefined,\n };\n }\n destroy() {\n if (!this.state.library) {\n return;\n }\n this.state.library.destroy();\n this.setState({\n library: undefined,\n });\n }\n shouldComponentUpdate(nextProps) {\n return !equal(nextProps, this.props);\n }\n componentDidUpdate() {\n this.refresh();\n }\n forceUpdate() {\n this.refresh().then(() => {\n super.forceUpdate();\n });\n }\n componentDidMount() {\n (async () => {\n if (this.props.init) {\n await this.props.init(tsParticles);\n }\n this.setState({\n init: true,\n }, async () => {\n await this.loadParticles();\n });\n })();\n }\n componentWillUnmount() {\n this.destroy();\n }\n render() {\n const { width, height, className, canvasClassName, id } = this.props;\n return (React.createElement(\"div\", { className: className, id: id },\n React.createElement(\"canvas\", { className: canvasClassName, style: Object.assign(Object.assign({}, this.props.style), { width,\n height }) })));\n }\n async refresh() {\n this.destroy();\n await this.loadParticles();\n }\n async loadParticles() {\n var _a, _b, _c;\n if (!this.state.init) {\n return;\n }\n const cb = async (container) => {\n if (this.props.container) {\n this.props.container.current = container;\n }\n this.setState({\n library: container,\n });\n if (this.props.loaded) {\n await this.props.loaded(container);\n }\n };\n const id = (_b = (_a = this.props.id) !== null && _a !== void 0 ? _a : Particles.defaultProps.id) !== null && _b !== void 0 ? _b : defaultId, container = this.props.url\n ? await tsParticles.loadJSON(id, this.props.url)\n : await tsParticles.load(id, (_c = this.props.params) !== null && _c !== void 0 ? _c : this.props.options);\n await cb(container);\n }\n}\nParticles.defaultProps = {\n width: \"100%\",\n height: \"100%\",\n options: {},\n style: {},\n url: undefined,\n id: defaultId,\n};\n","import Particles from \"./Particles\";\nexport default Particles;\nexport { Particles };\n","export class AbsorberSizeLimit {\n constructor() {\n this.radius = 0;\n this.mass = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mass !== undefined) {\n this.mass = data.mass;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { AbsorberSizeLimit } from \"./AbsorberSizeLimit\";\nimport { ValueWithRandom } from \"tsparticles-engine\";\nexport class AbsorberSize extends ValueWithRandom {\n constructor() {\n super();\n this.density = 5;\n this.value = 50;\n this.limit = new AbsorberSizeLimit();\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.density !== undefined) {\n this.density = data.density;\n }\n if (typeof data.limit === \"number\") {\n this.limit.radius = data.limit;\n }\n else {\n this.limit.load(data.limit);\n }\n }\n}\n","import { OptionsColor, setRangeValue } from \"tsparticles-engine\";\nimport { AbsorberSize } from \"./AbsorberSize\";\nexport class Absorber {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"#000000\";\n this.draggable = false;\n this.opacity = 1;\n this.destroy = true;\n this.orbits = false;\n this.size = new AbsorberSize();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.draggable !== undefined) {\n this.draggable = data.draggable;\n }\n this.name = data.name;\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.position !== undefined) {\n this.position = {};\n if (data.position.x !== undefined) {\n this.position.x = setRangeValue(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = setRangeValue(data.position.y);\n }\n }\n if (data.size !== undefined) {\n this.size.load(data.size);\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.orbits !== undefined) {\n this.orbits = data.orbits;\n }\n }\n}\n","import { Vector, calcPositionOrRandomFromSize, calcPositionOrRandomFromSizeRanged, getDistance, getDistances, getRangeValue, getStyleFromRgb, isPointInside, rangeColorToRgb, } from \"tsparticles-engine\";\nimport { Absorber } from \"./Options/Classes/Absorber\";\nexport class AbsorberInstance {\n constructor(absorbers, container, options, position) {\n var _a, _b, _c;\n this.absorbers = absorbers;\n this.container = container;\n this.initialPosition = position ? Vector.create(position.x, position.y) : undefined;\n if (options instanceof Absorber) {\n this.options = options;\n }\n else {\n this.options = new Absorber();\n this.options.load(options);\n }\n this.dragging = false;\n this.name = this.options.name;\n this.opacity = this.options.opacity;\n this.size = getRangeValue(this.options.size.value) * container.retina.pixelRatio;\n this.mass = this.size * this.options.size.density * container.retina.reduceFactor;\n const limit = this.options.size.limit;\n this.limit = {\n radius: limit.radius * container.retina.pixelRatio * container.retina.reduceFactor,\n mass: limit.mass,\n };\n this.color = (_a = rangeColorToRgb(this.options.color)) !== null && _a !== void 0 ? _a : {\n b: 0,\n g: 0,\n r: 0,\n };\n this.position = (_c = (_b = this.initialPosition) === null || _b === void 0 ? void 0 : _b.copy()) !== null && _c !== void 0 ? _c : this.calcPosition();\n }\n attract(particle) {\n const container = this.container, options = this.options;\n if (options.draggable) {\n const mouse = container.interactivity.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = getDistance(this.position, mouse.downPosition);\n if (mouseDist <= this.size) {\n this.dragging = true;\n }\n }\n else {\n this.dragging = false;\n }\n if (this.dragging && mouse.position) {\n this.position.x = mouse.position.x;\n this.position.y = mouse.position.y;\n }\n }\n const pos = particle.getPosition(), { dx, dy, distance } = getDistances(this.position, pos), v = Vector.create(dx, dy);\n v.length = (this.mass / Math.pow(distance, 2)) * container.retina.reduceFactor;\n if (distance < this.size + particle.getRadius()) {\n const sizeFactor = particle.getRadius() * 0.033 * container.retina.pixelRatio;\n if ((this.size > particle.getRadius() && distance < this.size - particle.getRadius()) ||\n (particle.absorberOrbit !== undefined && particle.absorberOrbit.length < 0)) {\n if (options.destroy) {\n particle.destroy();\n }\n else {\n particle.needsNewPosition = true;\n this.updateParticlePosition(particle, v);\n }\n }\n else {\n if (options.destroy) {\n particle.size.value -= sizeFactor;\n }\n this.updateParticlePosition(particle, v);\n }\n if (this.limit.radius <= 0 || this.size < this.limit.radius) {\n this.size += sizeFactor;\n }\n if (this.limit.mass <= 0 || this.mass < this.limit.mass) {\n this.mass += sizeFactor * this.options.size.density * container.retina.reduceFactor;\n }\n }\n else {\n this.updateParticlePosition(particle, v);\n }\n }\n draw(context) {\n context.translate(this.position.x, this.position.y);\n context.beginPath();\n context.arc(0, 0, this.size, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStyle = getStyleFromRgb(this.color, this.opacity);\n context.fill();\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position =\n initialPosition && isPointInside(initialPosition, this.container.canvas.size, Vector.origin)\n ? initialPosition\n : this.calcPosition();\n }\n calcPosition() {\n const exactPosition = calcPositionOrRandomFromSizeRanged({\n size: this.container.canvas.size,\n position: this.options.position,\n });\n return Vector.create(exactPosition.x, exactPosition.y);\n }\n updateParticlePosition(particle, v) {\n var _a;\n if (particle.destroyed) {\n return;\n }\n const container = this.container, canvasSize = container.canvas.size;\n if (particle.needsNewPosition) {\n const newPosition = calcPositionOrRandomFromSize({ size: canvasSize });\n particle.position.setTo(newPosition);\n particle.velocity.setTo(particle.initialVelocity);\n particle.absorberOrbit = undefined;\n particle.needsNewPosition = false;\n }\n if (this.options.orbits) {\n if (particle.absorberOrbit === undefined) {\n particle.absorberOrbit = Vector.create(0, 0);\n particle.absorberOrbit.length = getDistance(particle.getPosition(), this.position);\n particle.absorberOrbit.angle = Math.random() * Math.PI * 2;\n }\n if (particle.absorberOrbit.length <= this.size && !this.options.destroy) {\n const minSize = Math.min(canvasSize.width, canvasSize.height);\n particle.absorberOrbit.length = minSize * (1 + (Math.random() * 0.2 - 0.1));\n }\n if (particle.absorberOrbitDirection === undefined) {\n particle.absorberOrbitDirection =\n particle.velocity.x >= 0 ? \"clockwise\" : \"counter-clockwise\";\n }\n const orbitRadius = particle.absorberOrbit.length, orbitAngle = particle.absorberOrbit.angle, orbitDirection = particle.absorberOrbitDirection;\n particle.velocity.setTo(Vector.origin);\n const updateFunc = {\n x: orbitDirection === \"clockwise\" ? Math.cos : Math.sin,\n y: orbitDirection === \"clockwise\" ? Math.sin : Math.cos,\n };\n particle.position.x = this.position.x + orbitRadius * updateFunc.x(orbitAngle);\n particle.position.y = this.position.y + orbitRadius * updateFunc.y(orbitAngle);\n particle.absorberOrbit.length -= v.length;\n particle.absorberOrbit.angle +=\n ((((_a = particle.retina.moveSpeed) !== null && _a !== void 0 ? _a : 0) * container.retina.pixelRatio) / 100) *\n container.retina.reduceFactor;\n }\n else {\n const addV = Vector.origin;\n addV.length = v.length;\n addV.angle = v.angle;\n particle.velocity.addTo(addV);\n }\n }\n}\n","import { Absorber } from \"./Options/Classes/Absorber\";\nimport { AbsorberInstance } from \"./AbsorberInstance\";\nimport { itemFromArray } from \"tsparticles-engine\";\nexport class Absorbers {\n constructor(container) {\n this.container = container;\n this.array = [];\n this.absorbers = [];\n this.interactivityAbsorbers = [];\n container.getAbsorber = (idxOrName) => idxOrName === undefined || typeof idxOrName === \"number\"\n ? this.array[idxOrName || 0]\n : this.array.find((t) => t.name === idxOrName);\n container.addAbsorber = (options, position) => this.addAbsorber(options, position);\n }\n addAbsorber(options, position) {\n const absorber = new AbsorberInstance(this, this.container, options, position);\n this.array.push(absorber);\n return absorber;\n }\n draw(context) {\n for (const absorber of this.array) {\n context.save();\n absorber.draw(context);\n context.restore();\n }\n }\n handleClickMode(mode) {\n const absorberOptions = this.absorbers, modeAbsorbers = this.interactivityAbsorbers;\n if (mode === \"absorber\") {\n let absorbersModeOptions;\n if (modeAbsorbers instanceof Array) {\n if (modeAbsorbers.length > 0) {\n absorbersModeOptions = itemFromArray(modeAbsorbers);\n }\n }\n else {\n absorbersModeOptions = modeAbsorbers;\n }\n const absorbersOptions = absorbersModeOptions !== null && absorbersModeOptions !== void 0 ? absorbersModeOptions : (absorberOptions instanceof Array ? itemFromArray(absorberOptions) : absorberOptions), aPosition = this.container.interactivity.mouse.clickPosition;\n this.addAbsorber(absorbersOptions, aPosition);\n }\n }\n init(options) {\n var _a, _b;\n if (!options) {\n return;\n }\n if (options.absorbers) {\n if (options.absorbers instanceof Array) {\n this.absorbers = options.absorbers.map((s) => {\n const tmp = new Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.absorbers instanceof Array) {\n this.absorbers = new Absorber();\n }\n this.absorbers.load(options.absorbers);\n }\n }\n const interactivityAbsorbers = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers;\n if (interactivityAbsorbers) {\n if (interactivityAbsorbers instanceof Array) {\n this.interactivityAbsorbers = interactivityAbsorbers.map((s) => {\n const tmp = new Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.interactivityAbsorbers instanceof Array) {\n this.interactivityAbsorbers = new Absorber();\n }\n this.interactivityAbsorbers.load(interactivityAbsorbers);\n }\n }\n if (this.absorbers instanceof Array) {\n for (const absorberOptions of this.absorbers) {\n this.addAbsorber(absorberOptions);\n }\n }\n else {\n this.addAbsorber(this.absorbers);\n }\n }\n particleUpdate(particle) {\n for (const absorber of this.array) {\n absorber.attract(particle);\n if (particle.destroyed) {\n break;\n }\n }\n }\n removeAbsorber(absorber) {\n const index = this.array.indexOf(absorber);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n resize() {\n for (const absorber of this.array) {\n absorber.resize();\n }\n }\n stop() {\n this.array = [];\n }\n}\n","import { Absorber } from \"./Options/Classes/Absorber\";\nimport { Absorbers } from \"./Absorbers\";\nimport { isInArray } from \"tsparticles-engine\";\nclass AbsorbersPlugin {\n constructor() {\n this.id = \"absorbers\";\n }\n getPlugin(container) {\n return new Absorbers(container);\n }\n loadOptions(options, source) {\n var _a, _b;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n if (source === null || source === void 0 ? void 0 : source.absorbers) {\n if ((source === null || source === void 0 ? void 0 : source.absorbers) instanceof Array) {\n optionsCast.absorbers = source === null || source === void 0 ? void 0 : source.absorbers.map((s) => {\n const tmp = new Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let absorberOptions = optionsCast.absorbers;\n if ((absorberOptions === null || absorberOptions === void 0 ? void 0 : absorberOptions.load) === undefined) {\n optionsCast.absorbers = absorberOptions = new Absorber();\n }\n absorberOptions.load(source === null || source === void 0 ? void 0 : source.absorbers);\n }\n }\n const interactivityAbsorbers = (_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers;\n if (interactivityAbsorbers) {\n if (interactivityAbsorbers instanceof Array) {\n optionsCast.interactivity.modes.absorbers = interactivityAbsorbers.map((s) => {\n const tmp = new Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let absorberOptions = optionsCast.interactivity.modes.absorbers;\n if ((absorberOptions === null || absorberOptions === void 0 ? void 0 : absorberOptions.load) === undefined) {\n optionsCast.interactivity.modes.absorbers = absorberOptions = new Absorber();\n }\n absorberOptions.load(interactivityAbsorbers);\n }\n }\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (!options) {\n return false;\n }\n const absorbers = options.absorbers;\n if (absorbers instanceof Array) {\n return !!absorbers.length;\n }\n else if (absorbers) {\n return true;\n }\n else if (((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) &&\n isInArray(\"absorber\", options.interactivity.events.onClick.mode)) {\n return true;\n }\n return false;\n }\n}\nexport async function loadAbsorbersPlugin(engine) {\n const plugin = new AbsorbersPlugin();\n await engine.addPlugin(plugin);\n}\nexport * from \"./AbsorberContainer\";\nexport * from \"./Enums/AbsorberClickMode\";\nexport * from \"./Options/Interfaces/IAbsorberOptions\";\n","export class CircleShape {\n randomPosition(position, size, fill) {\n const generateTheta = (x, y) => {\n const u = Math.random() / 4.0, theta = Math.atan((y / x) * Math.tan(2 * Math.PI * u)), v = Math.random();\n if (v < 0.25) {\n return theta;\n }\n else if (v < 0.5) {\n return Math.PI - theta;\n }\n else if (v < 0.75) {\n return Math.PI + theta;\n }\n else {\n return -theta;\n }\n }, radius = (x, y, theta) => (x * y) / Math.sqrt((y * Math.cos(theta)) ** 2 + (x * Math.sin(theta)) ** 2), [a, b] = [size.width / 2, size.height / 2], randomTheta = generateTheta(a, b), maxRadius = radius(a, b, randomTheta), randomRadius = fill ? maxRadius * Math.sqrt(Math.random()) : maxRadius;\n return {\n x: position.x + randomRadius * Math.cos(randomTheta),\n y: position.y + randomRadius * Math.sin(randomTheta),\n };\n }\n}\n","export class EmitterLife {\n constructor() {\n this.wait = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.wait !== undefined) {\n this.wait = data.wait;\n }\n }\n}\n","import { setRangeValue } from \"tsparticles-engine\";\nexport class EmitterRate {\n constructor() {\n this.quantity = 1;\n this.delay = 0.1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.quantity !== undefined) {\n this.quantity = setRangeValue(data.quantity);\n }\n if (data.delay !== undefined) {\n this.delay = setRangeValue(data.delay);\n }\n }\n}\n","export class EmitterSize {\n constructor() {\n this.mode = \"percent\";\n this.height = 0;\n this.width = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.height !== undefined) {\n this.height = data.height;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}\n","import { AnimatableColor, deepExtend, setRangeValue } from \"tsparticles-engine\";\nimport { EmitterLife } from \"./EmitterLife\";\nimport { EmitterRate } from \"./EmitterRate\";\nimport { EmitterSize } from \"./EmitterSize\";\nexport class Emitter {\n constructor() {\n this.autoPlay = true;\n this.fill = true;\n this.life = new EmitterLife();\n this.rate = new EmitterRate();\n this.shape = \"square\";\n this.startCount = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n if (data.size !== undefined) {\n if (this.size === undefined) {\n this.size = new EmitterSize();\n }\n this.size.load(data.size);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.domId = data.domId;\n if (data.fill !== undefined) {\n this.fill = data.fill;\n }\n this.life.load(data.life);\n this.name = data.name;\n if (data.particles !== undefined) {\n if (data.particles instanceof Array) {\n this.particles = data.particles.map((s) => {\n return deepExtend({}, s);\n });\n }\n else {\n this.particles = deepExtend({}, data.particles);\n }\n }\n this.rate.load(data.rate);\n if (data.shape !== undefined) {\n this.shape = data.shape;\n }\n if (data.position !== undefined) {\n this.position = {};\n if (data.position.x !== undefined) {\n this.position.x = setRangeValue(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = setRangeValue(data.position.y);\n }\n }\n if (data.spawnColor !== undefined) {\n if (this.spawnColor === undefined) {\n this.spawnColor = new AnimatableColor();\n }\n this.spawnColor.load(data.spawnColor);\n }\n if (data.startCount !== undefined) {\n this.startCount = data.startCount;\n }\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EmitterInstance_engine, _EmitterInstance_firstSpawn, _EmitterInstance_startParticlesAdded;\nimport { Vector, calcPositionOrRandomFromSizeRanged, deepExtend, getRangeValue, isPointInside, itemFromArray, randomInRange, rangeColorToHsl, } from \"tsparticles-engine\";\nimport { Emitter } from \"./Options/Classes/Emitter\";\nimport { EmitterSize } from \"./Options/Classes/EmitterSize\";\nexport class EmitterInstance {\n constructor(engine, emitters, container, options, position) {\n var _a, _b, _c, _d, _e, _f, _g;\n var _h;\n this.emitters = emitters;\n this.container = container;\n _EmitterInstance_engine.set(this, void 0);\n _EmitterInstance_firstSpawn.set(this, void 0);\n _EmitterInstance_startParticlesAdded.set(this, void 0);\n __classPrivateFieldSet(this, _EmitterInstance_engine, engine, \"f\");\n this.currentDuration = 0;\n this.currentEmitDelay = 0;\n this.currentSpawnDelay = 0;\n this.initialPosition = position;\n if (options instanceof Emitter) {\n this.options = options;\n }\n else {\n this.options = new Emitter();\n this.options.load(options);\n }\n this.spawnDelay = (((_a = this.options.life.delay) !== null && _a !== void 0 ? _a : 0) * 1000) / this.container.retina.reduceFactor;\n this.position = (_b = this.initialPosition) !== null && _b !== void 0 ? _b : this.calcPosition();\n this.name = this.options.name;\n this.shape = (_c = __classPrivateFieldGet(this, _EmitterInstance_engine, \"f\").emitterShapeManager) === null || _c === void 0 ? void 0 : _c.getShape(this.options.shape);\n this.fill = this.options.fill;\n __classPrivateFieldSet(this, _EmitterInstance_firstSpawn, !this.options.life.wait, \"f\");\n __classPrivateFieldSet(this, _EmitterInstance_startParticlesAdded, false, \"f\");\n let particlesOptions = deepExtend({}, this.options.particles);\n particlesOptions !== null && particlesOptions !== void 0 ? particlesOptions : (particlesOptions = {});\n (_d = particlesOptions.move) !== null && _d !== void 0 ? _d : (particlesOptions.move = {});\n (_e = (_h = particlesOptions.move).direction) !== null && _e !== void 0 ? _e : (_h.direction = this.options.direction);\n if (this.options.spawnColor) {\n this.spawnColor = rangeColorToHsl(this.options.spawnColor);\n }\n this.paused = !this.options.autoPlay;\n this.particlesOptions = particlesOptions;\n this.size =\n (_f = this.options.size) !== null && _f !== void 0 ? _f : (() => {\n const size = new EmitterSize();\n size.load({\n height: 0,\n mode: \"percent\",\n width: 0,\n });\n return size;\n })();\n this.lifeCount = (_g = this.options.life.count) !== null && _g !== void 0 ? _g : -1;\n this.immortal = this.lifeCount <= 0;\n __classPrivateFieldGet(this, _EmitterInstance_engine, \"f\").dispatchEvent(\"emitterCreated\", {\n container,\n data: {\n emitter: this,\n },\n });\n this.play();\n }\n externalPause() {\n this.paused = true;\n this.pause();\n }\n externalPlay() {\n this.paused = false;\n this.play();\n }\n getPosition() {\n if (this.options.domId) {\n const container = this.container, element = document.getElementById(this.options.domId);\n if (element) {\n const elRect = element.getBoundingClientRect();\n return {\n x: (elRect.x + elRect.width / 2) * container.retina.pixelRatio,\n y: (elRect.y + elRect.height / 2) * container.retina.pixelRatio,\n };\n }\n }\n return this.position;\n }\n getSize() {\n const container = this.container;\n if (this.options.domId) {\n const element = document.getElementById(this.options.domId);\n if (element) {\n const elRect = element.getBoundingClientRect();\n return {\n width: elRect.width * container.retina.pixelRatio,\n height: elRect.height * container.retina.pixelRatio,\n };\n }\n }\n return {\n width: this.size.mode === \"percent\"\n ? (container.canvas.size.width * this.size.width) / 100\n : this.size.width,\n height: this.size.mode === \"percent\"\n ? (container.canvas.size.height * this.size.height) / 100\n : this.size.height,\n };\n }\n pause() {\n if (this.paused) {\n return;\n }\n delete this.emitDelay;\n }\n play() {\n var _a;\n if (this.paused) {\n return;\n }\n if (!(this.container.retina.reduceFactor &&\n (this.lifeCount > 0 || this.immortal || !this.options.life.count) &&\n (__classPrivateFieldGet(this, _EmitterInstance_firstSpawn, \"f\") || this.currentSpawnDelay >= ((_a = this.spawnDelay) !== null && _a !== void 0 ? _a : 0)))) {\n return;\n }\n if (this.emitDelay === undefined) {\n const delay = getRangeValue(this.options.rate.delay);\n this.emitDelay = (1000 * delay) / this.container.retina.reduceFactor;\n }\n if (this.lifeCount > 0 || this.immortal) {\n this.prepareToDie();\n }\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position =\n initialPosition && isPointInside(initialPosition, this.container.canvas.size, Vector.origin)\n ? initialPosition\n : this.calcPosition();\n }\n update(delta) {\n var _a, _b, _c;\n if (this.paused) {\n return;\n }\n if (__classPrivateFieldGet(this, _EmitterInstance_firstSpawn, \"f\")) {\n __classPrivateFieldSet(this, _EmitterInstance_firstSpawn, false, \"f\");\n this.currentSpawnDelay = (_a = this.spawnDelay) !== null && _a !== void 0 ? _a : 0;\n this.currentEmitDelay = (_b = this.emitDelay) !== null && _b !== void 0 ? _b : 0;\n }\n if (!__classPrivateFieldGet(this, _EmitterInstance_startParticlesAdded, \"f\")) {\n __classPrivateFieldSet(this, _EmitterInstance_startParticlesAdded, true, \"f\");\n this.emitParticles(this.options.startCount);\n }\n if (this.duration !== undefined) {\n this.currentDuration += delta.value;\n if (this.currentDuration >= this.duration) {\n this.pause();\n if (this.spawnDelay !== undefined) {\n delete this.spawnDelay;\n }\n if (!this.immortal) {\n this.lifeCount--;\n }\n if (this.lifeCount > 0 || this.immortal) {\n this.position = this.calcPosition();\n this.spawnDelay = (((_c = this.options.life.delay) !== null && _c !== void 0 ? _c : 0) * 1000) / this.container.retina.reduceFactor;\n }\n else {\n this.destroy();\n }\n this.currentDuration -= this.duration;\n delete this.duration;\n }\n }\n if (this.spawnDelay !== undefined) {\n this.currentSpawnDelay += delta.value;\n if (this.currentSpawnDelay >= this.spawnDelay) {\n __classPrivateFieldGet(this, _EmitterInstance_engine, \"f\").dispatchEvent(\"emitterPlay\", {\n container: this.container,\n });\n this.play();\n this.currentSpawnDelay -= this.currentSpawnDelay;\n delete this.spawnDelay;\n }\n }\n if (this.emitDelay !== undefined) {\n this.currentEmitDelay += delta.value;\n if (this.currentEmitDelay >= this.emitDelay) {\n this.emit();\n this.currentEmitDelay -= this.emitDelay;\n }\n }\n }\n calcPosition() {\n return calcPositionOrRandomFromSizeRanged({\n size: this.container.canvas.size,\n position: this.options.position,\n });\n }\n destroy() {\n this.emitters.removeEmitter(this);\n __classPrivateFieldGet(this, _EmitterInstance_engine, \"f\").dispatchEvent(\"emitterDestroyed\", {\n container: this.container,\n data: {\n emitter: this,\n },\n });\n }\n emit() {\n if (this.paused) {\n return;\n }\n const quantity = getRangeValue(this.options.rate.quantity);\n this.emitParticles(quantity);\n }\n emitParticles(quantity) {\n var _a, _b, _c;\n const position = this.getPosition(), size = this.getSize(), singleParticlesOptions = this.particlesOptions instanceof Array ? itemFromArray(this.particlesOptions) : this.particlesOptions;\n for (let i = 0; i < quantity; i++) {\n const particlesOptions = deepExtend({}, singleParticlesOptions);\n if (this.spawnColor) {\n const hslAnimation = (_a = this.options.spawnColor) === null || _a === void 0 ? void 0 : _a.animation;\n if (hslAnimation) {\n this.spawnColor.h = this.setColorAnimation(hslAnimation.h, this.spawnColor.h, 360);\n this.spawnColor.s = this.setColorAnimation(hslAnimation.s, this.spawnColor.s, 100);\n this.spawnColor.l = this.setColorAnimation(hslAnimation.l, this.spawnColor.l, 100);\n }\n if (!particlesOptions.color) {\n particlesOptions.color = {\n value: this.spawnColor,\n };\n }\n else {\n particlesOptions.color.value = this.spawnColor;\n }\n }\n if (!position) {\n return;\n }\n const pPosition = (_c = (_b = this.shape) === null || _b === void 0 ? void 0 : _b.randomPosition(position, size, this.fill)) !== null && _c !== void 0 ? _c : position;\n this.container.particles.addParticle(pPosition, particlesOptions);\n }\n }\n prepareToDie() {\n var _a;\n if (this.paused) {\n return;\n }\n const duration = (_a = this.options.life) === null || _a === void 0 ? void 0 : _a.duration;\n if (this.container.retina.reduceFactor &&\n (this.lifeCount > 0 || this.immortal) &&\n duration !== undefined &&\n duration > 0) {\n this.duration = duration * 1000;\n }\n }\n setColorAnimation(animation, initValue, maxValue) {\n var _a;\n const container = this.container;\n if (!animation.enable) {\n return initValue;\n }\n const colorOffset = randomInRange(animation.offset), delay = getRangeValue(this.options.rate.delay), emitFactor = (1000 * delay) / container.retina.reduceFactor, colorSpeed = getRangeValue((_a = animation.speed) !== null && _a !== void 0 ? _a : 0);\n return (initValue + (colorSpeed * container.fpsLimit) / emitFactor + colorOffset * 3.6) % maxValue;\n }\n}\n_EmitterInstance_engine = new WeakMap(), _EmitterInstance_firstSpawn = new WeakMap(), _EmitterInstance_startParticlesAdded = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Emitters_engine;\nimport { arrayRandomIndex, deepExtend, itemFromArray } from \"tsparticles-engine\";\nimport { Emitter } from \"./Options/Classes/Emitter\";\nimport { EmitterInstance } from \"./EmitterInstance\";\nexport class Emitters {\n constructor(engine, container) {\n this.container = container;\n _Emitters_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Emitters_engine, engine, \"f\");\n this.array = [];\n this.emitters = [];\n this.interactivityEmitters = {\n random: {\n count: 1,\n enable: false,\n },\n value: [],\n };\n container.getEmitter = (idxOrName) => idxOrName === undefined || typeof idxOrName === \"number\"\n ? this.array[idxOrName || 0]\n : this.array.find((t) => t.name === idxOrName);\n container.addEmitter = (options, position) => this.addEmitter(options, position);\n container.removeEmitter = (idxOrName) => {\n const emitter = container.getEmitter(idxOrName);\n if (emitter) {\n this.removeEmitter(emitter);\n }\n };\n container.playEmitter = (idxOrName) => {\n const emitter = container.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPlay();\n }\n };\n container.pauseEmitter = (idxOrName) => {\n const emitter = container.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPause();\n }\n };\n }\n addEmitter(options, position) {\n const emitterOptions = new Emitter();\n emitterOptions.load(options);\n const emitter = new EmitterInstance(__classPrivateFieldGet(this, _Emitters_engine, \"f\"), this, this.container, emitterOptions, position);\n this.array.push(emitter);\n return emitter;\n }\n handleClickMode(mode) {\n const emitterOptions = this.emitters, modeEmitters = this.interactivityEmitters;\n if (mode === \"emitter\") {\n let emittersModeOptions;\n if (modeEmitters && modeEmitters.value instanceof Array) {\n if (modeEmitters.value.length > 0 && modeEmitters.random.enable) {\n emittersModeOptions = [];\n const usedIndexes = [];\n for (let i = 0; i < modeEmitters.random.count; i++) {\n const idx = arrayRandomIndex(modeEmitters.value);\n if (usedIndexes.includes(idx) && usedIndexes.length < modeEmitters.value.length) {\n i--;\n continue;\n }\n usedIndexes.push(idx);\n emittersModeOptions.push(itemFromArray(modeEmitters.value, idx));\n }\n }\n else {\n emittersModeOptions = modeEmitters.value;\n }\n }\n else {\n emittersModeOptions = modeEmitters === null || modeEmitters === void 0 ? void 0 : modeEmitters.value;\n }\n const emittersOptions = emittersModeOptions !== null && emittersModeOptions !== void 0 ? emittersModeOptions : emitterOptions, ePosition = this.container.interactivity.mouse.clickPosition;\n if (emittersOptions instanceof Array) {\n for (const emitterOptions of emittersOptions) {\n this.addEmitter(emitterOptions, ePosition);\n }\n }\n else {\n this.addEmitter(deepExtend({}, emittersOptions), ePosition);\n }\n }\n }\n init(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (!options) {\n return;\n }\n if (options.emitters) {\n if (options.emitters instanceof Array) {\n this.emitters = options.emitters.map((s) => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.emitters instanceof Array) {\n this.emitters = new Emitter();\n }\n this.emitters.load(options.emitters);\n }\n }\n const interactivityEmitters = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;\n if (interactivityEmitters) {\n if (interactivityEmitters instanceof Array) {\n this.interactivityEmitters = {\n random: {\n count: 1,\n enable: true,\n },\n value: interactivityEmitters.map((s) => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n }),\n };\n }\n else {\n const emitterMode = interactivityEmitters;\n if (emitterMode.value !== undefined) {\n if (emitterMode.value instanceof Array) {\n this.interactivityEmitters = {\n random: {\n count: (_c = this.interactivityEmitters.random.count) !== null && _c !== void 0 ? _c : 1,\n enable: (_d = this.interactivityEmitters.random.enable) !== null && _d !== void 0 ? _d : false,\n },\n value: emitterMode.value.map((s) => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n }),\n };\n }\n else {\n const tmp = new Emitter();\n tmp.load(emitterMode.value);\n this.interactivityEmitters = {\n random: {\n count: (_e = this.interactivityEmitters.random.count) !== null && _e !== void 0 ? _e : 1,\n enable: (_f = this.interactivityEmitters.random.enable) !== null && _f !== void 0 ? _f : false,\n },\n value: tmp,\n };\n }\n }\n else {\n const tmp = new Emitter();\n tmp.load(interactivityEmitters);\n this.interactivityEmitters = {\n random: {\n count: (_g = this.interactivityEmitters.random.count) !== null && _g !== void 0 ? _g : 1,\n enable: (_h = this.interactivityEmitters.random.enable) !== null && _h !== void 0 ? _h : false,\n },\n value: tmp,\n };\n }\n }\n }\n if (this.emitters instanceof Array) {\n for (const emitterOptions of this.emitters) {\n this.addEmitter(emitterOptions);\n }\n }\n else {\n this.addEmitter(this.emitters);\n }\n }\n pause() {\n for (const emitter of this.array) {\n emitter.pause();\n }\n }\n play() {\n for (const emitter of this.array) {\n emitter.play();\n }\n }\n removeEmitter(emitter) {\n const index = this.array.indexOf(emitter);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n resize() {\n for (const emitter of this.array) {\n emitter.resize();\n }\n }\n stop() {\n this.array = [];\n }\n update(delta) {\n for (const emitter of this.array) {\n emitter.update(delta);\n }\n }\n}\n_Emitters_engine = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _ShapeManager_engine;\nconst shapes = new Map();\nexport class ShapeManager {\n constructor(engine) {\n _ShapeManager_engine.set(this, void 0);\n __classPrivateFieldSet(this, _ShapeManager_engine, engine, \"f\");\n }\n addShape(name, drawer) {\n if (!this.getShape(name)) {\n shapes.set(name, drawer);\n }\n }\n getShape(name) {\n return shapes.get(name);\n }\n getSupportedShapes() {\n return shapes.keys();\n }\n}\n_ShapeManager_engine = new WeakMap();\n","function randomSquareCoordinate(position, offset) {\n return position + offset * (Math.random() - 0.5);\n}\nexport class SquareShape {\n randomPosition(position, size, fill) {\n if (fill) {\n return {\n x: randomSquareCoordinate(position.x, size.width),\n y: randomSquareCoordinate(position.y, size.height),\n };\n }\n else {\n const halfW = size.width / 2, halfH = size.height / 2, side = Math.floor(Math.random() * 4), v = (Math.random() - 0.5) * 2;\n switch (side) {\n case 0:\n return {\n x: position.x + v * halfW,\n y: position.y - halfH,\n };\n case 1:\n return {\n x: position.x - halfW,\n y: position.y + v * halfH,\n };\n case 2:\n return {\n x: position.x + v * halfW,\n y: position.y + halfH,\n };\n case 3:\n default:\n return {\n x: position.x + halfW,\n y: position.y + v * halfH,\n };\n }\n }\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EmittersPlugin_engine;\nimport { CircleShape } from \"./Shapes/Circle/CircleShape\";\nimport { Emitter } from \"./Options/Classes/Emitter\";\nimport { Emitters } from \"./Emitters\";\nimport { ShapeManager } from \"./ShapeManager\";\nimport { SquareShape } from \"./Shapes/Square/SquareShape\";\nimport { isInArray } from \"tsparticles-engine\";\nclass EmittersPlugin {\n constructor(engine) {\n _EmittersPlugin_engine.set(this, void 0);\n __classPrivateFieldSet(this, _EmittersPlugin_engine, engine, \"f\");\n this.id = \"emitters\";\n }\n getPlugin(container) {\n return new Emitters(__classPrivateFieldGet(this, _EmittersPlugin_engine, \"f\"), container);\n }\n loadOptions(options, source) {\n var _a, _b, _c, _d, _e, _f;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n if (source === null || source === void 0 ? void 0 : source.emitters) {\n if ((source === null || source === void 0 ? void 0 : source.emitters) instanceof Array) {\n optionsCast.emitters = source === null || source === void 0 ? void 0 : source.emitters.map((s) => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let emitterOptions = optionsCast.emitters;\n if ((emitterOptions === null || emitterOptions === void 0 ? void 0 : emitterOptions.load) === undefined) {\n optionsCast.emitters = emitterOptions = new Emitter();\n }\n emitterOptions.load(source === null || source === void 0 ? void 0 : source.emitters);\n }\n }\n const interactivityEmitters = (_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;\n if (interactivityEmitters) {\n if (interactivityEmitters instanceof Array) {\n optionsCast.interactivity.modes.emitters = {\n random: {\n count: 1,\n enable: true,\n },\n value: interactivityEmitters.map((s) => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n }),\n };\n }\n else {\n const emitterMode = interactivityEmitters;\n if (emitterMode.value !== undefined) {\n if (emitterMode.value instanceof Array) {\n optionsCast.interactivity.modes.emitters = {\n random: {\n count: (_c = emitterMode.random.count) !== null && _c !== void 0 ? _c : 1,\n enable: (_d = emitterMode.random.enable) !== null && _d !== void 0 ? _d : false,\n },\n value: emitterMode.value.map((s) => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n }),\n };\n }\n else {\n const tmp = new Emitter();\n tmp.load(emitterMode.value);\n optionsCast.interactivity.modes.emitters = {\n random: {\n count: (_e = emitterMode.random.count) !== null && _e !== void 0 ? _e : 1,\n enable: (_f = emitterMode.random.enable) !== null && _f !== void 0 ? _f : false,\n },\n value: tmp,\n };\n }\n }\n else {\n const emitterOptions = (optionsCast.interactivity.modes.emitters = {\n random: {\n count: 1,\n enable: false,\n },\n value: new Emitter(),\n });\n emitterOptions.value.load(interactivityEmitters);\n }\n }\n }\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (!options) {\n return false;\n }\n const emitters = options.emitters;\n return ((emitters instanceof Array && !!emitters.length) ||\n emitters !== undefined ||\n (!!((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) &&\n isInArray(\"emitter\", options.interactivity.events.onClick.mode)));\n }\n}\n_EmittersPlugin_engine = new WeakMap();\nexport async function loadEmittersPlugin(engine) {\n if (!engine.emitterShapeManager) {\n engine.emitterShapeManager = new ShapeManager(engine);\n }\n if (!engine.addEmitterShape) {\n engine.addEmitterShape = (name, shape) => {\n var _a;\n (_a = engine.emitterShapeManager) === null || _a === void 0 ? void 0 : _a.addShape(name, shape);\n };\n }\n const plugin = new EmittersPlugin(engine);\n await engine.addPlugin(plugin);\n engine.addEmitterShape(\"circle\", new CircleShape());\n engine.addEmitterShape(\"square\", new SquareShape());\n}\nexport * from \"./EmitterContainer\";\nexport * from \"./EmittersEngine\";\nexport * from \"./Enums/EmitterClickMode\";\nexport * from \"./Enums/EmitterShapeType\";\nexport * from \"./Options/Interfaces/IEmitterOptions\";\n","import { ExternalInteractorBase, isInArray } from \"tsparticles-engine\";\nexport class TrailMaker extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.delay = 0;\n }\n clear() {\n }\n init() {\n }\n async interact(delta) {\n var _a, _b, _c, _d;\n if (!this.container.retina.reduceFactor) {\n return;\n }\n const container = this.container, options = container.actualOptions, trailOptions = options.interactivity.modes.trail, optDelay = (trailOptions.delay * 1000) / this.container.retina.reduceFactor;\n if (this.delay < optDelay) {\n this.delay += delta.value;\n }\n if (this.delay < optDelay) {\n return;\n }\n let canEmit = true;\n if (trailOptions.pauseOnStop) {\n if (container.interactivity.mouse.position === this.lastPosition ||\n (((_a = container.interactivity.mouse.position) === null || _a === void 0 ? void 0 : _a.x) === ((_b = this.lastPosition) === null || _b === void 0 ? void 0 : _b.x) &&\n ((_c = container.interactivity.mouse.position) === null || _c === void 0 ? void 0 : _c.y) === ((_d = this.lastPosition) === null || _d === void 0 ? void 0 : _d.y))) {\n canEmit = false;\n }\n }\n if (container.interactivity.mouse.position) {\n this.lastPosition = {\n x: container.interactivity.mouse.position.x,\n y: container.interactivity.mouse.position.y,\n };\n }\n else {\n delete this.lastPosition;\n }\n if (canEmit) {\n container.particles.push(trailOptions.quantity, container.interactivity.mouse, trailOptions.particles);\n }\n this.delay -= optDelay;\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events;\n return ((mouse.clicking && mouse.inside && !!mouse.position && isInArray(\"trail\", events.onClick.mode)) ||\n (mouse.inside && !!mouse.position && isInArray(\"trail\", events.onHover.mode)));\n }\n reset() {\n }\n}\n","import { OptionsColor, stringToAlpha } from \"tsparticles-engine\";\nexport class PolygonMaskDrawStroke {\n constructor() {\n this.color = new OptionsColor();\n this.width = 0.5;\n this.opacity = 1;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (typeof this.color.value === \"string\") {\n this.opacity = (_a = stringToAlpha(this.color.value)) !== null && _a !== void 0 ? _a : this.opacity;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}\n","import { OptionsColor } from \"tsparticles-engine\";\nimport { PolygonMaskDrawStroke } from \"./PolygonMaskDrawStroke\";\nexport class PolygonMaskDraw {\n constructor() {\n this.enable = false;\n this.stroke = new PolygonMaskDrawStroke();\n }\n get lineColor() {\n return this.stroke.color;\n }\n set lineColor(value) {\n this.stroke.color = OptionsColor.create(this.stroke.color, value);\n }\n get lineWidth() {\n return this.stroke.width;\n }\n set lineWidth(value) {\n this.stroke.width = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const stroke = (_a = data.stroke) !== null && _a !== void 0 ? _a : {\n color: data.lineColor,\n width: data.lineWidth,\n };\n this.stroke.load(stroke);\n }\n}\n","export class PolygonMaskInline {\n constructor() {\n this.arrangement = \"one-per-point\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.arrangement !== undefined) {\n this.arrangement = data.arrangement;\n }\n }\n}\n","export class PolygonMaskLocalSvg {\n constructor() {\n this.path = [];\n this.size = {\n height: 0,\n width: 0,\n };\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.path !== undefined) {\n this.path = data.path;\n }\n if (data.size !== undefined) {\n if (data.size.width !== undefined) {\n this.size.width = data.size.width;\n }\n if (data.size.height !== undefined) {\n this.size.height = data.size.height;\n }\n }\n }\n}\n","export class PolygonMaskMove {\n constructor() {\n this.radius = 10;\n this.type = \"path\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n","import { PolygonMaskDraw } from \"./PolygonMaskDraw\";\nimport { PolygonMaskInline } from \"./PolygonMaskInline\";\nimport { PolygonMaskLocalSvg } from \"./PolygonMaskLocalSvg\";\nimport { PolygonMaskMove } from \"./PolygonMaskMove\";\nimport { deepExtend } from \"tsparticles-engine\";\nexport class PolygonMask {\n constructor() {\n this.draw = new PolygonMaskDraw();\n this.enable = false;\n this.inline = new PolygonMaskInline();\n this.move = new PolygonMaskMove();\n this.scale = 1;\n this.type = \"none\";\n }\n get inlineArrangement() {\n return this.inline.arrangement;\n }\n set inlineArrangement(value) {\n this.inline.arrangement = value;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.draw.load(data.draw);\n this.inline.load(data.inline);\n this.move.load(data.move);\n if (data.scale !== undefined) {\n this.scale = data.scale;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n else {\n this.enable = this.type !== \"none\";\n }\n if (data.url !== undefined) {\n this.url = data.url;\n }\n if (data.data !== undefined) {\n if (typeof data.data === \"string\") {\n this.data = data.data;\n }\n else {\n this.data = new PolygonMaskLocalSvg();\n this.data.load(data.data);\n }\n }\n if (data.position !== undefined) {\n this.position = deepExtend({}, data.position);\n }\n }\n}\n","import { Vector, getDistances, getStyleFromRgb, rangeColorToRgb } from \"tsparticles-engine\";\nexport function drawPolygonMask(context, rawData, stroke) {\n const color = rangeColorToRgb(stroke.color);\n if (!color) {\n return;\n }\n context.beginPath();\n context.moveTo(rawData[0].x, rawData[0].y);\n for (const item of rawData) {\n context.lineTo(item.x, item.y);\n }\n context.closePath();\n context.strokeStyle = getStyleFromRgb(color);\n context.lineWidth = stroke.width;\n context.stroke();\n}\nexport function drawPolygonMaskPath(context, path, stroke, position) {\n context.translate(position.x, position.y);\n const color = rangeColorToRgb(stroke.color);\n if (!color) {\n return;\n }\n context.strokeStyle = getStyleFromRgb(color, stroke.opacity);\n context.lineWidth = stroke.width;\n context.stroke(path);\n}\nexport function parsePaths(paths, scale, offset) {\n var _a;\n const res = [];\n for (const path of paths) {\n const segments = path.element.pathSegList, len = (_a = segments === null || segments === void 0 ? void 0 : segments.numberOfItems) !== null && _a !== void 0 ? _a : 0, p = {\n x: 0,\n y: 0,\n };\n for (let i = 0; i < len; i++) {\n const segment = segments === null || segments === void 0 ? void 0 : segments.getItem(i);\n const svgPathSeg = window.SVGPathSeg;\n switch (segment === null || segment === void 0 ? void 0 : segment.pathSegType) {\n case svgPathSeg.PATHSEG_MOVETO_ABS:\n case svgPathSeg.PATHSEG_LINETO_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n case svgPathSeg.PATHSEG_ARC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: {\n const absSeg = segment;\n p.x = absSeg.x;\n p.y = absSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n p.x = segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n p.y = segment.y;\n break;\n case svgPathSeg.PATHSEG_LINETO_REL:\n case svgPathSeg.PATHSEG_MOVETO_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n case svgPathSeg.PATHSEG_ARC_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: {\n const relSeg = segment;\n p.x += relSeg.x;\n p.y += relSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n p.x += segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n p.y += segment.y;\n break;\n case svgPathSeg.PATHSEG_UNKNOWN:\n case svgPathSeg.PATHSEG_CLOSEPATH:\n continue;\n }\n res.push({\n x: p.x * scale + offset.x,\n y: p.y * scale + offset.y,\n });\n }\n }\n return res;\n}\nexport function calcClosestPtOnSegment(s1, s2, pos) {\n const { dx, dy } = getDistances(pos, s1), { dx: dxx, dy: dyy } = getDistances(s2, s1), t = (dx * dxx + dy * dyy) / (dxx ** 2 + dyy ** 2), res = {\n x: s1.x + dxx * t,\n y: s1.x + dyy * t,\n isOnSegment: t >= 0 && t <= 1,\n };\n if (t < 0) {\n res.x = s1.x;\n res.y = s1.y;\n }\n else if (t > 1) {\n res.x = s2.x;\n res.y = s2.y;\n }\n return res;\n}\nexport function segmentBounce(start, stop, velocity) {\n const { dx, dy } = getDistances(start, stop), wallAngle = Math.atan2(dy, dx), wallNormal = Vector.create(Math.sin(wallAngle), -Math.cos(wallAngle)), d = 2 * (velocity.x * wallNormal.x + velocity.y * wallNormal.y);\n wallNormal.multTo(d);\n velocity.subFrom(wallNormal);\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PolygonMaskInstance_engine;\nimport { calcClosestPtOnSegment, drawPolygonMask, drawPolygonMaskPath, parsePaths, segmentBounce } from \"./utils\";\nimport { deepExtend, getDistance, getDistances, itemFromArray, noPolygonDataLoaded, noPolygonFound, } from \"tsparticles-engine\";\nimport { PolygonMask } from \"./Options/Classes/PolygonMask\";\nexport class PolygonMaskInstance {\n constructor(container, engine) {\n this.container = container;\n _PolygonMaskInstance_engine.set(this, void 0);\n __classPrivateFieldSet(this, _PolygonMaskInstance_engine, engine, \"f\");\n this.dimension = {\n height: 0,\n width: 0,\n };\n this.path2DSupported = !!window.Path2D;\n this.options = new PolygonMask();\n this.polygonMaskMoveRadius = this.options.move.radius * container.retina.pixelRatio;\n }\n clickPositionValid(position) {\n const options = this.options;\n return (options.enable &&\n options.type !== \"none\" &&\n options.type !== \"inline\" &&\n this.checkInsidePolygon(position));\n }\n draw(context) {\n var _a;\n if (!((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n return;\n }\n const options = this.options, polygonDraw = options.draw;\n if (!options.enable || !polygonDraw.enable) {\n return;\n }\n const rawData = this.raw;\n for (const path of this.paths) {\n const path2d = path.path2d, path2dSupported = this.path2DSupported;\n if (!context) {\n continue;\n }\n if (path2dSupported && path2d && this.offset) {\n drawPolygonMaskPath(context, path2d, polygonDraw.stroke, this.offset);\n }\n else if (rawData) {\n drawPolygonMask(context, rawData, polygonDraw.stroke);\n }\n }\n }\n async initAsync(options) {\n this.options.load(options === null || options === void 0 ? void 0 : options.polygon);\n const polygonMaskOptions = this.options;\n this.polygonMaskMoveRadius = polygonMaskOptions.move.radius * this.container.retina.pixelRatio;\n if (polygonMaskOptions.enable) {\n await this.initRawData();\n }\n }\n particleBounce(particle, delta, direction) {\n return this.polygonBounce(particle, delta, direction);\n }\n particlePosition(position) {\n var _a, _b;\n const options = this.options;\n if (!(options.enable && ((_b = (_a = this.raw) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0)) {\n return;\n }\n return deepExtend({}, position ? position : this.randomPoint());\n }\n particlesInitialization() {\n const options = this.options;\n if (options.enable &&\n options.type === \"inline\" &&\n (options.inline.arrangement === \"one-per-point\" ||\n options.inline.arrangement === \"per-point\")) {\n this.drawPoints();\n return true;\n }\n return false;\n }\n resize() {\n const container = this.container, options = this.options;\n if (!(options.enable && options.type !== \"none\")) {\n return;\n }\n if (this.redrawTimeout) {\n clearTimeout(this.redrawTimeout);\n }\n this.redrawTimeout = window.setTimeout(async () => {\n await this.initRawData(true);\n await container.particles.redraw();\n }, 250);\n }\n stop() {\n delete this.raw;\n delete this.paths;\n }\n checkInsidePolygon(position) {\n var _a, _b;\n const container = this.container, options = this.options;\n if (!options.enable || options.type === \"none\" || options.type === \"inline\") {\n return true;\n }\n if (!this.raw) {\n throw new Error(noPolygonFound);\n }\n const canvasSize = container.canvas.size, x = (_a = position === null || position === void 0 ? void 0 : position.x) !== null && _a !== void 0 ? _a : Math.random() * canvasSize.width, y = (_b = position === null || position === void 0 ? void 0 : position.y) !== null && _b !== void 0 ? _b : Math.random() * canvasSize.height;\n let inside = false;\n for (let i = 0, j = this.raw.length - 1; i < this.raw.length; j = i++) {\n const pi = this.raw[i], pj = this.raw[j], intersect = pi.y > y !== pj.y > y && x < ((pj.x - pi.x) * (y - pi.y)) / (pj.y - pi.y) + pi.x;\n if (intersect) {\n inside = !inside;\n }\n }\n return options.type === \"inside\"\n ? inside\n : options.type === \"outside\"\n ? !inside\n : false;\n }\n createPath2D() {\n var _a, _b;\n const options = this.options;\n if (!this.path2DSupported || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n return;\n }\n for (const path of this.paths) {\n const pathData = (_b = path.element) === null || _b === void 0 ? void 0 : _b.getAttribute(\"d\");\n if (pathData) {\n const path2d = new Path2D(pathData), matrix = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix(), finalPath = new Path2D(), transform = matrix.scale(options.scale);\n if (finalPath.addPath) {\n finalPath.addPath(path2d, transform);\n path.path2d = finalPath;\n }\n else {\n delete path.path2d;\n }\n }\n else {\n delete path.path2d;\n }\n if (path.path2d || !this.raw) {\n continue;\n }\n path.path2d = new Path2D();\n path.path2d.moveTo(this.raw[0].x, this.raw[0].y);\n this.raw.forEach((pos, i) => {\n var _a;\n if (i > 0) {\n (_a = path.path2d) === null || _a === void 0 ? void 0 : _a.lineTo(pos.x, pos.y);\n }\n });\n path.path2d.closePath();\n }\n }\n async downloadSvgPath(svgUrl, force) {\n const options = this.options, url = svgUrl || options.url, forceDownload = force !== null && force !== void 0 ? force : false;\n if (!url || (this.paths !== undefined && !forceDownload)) {\n return this.raw;\n }\n const req = await fetch(url);\n if (!req.ok) {\n throw new Error(\"tsParticles Error - Error occurred during polygon mask download\");\n }\n return this.parseSvgPath(await req.text(), force);\n }\n drawPoints() {\n if (!this.raw) {\n return;\n }\n for (const item of this.raw) {\n this.container.particles.addParticle({\n x: item.x,\n y: item.y,\n });\n }\n }\n getEquidistantPointByIndex(index) {\n var _a, _b, _c, _d, _e, _f, _g;\n const options = this.container.actualOptions, polygonMaskOptions = this.options;\n if (!this.raw || !this.raw.length || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length))\n throw new Error(noPolygonDataLoaded);\n let offset = 0, point;\n const totalLength = this.paths.reduce((tot, path) => tot + path.length, 0), distance = totalLength / options.particles.number.value;\n for (const path of this.paths) {\n const pathDistance = distance * index - offset;\n if (pathDistance <= path.length) {\n point = path.element.getPointAtLength(pathDistance);\n break;\n }\n else {\n offset += path.length;\n }\n }\n return {\n x: ((_b = point === null || point === void 0 ? void 0 : point.x) !== null && _b !== void 0 ? _b : 0) * polygonMaskOptions.scale + ((_d = (_c = this.offset) === null || _c === void 0 ? void 0 : _c.x) !== null && _d !== void 0 ? _d : 0),\n y: ((_e = point === null || point === void 0 ? void 0 : point.y) !== null && _e !== void 0 ? _e : 0) * polygonMaskOptions.scale + ((_g = (_f = this.offset) === null || _f === void 0 ? void 0 : _f.y) !== null && _g !== void 0 ? _g : 0),\n };\n }\n getPointByIndex(index) {\n if (!this.raw || !this.raw.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = this.raw[index % this.raw.length];\n return {\n x: coords.x,\n y: coords.y,\n };\n }\n getRandomPoint() {\n if (!this.raw || !this.raw.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = itemFromArray(this.raw);\n return {\n x: coords.x,\n y: coords.y,\n };\n }\n getRandomPointByLength() {\n var _a, _b, _c;\n const options = this.options;\n if (!this.raw || !this.raw.length || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n throw new Error(noPolygonDataLoaded);\n }\n const path = itemFromArray(this.paths), distance = Math.floor(Math.random() * path.length) + 1, point = path.element.getPointAtLength(distance);\n return {\n x: point.x * options.scale + (((_b = this.offset) === null || _b === void 0 ? void 0 : _b.x) || 0),\n y: point.y * options.scale + (((_c = this.offset) === null || _c === void 0 ? void 0 : _c.y) || 0),\n };\n }\n async initRawData(force) {\n const options = this.options;\n if (options.url) {\n this.raw = await this.downloadSvgPath(options.url, force);\n }\n else if (options.data) {\n const data = options.data;\n let svg;\n if (typeof data !== \"string\") {\n const path = data.path instanceof Array\n ? data.path.map((t) => ``).join(\"\")\n : ``;\n const namespaces = 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n svg = `${path}`;\n }\n else {\n svg = data;\n }\n this.raw = this.parseSvgPath(svg, force);\n }\n this.createPath2D();\n __classPrivateFieldGet(this, _PolygonMaskInstance_engine, \"f\").dispatchEvent(\"polygonMaskLoaded\", {\n container: this.container,\n });\n }\n parseSvgPath(xml, force) {\n var _a, _b, _c;\n const forceDownload = force !== null && force !== void 0 ? force : false;\n if (this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const container = this.container, options = this.options, parser = new DOMParser(), doc = parser.parseFromString(xml, \"image/svg+xml\"), svg = doc.getElementsByTagName(\"svg\")[0];\n let svgPaths = svg.getElementsByTagName(\"path\");\n if (!svgPaths.length) {\n svgPaths = doc.getElementsByTagName(\"path\");\n }\n this.paths = [];\n for (let i = 0; i < svgPaths.length; i++) {\n const path = svgPaths.item(i);\n if (path) {\n this.paths.push({\n element: path,\n length: path.getTotalLength(),\n });\n }\n }\n const pxRatio = container.retina.pixelRatio, scale = options.scale / pxRatio;\n this.dimension.width = parseFloat((_a = svg.getAttribute(\"width\")) !== null && _a !== void 0 ? _a : \"0\") * scale;\n this.dimension.height = parseFloat((_b = svg.getAttribute(\"height\")) !== null && _b !== void 0 ? _b : \"0\") * scale;\n const position = (_c = options.position) !== null && _c !== void 0 ? _c : {\n x: 50,\n y: 50,\n };\n this.offset = {\n x: (container.canvas.size.width * position.x) / (100 * pxRatio) - this.dimension.width / 2,\n y: (container.canvas.size.height * position.y) / (100 * pxRatio) - this.dimension.height / 2,\n };\n return parsePaths(this.paths, scale, this.offset);\n }\n polygonBounce(particle, _delta, direction) {\n const options = this.options;\n if (!this.raw || !options.enable || direction !== \"top\") {\n return false;\n }\n if (options.type === \"inside\" || options.type === \"outside\") {\n let closest, dx, dy;\n const pos = particle.getPosition(), radius = particle.getRadius();\n for (let i = 0, j = this.raw.length - 1; i < this.raw.length; j = i++) {\n const pi = this.raw[i], pj = this.raw[j];\n closest = calcClosestPtOnSegment(pi, pj, pos);\n const dist = getDistances(pos, closest);\n [dx, dy] = [dist.dx, dist.dy];\n if (dist.distance < radius) {\n segmentBounce(pi, pj, particle.velocity);\n return true;\n }\n }\n if (closest && dx !== undefined && dy !== undefined && !this.checkInsidePolygon(pos)) {\n const factor = { x: 1, y: 1 };\n if (particle.position.x >= closest.x) {\n factor.x = -1;\n }\n if (particle.position.y >= closest.y) {\n factor.y = -1;\n }\n particle.position.x = closest.x + radius * 2 * factor.x;\n particle.position.y = closest.y + radius * 2 * factor.y;\n particle.velocity.mult(-1);\n return true;\n }\n }\n else if (options.type === \"inline\" && particle.initialPosition) {\n const dist = getDistance(particle.initialPosition, particle.getPosition());\n if (dist > this.polygonMaskMoveRadius) {\n particle.velocity.x = particle.velocity.y / 2 - particle.velocity.x;\n particle.velocity.y = particle.velocity.x / 2 - particle.velocity.y;\n return true;\n }\n }\n return false;\n }\n randomPoint() {\n const container = this.container, options = this.options;\n let position;\n if (options.type === \"inline\") {\n switch (options.inline.arrangement) {\n case \"random-point\":\n position = this.getRandomPoint();\n break;\n case \"random-length\":\n position = this.getRandomPointByLength();\n break;\n case \"equidistant\":\n position = this.getEquidistantPointByIndex(container.particles.count);\n break;\n case \"one-per-point\":\n case \"per-point\":\n default:\n position = this.getPointByIndex(container.particles.count);\n }\n }\n else {\n position = {\n x: Math.random() * container.canvas.size.width,\n y: Math.random() * container.canvas.size.height,\n };\n }\n if (this.checkInsidePolygon(position)) {\n return position;\n }\n else {\n return this.randomPoint();\n }\n }\n}\n_PolygonMaskInstance_engine = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PolygonMaskPlugin_engine;\nimport \"./pathseg\";\nimport { PolygonMask } from \"./Options/Classes/PolygonMask\";\nimport { PolygonMaskInstance } from \"./PolygonMaskInstance\";\nclass PolygonMaskPlugin {\n constructor(engine) {\n _PolygonMaskPlugin_engine.set(this, void 0);\n this.id = \"polygonMask\";\n __classPrivateFieldSet(this, _PolygonMaskPlugin_engine, engine, \"f\");\n }\n getPlugin(container) {\n return new PolygonMaskInstance(container, __classPrivateFieldGet(this, _PolygonMaskPlugin_engine, \"f\"));\n }\n loadOptions(options, source) {\n if (!this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n let polygonOptions = optionsCast.polygon;\n if ((polygonOptions === null || polygonOptions === void 0 ? void 0 : polygonOptions.load) === undefined) {\n optionsCast.polygon = polygonOptions = new PolygonMask();\n }\n polygonOptions.load(source === null || source === void 0 ? void 0 : source.polygon);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n return ((_b = (_a = options === null || options === void 0 ? void 0 : options.polygon) === null || _a === void 0 ? void 0 : _a.enable) !== null && _b !== void 0 ? _b : (((_c = options === null || options === void 0 ? void 0 : options.polygon) === null || _c === void 0 ? void 0 : _c.type) !== undefined && options.polygon.type !== \"none\"));\n }\n}\n_PolygonMaskPlugin_engine = new WeakMap();\nexport async function loadPolygonMaskPlugin(engine) {\n const plugin = new PolygonMaskPlugin(engine);\n await engine.addPlugin(plugin);\n}\nexport * from \"./Enums/PolygonMaskInlineArrangement\";\nexport * from \"./Enums/PolygonMaskMoveType\";\nexport * from \"./Enums/PolygonMaskType\";\nexport * from \"./Options/Interfaces/IPolygonMaskOptions\";\n","import { setRangeValue } from \"tsparticles-engine\";\nexport class RollLight {\n constructor() {\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\n","import { OptionsColor, setRangeValue } from \"tsparticles-engine\";\nimport { RollLight } from \"./RollLight\";\nexport class Roll {\n constructor() {\n this.darken = new RollLight();\n this.enable = false;\n this.enlighten = new RollLight();\n this.mode = \"vertical\";\n this.speed = 25;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.backColor !== undefined) {\n this.backColor = OptionsColor.create(this.backColor, data.backColor);\n }\n this.darken.load(data.darken);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.enlighten.load(data.enlighten);\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n }\n}\n","import { getRangeValue, rangeColorToHsl } from \"tsparticles-engine\";\nimport { Roll } from \"./Options/Classes/Roll\";\nfunction updateRoll(particle, delta) {\n const roll = particle.options.roll;\n if (!particle.roll || !(roll === null || roll === void 0 ? void 0 : roll.enable)) {\n return;\n }\n const speed = particle.roll.speed * delta.factor, max = 2 * Math.PI;\n particle.roll.angle += speed;\n if (particle.roll.angle > max) {\n particle.roll.angle -= max;\n }\n}\nexport class RollUpdater {\n getTransformValues(particle) {\n var _a;\n const roll = ((_a = particle.roll) === null || _a === void 0 ? void 0 : _a.enable) && particle.roll, rollHorizontal = roll && roll.horizontal, rollVertical = roll && roll.vertical;\n return {\n a: rollHorizontal ? Math.cos(roll.angle) : undefined,\n d: rollVertical ? Math.sin(roll.angle) : undefined,\n };\n }\n init(particle) {\n const rollOpt = particle.options.roll;\n if (rollOpt === null || rollOpt === void 0 ? void 0 : rollOpt.enable) {\n particle.roll = {\n enable: rollOpt.enable,\n horizontal: rollOpt.mode === \"horizontal\" || rollOpt.mode === \"both\",\n vertical: rollOpt.mode === \"vertical\" || rollOpt.mode === \"both\",\n angle: Math.random() * Math.PI * 2,\n speed: getRangeValue(rollOpt.speed) / 360,\n };\n if (rollOpt.backColor) {\n particle.backColor = rangeColorToHsl(rollOpt.backColor);\n }\n else if (rollOpt.darken.enable && rollOpt.enlighten.enable) {\n const alterType = Math.random() >= 0.5 ? \"darken\" : \"enlighten\";\n particle.roll.alter = {\n type: alterType,\n value: getRangeValue(alterType === \"darken\" ? rollOpt.darken.value : rollOpt.enlighten.value),\n };\n }\n else if (rollOpt.darken.enable) {\n particle.roll.alter = {\n type: \"darken\",\n value: getRangeValue(rollOpt.darken.value),\n };\n }\n else if (rollOpt.enlighten.enable) {\n particle.roll.alter = {\n type: \"enlighten\",\n value: getRangeValue(rollOpt.enlighten.value),\n };\n }\n }\n else {\n particle.roll = {\n enable: false,\n horizontal: false,\n vertical: false,\n angle: 0,\n speed: 0,\n };\n }\n }\n isEnabled(particle) {\n const roll = particle.options.roll;\n return !particle.destroyed && !particle.spawning && !!(roll === null || roll === void 0 ? void 0 : roll.enable);\n }\n loadOptions(options, ...sources) {\n for (const source of sources) {\n if (!(source === null || source === void 0 ? void 0 : source.roll)) {\n continue;\n }\n if (!options.roll) {\n options.roll = new Roll();\n }\n options.roll.load(source.roll);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateRoll(particle, delta);\n }\n}\n","import { getRangeValue } from \"tsparticles-engine\";\nfunction updateAngle(particle, delta) {\n var _a, _b;\n const rotate = particle.rotate;\n if (!rotate) {\n return;\n }\n const rotateOptions = particle.options.rotate, rotateAnimation = rotateOptions.animation, speed = ((_a = rotate.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor, max = 2 * Math.PI, decay = (_b = rotate.decay) !== null && _b !== void 0 ? _b : 1;\n if (!rotateAnimation.enable) {\n return;\n }\n switch (rotate.status) {\n case 0:\n rotate.value += speed;\n if (rotate.value > max) {\n rotate.value -= max;\n }\n break;\n case 1:\n default:\n rotate.value -= speed;\n if (rotate.value < 0) {\n rotate.value += max;\n }\n break;\n }\n if (rotate.velocity && decay !== 1) {\n rotate.velocity *= decay;\n }\n}\nexport class AngleUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const rotateOptions = particle.options.rotate;\n particle.rotate = {\n enable: rotateOptions.animation.enable,\n value: (getRangeValue(rotateOptions.value) * Math.PI) / 180,\n };\n let rotateDirection = rotateOptions.direction;\n if (rotateDirection === \"random\") {\n const index = Math.floor(Math.random() * 2);\n rotateDirection = index > 0 ? \"counter-clockwise\" : \"clockwise\";\n }\n switch (rotateDirection) {\n case \"counter-clockwise\":\n case \"counterClockwise\":\n particle.rotate.status = 1;\n break;\n case \"clockwise\":\n particle.rotate.status = 0;\n break;\n }\n const rotateAnimation = particle.options.rotate.animation;\n if (rotateAnimation.enable) {\n particle.rotate.decay = 1 - getRangeValue(rotateAnimation.decay);\n particle.rotate.velocity =\n (getRangeValue(rotateAnimation.speed) / 360) * this.container.retina.reduceFactor;\n if (!rotateAnimation.sync) {\n particle.rotate.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n const rotate = particle.options.rotate, rotateAnimation = rotate.animation;\n return !particle.destroyed && !particle.spawning && !rotate.path && rotateAnimation.enable;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateAngle(particle, delta);\n }\n}\n","import { getDistance, getRangeMax, getRangeValue } from \"tsparticles-engine\";\nimport { applyDistance, applyPath, getProximitySpeedFactor, spin } from \"./Utils\";\nexport class BaseMover {\n init(particle) {\n var _a;\n const container = particle.container, options = particle.options, gravityOptions = options.move.gravity, spinOptions = options.move.spin;\n particle.gravity = {\n enable: gravityOptions.enable,\n acceleration: getRangeValue(gravityOptions.acceleration),\n inverse: gravityOptions.inverse,\n };\n if (spinOptions.enable) {\n const spinPos = (_a = spinOptions.position) !== null && _a !== void 0 ? _a : { x: 50, y: 50 };\n const spinCenter = {\n x: (spinPos.x / 100) * container.canvas.size.width,\n y: (spinPos.y / 100) * container.canvas.size.height,\n };\n const pos = particle.getPosition();\n const distance = getDistance(pos, spinCenter);\n const spinAcceleration = getRangeValue(spinOptions.acceleration);\n particle.retina.spinAcceleration = spinAcceleration * container.retina.pixelRatio;\n particle.spin = {\n center: spinCenter,\n direction: particle.velocity.x >= 0 ? \"clockwise\" : \"counter-clockwise\",\n angle: particle.velocity.angle,\n radius: distance,\n acceleration: particle.retina.spinAcceleration,\n };\n }\n }\n isEnabled(particle) {\n return !particle.destroyed && particle.options.move.enable;\n }\n move(particle, delta) {\n var _a, _b, _c;\n var _d, _e;\n const particleOptions = particle.options, moveOptions = particleOptions.move;\n if (!moveOptions.enable) {\n return;\n }\n const container = particle.container, slowFactor = getProximitySpeedFactor(particle), baseSpeed = ((_a = (_d = particle.retina).moveSpeed) !== null && _a !== void 0 ? _a : (_d.moveSpeed = getRangeValue(moveOptions.speed) * container.retina.pixelRatio)) *\n container.retina.reduceFactor, moveDrift = ((_b = (_e = particle.retina).moveDrift) !== null && _b !== void 0 ? _b : (_e.moveDrift = getRangeValue(particle.options.move.drift) * container.retina.pixelRatio)), maxSize = getRangeMax(particleOptions.size.value) * container.retina.pixelRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : 1, speedFactor = sizeFactor * slowFactor * (delta.factor || 1), diffFactor = 2, moveSpeed = (baseSpeed * speedFactor) / diffFactor;\n applyPath(particle, delta);\n const gravityOptions = particle.gravity, gravityFactor = (gravityOptions === null || gravityOptions === void 0 ? void 0 : gravityOptions.enable) && gravityOptions.inverse ? -1 : 1;\n if ((gravityOptions === null || gravityOptions === void 0 ? void 0 : gravityOptions.enable) && moveSpeed) {\n particle.velocity.y += (gravityFactor * (gravityOptions.acceleration * delta.factor)) / (60 * moveSpeed);\n }\n if (moveDrift && moveSpeed) {\n particle.velocity.x += (moveDrift * delta.factor) / (60 * moveSpeed);\n }\n const decay = particle.moveDecay;\n if (decay != 1) {\n particle.velocity.multTo(decay);\n }\n const velocity = particle.velocity.mult(moveSpeed), maxSpeed = (_c = particle.retina.maxSpeed) !== null && _c !== void 0 ? _c : container.retina.maxSpeed;\n if ((gravityOptions === null || gravityOptions === void 0 ? void 0 : gravityOptions.enable) &&\n maxSpeed > 0 &&\n ((!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed) ||\n (gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed))) {\n velocity.y = gravityFactor * maxSpeed;\n if (moveSpeed) {\n particle.velocity.y = velocity.y / moveSpeed;\n }\n }\n const zIndexOptions = particle.options.zIndex, zVelocityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.velocityRate;\n if (moveOptions.spin.enable) {\n spin(particle, moveSpeed);\n }\n else {\n if (zVelocityFactor != 1) {\n velocity.multTo(zVelocityFactor);\n }\n particle.position.addTo(velocity);\n if (moveOptions.vibrate) {\n particle.position.x += Math.sin(particle.position.x * Math.cos(particle.position.y));\n particle.position.y += Math.cos(particle.position.y * Math.sin(particle.position.x));\n }\n }\n applyDistance(particle);\n }\n}\n","import { clamp, getDistance, getDistances, isInArray } from \"tsparticles-engine\";\nexport function applyDistance(particle) {\n const initialPosition = particle.initialPosition, { dx, dy } = getDistances(initialPosition, particle.position), dxFixed = Math.abs(dx), dyFixed = Math.abs(dy), hDistance = particle.retina.maxDistance.horizontal, vDistance = particle.retina.maxDistance.vertical;\n if (!hDistance && !vDistance) {\n return;\n }\n if (((hDistance && dxFixed >= hDistance) || (vDistance && dyFixed >= vDistance)) && !particle.misplaced) {\n particle.misplaced = (!!hDistance && dxFixed > hDistance) || (!!vDistance && dyFixed > vDistance);\n if (hDistance) {\n particle.velocity.x = particle.velocity.y / 2 - particle.velocity.x;\n }\n if (vDistance) {\n particle.velocity.y = particle.velocity.x / 2 - particle.velocity.y;\n }\n }\n else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) {\n particle.misplaced = false;\n }\n else if (particle.misplaced) {\n const pos = particle.position, vel = particle.velocity;\n if (hDistance && ((pos.x < initialPosition.x && vel.x < 0) || (pos.x > initialPosition.x && vel.x > 0))) {\n vel.x *= -Math.random();\n }\n if (vDistance && ((pos.y < initialPosition.y && vel.y < 0) || (pos.y > initialPosition.y && vel.y > 0))) {\n vel.y *= -Math.random();\n }\n }\n}\nexport function spin(particle, moveSpeed) {\n const container = particle.container;\n if (!particle.spin) {\n return;\n }\n const updateFunc = {\n x: particle.spin.direction === \"clockwise\" ? Math.cos : Math.sin,\n y: particle.spin.direction === \"clockwise\" ? Math.sin : Math.cos,\n };\n particle.position.x = particle.spin.center.x + particle.spin.radius * updateFunc.x(particle.spin.angle);\n particle.position.y = particle.spin.center.y + particle.spin.radius * updateFunc.y(particle.spin.angle);\n particle.spin.radius += particle.spin.acceleration;\n const maxCanvasSize = Math.max(container.canvas.size.width, container.canvas.size.height);\n if (particle.spin.radius > maxCanvasSize / 2) {\n particle.spin.radius = maxCanvasSize / 2;\n particle.spin.acceleration *= -1;\n }\n else if (particle.spin.radius < 0) {\n particle.spin.radius = 0;\n particle.spin.acceleration *= -1;\n }\n particle.spin.angle += (moveSpeed / 100) * (1 - particle.spin.radius / maxCanvasSize);\n}\nexport function applyPath(particle, delta) {\n const particlesOptions = particle.options;\n const pathOptions = particlesOptions.move.path;\n const pathEnabled = pathOptions.enable;\n if (!pathEnabled) {\n return;\n }\n const container = particle.container;\n if (particle.lastPathTime <= particle.pathDelay) {\n particle.lastPathTime += delta.value;\n return;\n }\n const path = container.pathGenerator.generate(particle);\n particle.velocity.addTo(path);\n if (pathOptions.clamp) {\n particle.velocity.x = clamp(particle.velocity.x, -1, 1);\n particle.velocity.y = clamp(particle.velocity.y, -1, 1);\n }\n particle.lastPathTime -= particle.pathDelay;\n}\nexport function getProximitySpeedFactor(particle) {\n const container = particle.container;\n const options = container.actualOptions;\n const active = isInArray(\"slow\", options.interactivity.events.onHover.mode);\n if (!active) {\n return 1;\n }\n const mousePos = particle.container.interactivity.mouse.position;\n if (!mousePos) {\n return 1;\n }\n const particlePos = particle.getPosition();\n const dist = getDistance(mousePos, particlePos);\n const radius = container.retina.slowModeRadius;\n if (dist > radius) {\n return 1;\n }\n const proximityFactor = dist / radius || 0;\n const slowFactor = options.interactivity.modes.slow.factor;\n return proximityFactor / slowFactor;\n}\n","export class CircleDrawer {\n draw(context, particle, radius) {\n context.arc(0, 0, radius, 0, Math.PI * 2, false);\n }\n getSidesCount() {\n return 12;\n }\n}\n","import { getHslAnimationFromHsl, randomInRange, rangeColorToHsl } from \"tsparticles-engine\";\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a, _b;\n const colorValue = value;\n if (!colorValue || !valueAnimation.enable) {\n return;\n }\n const offset = randomInRange(valueAnimation.offset), velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6, decay = (_b = value.decay) !== null && _b !== void 0 ? _b : 1;\n if (!decrease || colorValue.status === 0) {\n colorValue.value += velocity;\n if (decrease && colorValue.value > max) {\n colorValue.status = 1;\n colorValue.value -= colorValue.value % max;\n }\n }\n else {\n colorValue.value -= velocity;\n if (colorValue.value < 0) {\n colorValue.status = 0;\n colorValue.value += colorValue.value;\n }\n }\n if (colorValue.velocity && decay !== 1) {\n colorValue.velocity *= decay;\n }\n if (colorValue.value > max) {\n colorValue.value %= max;\n }\n}\nfunction updateColor(particle, delta) {\n var _a, _b, _c;\n const animationOptions = particle.options.color.animation;\n if (((_a = particle.color) === null || _a === void 0 ? void 0 : _a.h) !== undefined) {\n updateColorValue(delta, particle.color.h, animationOptions.h, 360, false);\n }\n if (((_b = particle.color) === null || _b === void 0 ? void 0 : _b.s) !== undefined) {\n updateColorValue(delta, particle.color.s, animationOptions.s, 100, true);\n }\n if (((_c = particle.color) === null || _c === void 0 ? void 0 : _c.l) !== undefined) {\n updateColorValue(delta, particle.color.l, animationOptions.l, 100, true);\n }\n}\nexport class ColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const hslColor = rangeColorToHsl(particle.options.color, particle.id, particle.options.reduceDuplicates);\n if (hslColor) {\n particle.color = getHslAnimationFromHsl(hslColor, particle.options.color.animation, this.container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n var _a, _b, _c;\n const animationOptions = particle.options.color.animation;\n return (!particle.destroyed &&\n !particle.spawning &&\n ((((_a = particle.color) === null || _a === void 0 ? void 0 : _a.h.value) !== undefined && animationOptions.h.enable) ||\n (((_b = particle.color) === null || _b === void 0 ? void 0 : _b.s.value) !== undefined && animationOptions.s.enable) ||\n (((_c = particle.color) === null || _c === void 0 ? void 0 : _c.l.value) !== undefined && animationOptions.l.enable)));\n }\n update(particle, delta) {\n updateColor(particle, delta);\n }\n}\n","import { Circle, ExternalInteractorBase, Vector, calcEasing, clamp, getDistances, isInArray, mouseMoveEvent, } from \"tsparticles-engine\";\nexport class Attractor extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions;\n if (mode !== \"attract\") {\n return;\n }\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = true;\n container.attract.count = 0;\n for (const particle of container.attract.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.attract.particles = [];\n container.attract.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = false;\n }\n }, options.interactivity.modes.attract.duration * 1000);\n };\n }\n clear() {\n }\n init() {\n }\n async interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode;\n if (mouseMoveStatus && hoverEnabled && isInArray(\"attract\", hoverMode)) {\n this.hoverAttract();\n }\n else if (clickEnabled && isInArray(\"attract\", clickMode)) {\n this.clickAttract();\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events;\n if ((!mouse.position || !events.onHover.enable) && (!mouse.clickPosition || !events.onClick.enable)) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return isInArray(\"attract\", hoverMode) || isInArray(\"attract\", clickMode);\n }\n reset() {\n }\n clickAttract() {\n const container = this.container;\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n if (!container.attract.finish) {\n if (!container.attract.count) {\n container.attract.count = 0;\n }\n container.attract.count++;\n if (container.attract.count === container.particles.count) {\n container.attract.finish = true;\n }\n }\n if (container.attract.clicking) {\n const mousePos = container.interactivity.mouse.clickPosition;\n if (!mousePos) {\n return;\n }\n const attractRadius = container.retina.attractModeDistance;\n this.processAttract(mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius));\n }\n else if (container.attract.clicking === false) {\n container.attract.particles = [];\n }\n return;\n }\n hoverAttract() {\n const container = this.container;\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const attractRadius = container.retina.attractModeDistance;\n this.processAttract(mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius));\n }\n processAttract(position, attractRadius, area) {\n const container = this.container, attractOptions = container.actualOptions.interactivity.modes.attract, query = container.particles.quadTree.query(area, (p) => this.isEnabled(p));\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(particle.position, position);\n const velocity = attractOptions.speed * attractOptions.factor;\n const attractFactor = clamp(calcEasing(1 - distance / attractRadius, attractOptions.easing) * velocity, 0, attractOptions.maxSpeed);\n const normVec = Vector.create(distance === 0 ? velocity : (dx / distance) * attractFactor, distance === 0 ? velocity : (dy / distance) * attractFactor);\n particle.position.subFrom(normVec);\n }\n }\n}\n","import { Circle, ExternalInteractorBase, Rectangle, Vector, calculateBounds, circleBounce, circleBounceDataFromParticle, divModeExecute, isDivModeEnabled, isInArray, mouseMoveEvent, rectBounce, } from \"tsparticles-engine\";\nexport class Bouncer extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n async interact() {\n const container = this.container, options = container.actualOptions, events = options.interactivity.events, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(\"bounce\", hoverMode)) {\n this.processMouseBounce();\n }\n else {\n divModeExecute(\"bounce\", divs, (selector, div) => this.singleSelectorBounce(selector, div));\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events, divs = events.onDiv;\n return ((mouse.position && events.onHover.enable && isInArray(\"bounce\", events.onHover.mode)) ||\n isDivModeEnabled(\"bounce\", divs));\n }\n reset() {\n }\n processBounce(position, radius, area) {\n const query = this.container.particles.quadTree.query(area, (p) => this.isEnabled(p));\n for (const particle of query) {\n if (area instanceof Circle) {\n circleBounce(circleBounceDataFromParticle(particle), {\n position,\n radius,\n mass: (radius ** 2 * Math.PI) / 2,\n velocity: Vector.origin,\n factor: Vector.origin,\n });\n }\n else if (area instanceof Rectangle) {\n rectBounce(particle, calculateBounds(position, radius));\n }\n }\n }\n processMouseBounce() {\n const container = this.container, pxRatio = container.retina.pixelRatio, tolerance = 10 * pxRatio, mousePos = container.interactivity.mouse.position, radius = container.retina.bounceModeDistance;\n if (mousePos) {\n this.processBounce(mousePos, radius, new Circle(mousePos.x, mousePos.y, radius + tolerance));\n }\n }\n singleSelectorBounce(selector, div) {\n const container = this.container, query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, radius = (elem.offsetWidth / 2) * pxRatio, tolerance = 10 * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, radius + tolerance)\n : new Rectangle(elem.offsetLeft * pxRatio - tolerance, elem.offsetTop * pxRatio - tolerance, elem.offsetWidth * pxRatio + tolerance * 2, elem.offsetHeight * pxRatio + tolerance * 2);\n this.processBounce(pos, radius, area);\n });\n }\n}\n","import { Circle, ExternalInteractorBase, Rectangle, clamp, colorMix, divMode, divModeExecute, getDistance, getRangeMax, isDivModeEnabled, isInArray, itemFromArray, mouseLeaveEvent, mouseMoveEvent, rangeColorToHsl, rgbToHsl, } from \"tsparticles-engine\";\nfunction calculateBubbleValue(particleValue, modeValue, optionsValue, ratio) {\n if (modeValue >= optionsValue) {\n const value = particleValue + (modeValue - optionsValue) * ratio;\n return clamp(value, particleValue, modeValue);\n }\n else if (modeValue < optionsValue) {\n const value = particleValue - (optionsValue - modeValue) * ratio;\n return clamp(value, modeValue, particleValue);\n }\n}\nexport class Bubbler extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n if (!container.bubble) {\n container.bubble = {};\n }\n this.handleClickMode = (mode) => {\n if (mode !== \"bubble\") {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n container.bubble.clicking = true;\n };\n }\n clear(particle, force) {\n if (particle.bubble.inRange && !force) {\n return;\n }\n delete particle.bubble.div;\n delete particle.bubble.opacity;\n delete particle.bubble.radius;\n delete particle.bubble.color;\n }\n init() {\n }\n async interact() {\n const options = this.container.actualOptions, events = options.interactivity.events, onHover = events.onHover, onClick = events.onClick, hoverEnabled = onHover.enable, hoverMode = onHover.mode, clickEnabled = onClick.enable, clickMode = onClick.mode, divs = events.onDiv;\n if (hoverEnabled && isInArray(\"bubble\", hoverMode)) {\n this.hoverBubble();\n }\n else if (clickEnabled && isInArray(\"bubble\", clickMode)) {\n this.clickBubble();\n }\n else {\n divModeExecute(\"bubble\", divs, (selector, div) => this.singleSelectorHover(selector, div));\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events, divs = events.onDiv, divBubble = isDivModeEnabled(\"bubble\", divs);\n if (!(divBubble || (events.onHover.enable && mouse.position) || (events.onClick.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n const clickMode = events.onClick.mode;\n return isInArray(\"bubble\", hoverMode) || isInArray(\"bubble\", clickMode) || divBubble;\n }\n reset(particle) {\n particle.bubble.inRange = false;\n }\n clickBubble() {\n var _a, _b;\n const container = this.container, options = container.actualOptions, mouseClickPos = container.interactivity.mouse.clickPosition;\n if (!mouseClickPos) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n const distance = container.retina.bubbleModeDistance, query = container.particles.quadTree.queryCircle(mouseClickPos, distance, (p) => this.isEnabled(p));\n for (const particle of query) {\n if (!container.bubble.clicking) {\n continue;\n }\n particle.bubble.inRange = !container.bubble.durationEnd;\n const pos = particle.getPosition(), distMouse = getDistance(pos, mouseClickPos), timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime || 0)) / 1000;\n if (timeSpent > options.interactivity.modes.bubble.duration) {\n container.bubble.durationEnd = true;\n }\n if (timeSpent > options.interactivity.modes.bubble.duration * 2) {\n container.bubble.clicking = false;\n container.bubble.durationEnd = false;\n }\n const sizeData = {\n bubbleObj: {\n optValue: container.retina.bubbleModeSize,\n value: particle.bubble.radius,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.size.value) * container.retina.pixelRatio,\n value: particle.size.value,\n },\n type: \"size\",\n };\n this.process(particle, distMouse, timeSpent, sizeData);\n const opacityData = {\n bubbleObj: {\n optValue: options.interactivity.modes.bubble.opacity,\n value: particle.bubble.opacity,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.opacity.value),\n value: (_b = (_a = particle.opacity) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 1,\n },\n type: \"opacity\",\n };\n this.process(particle, distMouse, timeSpent, opacityData);\n if (!container.bubble.durationEnd) {\n if (distMouse <= container.retina.bubbleModeDistance) {\n this.hoverBubbleColor(particle, distMouse);\n }\n else {\n delete particle.bubble.color;\n }\n }\n else {\n delete particle.bubble.color;\n }\n }\n }\n hoverBubble() {\n const container = this.container, mousePos = container.interactivity.mouse.position;\n if (mousePos === undefined) {\n return;\n }\n const distance = container.retina.bubbleModeDistance, query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n for (const particle of query) {\n particle.bubble.inRange = true;\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos), ratio = 1 - pointDistance / distance;\n if (pointDistance <= distance) {\n if (ratio >= 0 && container.interactivity.status === mouseMoveEvent) {\n this.hoverBubbleSize(particle, ratio);\n this.hoverBubbleOpacity(particle, ratio);\n this.hoverBubbleColor(particle, ratio);\n }\n }\n else {\n this.reset(particle);\n }\n if (container.interactivity.status === mouseLeaveEvent) {\n this.reset(particle);\n }\n }\n }\n hoverBubbleColor(particle, ratio, divBubble) {\n const options = this.container.actualOptions;\n const bubbleOptions = divBubble !== null && divBubble !== void 0 ? divBubble : options.interactivity.modes.bubble;\n if (!particle.bubble.finalColor) {\n const modeColor = bubbleOptions.color;\n if (!modeColor) {\n return;\n }\n const bubbleColor = modeColor instanceof Array ? itemFromArray(modeColor) : modeColor;\n particle.bubble.finalColor = rangeColorToHsl(bubbleColor);\n }\n if (!particle.bubble.finalColor) {\n return;\n }\n if (bubbleOptions.mix) {\n particle.bubble.color = undefined;\n const pColor = particle.getFillColor();\n particle.bubble.color = pColor\n ? rgbToHsl(colorMix(pColor, particle.bubble.finalColor, 1 - ratio, ratio))\n : particle.bubble.finalColor;\n }\n else {\n particle.bubble.color = particle.bubble.finalColor;\n }\n }\n hoverBubbleOpacity(particle, ratio, divBubble) {\n var _a, _b, _c;\n const container = this.container, options = container.actualOptions, modeOpacity = (_a = divBubble === null || divBubble === void 0 ? void 0 : divBubble.opacity) !== null && _a !== void 0 ? _a : options.interactivity.modes.bubble.opacity;\n if (!modeOpacity) {\n return;\n }\n const optOpacity = particle.options.opacity.value;\n const pOpacity = (_c = (_b = particle.opacity) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 1;\n const opacity = calculateBubbleValue(pOpacity, modeOpacity, getRangeMax(optOpacity), ratio);\n if (opacity !== undefined) {\n particle.bubble.opacity = opacity;\n }\n }\n hoverBubbleSize(particle, ratio, divBubble) {\n const container = this.container, modeSize = (divBubble === null || divBubble === void 0 ? void 0 : divBubble.size) ? divBubble.size * container.retina.pixelRatio : container.retina.bubbleModeSize;\n if (modeSize === undefined) {\n return;\n }\n const optSize = getRangeMax(particle.options.size.value) * container.retina.pixelRatio;\n const pSize = particle.size.value;\n const size = calculateBubbleValue(pSize, modeSize, optSize, ratio);\n if (size !== undefined) {\n particle.bubble.radius = size;\n }\n }\n process(particle, distMouse, timeSpent, data) {\n const container = this.container, bubbleParam = data.bubbleObj.optValue;\n if (bubbleParam === undefined) {\n return;\n }\n const options = container.actualOptions, bubbleDuration = options.interactivity.modes.bubble.duration, bubbleDistance = container.retina.bubbleModeDistance, particlesParam = data.particlesObj.optValue, pObjBubble = data.bubbleObj.value, pObj = data.particlesObj.value || 0, type = data.type;\n if (bubbleParam === particlesParam) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n if (!container.bubble.durationEnd) {\n if (distMouse <= bubbleDistance) {\n const obj = pObjBubble !== null && pObjBubble !== void 0 ? pObjBubble : pObj;\n if (obj !== bubbleParam) {\n const value = pObj - (timeSpent * (pObj - bubbleParam)) / bubbleDuration;\n if (type === \"size\") {\n particle.bubble.radius = value;\n }\n if (type === \"opacity\") {\n particle.bubble.opacity = value;\n }\n }\n }\n else {\n if (type === \"size\") {\n delete particle.bubble.radius;\n }\n if (type === \"opacity\") {\n delete particle.bubble.opacity;\n }\n }\n }\n else if (pObjBubble) {\n if (type === \"size\") {\n delete particle.bubble.radius;\n }\n if (type === \"opacity\") {\n delete particle.bubble.opacity;\n }\n }\n }\n singleSelectorHover(selector, div) {\n const container = this.container, selectors = document.querySelectorAll(selector);\n if (!selectors.length) {\n return;\n }\n selectors.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, repulseRadius = (elem.offsetWidth / 2) * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), query = container.particles.quadTree.query(area, (p) => this.isEnabled(p));\n for (const particle of query) {\n if (!area.contains(particle.getPosition())) {\n continue;\n }\n particle.bubble.inRange = true;\n const divs = container.actualOptions.interactivity.modes.bubble.divs;\n const divBubble = divMode(divs, elem);\n if (!particle.bubble.div || particle.bubble.div !== elem) {\n this.clear(particle, true);\n particle.bubble.div = elem;\n }\n this.hoverBubbleSize(particle, 1, divBubble);\n this.hoverBubbleOpacity(particle, 1, divBubble);\n this.hoverBubbleColor(particle, 1, divBubble);\n }\n });\n }\n}\n","import { ExternalInteractorBase, drawLine, gradient, isInArray } from \"tsparticles-engine\";\nfunction drawConnectLine(context, width, lineStyle, begin, end) {\n context.save();\n drawLine(context, begin, end);\n context.lineWidth = width;\n context.strokeStyle = lineStyle;\n context.stroke();\n context.restore();\n}\nfunction lineStyle(container, ctx, p1, p2) {\n const options = container.actualOptions, connectOptions = options.interactivity.modes.connect;\n return gradient(ctx, p1, p2, connectOptions.links.opacity);\n}\nfunction drawConnection(container, p1, p2) {\n container.canvas.draw((ctx) => {\n var _a;\n const ls = lineStyle(container, ctx, p1, p2);\n if (!ls) {\n return;\n }\n const pos1 = p1.getPosition(), pos2 = p2.getPosition();\n drawConnectLine(ctx, (_a = p1.retina.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth, ls, pos1, pos2);\n });\n}\nexport class Connector extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n async interact() {\n const container = this.container, options = container.actualOptions;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"mousemove\") {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = Math.abs(container.retina.connectModeRadius), query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n let i = 0;\n for (const p1 of query) {\n const pos1 = p1.getPosition();\n for (const p2 of query.slice(i + 1)) {\n const pos2 = p2.getPosition(), distMax = Math.abs(container.retina.connectModeDistance), xDiff = Math.abs(pos1.x - pos2.x), yDiff = Math.abs(pos1.y - pos2.y);\n if (xDiff < distMax && yDiff < distMax) {\n drawConnection(container, p1, p2);\n }\n }\n ++i;\n }\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : container.actualOptions.interactivity).events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n return isInArray(\"connect\", events.onHover.mode);\n }\n reset() {\n }\n}\n","import { ExternalInteractorBase, drawLine, getDistance, getLinkColor, getLinkRandomColor, getStyleFromRgb, isInArray, mouseMoveEvent, } from \"tsparticles-engine\";\nexport function drawGrabLine(context, width, begin, end, colorLine, opacity) {\n context.save();\n drawLine(context, begin, end);\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n context.restore();\n}\nfunction drawGrab(container, particle, lineColor, opacity, mousePos) {\n container.canvas.draw((ctx) => {\n var _a;\n const beginPos = particle.getPosition();\n drawGrabLine(ctx, (_a = particle.retina.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth, beginPos, mousePos, lineColor, opacity);\n });\n}\nexport class Grabber extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n async interact() {\n var _a;\n const container = this.container, options = container.actualOptions, interactivity = options.interactivity;\n if (!interactivity.events.onHover.enable || container.interactivity.status !== mouseMoveEvent) {\n return;\n }\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = container.retina.grabModeDistance, query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n for (const particle of query) {\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos);\n if (pointDistance > distance) {\n continue;\n }\n const grabLineOptions = interactivity.modes.grab.links, lineOpacity = grabLineOptions.opacity, opacityLine = lineOpacity - (pointDistance * lineOpacity) / distance;\n if (opacityLine <= 0) {\n continue;\n }\n const optColor = (_a = grabLineOptions.color) !== null && _a !== void 0 ? _a : particle.options.links.color;\n if (!container.particles.grabLineColor) {\n const linksOptions = options.interactivity.modes.grab.links;\n container.particles.grabLineColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n }\n const colorLine = getLinkColor(particle, undefined, container.particles.grabLineColor);\n if (!colorLine) {\n return;\n }\n drawGrab(container, particle, colorLine, opacityLine, mousePos);\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(\"grab\", events.onHover.mode);\n }\n reset() {\n }\n}\n","import { ExternalInteractorBase } from \"tsparticles-engine\";\nexport class Pauser extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== \"pause\") {\n return;\n }\n const container = this.container;\n if (container.getAnimationStatus()) {\n container.pause();\n }\n else {\n container.play();\n }\n };\n }\n clear() {\n }\n init() {\n }\n async interact() {\n }\n isEnabled() {\n return true;\n }\n reset() {\n }\n}\n","import { ExternalInteractorBase } from \"tsparticles-engine\";\nimport { itemFromArray } from \"tsparticles-engine\";\nexport class Pusher extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== \"push\") {\n return;\n }\n const container = this.container;\n const options = container.actualOptions;\n const pushNb = options.interactivity.modes.push.quantity;\n if (pushNb <= 0) {\n return;\n }\n const pushOptions = options.interactivity.modes.push;\n const group = itemFromArray([undefined, ...pushOptions.groups]);\n const groupOptions = group !== undefined ? container.actualOptions.particles.groups[group] : undefined;\n container.particles.push(pushNb, container.interactivity.mouse, groupOptions, group);\n };\n }\n clear() {\n }\n init() {\n }\n async interact() {\n }\n isEnabled() {\n return true;\n }\n reset() {\n }\n}\n","import { ExternalInteractorBase } from \"tsparticles-engine\";\nexport class Remover extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== \"remove\") {\n return;\n }\n const container = this.container, options = container.actualOptions, removeNb = options.interactivity.modes.remove.quantity;\n container.particles.removeQuantity(removeNb);\n };\n }\n clear() {\n }\n init() {\n }\n async interact() {\n }\n isEnabled() {\n return true;\n }\n reset() {\n }\n}\n","import { Circle, ExternalInteractorBase, Rectangle, Vector, calcEasing, clamp, divMode, divModeExecute, getDistances, isDivModeEnabled, isInArray, mouseMoveEvent, } from \"tsparticles-engine\";\nexport class Repulser extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions;\n if (mode !== \"repulse\") {\n return;\n }\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n container.repulse.clicking = true;\n container.repulse.count = 0;\n for (const particle of container.repulse.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.repulse.particles = [];\n container.repulse.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n container.repulse.clicking = false;\n }\n }, options.interactivity.modes.repulse.duration * 1000);\n };\n }\n clear() {\n }\n init() {\n }\n async interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(\"repulse\", hoverMode)) {\n this.hoverRepulse();\n }\n else if (clickEnabled && isInArray(\"repulse\", clickMode)) {\n this.clickRepulse();\n }\n else {\n divModeExecute(\"repulse\", divs, (selector, div) => this.singleSelectorRepulse(selector, div));\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events, divs = events.onDiv, divRepulse = isDivModeEnabled(\"repulse\", divs);\n if (!(divRepulse || (events.onHover.enable && mouse.position) || (events.onClick.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return isInArray(\"repulse\", hoverMode) || isInArray(\"repulse\", clickMode) || divRepulse;\n }\n reset() {\n }\n clickRepulse() {\n const container = this.container;\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n if (!container.repulse.finish) {\n if (!container.repulse.count) {\n container.repulse.count = 0;\n }\n container.repulse.count++;\n if (container.repulse.count === container.particles.count) {\n container.repulse.finish = true;\n }\n }\n if (container.repulse.clicking) {\n const repulseDistance = container.retina.repulseModeDistance, repulseRadius = Math.pow(repulseDistance / 6, 3), mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const range = new Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius), query = container.particles.quadTree.query(range, (p) => this.isEnabled(p));\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(mouseClickPos, particle.position), d = distance ** 2, velocity = container.actualOptions.interactivity.modes.repulse.speed, force = (-repulseRadius * velocity) / d;\n if (d <= repulseRadius) {\n container.repulse.particles.push(particle);\n const vect = Vector.create(dx, dy);\n vect.length = force;\n particle.velocity.setTo(vect);\n }\n }\n }\n else if (container.repulse.clicking === false) {\n for (const particle of container.repulse.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.repulse.particles = [];\n }\n }\n hoverRepulse() {\n const container = this.container, mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const repulseRadius = container.retina.repulseModeDistance;\n this.processRepulse(mousePos, repulseRadius, new Circle(mousePos.x, mousePos.y, repulseRadius));\n }\n processRepulse(position, repulseRadius, area, divRepulse) {\n var _a;\n const container = this.container, query = container.particles.quadTree.query(area, (p) => this.isEnabled(p)), repulseOptions = container.actualOptions.interactivity.modes.repulse;\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(particle.position, position), velocity = ((_a = divRepulse === null || divRepulse === void 0 ? void 0 : divRepulse.speed) !== null && _a !== void 0 ? _a : repulseOptions.speed) * repulseOptions.factor, repulseFactor = clamp(calcEasing(1 - distance / repulseRadius, repulseOptions.easing) * velocity, 0, repulseOptions.maxSpeed), normVec = Vector.create(distance === 0 ? velocity : (dx / distance) * repulseFactor, distance === 0 ? velocity : (dy / distance) * repulseFactor);\n particle.position.addTo(normVec);\n }\n }\n singleSelectorRepulse(selector, div) {\n const container = this.container, query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, repulseRadius = (elem.offsetWidth / 2) * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), divs = container.actualOptions.interactivity.modes.repulse.divs, divRepulse = divMode(divs, elem);\n this.processRepulse(pos, repulseRadius, area, divRepulse);\n });\n }\n}\n","import { getStyleFromHsl } from \"tsparticles-engine\";\nconst currentColorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d.]+%?\\))|currentcolor/gi;\nfunction replaceColorSvg(imageShape, color, opacity) {\n const { svgData } = imageShape;\n if (!svgData) {\n return \"\";\n }\n const colorStyle = getStyleFromHsl(color, opacity);\n if (svgData.includes(\"fill\")) {\n return svgData.replace(currentColorRegex, () => colorStyle);\n }\n const preFillIndex = svgData.indexOf(\">\");\n return `${svgData.substring(0, preFillIndex)} fill=\"${colorStyle}\"${svgData.substring(preFillIndex)}`;\n}\nexport async function loadImage(image) {\n return new Promise((resolve) => {\n image.loading = true;\n const img = new Image();\n img.addEventListener(\"load\", () => {\n image.element = img;\n image.loading = false;\n resolve();\n });\n img.addEventListener(\"error\", () => {\n image.error = true;\n image.loading = false;\n console.error(`Error tsParticles - loading image: ${image.source}`);\n resolve();\n });\n img.src = image.source;\n });\n}\nexport async function downloadSvgImage(image) {\n if (image.type !== \"svg\") {\n await loadImage(image);\n return;\n }\n image.loading = true;\n const response = await fetch(image.source);\n image.loading = false;\n if (!response.ok) {\n console.error(\"Error tsParticles - Image not found\");\n image.error = true;\n }\n if (!image.error) {\n image.svgData = await response.text();\n }\n}\nexport function replaceImageColor(image, imageData, color, particle) {\n var _a, _b, _c;\n const svgColoredData = replaceColorSvg(image, color, (_b = (_a = particle.opacity) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 1), svg = new Blob([svgColoredData], { type: \"image/svg+xml\" }), domUrl = URL || window.URL || window.webkitURL || window, url = domUrl.createObjectURL(svg), img = new Image(), imageRes = {\n data: Object.assign(Object.assign({}, image), { svgData: svgColoredData }),\n ratio: imageData.width / imageData.height,\n replaceColor: (_c = imageData.replaceColor) !== null && _c !== void 0 ? _c : imageData.replace_color,\n source: imageData.src,\n };\n img.addEventListener(\"load\", () => {\n const pImage = particle.image;\n if (pImage) {\n pImage.loaded = true;\n image.element = img;\n }\n domUrl.revokeObjectURL(url);\n });\n img.addEventListener(\"error\", () => {\n domUrl.revokeObjectURL(url);\n const img2 = Object.assign(Object.assign({}, image), { error: false, loading: true });\n loadImage(img2).then(() => {\n const pImage = particle.image;\n if (pImage) {\n image.element = img2.element;\n pImage.loaded = true;\n }\n });\n });\n img.src = url;\n return imageRes;\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ImageDrawer_images;\nimport { downloadSvgImage, loadImage, replaceImageColor } from \"./Utils\";\nexport class ImageDrawer {\n constructor() {\n _ImageDrawer_images.set(this, void 0);\n __classPrivateFieldSet(this, _ImageDrawer_images, [], \"f\");\n }\n addImage(container, image) {\n const containerImages = this.getImages(container);\n containerImages === null || containerImages === void 0 ? void 0 : containerImages.images.push(image);\n }\n destroy() {\n __classPrivateFieldSet(this, _ImageDrawer_images, [], \"f\");\n }\n draw(context, particle, radius, opacity) {\n var _a, _b;\n const image = particle.image, element = (_a = image === null || image === void 0 ? void 0 : image.data) === null || _a === void 0 ? void 0 : _a.element;\n if (!element) {\n return;\n }\n const ratio = (_b = image === null || image === void 0 ? void 0 : image.ratio) !== null && _b !== void 0 ? _b : 1, pos = {\n x: -radius,\n y: -radius,\n };\n if (!(image === null || image === void 0 ? void 0 : image.data.svgData) || !(image === null || image === void 0 ? void 0 : image.replaceColor)) {\n context.globalAlpha = opacity;\n }\n context.drawImage(element, pos.x, pos.y, radius * 2, (radius * 2) / ratio);\n if (!(image === null || image === void 0 ? void 0 : image.data.svgData) || !(image === null || image === void 0 ? void 0 : image.replaceColor)) {\n context.globalAlpha = 1;\n }\n }\n getImages(container) {\n const containerImages = __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").find((t) => t.id === container.id);\n if (!containerImages) {\n __classPrivateFieldGet(this, _ImageDrawer_images, \"f\").push({\n id: container.id,\n images: [],\n });\n return this.getImages(container);\n }\n else {\n return containerImages;\n }\n }\n getSidesCount() {\n return 12;\n }\n loadShape(particle) {\n var _a, _b, _c;\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n const images = this.getImages(particle.container).images, imageData = particle.shapeData, image = images.find((t) => t.source === imageData.src);\n let imageRes;\n if (!image) {\n this.loadImageShape(particle.container, imageData).then(() => {\n this.loadShape(particle);\n });\n return;\n }\n if (image.error) {\n return;\n }\n const color = particle.getFillColor();\n if (image.svgData && imageData.replaceColor && color) {\n imageRes = replaceImageColor(image, imageData, color, particle);\n }\n else {\n imageRes = {\n data: image,\n loaded: true,\n ratio: imageData.width / imageData.height,\n replaceColor: (_a = imageData.replaceColor) !== null && _a !== void 0 ? _a : imageData.replace_color,\n source: imageData.src,\n };\n }\n if (!imageRes.ratio) {\n imageRes.ratio = 1;\n }\n const fill = (_b = imageData.fill) !== null && _b !== void 0 ? _b : particle.fill, close = (_c = imageData.close) !== null && _c !== void 0 ? _c : particle.close, imageShape = {\n image: imageRes,\n fill,\n close,\n };\n particle.image = imageShape.image;\n particle.fill = imageShape.fill;\n particle.close = imageShape.close;\n }\n async loadImageShape(container, imageShape) {\n const source = imageShape.src;\n if (!source) {\n throw new Error(\"Error tsParticles - No image.src\");\n }\n try {\n const image = {\n source: source,\n type: source.substr(source.length - 3),\n error: false,\n loading: true,\n };\n this.addImage(container, image);\n const imageFunc = imageShape.replaceColor ? downloadSvgImage : loadImage;\n await imageFunc(image);\n }\n catch (_a) {\n throw new Error(`tsParticles error - ${imageShape.src} not found`);\n }\n }\n}\n_ImageDrawer_images = new WeakMap();\n","import { ValueWithRandom } from \"tsparticles-engine\";\nexport class LifeDelay extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ValueWithRandom } from \"tsparticles-engine\";\nexport class LifeDuration extends ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.0001;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { LifeDelay } from \"./LifeDelay\";\nimport { LifeDuration } from \"./LifeDuration\";\nexport class Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay();\n this.duration = new LifeDuration();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}\n","import { getRangeValue, randomInRange, setRangeValue } from \"tsparticles-engine\";\nimport { Life } from \"./Options/Classes/Life\";\nexport class LifeUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const container = this.container, particlesOptions = particle.options, lifeOptions = particlesOptions.life;\n if (!lifeOptions) {\n return;\n }\n particle.life = {\n delay: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.delay.value) * (lifeOptions.delay.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n delayTime: 0,\n duration: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.duration.value) * (lifeOptions.duration.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n time: 0,\n count: lifeOptions.count,\n };\n if (particle.life.duration <= 0) {\n particle.life.duration = -1;\n }\n if (particle.life.count <= 0) {\n particle.life.count = -1;\n }\n if (particle.life) {\n particle.spawning = particle.life.delay > 0;\n }\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n loadOptions(options, ...sources) {\n for (const source of sources) {\n if (!(source === null || source === void 0 ? void 0 : source.life)) {\n continue;\n }\n if (!options.life) {\n options.life = new Life();\n }\n options.life.load(source.life);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle) || !particle.life) {\n return;\n }\n const life = particle.life;\n let justSpawned = false;\n if (particle.spawning) {\n life.delayTime += delta.value;\n if (life.delayTime >= particle.life.delay) {\n justSpawned = true;\n particle.spawning = false;\n life.delayTime = 0;\n life.time = 0;\n }\n else {\n return;\n }\n }\n if (life.duration === -1) {\n return;\n }\n if (particle.spawning) {\n return;\n }\n if (justSpawned) {\n life.time = 0;\n }\n else {\n life.time += delta.value;\n }\n if (life.time < life.duration) {\n return;\n }\n life.time = 0;\n if (particle.life.count > 0) {\n particle.life.count--;\n }\n if (particle.life.count === 0) {\n particle.destroy();\n return;\n }\n const canvasSize = this.container.canvas.size, widthRange = setRangeValue(0, canvasSize.width), heightRange = setRangeValue(0, canvasSize.width);\n particle.position.x = randomInRange(widthRange);\n particle.position.y = randomInRange(heightRange);\n particle.spawning = true;\n life.delayTime = 0;\n life.time = 0;\n particle.reset();\n const lifeOptions = particle.options.life;\n if (lifeOptions) {\n life.delay = getRangeValue(lifeOptions.delay.value) * 1000;\n life.duration = getRangeValue(lifeOptions.duration.value) * 1000;\n }\n }\n}\n","export class LineDrawer {\n draw(context, particle, radius) {\n context.moveTo(-radius / 2, 0);\n context.lineTo(radius / 2, 0);\n }\n getSidesCount() {\n return 1;\n }\n}\n","import { clamp, getRangeMax, getRangeMin, getRangeValue, randomInRange, } from \"tsparticles-engine\";\nfunction checkDestroy(particle, value, minValue, maxValue) {\n switch (particle.options.opacity.animation.destroy) {\n case \"max\":\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case \"min\":\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateOpacity(particle, delta) {\n var _a, _b, _c, _d, _e, _f;\n if (!particle.opacity) {\n return;\n }\n const minValue = particle.opacity.min, maxValue = particle.opacity.max, decay = (_a = particle.opacity.decay) !== null && _a !== void 0 ? _a : 1;\n if (particle.destroyed ||\n !particle.opacity.enable ||\n (((_b = particle.opacity.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 && ((_c = particle.opacity.loops) !== null && _c !== void 0 ? _c : 0) > ((_d = particle.opacity.maxLoops) !== null && _d !== void 0 ? _d : 0))) {\n return;\n }\n switch (particle.opacity.status) {\n case 0:\n if (particle.opacity.value >= maxValue) {\n particle.opacity.status = 1;\n if (!particle.opacity.loops) {\n particle.opacity.loops = 0;\n }\n particle.opacity.loops++;\n }\n else {\n particle.opacity.value += ((_e = particle.opacity.velocity) !== null && _e !== void 0 ? _e : 0) * delta.factor;\n }\n break;\n case 1:\n if (particle.opacity.value <= minValue) {\n particle.opacity.status = 0;\n if (!particle.opacity.loops) {\n particle.opacity.loops = 0;\n }\n particle.opacity.loops++;\n }\n else {\n particle.opacity.value -= ((_f = particle.opacity.velocity) !== null && _f !== void 0 ? _f : 0) * delta.factor;\n }\n break;\n }\n if (particle.opacity.velocity && particle.opacity.decay !== 1) {\n particle.opacity.velocity *= decay;\n }\n checkDestroy(particle, particle.opacity.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.opacity.value = clamp(particle.opacity.value, minValue, maxValue);\n }\n}\nexport class OpacityUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const opacityOptions = particle.options.opacity;\n particle.opacity = {\n enable: opacityOptions.animation.enable,\n max: getRangeMax(opacityOptions.value),\n min: getRangeMin(opacityOptions.value),\n value: getRangeValue(opacityOptions.value),\n loops: 0,\n maxLoops: getRangeValue(opacityOptions.animation.count),\n };\n const opacityAnimation = opacityOptions.animation;\n if (opacityAnimation.enable) {\n particle.opacity.decay = 1 - getRangeValue(opacityAnimation.decay);\n particle.opacity.status = 0;\n const opacityRange = opacityOptions.value;\n particle.opacity.min = getRangeMin(opacityRange);\n particle.opacity.max = getRangeMax(opacityRange);\n switch (opacityAnimation.startValue) {\n case \"min\":\n particle.opacity.value = particle.opacity.min;\n particle.opacity.status = 0;\n break;\n case \"random\":\n particle.opacity.value = randomInRange(particle.opacity);\n particle.opacity.status =\n Math.random() >= 0.5 ? 0 : 1;\n break;\n case \"max\":\n default:\n particle.opacity.value = particle.opacity.max;\n particle.opacity.status = 1;\n break;\n }\n particle.opacity.velocity =\n (getRangeValue(opacityAnimation.speed) / 100) * this.container.retina.reduceFactor;\n if (!opacityAnimation.sync) {\n particle.opacity.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n var _a, _b, _c, _d;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!particle.opacity &&\n particle.opacity.enable &&\n (((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 ||\n (((_b = particle.opacity.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 &&\n ((_c = particle.opacity.loops) !== null && _c !== void 0 ? _c : 0) < ((_d = particle.opacity.maxLoops) !== null && _d !== void 0 ? _d : 0))));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateOpacity(particle, delta);\n }\n}\n","import { calculateBounds } from \"tsparticles-engine\";\nimport { bounceHorizontal, bounceVertical } from \"./Utils\";\nexport class BounceOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\n \"bounce\",\n \"bounce-vertical\",\n \"bounce-horizontal\",\n \"bounceVertical\",\n \"bounceHorizontal\",\n \"split\",\n ];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n let handled = false;\n for (const [, plugin] of container.plugins) {\n if (plugin.particleBounce !== undefined) {\n handled = plugin.particleBounce(particle, delta, direction);\n }\n if (handled) {\n break;\n }\n }\n if (handled) {\n return;\n }\n const pos = particle.getPosition(), offset = particle.offset, size = particle.getRadius(), bounds = calculateBounds(pos, size), canvasSize = container.canvas.size;\n bounceHorizontal({ particle, outMode, direction, bounds, canvasSize, offset, size });\n bounceVertical({ particle, outMode, direction, bounds, canvasSize, offset, size });\n }\n}\n","import { getValue } from \"tsparticles-engine\";\nexport function bounceHorizontal(data) {\n if (data.outMode !== \"bounce\" &&\n data.outMode !== \"bounce-horizontal\" &&\n data.outMode !== \"bounceHorizontal\" &&\n data.outMode !== \"split\") {\n return;\n }\n if (data.bounds.right < 0) {\n data.particle.position.x = data.size + data.offset.x;\n }\n else if (data.bounds.left > data.canvasSize.width) {\n data.particle.position.x = data.canvasSize.width - data.size - data.offset.x;\n }\n const velocity = data.particle.velocity.x;\n let bounced = false;\n if ((data.direction === \"right\" && data.bounds.right >= data.canvasSize.width && velocity > 0) ||\n (data.direction === \"left\" && data.bounds.left <= 0 && velocity < 0)) {\n const newVelocity = getValue(data.particle.options.bounce.horizontal);\n data.particle.velocity.x *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.x + data.size;\n if (data.bounds.right >= data.canvasSize.width) {\n data.particle.position.x = data.canvasSize.width - minPos;\n }\n else if (data.bounds.left <= 0) {\n data.particle.position.x = minPos;\n }\n if (data.outMode === \"split\") {\n data.particle.destroy();\n }\n}\nexport function bounceVertical(data) {\n if (data.outMode !== \"bounce\" &&\n data.outMode !== \"bounce-vertical\" &&\n data.outMode !== \"bounceVertical\" &&\n data.outMode !== \"split\") {\n return;\n }\n if (data.bounds.bottom < 0) {\n data.particle.position.y = data.size + data.offset.y;\n }\n else if (data.bounds.top > data.canvasSize.height) {\n data.particle.position.y = data.canvasSize.height - data.size - data.offset.y;\n }\n const velocity = data.particle.velocity.y;\n let bounced = false;\n if ((data.direction === \"bottom\" && data.bounds.bottom >= data.canvasSize.height && velocity > 0) ||\n (data.direction === \"top\" && data.bounds.top <= 0 && velocity < 0)) {\n const newVelocity = getValue(data.particle.options.bounce.vertical);\n data.particle.velocity.y *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.y + data.size;\n if (data.bounds.bottom >= data.canvasSize.height) {\n data.particle.position.y = data.canvasSize.height - minPos;\n }\n else if (data.bounds.top <= 0) {\n data.particle.position.y = minPos;\n }\n if (data.outMode === \"split\") {\n data.particle.destroy();\n }\n}\n","import { Vector, getDistances, isPointInside } from \"tsparticles-engine\";\nexport class DestroyOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"destroy\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case \"normal\":\n case \"outside\":\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n break;\n case \"inside\": {\n const { dx, dy } = getDistances(particle.position, particle.moveCenter);\n const { x: vx, y: vy } = particle.velocity;\n if ((vx < 0 && dx > particle.moveCenter.radius) ||\n (vy < 0 && dy > particle.moveCenter.radius) ||\n (vx >= 0 && dx < -particle.moveCenter.radius) ||\n (vy >= 0 && dy < -particle.moveCenter.radius)) {\n return;\n }\n break;\n }\n }\n container.particles.remove(particle, undefined, true);\n }\n}\n","import { Vector, isPointInside } from \"tsparticles-engine\";\nexport class NoneOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"none\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n if ((particle.options.move.distance.horizontal &&\n (direction === \"left\" || direction === \"right\")) ||\n (particle.options.move.distance.vertical &&\n (direction === \"top\" || direction === \"bottom\"))) {\n return;\n }\n const gravityOptions = particle.options.move.gravity, container = this.container;\n const canvasSize = container.canvas.size;\n const pRadius = particle.getRadius();\n if (!gravityOptions.enable) {\n if ((particle.velocity.y > 0 && particle.position.y <= canvasSize.height + pRadius) ||\n (particle.velocity.y < 0 && particle.position.y >= -pRadius) ||\n (particle.velocity.x > 0 && particle.position.x <= canvasSize.width + pRadius) ||\n (particle.velocity.x < 0 && particle.position.x >= -pRadius)) {\n return;\n }\n if (!isPointInside(particle.position, container.canvas.size, Vector.origin, pRadius, direction)) {\n container.particles.remove(particle);\n }\n }\n else {\n const position = particle.position;\n if ((!gravityOptions.inverse &&\n position.y > canvasSize.height + pRadius &&\n direction === \"bottom\") ||\n (gravityOptions.inverse && position.y < -pRadius && direction === \"top\")) {\n container.particles.remove(particle);\n }\n }\n }\n}\n","import { Vector, calculateBounds, getDistances, isPointInside, randomInRange, } from \"tsparticles-engine\";\nexport class OutOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"out\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case \"inside\": {\n const { x: vx, y: vy } = particle.velocity;\n const circVec = Vector.origin;\n circVec.length = particle.moveCenter.radius;\n circVec.angle = particle.velocity.angle + Math.PI;\n circVec.addTo(Vector.create(particle.moveCenter));\n const { dx, dy } = getDistances(particle.position, circVec);\n if ((vx <= 0 && dx >= 0) || (vy <= 0 && dy >= 0) || (vx >= 0 && dx <= 0) || (vy >= 0 && dy <= 0)) {\n return;\n }\n particle.position.x = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.width,\n }));\n particle.position.y = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.height,\n }));\n const { dx: newDx, dy: newDy } = getDistances(particle.position, particle.moveCenter);\n particle.direction = Math.atan2(-newDy, -newDx);\n particle.velocity.angle = particle.direction;\n break;\n }\n default: {\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n switch (particle.outType) {\n case \"outside\": {\n particle.position.x =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.x;\n particle.position.y =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.y;\n const { dx, dy } = getDistances(particle.position, particle.moveCenter);\n if (particle.moveCenter.radius) {\n particle.direction = Math.atan2(dy, dx);\n particle.velocity.angle = particle.direction;\n }\n break;\n }\n case \"normal\": {\n const wrap = particle.options.move.warp, canvasSize = container.canvas.size, newPos = {\n bottom: canvasSize.height + particle.getRadius() + particle.offset.y,\n left: -particle.getRadius() - particle.offset.x,\n right: canvasSize.width + particle.getRadius() + particle.offset.x,\n top: -particle.getRadius() - particle.offset.y,\n }, sizeValue = particle.getRadius(), nextBounds = calculateBounds(particle.position, sizeValue);\n if (direction === \"right\" &&\n nextBounds.left > canvasSize.width + particle.offset.x) {\n particle.position.x = newPos.left;\n particle.initialPosition.x = particle.position.x;\n if (!wrap) {\n particle.position.y = Math.random() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n else if (direction === \"left\" && nextBounds.right < -particle.offset.x) {\n particle.position.x = newPos.right;\n particle.initialPosition.x = particle.position.x;\n if (!wrap) {\n particle.position.y = Math.random() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n if (direction === \"bottom\" &&\n nextBounds.top > canvasSize.height + particle.offset.y) {\n if (!wrap) {\n particle.position.x = Math.random() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.top;\n particle.initialPosition.y = particle.position.y;\n }\n else if (direction === \"top\" && nextBounds.bottom < -particle.offset.y) {\n if (!wrap) {\n particle.position.x = Math.random() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.bottom;\n particle.initialPosition.y = particle.position.y;\n }\n break;\n }\n }\n break;\n }\n }\n }\n}\n","import { BounceOutMode } from \"./BounceOutMode\";\nimport { DestroyOutMode } from \"./DestroyOutMode\";\nimport { NoneOutMode } from \"./NoneOutMode\";\nimport { OutOutMode } from \"./OutOutMode\";\nexport class OutOfCanvasUpdater {\n constructor(container) {\n this.container = container;\n this.updaters = [\n new BounceOutMode(container),\n new DestroyOutMode(container),\n new OutOutMode(container),\n new NoneOutMode(container),\n ];\n }\n init() {\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning;\n }\n update(particle, delta) {\n var _a, _b, _c, _d;\n const outModes = particle.options.move.outModes;\n this.updateOutMode(particle, delta, (_a = outModes.bottom) !== null && _a !== void 0 ? _a : outModes.default, \"bottom\");\n this.updateOutMode(particle, delta, (_b = outModes.left) !== null && _b !== void 0 ? _b : outModes.default, \"left\");\n this.updateOutMode(particle, delta, (_c = outModes.right) !== null && _c !== void 0 ? _c : outModes.default, \"right\");\n this.updateOutMode(particle, delta, (_d = outModes.top) !== null && _d !== void 0 ? _d : outModes.default, \"top\");\n }\n updateOutMode(particle, delta, outMode, direction) {\n for (const updater of this.updaters) {\n updater.update(particle, direction, delta, outMode);\n }\n }\n}\n","import { isSsr } from \"tsparticles-engine\";\nexport class ParallaxMover {\n init() {\n }\n isEnabled(particle) {\n return (!isSsr() &&\n !particle.destroyed &&\n particle.container.actualOptions.interactivity.events.onHover.parallax.enable);\n }\n move(particle) {\n const container = particle.container, options = container.actualOptions;\n if (isSsr() || !options.interactivity.events.onHover.parallax.enable) {\n return;\n }\n const parallaxForce = options.interactivity.events.onHover.parallax.force, mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const canvasCenter = {\n x: container.canvas.size.width / 2,\n y: container.canvas.size.height / 2,\n }, parallaxSmooth = options.interactivity.events.onHover.parallax.smooth, factor = particle.getRadius() / parallaxForce, centerDistance = {\n x: (mousePos.x - canvasCenter.x) * factor,\n y: (mousePos.y - canvasCenter.y) * factor,\n };\n particle.offset.x += (centerDistance.x - particle.offset.x) / parallaxSmooth;\n particle.offset.y += (centerDistance.y - particle.offset.y) / parallaxSmooth;\n }\n}\n","import { ParticlesInteractorBase, getDistances } from \"tsparticles-engine\";\nexport class Attractor extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n async interact(p1) {\n var _a;\n const container = this.container, distance = (_a = p1.retina.attractDistance) !== null && _a !== void 0 ? _a : container.retina.attractDistance, pos1 = p1.getPosition(), query = container.particles.quadTree.queryCircle(pos1, distance);\n for (const p2 of query) {\n if (p1 === p2 || !p2.options.move.attract.enable || p2.destroyed || p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), { dx, dy } = getDistances(pos1, pos2), rotate = p1.options.move.attract.rotate, ax = dx / (rotate.x * 1000), ay = dy / (rotate.y * 1000), p1Factor = p2.size.value / p1.size.value, p2Factor = 1 / p1Factor;\n p1.velocity.x -= ax * p1Factor;\n p1.velocity.y -= ay * p1Factor;\n p2.velocity.x += ax * p2Factor;\n p2.velocity.y += ay * p2Factor;\n }\n }\n isEnabled(particle) {\n return particle.options.move.attract.enable;\n }\n reset() {\n }\n}\n","import { circleBounce, circleBounceDataFromParticle } from \"tsparticles-engine\";\nexport function bounce(p1, p2) {\n circleBounce(circleBounceDataFromParticle(p1), circleBounceDataFromParticle(p2));\n}\n","import { absorb } from \"./Absorb\";\nimport { bounce } from \"./Bounce\";\nimport { destroy } from \"./Destroy\";\nexport function resolveCollision(p1, p2, fps, pixelRatio) {\n switch (p1.options.collisions.mode) {\n case \"absorb\": {\n absorb(p1, p2, fps, pixelRatio);\n break;\n }\n case \"bounce\": {\n bounce(p1, p2);\n break;\n }\n case \"destroy\": {\n destroy(p1, p2);\n break;\n }\n }\n}\n","import { clamp } from \"tsparticles-engine\";\nexport function absorb(p1, p2, fps, pixelRatio) {\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n const factor = clamp(p1.getRadius() / p2.getRadius(), 0, p2.getRadius()) * fps;\n p1.size.value += factor;\n p2.size.value -= factor;\n if (p2.getRadius() <= pixelRatio) {\n p2.size.value = 0;\n p2.destroy();\n }\n }\n else {\n const factor = clamp(p2.getRadius() / p1.getRadius(), 0, p1.getRadius()) * fps;\n p1.size.value -= factor;\n p2.size.value += factor;\n if (p1.getRadius() <= pixelRatio) {\n p1.size.value = 0;\n p1.destroy();\n }\n }\n }\n}\n","import { bounce } from \"./Bounce\";\nexport function destroy(p1, p2) {\n if (!p1.unbreakable && !p2.unbreakable) {\n bounce(p1, p2);\n }\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n p2.destroy();\n }\n else {\n p1.destroy();\n }\n }\n}\n","import { ParticlesInteractorBase, getDistance } from \"tsparticles-engine\";\nimport { resolveCollision } from \"./ResolveCollision\";\nexport class Collider extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n async interact(p1) {\n const container = this.container, pos1 = p1.getPosition(), radius1 = p1.getRadius(), query = container.particles.quadTree.queryCircle(pos1, radius1 * 2);\n for (const p2 of query) {\n if (p1 === p2 ||\n !p2.options.collisions.enable ||\n p1.options.collisions.mode !== p2.options.collisions.mode ||\n p2.destroyed ||\n p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition();\n const radius2 = p2.getRadius();\n if (Math.abs(Math.round(pos1.z) - Math.round(pos2.z)) > radius1 + radius2) {\n continue;\n }\n const dist = getDistance(pos1, pos2);\n const distP = radius1 + radius2;\n if (dist > distP) {\n continue;\n }\n resolveCollision(p1, p2, container.fpsLimit / 1000, container.retina.pixelRatio);\n }\n }\n isEnabled(particle) {\n return particle.options.collisions.enable;\n }\n reset() {\n }\n}\n","import { Circle, CircleWarp, ParticlesInteractorBase, getDistance, getLinkRandomColor } from \"tsparticles-engine\";\nfunction getLinkDistance(pos1, pos2, optDistance, canvasSize, warp) {\n let distance = getDistance(pos1, pos2);\n if (!warp || distance <= optDistance) {\n return distance;\n }\n const pos2NE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y,\n };\n distance = getDistance(pos1, pos2NE);\n if (distance <= optDistance) {\n return distance;\n }\n const pos2SE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y - canvasSize.height,\n };\n distance = getDistance(pos1, pos2SE);\n if (distance <= optDistance) {\n return distance;\n }\n const pos2SW = {\n x: pos2.x,\n y: pos2.y - canvasSize.height,\n };\n distance = getDistance(pos1, pos2SW);\n return distance;\n}\nexport class Linker extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n this.linkContainer = container;\n }\n clear() {\n }\n init() {\n this.linkContainer.particles.linksColors = new Map();\n }\n async interact(p1) {\n var _a;\n p1.links = [];\n const pos1 = p1.getPosition(), container = this.container, canvasSize = container.canvas.size;\n if (pos1.x < 0 || pos1.y < 0 || pos1.x > canvasSize.width || pos1.y > canvasSize.height) {\n return;\n }\n const linkOpt1 = p1.options.links, optOpacity = linkOpt1.opacity, optDistance = (_a = p1.retina.linksDistance) !== null && _a !== void 0 ? _a : container.retina.linksDistance, warp = linkOpt1.warp, range = warp\n ? new CircleWarp(pos1.x, pos1.y, optDistance, canvasSize)\n : new Circle(pos1.x, pos1.y, optDistance), query = container.particles.quadTree.query(range);\n for (const p2 of query) {\n const linkOpt2 = p2.options.links;\n if (p1 === p2 ||\n !linkOpt2.enable ||\n linkOpt1.id !== linkOpt2.id ||\n p2.spawning ||\n p2.destroyed ||\n p1.links.map((t) => t.destination).indexOf(p2) !== -1 ||\n p2.links.map((t) => t.destination).indexOf(p1) !== -1) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (pos2.x < 0 || pos2.y < 0 || pos2.x > canvasSize.width || pos2.y > canvasSize.height) {\n continue;\n }\n const distance = getLinkDistance(pos1, pos2, optDistance, canvasSize, warp && linkOpt2.warp);\n if (distance > optDistance) {\n return;\n }\n const opacityLine = (1 - distance / optDistance) * optOpacity;\n this.setColor(p1);\n p1.links.push({\n destination: p2,\n opacity: opacityLine,\n });\n }\n }\n isEnabled(particle) {\n return particle.options.links.enable;\n }\n reset() {\n }\n setColor(p1) {\n const container = this.linkContainer, linksOptions = p1.options.links;\n let linkColor = linksOptions.id === undefined\n ? container.particles.linksColor\n : container.particles.linksColors.get(linksOptions.id);\n if (!linkColor) {\n const optColor = linksOptions.color;\n linkColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n if (linksOptions.id === undefined) {\n container.particles.linksColor = linkColor;\n }\n else {\n container.particles.linksColors.set(linksOptions.id, linkColor);\n }\n }\n }\n}\n","import { drawLinkLine, drawLinkTriangle } from \"./Utils\";\nimport { getDistance, getLinkColor, getRangeValue, rangeColorToRgb } from \"tsparticles-engine\";\nexport class LinkInstance {\n constructor(container) {\n this.container = container;\n }\n drawParticle(context, particle) {\n const linkParticle = particle, container = this.container, particles = container.particles, pOptions = particle.options;\n if (linkParticle.links.length <= 0) {\n return;\n }\n context.save();\n const p1Links = linkParticle.links.filter((l) => {\n const linkFreq = container.particles.getLinkFrequency(linkParticle, l.destination);\n return linkFreq <= pOptions.links.frequency;\n });\n for (const link of p1Links) {\n const p2 = link.destination;\n if (pOptions.links.triangles.enable) {\n const links = p1Links.map((l) => l.destination), vertices = p2.links.filter((t) => {\n const linkFreq = container.particles.getLinkFrequency(p2, t.destination);\n return linkFreq <= p2.options.links.frequency && links.indexOf(t.destination) >= 0;\n });\n if (vertices.length) {\n for (const vertex of vertices) {\n const p3 = vertex.destination, triangleFreq = particles.getTriangleFrequency(linkParticle, p2, p3);\n if (triangleFreq > pOptions.links.triangles.frequency) {\n continue;\n }\n this.drawLinkTriangle(linkParticle, link, vertex);\n }\n }\n }\n if (link.opacity > 0 && container.retina.linksWidth > 0) {\n this.drawLinkLine(linkParticle, link);\n }\n }\n context.restore();\n }\n particleCreated(particle) {\n const linkParticle = particle;\n linkParticle.links = [];\n }\n particleDestroyed(particle) {\n const linkParticle = particle;\n linkParticle.links = [];\n }\n drawLinkLine(p1, link) {\n const container = this.container, options = container.actualOptions, p2 = link.destination, pos1 = p1.getPosition(), pos2 = p2.getPosition();\n let opacity = link.opacity;\n container.canvas.draw((ctx) => {\n var _a, _b, _c;\n let colorLine;\n const twinkle = (_a = p1.options.twinkle) === null || _a === void 0 ? void 0 : _a.lines;\n if (twinkle === null || twinkle === void 0 ? void 0 : twinkle.enable) {\n const twinkleFreq = twinkle.frequency, twinkleRgb = rangeColorToRgb(twinkle.color), twinkling = Math.random() < twinkleFreq;\n if (twinkling && twinkleRgb) {\n colorLine = twinkleRgb;\n opacity = getRangeValue(twinkle.opacity);\n }\n }\n if (!colorLine) {\n const linksOptions = p1.options.links, linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorLine = getLinkColor(p1, p2, linkColor);\n }\n if (!colorLine) {\n return;\n }\n const width = (_b = p1.retina.linksWidth) !== null && _b !== void 0 ? _b : container.retina.linksWidth, maxDistance = (_c = p1.retina.linksDistance) !== null && _c !== void 0 ? _c : container.retina.linksDistance;\n drawLinkLine(ctx, width, pos1, pos2, maxDistance, container.canvas.size, p1.options.links.warp, options.backgroundMask.enable, options.backgroundMask.composite, colorLine, opacity, p1.options.links.shadow);\n });\n }\n drawLinkTriangle(p1, link1, link2) {\n var _a;\n const container = this.container, options = container.actualOptions, p2 = link1.destination, p3 = link2.destination, triangleOptions = p1.options.links.triangles, opacityTriangle = (_a = triangleOptions.opacity) !== null && _a !== void 0 ? _a : (link1.opacity + link2.opacity) / 2;\n if (opacityTriangle <= 0) {\n return;\n }\n container.canvas.draw((ctx) => {\n const pos1 = p1.getPosition();\n const pos2 = p2.getPosition();\n const pos3 = p3.getPosition();\n if (getDistance(pos1, pos2) > container.retina.linksDistance ||\n getDistance(pos3, pos2) > container.retina.linksDistance ||\n getDistance(pos3, pos1) > container.retina.linksDistance) {\n return;\n }\n let colorTriangle = rangeColorToRgb(triangleOptions.color);\n if (!colorTriangle) {\n const linksOptions = p1.options.links, linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorTriangle = getLinkColor(p1, p2, linkColor);\n }\n if (!colorTriangle) {\n return;\n }\n drawLinkTriangle(ctx, pos1, pos2, pos3, options.backgroundMask.enable, options.backgroundMask.composite, colorTriangle, opacityTriangle);\n });\n }\n}\n","import { drawLine, drawTriangle, getDistance, getDistances, getStyleFromRgb, rangeColorToRgb, } from \"tsparticles-engine\";\nexport function drawLinkLine(context, width, begin, end, maxDistance, canvasSize, warp, backgroundMask, composite, colorLine, opacity, shadow) {\n let drawn = false;\n if (getDistance(begin, end) <= maxDistance) {\n drawLine(context, begin, end);\n drawn = true;\n }\n else if (warp) {\n let pi1;\n let pi2;\n const endNE = {\n x: end.x - canvasSize.width,\n y: end.y,\n };\n const d1 = getDistances(begin, endNE);\n if (d1.distance <= maxDistance) {\n const yi = begin.y - (d1.dy / d1.dx) * begin.x;\n pi1 = { x: 0, y: yi };\n pi2 = { x: canvasSize.width, y: yi };\n }\n else {\n const endSW = {\n x: end.x,\n y: end.y - canvasSize.height,\n };\n const d2 = getDistances(begin, endSW);\n if (d2.distance <= maxDistance) {\n const yi = begin.y - (d2.dy / d2.dx) * begin.x;\n const xi = -yi / (d2.dy / d2.dx);\n pi1 = { x: xi, y: 0 };\n pi2 = { x: xi, y: canvasSize.height };\n }\n else {\n const endSE = {\n x: end.x - canvasSize.width,\n y: end.y - canvasSize.height,\n };\n const d3 = getDistances(begin, endSE);\n if (d3.distance <= maxDistance) {\n const yi = begin.y - (d3.dy / d3.dx) * begin.x;\n const xi = -yi / (d3.dy / d3.dx);\n pi1 = { x: xi, y: yi };\n pi2 = { x: pi1.x + canvasSize.width, y: pi1.y + canvasSize.height };\n }\n }\n }\n if (pi1 && pi2) {\n drawLine(context, begin, pi1);\n drawLine(context, end, pi2);\n drawn = true;\n }\n }\n if (!drawn) {\n return;\n }\n context.lineWidth = width;\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n if (shadow.enable) {\n const shadowColor = rangeColorToRgb(shadow.color);\n if (shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n }\n }\n context.stroke();\n}\nexport function drawLinkTriangle(context, pos1, pos2, pos3, backgroundMask, composite, colorTriangle, opacityTriangle) {\n drawTriangle(context, pos1, pos2, pos3);\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.fillStyle = getStyleFromRgb(colorTriangle, opacityTriangle);\n context.fill();\n}\n","import { LinkInstance } from \"./LinkInstance\";\nclass LinksPlugin {\n constructor() {\n this.id = \"links\";\n }\n getPlugin(container) {\n return new LinkInstance(container);\n }\n loadOptions() {\n }\n needsPlugin() {\n return true;\n }\n}\nexport async function loadPlugin(engine) {\n const plugin = new LinksPlugin();\n await engine.addPlugin(plugin);\n}\n","import { loadInteraction } from \"./interaction\";\nimport { loadPlugin } from \"./plugin\";\nexport async function loadParticlesLinksInteraction(engine) {\n await loadInteraction(engine);\n await loadPlugin(engine);\n}\n","import { Linker } from \"./Linker\";\nexport async function loadInteraction(engine) {\n await engine.addInteractor(\"particlesLinks\", (container) => new Linker(container));\n}\n","export class PolygonDrawerBase {\n draw(context, particle, radius) {\n const start = this.getCenter(particle, radius);\n const side = this.getSidesData(particle, radius);\n const sideCount = side.count.numerator * side.count.denominator;\n const decimalSides = side.count.numerator / side.count.denominator;\n const interiorAngleDegrees = (180 * (decimalSides - 2)) / decimalSides;\n const interiorAngle = Math.PI - (Math.PI * interiorAngleDegrees) / 180;\n if (!context) {\n return;\n }\n context.beginPath();\n context.translate(start.x, start.y);\n context.moveTo(0, 0);\n for (let i = 0; i < sideCount; i++) {\n context.lineTo(side.length, 0);\n context.translate(side.length, 0);\n context.rotate(interiorAngle);\n }\n }\n getSidesCount(particle) {\n var _a, _b;\n const polygon = particle.shapeData;\n return (_b = (_a = polygon === null || polygon === void 0 ? void 0 : polygon.sides) !== null && _a !== void 0 ? _a : polygon === null || polygon === void 0 ? void 0 : polygon.nb_sides) !== null && _b !== void 0 ? _b : 5;\n }\n}\n","import { PolygonDrawerBase } from \"./PolygonDrawerBase\";\nexport class PolygonDrawer extends PolygonDrawerBase {\n getCenter(particle, radius) {\n const sides = this.getSidesCount(particle);\n return {\n x: -radius / (sides / 3.5),\n y: -radius / (2.66 / 3.5),\n };\n }\n getSidesData(particle, radius) {\n var _a, _b;\n const polygon = particle.shapeData;\n const sides = (_b = (_a = polygon === null || polygon === void 0 ? void 0 : polygon.sides) !== null && _a !== void 0 ? _a : polygon === null || polygon === void 0 ? void 0 : polygon.nb_sides) !== null && _b !== void 0 ? _b : 5;\n return {\n count: {\n denominator: 1,\n numerator: sides,\n },\n length: (radius * 2.66) / (sides / 3),\n };\n }\n}\n","import { PolygonDrawerBase } from \"./PolygonDrawerBase\";\nexport class TriangleDrawer extends PolygonDrawerBase {\n getCenter(particle, radius) {\n return {\n x: -radius,\n y: radius / 1.66,\n };\n }\n getSidesCount() {\n return 3;\n }\n getSidesData(particle, radius) {\n return {\n count: {\n denominator: 2,\n numerator: 3,\n },\n length: radius * 2,\n };\n }\n}\n","import { PolygonDrawer } from \"./PolygonDrawer\";\nimport { TriangleDrawer } from \"./TriangleDrawer\";\nexport async function loadGenericPolygonShape(engine) {\n await engine.addShape(\"polygon\", new PolygonDrawer());\n}\nexport async function loadTriangleShape(engine) {\n await engine.addShape(\"triangle\", new TriangleDrawer());\n}\nexport async function loadPolygonShape(engine) {\n await loadGenericPolygonShape(engine);\n await loadTriangleShape(engine);\n}\n","import { clamp } from \"tsparticles-engine\";\nfunction checkDestroy(particle, value, minValue, maxValue) {\n switch (particle.options.size.animation.destroy) {\n case \"max\":\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case \"min\":\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateSize(particle, delta) {\n var _a, _b, _c, _d, _e;\n const sizeVelocity = ((_a = particle.size.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor, minValue = particle.size.min, maxValue = particle.size.max, decay = (_b = particle.size.decay) !== null && _b !== void 0 ? _b : 1;\n if (particle.destroyed ||\n !particle.size.enable ||\n (((_c = particle.size.maxLoops) !== null && _c !== void 0 ? _c : 0) > 0 && ((_d = particle.size.loops) !== null && _d !== void 0 ? _d : 0) > ((_e = particle.size.maxLoops) !== null && _e !== void 0 ? _e : 0))) {\n return;\n }\n switch (particle.size.status) {\n case 0:\n if (particle.size.value >= maxValue) {\n particle.size.status = 1;\n if (!particle.size.loops) {\n particle.size.loops = 0;\n }\n particle.size.loops++;\n }\n else {\n particle.size.value += sizeVelocity;\n }\n break;\n case 1:\n if (particle.size.value <= minValue) {\n particle.size.status = 0;\n if (!particle.size.loops) {\n particle.size.loops = 0;\n }\n particle.size.loops++;\n }\n else {\n particle.size.value -= sizeVelocity;\n }\n }\n if (particle.size.velocity && decay !== 1) {\n particle.size.velocity *= decay;\n }\n checkDestroy(particle, particle.size.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.size.value = clamp(particle.size.value, minValue, maxValue);\n }\n}\nexport class SizeUpdater {\n init() {\n }\n isEnabled(particle) {\n var _a, _b, _c, _d;\n return (!particle.destroyed &&\n !particle.spawning &&\n particle.size.enable &&\n (((_a = particle.size.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 ||\n (((_b = particle.size.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 && ((_c = particle.size.loops) !== null && _c !== void 0 ? _c : 0) < ((_d = particle.size.maxLoops) !== null && _d !== void 0 ? _d : 0))));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateSize(particle, delta);\n }\n}\n","const fixFactor = Math.sqrt(2);\nexport class SquareDrawer {\n draw(context, particle, radius) {\n context.rect(-radius / fixFactor, -radius / fixFactor, (radius * 2) / fixFactor, (radius * 2) / fixFactor);\n }\n getSidesCount() {\n return 4;\n }\n}\n","export class StarDrawer {\n draw(context, particle, radius) {\n var _a;\n const star = particle.shapeData, sides = this.getSidesCount(particle), inset = (_a = star === null || star === void 0 ? void 0 : star.inset) !== null && _a !== void 0 ? _a : 2;\n context.moveTo(0, 0 - radius);\n for (let i = 0; i < sides; i++) {\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius * inset);\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius);\n }\n }\n getSidesCount(particle) {\n var _a, _b;\n const star = particle.shapeData;\n return (_b = (_a = star === null || star === void 0 ? void 0 : star.sides) !== null && _a !== void 0 ? _a : star === null || star === void 0 ? void 0 : star.nb_sides) !== null && _b !== void 0 ? _b : 5;\n }\n}\n","import { getHslAnimationFromHsl, itemFromArray, randomInRange, rangeColorToHsl, } from \"tsparticles-engine\";\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a, _b;\n const colorValue = value;\n if (!colorValue || !colorValue.enable) {\n return;\n }\n const offset = randomInRange(valueAnimation.offset), velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6, decay = (_b = value.decay) !== null && _b !== void 0 ? _b : 1;\n if (!decrease || colorValue.status === 0) {\n colorValue.value += velocity;\n if (decrease && colorValue.value > max) {\n colorValue.status = 1;\n colorValue.value -= colorValue.value % max;\n }\n }\n else {\n colorValue.value -= velocity;\n if (colorValue.value < 0) {\n colorValue.status = 0;\n colorValue.value += colorValue.value;\n }\n }\n if (colorValue.velocity && decay !== 1) {\n colorValue.velocity *= decay;\n }\n if (colorValue.value > max) {\n colorValue.value %= max;\n }\n}\nfunction updateStrokeColor(particle, delta) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n if (!((_a = particle.stroke) === null || _a === void 0 ? void 0 : _a.color)) {\n return;\n }\n const animationOptions = particle.stroke.color.animation, h = (_c = (_b = particle.strokeColor) === null || _b === void 0 ? void 0 : _b.h) !== null && _c !== void 0 ? _c : (_d = particle.color) === null || _d === void 0 ? void 0 : _d.h;\n if (h) {\n updateColorValue(delta, h, animationOptions.h, 360, false);\n }\n const s = (_f = (_e = particle.strokeColor) === null || _e === void 0 ? void 0 : _e.s) !== null && _f !== void 0 ? _f : (_g = particle.color) === null || _g === void 0 ? void 0 : _g.s;\n if (s) {\n updateColorValue(delta, s, animationOptions.s, 100, true);\n }\n const l = (_j = (_h = particle.strokeColor) === null || _h === void 0 ? void 0 : _h.l) !== null && _j !== void 0 ? _j : (_k = particle.color) === null || _k === void 0 ? void 0 : _k.l;\n if (l) {\n updateColorValue(delta, l, animationOptions.l, 100, true);\n }\n}\nexport class StrokeColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n var _a, _b;\n const container = this.container;\n particle.stroke =\n particle.options.stroke instanceof Array\n ? itemFromArray(particle.options.stroke, particle.id, particle.options.reduceDuplicates)\n : particle.options.stroke;\n particle.strokeWidth = particle.stroke.width * container.retina.pixelRatio;\n const strokeHslColor = (_a = rangeColorToHsl(particle.stroke.color)) !== null && _a !== void 0 ? _a : particle.getFillColor();\n if (strokeHslColor) {\n particle.strokeColor = getHslAnimationFromHsl(strokeHslColor, (_b = particle.stroke.color) === null || _b === void 0 ? void 0 : _b.animation, container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n var _a, _b, _c, _d;\n const color = (_a = particle.stroke) === null || _a === void 0 ? void 0 : _a.color;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!color &&\n ((((_b = particle.strokeColor) === null || _b === void 0 ? void 0 : _b.h.value) !== undefined && color.animation.h.enable) ||\n (((_c = particle.strokeColor) === null || _c === void 0 ? void 0 : _c.s.value) !== undefined && color.animation.s.enable) ||\n (((_d = particle.strokeColor) === null || _d === void 0 ? void 0 : _d.l.value) !== undefined && color.animation.l.enable)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateStrokeColor(particle, delta);\n }\n}\n","import { isInArray, itemFromArray, loadFont } from \"tsparticles-engine\";\nexport const validTypes = [\"text\", \"character\", \"char\"];\nexport class TextDrawer {\n draw(context, particle, radius, opacity) {\n var _a, _b, _c;\n const character = particle.shapeData;\n if (character === undefined) {\n return;\n }\n const textData = character.value;\n if (textData === undefined) {\n return;\n }\n const textParticle = particle;\n if (textParticle.text === undefined) {\n textParticle.text =\n textData instanceof Array ? itemFromArray(textData, particle.randomIndexData) : textData;\n }\n const text = textParticle.text, style = (_a = character.style) !== null && _a !== void 0 ? _a : \"\", weight = (_b = character.weight) !== null && _b !== void 0 ? _b : \"400\", size = Math.round(radius) * 2, font = (_c = character.font) !== null && _c !== void 0 ? _c : \"Verdana\", fill = particle.fill, offsetX = (text.length * radius) / 2;\n context.font = `${style} ${weight} ${size}px \"${font}\"`;\n const pos = {\n x: -offsetX,\n y: radius / 2,\n };\n context.globalAlpha = opacity;\n if (fill) {\n context.fillText(text, pos.x, pos.y);\n }\n else {\n context.strokeText(text, pos.x, pos.y);\n }\n context.globalAlpha = 1;\n }\n getSidesCount() {\n return 12;\n }\n async init(container) {\n const options = container.actualOptions;\n if (validTypes.find((t) => isInArray(t, options.particles.shape.type))) {\n const shapeOptions = validTypes\n .map((t) => options.particles.shape.options[t])\n .find((t) => !!t);\n if (shapeOptions instanceof Array) {\n const promises = [];\n for (const character of shapeOptions) {\n const charShape = character;\n promises.push(loadFont(charShape.font, charShape.weight));\n }\n await Promise.allSettled(promises);\n }\n else {\n if (shapeOptions !== undefined) {\n const charShape = shapeOptions;\n await loadFont(charShape.font, charShape.weight);\n }\n }\n }\n }\n}\n","import { initPjs } from \"tsparticles-particles.js\";\nimport { loadAngleUpdater } from \"tsparticles-updater-angle\";\nimport { loadBaseMover } from \"tsparticles-move-base\";\nimport { loadCircleShape } from \"tsparticles-shape-circle\";\nimport { loadColorUpdater } from \"tsparticles-updater-color\";\nimport { loadExternalAttractInteraction } from \"tsparticles-interaction-external-attract\";\nimport { loadExternalBounceInteraction } from \"tsparticles-interaction-external-bounce\";\nimport { loadExternalBubbleInteraction } from \"tsparticles-interaction-external-bubble\";\nimport { loadExternalConnectInteraction } from \"tsparticles-interaction-external-connect\";\nimport { loadExternalGrabInteraction } from \"tsparticles-interaction-external-grab\";\nimport { loadExternalPauseInteraction } from \"tsparticles-interaction-external-pause\";\nimport { loadExternalPushInteraction } from \"tsparticles-interaction-external-push\";\nimport { loadExternalRemoveInteraction } from \"tsparticles-interaction-external-remove\";\nimport { loadExternalRepulseInteraction } from \"tsparticles-interaction-external-repulse\";\nimport { loadImageShape } from \"tsparticles-shape-image\";\nimport { loadLifeUpdater } from \"tsparticles-updater-life\";\nimport { loadLineShape } from \"tsparticles-shape-line\";\nimport { loadOpacityUpdater } from \"tsparticles-updater-opacity\";\nimport { loadOutModesUpdater } from \"tsparticles-updater-out-modes\";\nimport { loadParallaxMover } from \"tsparticles-move-parallax\";\nimport { loadParticlesAttractInteraction } from \"tsparticles-interaction-particles-attract\";\nimport { loadParticlesCollisionsInteraction } from \"tsparticles-interaction-particles-collisions\";\nimport { loadParticlesLinksInteraction } from \"tsparticles-interaction-particles-links\";\nimport { loadPolygonShape } from \"tsparticles-shape-polygon\";\nimport { loadSizeUpdater } from \"tsparticles-updater-size\";\nimport { loadSquareShape } from \"tsparticles-shape-square\";\nimport { loadStarShape } from \"tsparticles-shape-star\";\nimport { loadStrokeColorUpdater } from \"tsparticles-updater-stroke-color\";\nimport { loadTextShape } from \"tsparticles-shape-text\";\nexport async function loadSlim(engine) {\n await loadBaseMover(engine);\n await loadParallaxMover(engine);\n await loadExternalAttractInteraction(engine);\n await loadExternalBounceInteraction(engine);\n await loadExternalBubbleInteraction(engine);\n await loadExternalConnectInteraction(engine);\n await loadExternalGrabInteraction(engine);\n await loadExternalPauseInteraction(engine);\n await loadExternalPushInteraction(engine);\n await loadExternalRemoveInteraction(engine);\n await loadExternalRepulseInteraction(engine);\n await loadParticlesAttractInteraction(engine);\n await loadParticlesCollisionsInteraction(engine);\n await loadParticlesLinksInteraction(engine);\n await loadCircleShape(engine);\n await loadImageShape(engine);\n await loadLineShape(engine);\n await loadPolygonShape(engine);\n await loadSquareShape(engine);\n await loadStarShape(engine);\n await loadTextShape(engine);\n await loadLifeUpdater(engine);\n await loadOpacityUpdater(engine);\n await loadSizeUpdater(engine);\n await loadAngleUpdater(engine);\n await loadColorUpdater(engine);\n await loadStrokeColorUpdater(engine);\n await loadOutModesUpdater(engine);\n await initPjs(engine);\n}\n","import { BaseMover } from \"./BaseMover\";\nexport async function loadBaseMover(engine) {\n engine.addMover(\"base\", () => new BaseMover());\n}\n","import { ParallaxMover } from \"./ParallaxMover\";\nexport async function loadParallaxMover(engine) {\n engine.addMover(\"parallax\", () => new ParallaxMover());\n}\n","import { Attractor } from \"./Attractor\";\nexport async function loadExternalAttractInteraction(engine) {\n await engine.addInteractor(\"externalAttract\", (container) => new Attractor(container));\n}\n","import { Bouncer } from \"./Bouncer\";\nexport async function loadExternalBounceInteraction(engine) {\n await engine.addInteractor(\"externalBounce\", (container) => new Bouncer(container));\n}\n","import { Bubbler } from \"./Bubbler\";\nexport async function loadExternalBubbleInteraction(engine) {\n await engine.addInteractor(\"externalBubble\", (container) => new Bubbler(container));\n}\n","import { Connector } from \"./Connector\";\nexport async function loadExternalConnectInteraction(engine) {\n await engine.addInteractor(\"externalConnect\", (container) => new Connector(container));\n}\n","import { Grabber } from \"./Grabber\";\nexport async function loadExternalGrabInteraction(engine) {\n await engine.addInteractor(\"externalGrab\", (container) => new Grabber(container));\n}\n","import { Pauser } from \"./Pauser\";\nexport function loadExternalPauseInteraction(engine) {\n engine.addInteractor(\"externalPause\", (container) => new Pauser(container));\n}\n","import { Pusher } from \"./Pusher\";\nexport async function loadExternalPushInteraction(engine) {\n await engine.addInteractor(\"externalPush\", (container) => new Pusher(container));\n}\n","import { Remover } from \"./Remover\";\nexport function loadExternalRemoveInteraction(engine) {\n engine.addInteractor(\"externalRemove\", (container) => new Remover(container));\n}\n","import { Repulser } from \"./Repulser\";\nexport async function loadExternalRepulseInteraction(engine) {\n await engine.addInteractor(\"externalRepulse\", (container) => new Repulser(container));\n}\n","import { Attractor } from \"./Attractor\";\nexport async function loadParticlesAttractInteraction(engine) {\n await engine.addInteractor(\"particlesAttract\", (container) => new Attractor(container));\n}\n","import { Collider } from \"./Collider\";\nexport async function loadParticlesCollisionsInteraction(engine) {\n await engine.addInteractor(\"particlesCollisions\", (container) => new Collider(container));\n}\n","import { CircleDrawer } from \"./CircleDrawer\";\nexport async function loadCircleShape(engine) {\n await engine.addShape(\"circle\", new CircleDrawer());\n}\n","import { ImageDrawer } from \"./ImageDrawer\";\nexport async function loadImageShape(engine) {\n const imageDrawer = new ImageDrawer();\n await engine.addShape(\"image\", imageDrawer);\n await engine.addShape(\"images\", imageDrawer);\n}\n","import { LineDrawer } from \"./LineDrawer\";\nexport async function loadLineShape(engine) {\n await engine.addShape(\"line\", new LineDrawer());\n}\n","import { SquareDrawer } from \"./SquareDrawer\";\nexport async function loadSquareShape(engine) {\n const drawer = new SquareDrawer();\n await engine.addShape(\"edge\", drawer);\n await engine.addShape(\"square\", drawer);\n}\n","import { StarDrawer } from \"./StarDrawer\";\nexport async function loadStarShape(engine) {\n await engine.addShape(\"star\", new StarDrawer());\n}\n","import { TextDrawer, validTypes } from \"./TextDrawer\";\nexport async function loadTextShape(engine) {\n const drawer = new TextDrawer();\n for (const type of validTypes) {\n await engine.addShape(type, drawer);\n }\n}\n","import { LifeUpdater } from \"./LifeUpdater\";\nexport async function loadLifeUpdater(engine) {\n await engine.addParticleUpdater(\"life\", (container) => new LifeUpdater(container));\n}\n","import { OpacityUpdater } from \"./OpacityUpdater\";\nexport async function loadOpacityUpdater(engine) {\n await engine.addParticleUpdater(\"opacity\", (container) => new OpacityUpdater(container));\n}\n","import { SizeUpdater } from \"./SizeUpdater\";\nexport async function loadSizeUpdater(engine) {\n await engine.addParticleUpdater(\"size\", () => new SizeUpdater());\n}\n","import { AngleUpdater } from \"./AngleUpdater\";\nexport async function loadAngleUpdater(engine) {\n await engine.addParticleUpdater(\"angle\", (container) => new AngleUpdater(container));\n}\n","import { ColorUpdater } from \"./ColorUpdater\";\nexport async function loadColorUpdater(engine) {\n await engine.addParticleUpdater(\"color\", (container) => new ColorUpdater(container));\n}\n","import { StrokeColorUpdater } from \"./StrokeColorUpdater\";\nexport async function loadStrokeColorUpdater(engine) {\n await engine.addParticleUpdater(\"strokeColor\", (container) => new StrokeColorUpdater(container));\n}\n","import { OutOfCanvasUpdater } from \"./OutOfCanvasUpdater\";\nexport async function loadOutModesUpdater(engine) {\n await engine.addParticleUpdater(\"outModes\", (container) => new OutOfCanvasUpdater(container));\n}\n","const initPjs = (engine) => {\n const particlesJS = (tagId, options) => {\n return engine.load(tagId, options);\n };\n particlesJS.load = (tagId, pathConfigJson, callback) => {\n engine\n .loadJSON(tagId, pathConfigJson)\n .then((container) => {\n if (container) {\n callback(container);\n }\n })\n .catch(() => {\n callback(undefined);\n });\n };\n particlesJS.setOnClickHandler = (callback) => {\n engine.setOnClickHandler(callback);\n };\n const pJSDom = engine.dom();\n return { particlesJS, pJSDom };\n};\nexport { initPjs };\n","import { setRangeValue } from \"tsparticles-engine\";\nexport class TiltAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { TiltAnimation } from \"./TiltAnimation\";\nimport { ValueWithRandom } from \"tsparticles-engine\";\nexport class Tilt extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new TiltAnimation();\n this.direction = \"clockwise\";\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","import { getRangeValue } from \"tsparticles-engine\";\nimport { Tilt } from \"./Options/Classes/Tilt\";\nfunction updateTilt(particle, delta) {\n var _a, _b;\n if (!particle.tilt || !particle.options.tilt) {\n return;\n }\n const tilt = particle.options.tilt, tiltAnimation = tilt.animation, speed = ((_a = particle.tilt.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor, max = 2 * Math.PI, decay = (_b = particle.tilt.decay) !== null && _b !== void 0 ? _b : 1;\n if (!tiltAnimation.enable) {\n return;\n }\n switch (particle.tilt.status) {\n case 0:\n particle.tilt.value += speed;\n if (particle.tilt.value > max) {\n particle.tilt.value -= max;\n }\n break;\n case 1:\n default:\n particle.tilt.value -= speed;\n if (particle.tilt.value < 0) {\n particle.tilt.value += max;\n }\n break;\n }\n if (particle.tilt.velocity && decay !== 1) {\n particle.tilt.velocity *= decay;\n }\n}\nexport class TiltUpdater {\n constructor(container) {\n this.container = container;\n }\n getTransformValues(particle) {\n var _a;\n const tilt = ((_a = particle.tilt) === null || _a === void 0 ? void 0 : _a.enable) && particle.tilt;\n return {\n b: tilt ? Math.cos(tilt.value) * tilt.cosDirection : undefined,\n c: tilt ? Math.sin(tilt.value) * tilt.sinDirection : undefined,\n };\n }\n init(particle) {\n var _a;\n const tiltOptions = particle.options.tilt;\n if (!tiltOptions) {\n return;\n }\n particle.tilt = {\n enable: tiltOptions.enable,\n value: (getRangeValue(tiltOptions.value) * Math.PI) / 180,\n sinDirection: Math.random() >= 0.5 ? 1 : -1,\n cosDirection: Math.random() >= 0.5 ? 1 : -1,\n };\n let tiltDirection = tiltOptions.direction;\n if (tiltDirection === \"random\") {\n const index = Math.floor(Math.random() * 2);\n tiltDirection = index > 0 ? \"counter-clockwise\" : \"clockwise\";\n }\n switch (tiltDirection) {\n case \"counter-clockwise\":\n case \"counterClockwise\":\n particle.tilt.status = 1;\n break;\n case \"clockwise\":\n particle.tilt.status = 0;\n break;\n }\n const tiltAnimation = (_a = particle.options.tilt) === null || _a === void 0 ? void 0 : _a.animation;\n if (tiltAnimation === null || tiltAnimation === void 0 ? void 0 : tiltAnimation.enable) {\n particle.tilt.decay = 1 - getRangeValue(tiltAnimation.decay);\n particle.tilt.velocity = (getRangeValue(tiltAnimation.speed) / 360) * this.container.retina.reduceFactor;\n if (!tiltAnimation.sync) {\n particle.tilt.velocity *= Math.random();\n }\n }\n }\n isEnabled(particle) {\n var _a;\n const tiltAnimation = (_a = particle.options.tilt) === null || _a === void 0 ? void 0 : _a.animation;\n return !particle.destroyed && !particle.spawning && !!(tiltAnimation === null || tiltAnimation === void 0 ? void 0 : tiltAnimation.enable);\n }\n loadOptions(options, ...sources) {\n for (const source of sources) {\n if (!(source === null || source === void 0 ? void 0 : source.tilt)) {\n continue;\n }\n if (!options.tilt) {\n options.tilt = new Tilt();\n }\n options.tilt.load(source.tilt);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateTilt(particle, delta);\n }\n}\n","import { OptionsColor, setRangeValue } from \"tsparticles-engine\";\nexport class TwinkleValues {\n constructor() {\n this.enable = false;\n this.frequency = 0.05;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = setRangeValue(data.opacity);\n }\n }\n}\n","import { TwinkleValues } from \"./TwinkleValues\";\nexport class Twinkle {\n constructor() {\n this.lines = new TwinkleValues();\n this.particles = new TwinkleValues();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.lines.load(data.lines);\n this.particles.load(data.particles);\n }\n}\n","import { getRangeValue, getStyleFromHsl, rangeColorToHsl } from \"tsparticles-engine\";\nimport { Twinkle } from \"./Options/Classes/Twinkle\";\nexport class TwinkleUpdater {\n getColorStyles(particle, context, radius, opacity) {\n const pOptions = particle.options, twinkleOptions = pOptions.twinkle;\n if (!twinkleOptions) {\n return {};\n }\n const twinkle = twinkleOptions.particles, twinkling = twinkle.enable && Math.random() < twinkle.frequency, zIndexOptions = particle.options.zIndex, zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate, twinklingOpacity = twinkling ? getRangeValue(twinkle.opacity) * zOpacityFactor : opacity, twinkleRgb = rangeColorToHsl(twinkle.color), twinkleStyle = twinkleRgb ? getStyleFromHsl(twinkleRgb, twinklingOpacity) : undefined, res = {}, needsTwinkle = twinkling && twinkleStyle;\n res.fill = needsTwinkle ? twinkleStyle : undefined;\n res.stroke = needsTwinkle ? twinkleStyle : undefined;\n return res;\n }\n init() {\n }\n isEnabled(particle) {\n const pOptions = particle.options, twinkleOptions = pOptions.twinkle;\n if (!twinkleOptions) {\n return false;\n }\n return twinkleOptions.particles.enable;\n }\n loadOptions(options, ...sources) {\n for (const source of sources) {\n if (!(source === null || source === void 0 ? void 0 : source.twinkle)) {\n continue;\n }\n if (!options.twinkle) {\n options.twinkle = new Twinkle();\n }\n options.twinkle.load(source.twinkle);\n }\n }\n update() {\n }\n}\n","import { setRangeValue } from \"tsparticles-engine\";\nexport class WobbleSpeed {\n constructor() {\n this.angle = 50;\n this.move = 10;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.angle !== undefined) {\n this.angle = setRangeValue(data.angle);\n }\n if (data.move !== undefined) {\n this.move = setRangeValue(data.move);\n }\n }\n}\n","import { WobbleSpeed } from \"./WobbleSpeed\";\nimport { setRangeValue } from \"tsparticles-engine\";\nexport class Wobble {\n constructor() {\n this.distance = 5;\n this.enable = false;\n this.speed = new WobbleSpeed();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n if (typeof data.speed === \"number\") {\n this.speed.load({ angle: data.speed });\n }\n else {\n const rangeSpeed = data.speed;\n if (rangeSpeed.min !== undefined) {\n this.speed.load({ angle: rangeSpeed });\n }\n else {\n this.speed.load(data.speed);\n }\n }\n }\n }\n}\n","import { Wobble } from \"./Options/Classes/Wobble\";\nimport { getRangeValue } from \"tsparticles-engine\";\nfunction updateWobble(particle, delta) {\n var _a;\n const wobble = particle.options.wobble;\n if (!(wobble === null || wobble === void 0 ? void 0 : wobble.enable) || !particle.wobble) {\n return;\n }\n const angleSpeed = particle.wobble.angleSpeed * delta.factor, moveSpeed = particle.wobble.moveSpeed * delta.factor, distance = (moveSpeed * (((_a = particle.retina.wobbleDistance) !== null && _a !== void 0 ? _a : 0) * delta.factor)) / (1000 / 60), max = 2 * Math.PI;\n particle.wobble.angle += angleSpeed;\n if (particle.wobble.angle > max) {\n particle.wobble.angle -= max;\n }\n particle.position.x += distance * Math.cos(particle.wobble.angle);\n particle.position.y += distance * Math.abs(Math.sin(particle.wobble.angle));\n}\nexport class WobbleUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n var _a;\n const wobbleOpt = particle.options.wobble;\n if (wobbleOpt === null || wobbleOpt === void 0 ? void 0 : wobbleOpt.enable) {\n particle.wobble = {\n angle: Math.random() * Math.PI * 2,\n angleSpeed: getRangeValue(wobbleOpt.speed.angle) / 360,\n moveSpeed: getRangeValue(wobbleOpt.speed.move) / 10,\n };\n }\n else {\n particle.wobble = {\n angle: 0,\n angleSpeed: 0,\n moveSpeed: 0,\n };\n }\n particle.retina.wobbleDistance = getRangeValue((_a = wobbleOpt === null || wobbleOpt === void 0 ? void 0 : wobbleOpt.distance) !== null && _a !== void 0 ? _a : 0) * this.container.retina.pixelRatio;\n }\n isEnabled(particle) {\n var _a;\n return !particle.destroyed && !particle.spawning && !!((_a = particle.options.wobble) === null || _a === void 0 ? void 0 : _a.enable);\n }\n loadOptions(options, ...sources) {\n for (const source of sources) {\n if (!(source === null || source === void 0 ? void 0 : source.wobble)) {\n continue;\n }\n if (!options.wobble) {\n options.wobble = new Wobble();\n }\n options.wobble.load(source.wobble);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateWobble(particle, delta);\n }\n}\n","import { loadAbsorbersPlugin } from \"tsparticles-plugin-absorbers\";\nimport { loadEmittersPlugin } from \"tsparticles-plugin-emitters\";\nimport { loadExternalTrailInteraction } from \"tsparticles-interaction-external-trail\";\nimport { loadPolygonMaskPlugin } from \"tsparticles-plugin-polygon-mask\";\nimport { loadRollUpdater } from \"tsparticles-updater-roll\";\nimport { loadSlim } from \"tsparticles-slim\";\nimport { loadTiltUpdater } from \"tsparticles-updater-tilt\";\nimport { loadTwinkleUpdater } from \"tsparticles-updater-twinkle\";\nimport { loadWobbleUpdater } from \"tsparticles-updater-wobble\";\nexport async function loadFull(engine) {\n await loadSlim(engine);\n await loadRollUpdater(engine);\n await loadTiltUpdater(engine);\n await loadTwinkleUpdater(engine);\n await loadWobbleUpdater(engine);\n await loadExternalTrailInteraction(engine);\n await loadAbsorbersPlugin(engine);\n await loadEmittersPlugin(engine);\n await loadPolygonMaskPlugin(engine);\n}\n","import { RollUpdater } from \"./RollUpdater\";\nexport async function loadRollUpdater(engine) {\n await engine.addParticleUpdater(\"roll\", () => new RollUpdater());\n}\n","import { TiltUpdater } from \"./TiltUpdater\";\nexport async function loadTiltUpdater(engine) {\n await engine.addParticleUpdater(\"tilt\", (container) => new TiltUpdater(container));\n}\n","import { TwinkleUpdater } from \"./TwinkleUpdater\";\nexport async function loadTwinkleUpdater(engine) {\n await engine.addParticleUpdater(\"twinkle\", () => new TwinkleUpdater());\n}\n","import { WobbleUpdater } from \"./WobbleUpdater\";\nexport async function loadWobbleUpdater(engine) {\n await engine.addParticleUpdater(\"wobble\", (container) => new WobbleUpdater(container));\n}\n","import { TrailMaker } from \"./TrailMaker\";\nexport async function loadExternalTrailInteraction(engine) {\n await engine.addInteractor(\"externalTrail\", (container) => new TrailMaker(container));\n}\n","import type { IParticlesProps } from 'react-tsparticles';\r\n\r\nexport const ConfettiOptions: IParticlesProps['options'] = {\r\n fpsLimit: 60,\r\n particles: {\r\n number: {\r\n value: 0,\r\n },\r\n color: {\r\n value: ['#BEA4FF', '#FF6E83', '#59CAFC', '#FFB636'],\r\n },\r\n shape: {\r\n type: ['circle', 'square', 'polygon'],\r\n options: {\r\n polygon: {\r\n sides: 6,\r\n },\r\n },\r\n },\r\n opacity: {\r\n value: { min: 0, max: 1 },\r\n animation: {\r\n enable: true,\r\n speed: 1,\r\n startValue: 'max',\r\n destroy: 'min',\r\n },\r\n },\r\n size: {\r\n value: { min: 3, max: 7 },\r\n },\r\n life: {\r\n duration: {\r\n sync: true,\r\n value: 5,\r\n },\r\n count: 1,\r\n },\r\n move: {\r\n enable: true,\r\n gravity: {\r\n enable: true,\r\n acceleration: 20,\r\n },\r\n speed: 50,\r\n decay: 0.05,\r\n direction: 'none',\r\n outModes: {\r\n default: 'destroy',\r\n top: 'none',\r\n },\r\n },\r\n rotate: {\r\n value: {\r\n min: 0,\r\n max: 360,\r\n },\r\n direction: 'random',\r\n animation: {\r\n enable: true,\r\n speed: 60,\r\n },\r\n },\r\n tilt: {\r\n direction: 'random',\r\n enable: true,\r\n value: {\r\n min: 0,\r\n max: 360,\r\n },\r\n animation: {\r\n enable: true,\r\n speed: 60,\r\n },\r\n },\r\n roll: {\r\n darken: {\r\n enable: true,\r\n value: 25,\r\n },\r\n enable: true,\r\n speed: {\r\n min: 15,\r\n max: 25,\r\n },\r\n },\r\n wobble: {\r\n distance: 30,\r\n enable: true,\r\n speed: {\r\n min: -15,\r\n max: 15,\r\n },\r\n },\r\n },\r\n detectRetina: true,\r\n emitters: [\r\n {\r\n direction: 'top-right',\r\n rate: {\r\n delay: 0.1,\r\n quantity: 10,\r\n },\r\n position: {\r\n x: 0,\r\n y: 50,\r\n },\r\n size: {\r\n width: 0,\r\n height: 0,\r\n },\r\n },\r\n {\r\n direction: 'top-left',\r\n rate: {\r\n delay: 0.1,\r\n quantity: 10,\r\n },\r\n position: {\r\n x: 100,\r\n y: 50,\r\n },\r\n size: {\r\n width: 0,\r\n height: 0,\r\n },\r\n },\r\n ],\r\n};\r\n","import ParticlesClass from 'react-tsparticles';\r\nimport type { IParticlesProps } from 'react-tsparticles';\r\nimport React from 'react';\r\nimport { loadFull } from 'tsparticles';\r\nimport { ConfettiOptions } from './options';\r\n\r\nconst Particles =\r\n ParticlesClass as unknown as React.FC;\r\n\r\nexport const ConfettiParticles: React.VFC = () => (\r\n \r\n);\r\n","import { forwardRef } from 'react';\r\nimport { ConfettiParticles } from '../particles';\r\nimport { ModalOverlayContainer as ModalOverlayStyled } from './styles';\r\n\r\nexport type ModalOverlayProps = {\r\n enableParticles?: boolean;\r\n children?: React.ReactChild;\r\n};\r\n\r\nexport const ModalOverlay = forwardRef<\r\n HTMLDivElement,\r\n ModalOverlayProps\r\n>(({ enableParticles, children = }, ref) => (\r\n \r\n {enableParticles && children}\r\n \r\n));\r\n","import { useState, useMemo } from 'react';\r\nimport { useParams, useNavigate } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport {\r\n ActionButton,\r\n ModalInput,\r\n Pending,\r\n Completed,\r\n NftCard,\r\n} from '../core';\r\nimport {\r\n SellModalTrigger,\r\n ModalContent,\r\n SellModalPreviewWrapper,\r\n SellModalPreviewContainer,\r\n Container,\r\n ModalHeader,\r\n ModalTitle,\r\n ModalDescription,\r\n SaleContentWrapper,\r\n FeeContainer,\r\n FeeDetails,\r\n FeeLabelContainer,\r\n FeeLabel,\r\n FeePercent,\r\n ModalButtonsList,\r\n ModalButtonWrapper,\r\n ActionText,\r\n InfoIcon,\r\n NFTCardPreview,\r\n NFTPreviewText,\r\n ActionTextWrapper,\r\n} from './styles';\r\n\r\nimport { ListingStatusCodes } from '../../constants/listing';\r\nimport {\r\n useAppDispatch,\r\n nftsActions,\r\n marketplaceActions,\r\n usePlugStore,\r\n useNFTSStore,\r\n} from '../../store';\r\nimport { AppLog } from '../../utils/log';\r\nimport { isNFTOwner } from '../../integrations/kyasshu/utils';\r\nimport { NFTMetadata } from '../../declarations/legacy';\r\nimport { ModalOverlay } from './modal-overlay';\r\nimport { ThemeRootElement } from '../../constants/common';\r\n\r\n/* --------------------------------------------------------------------------\r\n * Sell Modal Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport type SellModalProps = {\r\n onClose?: () => void;\r\n actionText?: string;\r\n nftTokenId?: string;\r\n isTriggerVisible?: boolean;\r\n};\r\n\r\nexport const SellModal = ({\r\n onClose,\r\n actionText,\r\n nftTokenId,\r\n isTriggerVisible,\r\n}: SellModalProps) => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const { id } = useParams();\r\n const navigate = useNavigate();\r\n const { isConnected, principalId: plugPrincipal } = usePlugStore();\r\n const { loadedNFTS } = useNFTSStore();\r\n\r\n const [modalOpened, setModalOpened] = useState(false);\r\n // Sell modal steps: listingInfo/pending/confirmed\r\n const [modalStep, setModalStep] = useState(\r\n ListingStatusCodes.ListingInfo,\r\n );\r\n const [amount, setAmount] = useState('');\r\n\r\n const tokenId: string | undefined = (() => {\r\n const tid = id ?? nftTokenId;\r\n\r\n if (!tid) return;\r\n\r\n // eslint-disable-next-line consistent-return\r\n return tid;\r\n })();\r\n\r\n const nftDetails: NFTMetadata | undefined = useMemo(() => {\r\n const details = loadedNFTS.find((nft) => nft.id === tokenId);\r\n\r\n return details;\r\n }, [loadedNFTS, tokenId]);\r\n\r\n const handleModalOpen = (status: boolean) => {\r\n setModalOpened(status);\r\n setAmount('');\r\n setModalStep(ListingStatusCodes.ListingInfo);\r\n\r\n const notConfirmed = modalStep !== ListingStatusCodes.Confirmed;\r\n\r\n if (status || !id || notConfirmed) return;\r\n\r\n // TODO: Instead, call the API to get the latest price\r\n // from the API state, should not mutate the state in the app\r\n // as this should be sync with the backend so updating the\r\n // state of the FE APP from the sync is preferred\r\n // Update NFT listed for sale in store\r\n // on successful listing and closing the modal\r\n dispatch(\r\n nftsActions.setNFTForSale({\r\n id,\r\n amount,\r\n }),\r\n );\r\n };\r\n\r\n const handleModalClose = () => {\r\n setModalOpened(false);\r\n // eslint-disable-next-line\r\n onClose && onClose();\r\n };\r\n\r\n const handleListing = async () => {\r\n if (!tokenId) {\r\n AppLog.warn('Oops! Missing NFT id param');\r\n\r\n return;\r\n }\r\n\r\n setModalStep(ListingStatusCodes.Pending);\r\n\r\n dispatch(\r\n marketplaceActions.makeListing({\r\n id: tokenId,\r\n amount,\r\n onSuccess: () => {\r\n // TODO: update the app state after listing\r\n // should pull from the API\r\n // dispatch(getAllListings());\r\n setModalStep(ListingStatusCodes.Confirmed);\r\n },\r\n onFailure: () => {\r\n setModalStep(ListingStatusCodes.ListingInfo);\r\n },\r\n }),\r\n );\r\n };\r\n\r\n const handleViewNFT = () => {\r\n navigate(`/nft/${tokenId}`, { replace: true });\r\n setModalOpened(false);\r\n };\r\n\r\n const isOwner = isNFTOwner({\r\n isConnected,\r\n owner: nftDetails?.owner,\r\n principalId: plugPrincipal,\r\n });\r\n\r\n return (\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Trigger\r\n ---------------------------------\r\n */}\r\n {isTriggerVisible && (\r\n \r\n {actionText ? (\r\n \r\n {actionText}\r\n \r\n ) : (\r\n \r\n \r\n {t('translation:buttons.action.sell')}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Overlay\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Content\r\n ---------------------------------\r\n */}\r\n {\r\n event.preventDefault();\r\n }}\r\n onEscapeKeyDown={(event) => {\r\n event.preventDefault();\r\n }}\r\n >\r\n {/*\r\n ---------------------------------\r\n Step: 1 -> listingInfo\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.ListingInfo && (\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Listing Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.makeListing')}\r\n \r\n \r\n {t('translation:modals.description.makeListing')}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Listing input details\r\n ---------------------------------\r\n */}\r\n \r\n setAmount(e.currentTarget.value)}\r\n />\r\n \r\n \r\n \r\n \r\n {t('translation:modals.labels.protocolFee')}\r\n \r\n \r\n \r\n \r\n {t(\r\n 'translation:modals.labels.protocolFeePercent',\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {t(\r\n 'translation:modals.labels.collectionFee',\r\n )}\r\n \r\n \r\n \r\n \r\n {t(\r\n 'translation:modals.labels.collectionFeePercent',\r\n )}\r\n \r\n \r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Listing Action Buttons\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:modals.buttons.cancel')}\r\n \r\n \r\n \r\n \r\n {t(\r\n 'translation:modals.buttons.completeListing',\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('translation:modals.labels.preview')}\r\n \r\n \r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: 2 -> pending\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.Pending && (\r\n \r\n {/*\r\n ---------------------------------\r\n Pending Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.pendingConfirmation')}\r\n \r\n \r\n {t(\r\n 'translation:modals.description.pendingConfirmation',\r\n )}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Pending details\r\n ---------------------------------\r\n */}\r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: 3 -> confirmed\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.Confirmed && (\r\n \r\n {/*\r\n ---------------------------------\r\n Confirmed Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.listingComplete')}\r\n \r\n \r\n {t(\r\n 'translation:modals.description.listingComplete',\r\n )}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Confirmed details\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Confirmed Action Buttons\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:modals.buttons.viewListing')}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useState } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport { ActionButton, Pending } from '../core';\r\nimport {\r\n CancelListingModalTrigger,\r\n ModalContent,\r\n Container,\r\n ModalHeader,\r\n ModalTitle,\r\n ModalDescription,\r\n ModalButtonsList,\r\n ModalButtonWrapper,\r\n} from './styles';\r\nimport { ModalOverlay } from './modal-overlay';\r\n\r\nimport { ListingStatusCodes } from '../../constants/listing';\r\nimport {\r\n useAppDispatch,\r\n nftsActions,\r\n marketplaceActions,\r\n} from '../../store';\r\nimport { ThemeRootElement } from '../../constants/common';\r\n\r\n/* --------------------------------------------------------------------------\r\n * Cancel Listing Modal Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport const CancelListingModal = () => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const { id } = useParams();\r\n\r\n const [modalOpened, setModalOpened] = useState(false);\r\n // Cancel listing modal steps: cancelList/pending\r\n const [modalStep, setModalStep] = useState(\r\n ListingStatusCodes.CancelList,\r\n );\r\n\r\n const handleModalOpen = (status: boolean) => {\r\n setModalOpened(status);\r\n setModalStep(ListingStatusCodes.CancelList);\r\n };\r\n\r\n const handleModalClose = () => {\r\n setModalOpened(false);\r\n };\r\n\r\n const handleCancelListing = async () => {\r\n if (!id) return;\r\n\r\n setModalStep(ListingStatusCodes.Pending);\r\n\r\n dispatch(\r\n marketplaceActions.cancelListing({\r\n id,\r\n onSuccess: () => {\r\n // TODO: Do not change the state manually,\r\n // if required query from the API and update the global state\r\n // as ultimately you DO NOT WANT to manage state, which is difficult\r\n // specially when you have two sources, the application state which\r\n // is somehow detached from the API state, which is the source\r\n dispatch(\r\n nftsActions.cancelNFTFromListing({\r\n id,\r\n }),\r\n );\r\n setModalOpened(false);\r\n },\r\n onFailure: () => {\r\n setModalStep(ListingStatusCodes.CancelList);\r\n },\r\n }),\r\n );\r\n };\r\n\r\n return (\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Trigger\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:buttons.action.cancelListing')}\r\n \r\n \r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Modal Overlay\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Content\r\n ---------------------------------\r\n */}\r\n {\r\n event.preventDefault();\r\n }}\r\n onEscapeKeyDown={(event) => {\r\n event.preventDefault();\r\n }}\r\n >\r\n {/*\r\n ---------------------------------\r\n Step: 1 -> cancelList\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.CancelList && (\r\n \r\n {/*\r\n ---------------------------------\r\n Listing Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.cancelListing')}\r\n \r\n \r\n {t('translation:modals.description.cancelListing')}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Listing Action Buttons\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:modals.buttons.cancel')}\r\n \r\n \r\n \r\n \r\n {t('translation:modals.buttons.cancelListing')}\r\n \r\n \r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: 2 -> pending\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.Pending && (\r\n \r\n {/*\r\n ---------------------------------\r\n Pending Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.pendingConfirmation')}\r\n \r\n \r\n {t(\r\n 'translation:modals.description.pendingConfirmation',\r\n )}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Pending details\r\n ---------------------------------\r\n */}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n","export enum DirectBuyStatusCodes {\r\n Confirmed = 'confirmed',\r\n Pending = 'pending',\r\n InsufficientBalance = 'insufficientBalance',\r\n}\r\n","export enum Urls {\n routeToSonic = 'https://app.sonic.ooo/swap?from=ICP&to=utozz-siaaa-aaaam-qaaxq-cai',\n }","import { Urls } from '../constants/urls';\n\nexport const openSonicURL = () => {\n window.open(Urls.routeToSonic, '_blank');\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ActionButton } from '../../core';\nimport {\n Container,\n ModalHeader,\n ModalTitle,\n ModalDescription,\n ModalButtonsList,\n ModalButtonWrapper,\n} from '../styles';\nimport { openSonicURL } from '../../../utils/handle-redirect-urls';\n\n/* --------------------------------------------------------------------------\n * Insufficient Balance Step Component\n * --------------------------------------------------------------------------*/\n\nexport type InsufficientBalanceProps = {\n onCancel?: () => void;\n message: string;\n};\n\nexport const InsufficientBalance = ({\n onCancel,\n message,\n}: InsufficientBalanceProps) => {\n const { t } = useTranslation();\n\n return (\n \n \n \n {t('translation:modals.title.notEnoughFunds')}\n \n {message}\n \n \n \n \n {t('translation:modals.buttons.cancel')}\n \n \n \n \n {t('translation:modals.buttons.swapOnSonic')}\n \n \n \n \n );\n};\n","type IsBalanceInsufficientParams = {\n loadingWICPBalance: boolean;\n amountRequired: number;\n walletsWICPBalance: number;\n};\n\nexport const isBalanceInsufficient = (\n params: IsBalanceInsufficientParams,\n) => {\n const { loadingWICPBalance, amountRequired, walletsWICPBalance } =\n params;\n\n return !loadingWICPBalance && amountRequired > walletsWICPBalance;\n};\n","import { useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n useParams,\r\n useNavigate,\r\n useLocation,\r\n} from 'react-router-dom';\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport { ActionButton, Pending, Completed, Tooltip } from '../core';\r\nimport {\r\n useAppDispatch,\r\n marketplaceActions,\r\n usePlugStore,\r\n} from '../../store';\r\nimport {\r\n ModalContent,\r\n Container,\r\n ModalHeader,\r\n ModalTitle,\r\n ModalDescription,\r\n ModalButtonsList,\r\n ModalButtonWrapper,\r\n ActionTextWrapper,\r\n ActionText,\r\n BuyNowModalTrigger,\r\n} from './styles';\r\nimport { AppLog } from '../../utils/log';\r\nimport { isTokenId } from '../../utils/nfts';\r\nimport { DirectBuyStatusCodes } from '../../constants/direct-buy';\r\nimport { ModalOverlay } from './modal-overlay';\r\nimport { ThemeRootElement } from '../../constants/common';\r\nimport { InsufficientBalance } from './steps/insufficient-balance';\r\nimport { isBalanceInsufficient } from '../../utils/balance';\r\n\r\n/* --------------------------------------------------------------------------\r\n * Buy Now Modal Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport type BuyNowModalProps = {\r\n actionText?: string;\r\n actionTextId?: number;\r\n price?: string;\r\n isTriggerVisible?: boolean;\r\n isNFTOperatedByMKP?: boolean;\r\n};\r\n\r\nexport const BuyNowModal = ({\r\n actionText,\r\n actionTextId,\r\n price = '',\r\n isTriggerVisible,\r\n isNFTOperatedByMKP,\r\n}: BuyNowModalProps) => {\r\n const { t } = useTranslation();\r\n const { id } = useParams();\r\n const dispatch = useAppDispatch();\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n\r\n const [modalOpened, setModalOpened] = useState(false);\r\n const [modalStep, setModalStep] = useState(\r\n DirectBuyStatusCodes.Pending,\r\n );\r\n\r\n const { loadingWICPBalance, walletsWICPBalance } = usePlugStore();\r\n\r\n const tokenId = useMemo(() => {\r\n const tid = Number(id ?? actionTextId);\r\n\r\n if (!tid && tid !== 0) {\r\n return;\r\n }\r\n\r\n return BigInt(tid);\r\n }, [id, actionTextId]);\r\n\r\n const handleModalOpen = (status: boolean) => {\r\n setModalStep(DirectBuyStatusCodes.Pending);\r\n setModalOpened(status);\r\n };\r\n\r\n const handleDirectBuy = () => {\r\n if (!isTokenId(tokenId)) {\r\n AppLog.warn('Oops! Missing id param');\r\n\r\n return;\r\n }\r\n\r\n handleModalOpen(true);\r\n\r\n if (\r\n isBalanceInsufficient({\r\n loadingWICPBalance,\r\n amountRequired: Number(price),\r\n walletsWICPBalance,\r\n })\r\n ) {\r\n setModalStep(DirectBuyStatusCodes.InsufficientBalance);\r\n\r\n return;\r\n }\r\n\r\n dispatch(\r\n marketplaceActions.directBuy({\r\n tokenId: tokenId as bigint,\r\n price,\r\n onSuccess: () => {\r\n // TODO: the get all listings is used to get data from the canister\r\n // as the current kyasshu version does not provide the price data\r\n // on makelisting, etc, so we use this as a fallback\r\n // although not scalable, if persists might add an endpoint for\r\n // a single item instead of a list...\r\n // dispatch(getAllListings());\r\n setModalStep(DirectBuyStatusCodes.Confirmed);\r\n },\r\n onFailure: () => {\r\n setModalOpened(false);\r\n },\r\n }),\r\n );\r\n };\r\n\r\n const handleViewNFT = () => {\r\n // TODO: The tokenId is already declared at the top\r\n // and its not determined by the location.pathname\r\n // but instead id preceeds actionTextId\r\n // so maybe decide which logic is valid and reuse for both cases\r\n // unless there's a reason why for this\r\n const tokenId = location.pathname === '/' ? actionTextId : id;\r\n navigate(`/nft/${tokenId}`, { replace: true });\r\n setModalOpened(false);\r\n };\r\n\r\n return (\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Trigger\r\n ---------------------------------\r\n */}\r\n {isTriggerVisible && (\r\n \r\n {actionText ? (\r\n \r\n \r\n \r\n {actionText}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {t('translation:buttons.action.buyNow')}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Overlay\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Content\r\n ---------------------------------\r\n */}\r\n {\r\n event.preventDefault();\r\n }}\r\n onEscapeKeyDown={(event) => {\r\n event.preventDefault();\r\n }}\r\n >\r\n {/*\r\n ---------------------------------\r\n Step: 1 -> pending\r\n ---------------------------------\r\n */}\r\n {modalStep === DirectBuyStatusCodes.Pending && (\r\n \r\n {/*\r\n ---------------------------------\r\n Pending Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.pendingConfirmation')}\r\n \r\n \r\n {t(\r\n 'translation:modals.description.pendingConfirmation',\r\n )}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Pending details\r\n ---------------------------------\r\n */}\r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: 2 -> confirmed\r\n ---------------------------------\r\n */}\r\n {modalStep === DirectBuyStatusCodes.Confirmed && (\r\n \r\n {/*\r\n ---------------------------------\r\n Confirmed Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.nftPurchased')}\r\n \r\n \r\n {t('translation:modals.description.nftPurchased')}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Confirmed details\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Confirmed Action Buttons\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:modals.buttons.viewNFT')}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {/*\r\n ---------------------------------\r\n Step: -> insufficient balance\r\n ---------------------------------\r\n */}\r\n {modalStep === DirectBuyStatusCodes.InsufficientBalance && (\r\n handleModalOpen(false)}\r\n message={t(\r\n 'translation:modals.description.notEnoughFundsToPurchase',\r\n )}\r\n />\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n","import { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport { ActionButton, Pending } from '../core';\r\nimport { marketplaceActions, useAppDispatch } from '../../store';\r\nimport { OfferItem } from '../../declarations/legacy';\r\nimport {\r\n CancelOfferModalTrigger,\r\n ModalContent,\r\n Container,\r\n ModalHeader,\r\n ModalTitle,\r\n ModalDescription,\r\n ModalButtonsList,\r\n ModalButtonWrapper,\r\n} from './styles';\r\nimport { ModalOverlay } from './modal-overlay';\r\n\r\nimport { ListingStatusCodes } from '../../constants/listing';\r\nimport { ThemeRootElement } from '../../constants/common';\r\n\r\n/* --------------------------------------------------------------------------\r\n * Cancel Offer Modal Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport type CancelOfferModalProps = {\r\n item: OfferItem;\r\n largeTriggerButton?: boolean;\r\n};\r\n\r\nexport const CancelOfferModal = ({\r\n item,\r\n largeTriggerButton = false,\r\n}: CancelOfferModalProps) => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n\r\n const [modalOpened, setModalOpened] = useState(false);\r\n // Cancel offer modal steps: cancelOffer/pending\r\n const [modalStep, setModalStep] = useState(\r\n ListingStatusCodes.CancelOffer,\r\n );\r\n\r\n const handleModalOpen = (status: boolean) => {\r\n setModalOpened(status);\r\n setModalStep(ListingStatusCodes.CancelOffer);\r\n };\r\n\r\n const handleModalClose = () => {\r\n setModalOpened(false);\r\n };\r\n\r\n const handleCancelOffer = () => {\r\n if (!item?.tokenId) return;\r\n\r\n setModalStep(ListingStatusCodes.Pending);\r\n\r\n dispatch(\r\n marketplaceActions.cancelOffer({\r\n id: item?.tokenId.toString(),\r\n onSuccess: () => {\r\n setModalOpened(false);\r\n\r\n console.log('TODO: handleCancelOffer: onSuccess');\r\n },\r\n onFailure: () => {\r\n setModalStep(ListingStatusCodes.CancelOffer);\r\n\r\n console.log('TODO: handleCancelOffer: onFailure');\r\n },\r\n }),\r\n );\r\n };\r\n\r\n return (\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Trigger\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {largeTriggerButton\r\n ? t('translation:buttons.action.cancelOffer')\r\n : t('translation:buttons.action.cancel')}\r\n \r\n \r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Modal Overlay\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Content\r\n ---------------------------------\r\n */}\r\n {\r\n event.preventDefault();\r\n }}\r\n onEscapeKeyDown={(event) => {\r\n event.preventDefault();\r\n }}\r\n >\r\n {/*\r\n ---------------------------------\r\n Step: 1 -> cancelOffer\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.CancelOffer && (\r\n \r\n {/*\r\n ---------------------------------\r\n Offer Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.cancelOffer')}\r\n \r\n \r\n {t('translation:modals.description.cancelOffer')}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Offer Action Buttons\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:modals.buttons.cancel')}\r\n \r\n \r\n \r\n \r\n {t('translation:modals.buttons.cancelOffer')}\r\n \r\n \r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: 2 -> pending\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.Pending && (\r\n \r\n {/*\r\n ---------------------------------\r\n Pending Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.pendingConfirmation')}\r\n \r\n \r\n {t(\r\n 'translation:modals.description.pendingConfirmation',\r\n )}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Pending details\r\n ---------------------------------\r\n */}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport { useParams, useNavigate } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport {\r\n ActionButton,\r\n ModalInput,\r\n Pending,\r\n Completed,\r\n NftCard,\r\n} from '../core';\r\nimport {\r\n ChangePriceModalTrigger,\r\n ModalContent,\r\n Container,\r\n ModalHeader,\r\n ModalTitle,\r\n ModalDescription,\r\n SaleContentWrapper,\r\n FeeContainer,\r\n FeeDetails,\r\n FeeLabelContainer,\r\n FeeLabel,\r\n FeePercent,\r\n ModalButtonsList,\r\n ModalButtonWrapper,\r\n InfoIcon,\r\n ActionText,\r\n NFTCardPreview,\r\n NFTPreviewText,\r\n SellModalPreviewWrapper,\r\n SellModalPreviewContainer,\r\n ActionTextWrapper,\r\n} from './styles';\r\n\r\nimport { ListingStatusCodes } from '../../constants/listing';\r\nimport {\r\n useNFTSStore,\r\n useAppDispatch,\r\n nftsActions,\r\n marketplaceActions,\r\n usePlugStore,\r\n} from '../../store';\r\nimport { NFTMetadata } from '../../declarations/legacy';\r\nimport { parseE8SAmountToWICP } from '../../utils/formatters';\r\nimport { AppLog } from '../../utils/log';\r\nimport { isTokenId } from '../../utils/nfts';\r\nimport { ModalOverlay } from './modal-overlay';\r\nimport { ThemeRootElement } from '../../constants/common';\r\nimport { isNFTOwner } from '../../integrations/kyasshu/utils';\r\n\r\n/* --------------------------------------------------------------------------\r\n * Change Price Modal Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport type ChangePriceModalProps = {\r\n onClose?: () => void;\r\n actionText?: string;\r\n nftTokenId?: string;\r\n nftPrice?: bigint;\r\n isTriggerVisible?: boolean;\r\n};\r\n\r\nexport const ChangePriceModal = ({\r\n onClose,\r\n actionText,\r\n nftTokenId,\r\n nftPrice,\r\n isTriggerVisible,\r\n}: ChangePriceModalProps) => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const { id } = useParams();\r\n const { loadedNFTS } = useNFTSStore();\r\n const navigate = useNavigate();\r\n const { isConnected, principalId: plugPrincipal } = usePlugStore();\r\n\r\n const [modalOpened, setModalOpened] = useState(false);\r\n // ChangePrice modal steps: listingInfo/pending/confirmed\r\n const [modalStep, setModalStep] = useState(\r\n ListingStatusCodes.ListingInfo,\r\n );\r\n const [amount, setAmount] = useState('');\r\n\r\n const tokenId = useMemo(() => id || nftTokenId, [id, nftTokenId]);\r\n\r\n const nftDetails: NFTMetadata | undefined = useMemo(() => {\r\n const details = loadedNFTS.find((nft) => nft.id === tokenId);\r\n\r\n return details;\r\n }, [loadedNFTS, tokenId]);\r\n\r\n const tokenPrice = useMemo(\r\n () =>\r\n (nftDetails?.price && BigInt(nftDetails?.price)) || nftPrice,\r\n [nftDetails, nftPrice],\r\n );\r\n\r\n useEffect(() => {\r\n if (!tokenPrice || !modalOpened) return;\r\n\r\n setAmount(parseE8SAmountToWICP(tokenPrice));\r\n }, [nftDetails, modalOpened]);\r\n\r\n const handleModalOpen = (modalOpenedStatus: boolean) => {\r\n setModalOpened(modalOpenedStatus);\r\n setAmount('');\r\n setModalStep(ListingStatusCodes.ListingInfo);\r\n\r\n const isConfirmed = modalStep === ListingStatusCodes.Confirmed;\r\n\r\n if (modalOpenedStatus || !id || !isConfirmed) return;\r\n\r\n // TODO: Instead, call the API to get the latest price\r\n // from the API state, should not mutate the state in the app\r\n // as this should be sync with the backend so updating the\r\n // state of the FE APP from the sync is preferred\r\n // Update NFT listed for sale in store\r\n // on successful listing and closing the modal\r\n dispatch(\r\n nftsActions.setNFTForSale({\r\n id,\r\n amount,\r\n }),\r\n );\r\n };\r\n\r\n const handleModalClose = () => {\r\n setModalOpened(false);\r\n if (onClose) onClose();\r\n };\r\n\r\n const handleListing = async () => {\r\n if (!isTokenId(tokenId)) {\r\n AppLog.warn('Oops! Missing NFT id param');\r\n\r\n return;\r\n }\r\n\r\n setModalStep(ListingStatusCodes.Pending);\r\n\r\n dispatch(\r\n marketplaceActions.makeListing({\r\n id: tokenId as string,\r\n amount,\r\n onSuccess: () => {\r\n // TODO: should the app state change / update\r\n // after a new make listing\r\n // dispatch(getAllListings());\r\n setModalStep(ListingStatusCodes.Confirmed);\r\n },\r\n onFailure: () => {\r\n setModalStep(ListingStatusCodes.ListingInfo);\r\n },\r\n }),\r\n );\r\n };\r\n\r\n const handleViewNFT = () => {\r\n navigate(`/nft/${tokenId}`, { replace: true });\r\n setModalOpened(false);\r\n };\r\n\r\n const isOwner = isNFTOwner({\r\n isConnected,\r\n owner: nftDetails?.owner,\r\n principalId: plugPrincipal,\r\n });\r\n\r\n return (\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Trigger\r\n ---------------------------------\r\n */}\r\n {isTriggerVisible && (\r\n \r\n {actionText ? (\r\n \r\n {actionText}\r\n \r\n ) : (\r\n \r\n \r\n {t('translation:buttons.action.changePrice')}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Overlay\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Content\r\n ---------------------------------\r\n */}\r\n {\r\n event.preventDefault();\r\n }}\r\n onEscapeKeyDown={(event) => {\r\n event.preventDefault();\r\n }}\r\n >\r\n {/*\r\n ---------------------------------\r\n Step: 1 -> listingInfo\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.ListingInfo && (\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Listing Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.changePrice')}\r\n \r\n \r\n {t('translation:modals.description.changePrice')}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Listing input details\r\n ---------------------------------\r\n */}\r\n \r\n setAmount(e.currentTarget.value)}\r\n />\r\n \r\n \r\n \r\n \r\n {t('translation:modals.labels.protocolFee')}\r\n \r\n \r\n \r\n \r\n {t(\r\n 'translation:modals.labels.protocolFeePercent',\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {t(\r\n 'translation:modals.labels.collectionFee',\r\n )}\r\n \r\n \r\n \r\n \r\n {t(\r\n 'translation:modals.labels.collectionFeePercent',\r\n )}\r\n \r\n \r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Listing Action Buttons\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:modals.buttons.cancel')}\r\n \r\n \r\n \r\n \r\n {t(\r\n 'translation:modals.buttons.completeListing',\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('translation:modals.labels.preview')}\r\n \r\n \r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: 2 -> pending\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.Pending && (\r\n \r\n {/*\r\n ---------------------------------\r\n Pending Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.pendingConfirmation')}\r\n \r\n \r\n {t(\r\n 'translation:modals.description.pendingConfirmation',\r\n )}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Pending details\r\n ---------------------------------\r\n */}\r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: 3 -> confirmed\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.Confirmed && (\r\n \r\n {/*\r\n ---------------------------------\r\n Confirmed Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.changePriceComplete')}\r\n \r\n \r\n {t(\r\n 'translation:modals.description.changePriceComplete',\r\n )}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Confirmed details\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Confirmed Action Buttons\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:modals.buttons.viewListing')}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n","import { useMemo, useState, useEffect } from 'react';\r\nimport { useParams, useNavigate } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport {\r\n ActionButton,\r\n ModalInput,\r\n Pending,\r\n Completed,\r\n} from '../core';\r\nimport {\r\n MakeOfferModalTrigger,\r\n ModalContent,\r\n Container,\r\n ModalHeader,\r\n ModalTitle,\r\n ModalDescription,\r\n SaleContentWrapper,\r\n ModalButtonsList,\r\n ModalButtonWrapper,\r\n ActionText,\r\n ActionTextWrapper,\r\n} from './styles';\r\nimport { ModalOverlay } from './modal-overlay';\r\n\r\nimport { ListingStatusCodes } from '../../constants/listing';\r\nimport {\r\n useAppDispatch,\r\n marketplaceActions,\r\n usePlugStore,\r\n} from '../../store';\r\nimport { AppLog } from '../../utils/log';\r\nimport { parseE8SAmountToWICP } from '../../utils/formatters';\r\nimport { ThemeRootElement } from '../../constants/common';\r\nimport { isBalanceInsufficient } from '../../utils/balance';\r\nimport { InsufficientBalance } from './steps/insufficient-balance';\r\n\r\n/* --------------------------------------------------------------------------\r\n * Make Offer Modal Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport type MakeOfferModalProps = {\r\n onClose?: () => void;\r\n actionText?: string;\r\n nftTokenId?: string;\r\n isOfferEditing?: boolean;\r\n offerPrice?: bigint;\r\n isNFTListed?: boolean;\r\n isTriggerVisible?: boolean;\r\n};\r\n\r\nexport const MakeOfferModal = ({\r\n onClose,\r\n actionText,\r\n nftTokenId,\r\n isOfferEditing,\r\n offerPrice,\r\n isNFTListed,\r\n isTriggerVisible,\r\n}: MakeOfferModalProps) => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const { id } = useParams();\r\n const navigate = useNavigate();\r\n\r\n const [modalOpened, setModalOpened] = useState(false);\r\n const [modalStep, setModalStep] = useState(\r\n ListingStatusCodes.ListingInfo,\r\n );\r\n\r\n const [amount, setAmount] = useState('');\r\n\r\n const tokenId = useMemo(() => id || nftTokenId, [id, nftTokenId]);\r\n\r\n const { loadingWICPBalance, walletsWICPBalance } = usePlugStore();\r\n\r\n useEffect(() => {\r\n if (!offerPrice || !modalOpened) return;\r\n\r\n setAmount(parseE8SAmountToWICP(offerPrice));\r\n }, [offerPrice, modalOpened]);\r\n\r\n const handleModalOpen = (status: boolean) => {\r\n setModalOpened(status);\r\n setAmount('');\r\n setModalStep(ListingStatusCodes.ListingInfo);\r\n };\r\n\r\n const handleModalClose = () => {\r\n setModalOpened(false);\r\n if (onClose) onClose();\r\n };\r\n\r\n const handleSubmitOffer = async () => {\r\n if (!tokenId) {\r\n AppLog.warn('Oops! Missing NFT id param');\r\n\r\n return;\r\n }\r\n\r\n if (\r\n isBalanceInsufficient({\r\n loadingWICPBalance,\r\n amountRequired: Number(amount),\r\n walletsWICPBalance,\r\n })\r\n ) {\r\n setModalStep(ListingStatusCodes.InsufficientBalance);\r\n\r\n return;\r\n }\r\n\r\n setModalStep(ListingStatusCodes.Pending);\r\n\r\n dispatch(\r\n marketplaceActions.makeOffer({\r\n id: tokenId,\r\n amount,\r\n onSuccess: () => {\r\n setModalStep(ListingStatusCodes.Submitted);\r\n },\r\n onFailure: () => {\r\n setModalStep(ListingStatusCodes.ListingInfo);\r\n },\r\n }),\r\n );\r\n };\r\n\r\n const handleViewNFT = () => {\r\n navigate(`/nft/${tokenId}`, { replace: true });\r\n setModalOpened(false);\r\n };\r\n\r\n // TODO: add step to handle insufficient balance in UI\r\n\r\n return (\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Trigger\r\n ---------------------------------\r\n */}\r\n {isTriggerVisible && (\r\n \r\n {actionText ? (\r\n \r\n {actionText}\r\n \r\n ) : (\r\n \r\n \r\n {isOfferEditing\r\n ? t('translation:buttons.action.editOffer')\r\n : t('translation:buttons.action.makeOffer')}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Overlay\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Content\r\n ---------------------------------\r\n */}\r\n {\r\n event.preventDefault();\r\n }}\r\n onEscapeKeyDown={(event) => {\r\n event.preventDefault();\r\n }}\r\n >\r\n {/*\r\n ---------------------------------\r\n Step: 1 -> listingInfo\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.ListingInfo && (\r\n \r\n {/*\r\n ---------------------------------\r\n Listing Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {isOfferEditing\r\n ? t('translation:modals.title.editOffer')\r\n : t('translation:modals.title.makeAnOffer')}\r\n \r\n \r\n {t('translation:modals.description.makeAnOffer')}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Listing input details\r\n ---------------------------------\r\n */}\r\n \r\n setAmount(e.currentTarget.value)}\r\n />\r\n \r\n {/*\r\n ---------------------------------\r\n Listing Action Buttons\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:modals.buttons.cancel')}\r\n \r\n \r\n \r\n \r\n {t('translation:modals.buttons.submitOffer')}\r\n \r\n \r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: 2 -> pending\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.Pending && (\r\n \r\n {/*\r\n ---------------------------------\r\n Pending Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.pendingConfirmation')}\r\n \r\n \r\n {t(\r\n 'translation:modals.description.pendingConfirmation',\r\n )}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Pending details\r\n ---------------------------------\r\n */}\r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: 3 -> submitted\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.Submitted && (\r\n \r\n {/*\r\n ---------------------------------\r\n Submitted Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.offerSubmitted')}\r\n \r\n \r\n {t('translation:modals.description.offerSubmitted')}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Submitted details\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Submitted Action Buttons\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:modals.buttons.viewNFT')}\r\n \r\n \r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: -> insufficient balance\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.InsufficientBalance && (\r\n \r\n setModalStep(ListingStatusCodes.ListingInfo)\r\n }\r\n message={t(\r\n 'translation:modals.description.notEnoughFundsToMakeOffer',\r\n )}\r\n />\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useState, useMemo } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport { ActionButton, Completed, Pending } from '../core';\r\nimport wicpIcon from '../../assets/wicp.svg';\r\nimport {\r\n AcceptOfferModalTrigger,\r\n ModalContent,\r\n Container,\r\n ModalHeader,\r\n ModalTitle,\r\n ModalDescription,\r\n SaleContentWrapper,\r\n ItemDetailsWrapper,\r\n ItemDetails,\r\n ItemLogo,\r\n ItemName,\r\n PriceDetails,\r\n WICPContainer,\r\n WICPText,\r\n WICPLogo,\r\n PriceText,\r\n FeeContainer,\r\n FeeDetails,\r\n FeeLabelContainer,\r\n FeeLabel,\r\n FeePercent,\r\n ModalButtonsList,\r\n ModalButtonWrapper,\r\n InfoIcon,\r\n} from './styles';\r\n\r\nimport { totalPriceCalculator } from '../../integrations/marketplace/price.utils';\r\nimport {\r\n useNFTSStore,\r\n useAppDispatch,\r\n nftsActions,\r\n marketplaceActions,\r\n} from '../../store';\r\nimport { NFTMetadata } from '../../declarations/legacy';\r\nimport { ListingStatusCodes } from '../../constants/listing';\r\nimport { formatPriceValue } from '../../utils/formatters';\r\nimport { isTokenId } from '../../utils/nfts';\r\nimport { ModalOverlay } from './modal-overlay';\r\nimport { ThemeRootElement } from '../../constants/common';\r\n\r\nexport interface AcceptOfferProps {\r\n price: string;\r\n formattedPrice: string;\r\n offerFrom: string;\r\n nftTokenId?: string;\r\n actionButtonProp?: string;\r\n}\r\n\r\n/* --------------------------------------------------------------------------\r\n * Accept Offer Modal Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport const AcceptOfferModal = ({\r\n price,\r\n formattedPrice,\r\n offerFrom,\r\n nftTokenId,\r\n actionButtonProp,\r\n}: AcceptOfferProps) => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const { id } = useParams();\r\n const { loadedNFTS } = useNFTSStore();\r\n\r\n const [modalOpened, setModalOpened] = useState(false);\r\n // Accept offer modal steps: offerInfo/pending/accepted\r\n const [modalStep, setModalStep] = useState(\r\n ListingStatusCodes.OfferInfo,\r\n );\r\n\r\n const tokenId = useMemo(() => nftTokenId || id, [nftTokenId, id]);\r\n\r\n const nftDetails: NFTMetadata | undefined = useMemo(\r\n () => loadedNFTS.find((nft) => nft.id === tokenId),\r\n [loadedNFTS, tokenId],\r\n );\r\n\r\n const handleModalOpen = (modalOpenedStatus: boolean) => {\r\n setModalOpened(modalOpenedStatus);\r\n setModalStep(ListingStatusCodes.OfferInfo);\r\n\r\n const isAccepted = modalStep === ListingStatusCodes.Accepted;\r\n\r\n if (modalOpenedStatus || !isTokenId(tokenId) || !isAccepted)\r\n return;\r\n\r\n // Update NFT owner details in store\r\n // on successful offer acceptance and closing the modal\r\n dispatch(\r\n nftsActions.acceptNFTOffer({\r\n id: tokenId as string,\r\n buyerId: offerFrom,\r\n }),\r\n );\r\n };\r\n\r\n const handleModalClose = () => {\r\n setModalOpened(false);\r\n };\r\n\r\n const handleAcceptOffer = async () => {\r\n if (!isTokenId(tokenId)) return;\r\n\r\n setModalStep(ListingStatusCodes.Pending);\r\n\r\n dispatch(\r\n marketplaceActions.acceptOffer({\r\n id: tokenId as string,\r\n buyerPrincipalId: offerFrom,\r\n offerPrice: price,\r\n onSuccess: () => {\r\n setModalStep(ListingStatusCodes.Accepted);\r\n },\r\n onFailure: () => {\r\n setModalStep(ListingStatusCodes.OfferInfo);\r\n },\r\n }),\r\n );\r\n };\r\n\r\n const totalEarningsInWICP = totalPriceCalculator({\r\n price,\r\n feesInPercent: 5,\r\n });\r\n\r\n const totalEarningsInDollars = totalPriceCalculator({\r\n price: formattedPrice,\r\n feesInPercent: 5,\r\n });\r\n\r\n return (\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Trigger\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:buttons.action.acceptOffer')}\r\n \r\n \r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Modal Overlay\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Content\r\n ---------------------------------\r\n */}\r\n {\r\n event.preventDefault();\r\n }}\r\n onEscapeKeyDown={(event) => {\r\n event.preventDefault();\r\n }}\r\n >\r\n {/*\r\n ---------------------------------\r\n Step: 1 -> offerInfo\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.OfferInfo && (\r\n \r\n {/*\r\n ---------------------------------\r\n Offer Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.acceptOffer')}\r\n \r\n \r\n {t('translation:modals.description.acceptOffer')}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Offer details\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {nftDetails?.preview && (\r\n \r\n )}\r\n {`CAP Crowns #${\r\n nftTokenId ?? nftDetails?.id\r\n }`}\r\n \r\n \r\n \r\n \r\n {`${price} WICP`}\r\n \r\n {`$${formatPriceValue(\r\n formattedPrice,\r\n )}`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('translation:modals.labels.protocolFee')}\r\n \r\n \r\n \r\n \r\n {t(\r\n 'translation:modals.labels.protocolFeePercent',\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {t('translation:modals.labels.collectionFee')}\r\n \r\n \r\n \r\n \r\n {t(\r\n 'translation:modals.labels.collectionFeePercent',\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('translation:modals.labels.totalEarnings')}\r\n \r\n \r\n \r\n \r\n \r\n {`${formatPriceValue(\r\n totalEarningsInWICP.toString(),\r\n )} WICP`}\r\n \r\n {`$${formatPriceValue(\r\n totalEarningsInDollars.toString(),\r\n )}`}\r\n \r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Offer Action Buttons\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n {t('translation:modals.buttons.cancel')}\r\n \r\n \r\n \r\n \r\n {t('translation:modals.buttons.acceptOffer')}\r\n \r\n \r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: 2 -> pending\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.Pending && (\r\n \r\n {/*\r\n ---------------------------------\r\n Pending Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.pendingConfirmation')}\r\n \r\n \r\n {t(\r\n 'translation:modals.description.pendingConfirmation',\r\n )}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Pending details\r\n ---------------------------------\r\n */}\r\n \r\n \r\n )}\r\n {/*\r\n ---------------------------------\r\n Step: 3 -> accepted\r\n ---------------------------------\r\n */}\r\n {modalStep === ListingStatusCodes.Accepted && (\r\n \r\n {/*\r\n ---------------------------------\r\n Accepted Header\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {t('translation:modals.title.offerAccepted')}\r\n \r\n \r\n {t('translation:modals.description.offerAccepted')}\r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Accepted details\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Accepted Action Buttons\r\n ---------------------------------\r\n */}\r\n \r\n \r\n handleModalOpen(false)}\r\n >\r\n {t('translation:modals.buttons.done')}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal } from '@radix-ui/react-portal';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useId } from '@radix-ui/react-id';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = 'Popover';\n\ntype ScopedProps

= P & { __scopePopover?: Scope };\nconst [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n hasCustomAnchor: boolean;\n onCustomAnchorAdd(): void;\n onCustomAnchorRemove(): void;\n modal: boolean;\n};\n\nconst [PopoverProvider, usePopoverContext] =\n createPopoverContext(POPOVER_NAME);\n\ninterface PopoverProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n children?: React.ReactNode;\n}\n\nconst Popover: React.FC = (props: ScopedProps) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false,\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n \n setOpen((prevOpen) => !prevOpen), [setOpen])}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(() => setHasCustomAnchor(true), [])}\n onCustomAnchorRemove={React.useCallback(() => setHasCustomAnchor(false), [])}\n modal={modal}\n >\n {children}\n \n \n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor';\n\ntype PopoverAnchorElement = React.ElementRef;\ntype PopperAnchorProps = Radix.ComponentPropsWithoutRef;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n\n return ;\n }\n);\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger';\n\ntype PopoverTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n\n const trigger = (\n \n );\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n \n {trigger}\n \n );\n }\n);\n\nPopoverTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent';\n\ninterface PopoverContentProps extends PopoverContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst PopoverContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return (\n \n {context.modal ? (\n \n ) : (\n \n )}\n \n );\n }\n);\n\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RemoveScrollProps = React.ComponentProps;\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit {\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom'];\n /**\n * Whether the `Popover` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst PopoverContentModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { allowPinchZoom, portalled = true, ...contentModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n \n \n {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n />\n \n \n );\n }\n);\n\nconst PopoverContentNonModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { portalled = true, ...contentNonModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n \n {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true;\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }}\n />\n \n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef;\ninterface PopoverContentImplProps\n extends PopperContentProps,\n Omit {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst PopoverContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n\n // Make sure the whole tree has focus guards as our `Popover` may be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n return (\n \n context.onOpenChange(false)}\n >\n \n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose';\n\ntype PopoverCloseElement = React.ElementRef;\ninterface PopoverCloseProps extends PrimitiveButtonProps {}\n\nconst PopoverClose = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return (\n context.onOpenChange(false))}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow';\n\ntype PopoverArrowElement = React.ElementRef;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef;\ninterface PopoverArrowProps extends PopperArrowProps {}\n\nconst PopoverArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return ;\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Popover;\nconst Anchor = PopoverAnchor;\nconst Trigger = PopoverTrigger;\nconst Content = PopoverContent;\nconst Close = PopoverClose;\nconst Arrow = PopoverArrow;\n\nexport {\n createPopoverScope,\n //\n Popover,\n PopoverAnchor,\n PopoverTrigger,\n PopoverContent,\n PopoverClose,\n PopoverArrow,\n //\n Root,\n Anchor,\n Trigger,\n Content,\n Close,\n Arrow,\n};\nexport type {\n PopoverProps,\n PopoverAnchorProps,\n PopoverTriggerProps,\n PopoverContentProps,\n PopoverCloseProps,\n PopoverArrowProps,\n};\n","import { formatICNSName } from '../../utils/icns';\r\n\r\ntype RequestConnectArgs = {\r\n whitelist?: string[];\r\n host?: string;\r\n onConnectionUpdate?: () => void;\r\n};\r\n\r\ntype PlugButtonTextParams = {\r\n icnsName?: string;\r\n principalId?: string;\r\n loadingText: string;\r\n};\r\n\r\nexport const requestConnectToPlug = (args?: RequestConnectArgs) =>\r\n window.ic?.plug?.requestConnect(args);\r\n\r\nexport const createPlugAgent = async (args?: RequestConnectArgs) => {\r\n await window.ic?.plug?.createAgent(args);\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n await window.ic?.plug?.agent?.fetchRootKey();\r\n }\r\n\r\n return window.ic?.plug?.agent;\r\n};\r\n\r\nexport const isPlugInstalled = (global = window) =>\r\n (global?.ic && typeof global.ic?.plug === 'object') || false;\r\n\r\nexport const checkIsConnected = () => window.ic?.plug?.isConnected();\r\n\r\nexport const getPrincipal = () => window.ic?.plug?.getPrincipal();\r\n\r\nexport const formatAddress = (address: string) => {\r\n if (!address) {\r\n return '';\r\n }\r\n return `${address.substring(0, 5)}...${address.substring(\r\n address.length - 3,\r\n address.length,\r\n )}`;\r\n};\r\n\r\nexport const hasPlugAgent = () => window.ic?.plug?.agent;\r\n\r\nexport const disconnectPlug = () => window.ic?.plug?.disconnect();\r\n\r\nexport const getPlugWalletBalance = () =>\r\n window.ic?.plug?.requestBalance();\r\n\r\nexport const getICNSInfo = () => window.ic?.plug?.getICNSInfo();\r\n\r\nexport const getPlugButtonText = (params: PlugButtonTextParams) => {\r\n const { icnsName, principalId, loadingText } = params;\r\n\r\n if (!principalId) return loadingText;\r\n\r\n if (icnsName) return formatICNSName(icnsName as string);\r\n\r\n return formatAddress(principalId as string);\r\n};\r\n","import * as Popover from '@radix-ui/react-popover';\r\nimport { styled } from '../../stitches.config';\r\nimport { Icon } from '../icons';\r\n\r\nexport const PlugButtonContainer = styled('button', {\r\n // base styles\r\n padding: '2px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '19px',\r\n borderRadius: '15px',\r\n border: 'none',\r\n background:\r\n 'linear-gradient(93.07deg, #FFD719 0.61%, #F754D4 33.98%, #1FD1EC 65.84%, #48FA6B 97.7%)',\r\n\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n});\r\n\r\nexport const PlugButtonText = styled('div', {\r\n // base styles\r\n width: '136px',\r\n height: '40px',\r\n padding: '2px 4px',\r\n backgroundColor: '$buttonBackgroundColor',\r\n color: '$mainTextColor',\r\n borderRadius: '14px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontFamily: 'proxima-nova, sans-serif',\r\n});\r\n\r\nexport const PopoverTrigger = styled(Popover.Trigger, {\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n});\r\n\r\nexport const ConnectToPlugButton = styled(Popover.Content, {\r\n minWidth: '220px',\r\n border: '2px solid $borderColor',\r\n boxSizing: 'border-box',\r\n boxShadow: '0px 4px 20px rgba(0, 0, 0, 0.15)',\r\n '@media (prefers-reduced-motion: no-preference)': {\r\n animationDuration: '400ms',\r\n animationTimingFunction: 'cubic-bezier(0.16, 1, 0.3, 1)',\r\n willChange: 'transform, opacity',\r\n },\r\n borderRadius: '15px',\r\n marginTop: '5%',\r\n padding: '0',\r\n\r\n background: '$backgroundColor',\r\n color: '$mainTextColor',\r\n\r\n overflow: 'hidden',\r\n});\r\n\r\nexport const ListItem = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '15px',\r\n position: 'relative',\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n cursor: 'pointer',\r\n transition: 'background-color 0.2s ease-in-out',\r\n\r\n '& p': {\r\n margin: '0px',\r\n },\r\n\r\n borderBottom: '1px solid $borderColor',\r\n '&:last-child': {\r\n borderBottom: 'none',\r\n },\r\n\r\n '&:hover': {\r\n background: '$borderColor',\r\n },\r\n});\r\n\r\nexport const PlugIconStyled = styled(Icon, {\r\n marginRight: '10px',\r\n width: '12px',\r\n});\r\n\r\nexport const PlugArrowDownIcon = styled(Icon, {\r\n marginLeft: '10px',\r\n fontSize: '11px',\r\n});\r\n\r\nexport const WICPLogo = styled('img', {\r\n width: '15px',\r\n height: '15px',\r\n paddingRight: '0.5rem',\r\n});\r\n\r\nexport const PlugWICPBalance = styled('div', {\r\n minWidth: '120px',\r\n height: '40px',\r\n padding: '2px 10px 2px 0px',\r\n position: 'relative',\r\n right: '-10px',\r\n zIndex: '-1',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n borderRadius: '14px 0px 0px 14px',\r\n borderLeft: '1.5px solid $borderColor',\r\n borderTop: '1.5px solid $borderColor',\r\n borderBottom: '1.5px solid $borderColor',\r\n color: '$mainTextColor',\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n});\r\n\r\nexport const WICPText = styled('span', {\r\n marginLeft: '5px',\r\n});\r\n","import React, { useState, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport {\n notificationActions,\n RootState,\n plugActions,\n useAppDispatch,\n usePlugStore,\n} from '../../store';\n\nimport { PlugWICPBalance, WICPLogo, WICPText } from './styles';\nimport { SpinnerIcon } from '../icons/custom';\nimport { AppLog } from '../../utils/log';\nimport wicpImage from '../../assets/wicp.svg';\nimport { roundOffDecimalValue } from '../../utils/nfts';\nimport { getPlugWalletBalance } from '../../integrations/plug';\n\nconst PlugBalance = () => {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const { loadingWICPBalance } = usePlugStore();\n const [plugWicpBalance, setPlugWicpBalance] = useState('');\n\n const recentlyPurchasedTokens = useSelector(\n (state: RootState) => state.marketplace.recentlyPurchasedTokens,\n );\n\n const recentlyMadeOffers = useSelector(\n (state: RootState) => state.marketplace.recentlyMadeOffers,\n );\n\n useEffect(() => {\n (async () => {\n dispatch(plugActions.setLoadingWICPBalance(true));\n try {\n const allPlugBalance = await getPlugWalletBalance();\n\n const wicpWalletBalance = allPlugBalance?.find(\n (balance: any) => balance?.name === 'Wrapped ICP',\n );\n\n setPlugWicpBalance(wicpWalletBalance?.amount);\n dispatch(plugActions.setLoadingWICPBalance(false));\n dispatch(\n plugActions.setWalletsWICPBalance(\n wicpWalletBalance?.amount,\n ),\n );\n } catch (err) {\n dispatch(plugActions.setLoadingWICPBalance(false));\n AppLog.error(err);\n dispatch(\n notificationActions.setErrorMessage(\n t('translation:errorMessages.unableToGetBalance'),\n ),\n );\n }\n })();\n }, [recentlyPurchasedTokens, recentlyMadeOffers]);\n\n return (\n \n \n {!loadingWICPBalance ? (\n `${roundOffDecimalValue(Number(plugWicpBalance), 2)}`\n ) : (\n \n )}\n WICP\n \n );\n};\n\nexport default PlugBalance;\n","import { useCallback, useLayoutEffect, useState } from 'react';\r\nimport * as Popover from '@radix-ui/react-popover';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n useAppDispatch,\r\n plugActions,\r\n useFilterStore,\r\n filterActions,\r\n} from '../../store';\r\nimport { disconnectPlug } from '../../integrations/plug';\r\nimport { openSonicURL } from '../../utils/handle-redirect-urls';\r\nimport {\r\n PlugButtonContainer,\r\n PlugButtonText,\r\n PlugArrowDownIcon,\r\n ConnectToPlugButton,\r\n ListItem,\r\n PopoverTrigger,\r\n PlugIconStyled,\r\n WICPLogo,\r\n} from './styles';\r\nimport { useTheme } from '../../hooks';\r\nimport { Icon } from '../icons';\r\nimport wicpImage from '../../assets/wicp.svg';\r\nimport PlugBalance from './plug-balance';\r\n\r\nexport type PlugButtonProps = {\r\n handleConnect: () => void;\r\n text: string;\r\n isConnected: boolean;\r\n principalId?: string;\r\n};\r\n\r\n/* --------------------------------------------------------------------------\r\n * Plug Button Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport const PlugButton = ({\r\n handleConnect,\r\n text,\r\n isConnected,\r\n principalId: userPrincipal,\r\n}: PlugButtonProps) => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const { defaultFilters } = useFilterStore();\r\n const [theme, themeObject] = useTheme();\r\n const [openDropdown, setOpenDropdown] = useState(false);\r\n\r\n const navigate = useNavigate();\r\n\r\n const disconnectHandler = useCallback(() => {\r\n dispatch(plugActions.setIsConnected(false));\r\n disconnectPlug();\r\n setOpenDropdown(false);\r\n }, [dispatch]);\r\n\r\n const myOffersHandler = useCallback(() => {\r\n navigate(`/offers/${userPrincipal}`);\r\n setOpenDropdown(false);\r\n }, [navigate, userPrincipal]);\r\n\r\n const myActivityHandler = useCallback(() => {\r\n navigate(`/activity/${userPrincipal}`);\r\n setOpenDropdown(false);\r\n }, [navigate, userPrincipal]);\r\n\r\n useLayoutEffect(() => {\r\n if (openDropdown) {\r\n // Add class after portal is added to the DOM\r\n setTimeout(() => {\r\n const portalElement = document.querySelector(\r\n '[data-radix-portal]',\r\n );\r\n portalElement?.classList.add('above-nav');\r\n });\r\n\r\n const scrollEvent = () => setOpenDropdown(false);\r\n window.addEventListener('scroll', scrollEvent);\r\n return () => window.removeEventListener('scroll', scrollEvent);\r\n }\r\n }, [openDropdown]);\r\n\r\n const handleClick = useCallback(() => {\r\n if (isConnected) {\r\n setOpenDropdown(!openDropdown);\r\n } else {\r\n handleConnect();\r\n }\r\n }, [handleConnect, isConnected, openDropdown]);\r\n\r\n const filterExists = (filterName: string) =>\r\n defaultFilters.some(\r\n (appliedFilter) => appliedFilter.filterName === filterName,\r\n );\r\n\r\n const setMyNfts = () => {\r\n navigate('/');\r\n dispatch(filterActions.setMyNfts(true));\r\n if (filterExists(t('translation:buttons.action.myNfts'))) return;\r\n dispatch(\r\n filterActions.applyFilter({\r\n filterName: `${t('translation:buttons.action.myNfts')}`,\r\n filterCategory: 'Display',\r\n }),\r\n );\r\n };\r\n\r\n return (\r\n \r\n {isConnected && }\r\n \r\n \r\n \r\n {isConnected && (\r\n \r\n )}\r\n {text}\r\n {isConnected && (\r\n \r\n )}\r\n \r\n \r\n \r\n\r\n {isConnected && (\r\n setOpenDropdown(false)}\r\n >\r\n

\r\n \r\n \r\n

{t('translation:buttons.action.myOffers')}

\r\n
\r\n \r\n \r\n

{t('translation:buttons.action.myActivity')}

\r\n
\r\n \r\n \r\n

{t('translation:buttons.action.getWicp')}

\r\n
\r\n \r\n \r\n

{t('translation:buttons.action.myNfts')}

\r\n
\r\n \r\n \r\n

{t('translation:buttons.action.disconnect')}

\r\n
\r\n
\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { useMemo, useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { PlugButton } from './plug-button';\r\nimport {\r\n usePlugStore,\r\n plugActions,\r\n useAppDispatch,\r\n notificationActions,\r\n} from '../../store';\r\nimport {\r\n isPlugInstalled,\r\n requestConnectToPlug,\r\n hasPlugAgent,\r\n createPlugAgent,\r\n checkIsConnected,\r\n getPrincipal,\r\n formatAddress,\r\n getICNSInfo,\r\n} from '../../integrations/plug';\r\nimport {\r\n disconnectPlug,\r\n getPlugButtonText,\r\n} from '../../integrations/plug/plug.utils';\r\nimport {\r\n PLUG_WALLET_WEBSITE_URL,\r\n PlugStatusCodes,\r\n} from '../../constants';\r\nimport config from '../../config/env';\r\nimport { AppLog } from '../../utils/log';\r\n\r\nconst {\r\n nftCollectionId,\r\n marketplaceCanisterId,\r\n wICPCanisterId,\r\n host,\r\n} = config;\r\n\r\nconst whitelist = [\r\n nftCollectionId,\r\n marketplaceCanisterId,\r\n wICPCanisterId,\r\n];\r\n\r\nexport const Plug = () => {\r\n const { t } = useTranslation();\r\n const { isConnected, connectionStatus, principalId, icnsName } =\r\n usePlugStore();\r\n const dispatch = useAppDispatch();\r\n const hasPlug = isPlugInstalled();\r\n\r\n const isVerifying = useMemo(\r\n () => connectionStatus === PlugStatusCodes.Verifying,\r\n [connectionStatus],\r\n );\r\n\r\n const isConnecting = useMemo(\r\n () => connectionStatus === PlugStatusCodes.Connecting,\r\n [connectionStatus],\r\n );\r\n\r\n useEffect(() => {\r\n const verifyPlugConnection = async () => {\r\n if (!hasPlug) {\r\n // update connection status to not-installed\r\n dispatch(\r\n plugActions.setConnectionStatus(\r\n PlugStatusCodes.NotInstalled,\r\n ),\r\n );\r\n\r\n return;\r\n }\r\n\r\n const connected = await checkIsConnected();\r\n\r\n if (!connected) {\r\n // update connection status to installed\r\n dispatch(\r\n plugActions.setConnectionStatus(\r\n PlugStatusCodes.FailedToConnect,\r\n ),\r\n );\r\n\r\n return;\r\n }\r\n\r\n if (!hasPlugAgent()) {\r\n await createPlugAgent({\r\n whitelist,\r\n host,\r\n });\r\n }\r\n\r\n // update connection status to connected\r\n dispatch(plugActions.setIsConnected(connected));\r\n };\r\n\r\n verifyPlugConnection();\r\n }, [hasPlug, dispatch]);\r\n\r\n // update principal Id\r\n useEffect(() => {\r\n if (isConnected) {\r\n const getPrincipalId = async () => {\r\n const principal = await getPrincipal();\r\n const icnsInfo = await getICNSInfo();\r\n\r\n if (icnsInfo?.reverseResolvedName) {\r\n dispatch(\r\n plugActions.setICNSName(icnsInfo?.reverseResolvedName),\r\n );\r\n }\r\n\r\n if (principal) {\r\n if (typeof principal === 'string') {\r\n dispatch(\r\n plugActions.setPrincipalId(\r\n principal as unknown as string,\r\n ),\r\n );\r\n } else {\r\n dispatch(plugActions.setPrincipalId(principal.toText()));\r\n }\r\n }\r\n };\r\n\r\n getPrincipalId();\r\n }\r\n }, [isConnected, dispatch]);\r\n\r\n const onConnectionUpdate = () => {\r\n // TODO: Rehydrate the data for the switched account\r\n disconnectPlug();\r\n\r\n // connected to plug\r\n dispatch(plugActions.setIsConnected(false));\r\n\r\n console.warn(\r\n 'Oops! Disconnected Plug user, as Plug account was switched',\r\n );\r\n };\r\n\r\n const handleConnect = async () => {\r\n // Is plug installed\r\n if (!hasPlug) {\r\n // Ask user to install plug\r\n window.open(PLUG_WALLET_WEBSITE_URL, '_blank');\r\n return;\r\n }\r\n\r\n // connect to plug if installed\r\n try {\r\n // verifying plug connection\r\n dispatch(\r\n plugActions.setConnectionStatus(PlugStatusCodes.Connecting),\r\n );\r\n\r\n // request app to connect with plug\r\n const connected = await requestConnectToPlug({\r\n whitelist,\r\n host,\r\n onConnectionUpdate,\r\n });\r\n\r\n if (!connected) {\r\n throw Error('Oops! Failed to connect to plug.');\r\n }\r\n\r\n const agentCreated = await createPlugAgent({\r\n whitelist,\r\n host,\r\n });\r\n\r\n if (!agentCreated) {\r\n throw Error('Oops! Failed to create plug agent.');\r\n }\r\n\r\n // connected to plug\r\n dispatch(plugActions.setIsConnected(true));\r\n } catch (err) {\r\n // failed to connect plug\r\n AppLog.error(err);\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n t('translation:errorMessages.unableToConnectToPlug'),\r\n ),\r\n );\r\n dispatch(plugActions.setIsConnected(false));\r\n }\r\n };\r\n return (\r\n <>\r\n {isVerifying && (\r\n \r\n )}\r\n {isConnecting && (\r\n \r\n )}\r\n {!isVerifying && !isConnecting && !isConnected && (\r\n \r\n )}\r\n {!isVerifying && !isConnecting && isConnected && (\r\n {\r\n AppLog.warn('Already connected to plug!');\r\n }}\r\n text={getPlugButtonText({\r\n principalId,\r\n icnsName,\r\n loadingText: t('translation:buttons.action.loading'),\r\n })}\r\n isConnected={isConnected}\r\n principalId={principalId}\r\n />\r\n )}\r\n \r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport {\r\n ModalContent,\r\n Container,\r\n ModalButtonWrapper,\r\n ActionText,\r\n PlugButtonContainer,\r\n ActionTextWrapper,\r\n} from './styles';\r\nimport { Plug } from '../plug';\r\nimport { usePlugStore } from '../../store';\r\nimport { ModalOverlay } from './modal-overlay';\r\nimport { ThemeRootElement } from '../../constants/common';\r\n\r\n/* --------------------------------------------------------------------------\r\n * Connect to Plug Modal Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport type ConnectToPlugModalProps = {\r\n actionText?: string;\r\n};\r\n\r\nexport const ConnectToPlugModal = ({\r\n actionText,\r\n}: ConnectToPlugModalProps) => {\r\n const [modalOpened, setModalOpened] = useState(false);\r\n\r\n const { isConnected } = usePlugStore();\r\n\r\n const handleModalOpen = (status: boolean) => {\r\n setModalOpened(status);\r\n };\r\n\r\n useEffect(() => {\r\n if (!isConnected) return;\r\n\r\n setModalOpened(false);\r\n }, [isConnected]);\r\n\r\n return (\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Trigger\r\n ---------------------------------\r\n */}\r\n \r\n \r\n {actionText}\r\n \r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Modal Overlay\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Content\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { ActionButton, Pending, Completed } from '../core';\nimport wicpIcon from '../../assets/wicp.svg';\nimport {\n WithdrawModalTrigger,\n ModalContent,\n Container,\n ModalHeader,\n ModalTitle,\n ModalDescription,\n SaleContentWrapper,\n ItemDetailsWrapper,\n ItemDetails,\n ItemLogo,\n ItemName,\n ModalButtonsList,\n ModalButtonWrapper,\n} from './styles';\n\nimport { ModalOverlay } from './modal-overlay';\nimport { ThemeRootElement } from '../../constants/common';\nimport {\n useSettingsStore,\n useAppDispatch,\n marketplaceActions,\n} from '../../store';\nimport { ListingStatusCodes } from '../../constants/listing';\nimport { AppLog } from '../../utils/log';\n\n/* --------------------------------------------------------------------------\n * Withdraw Assets Modal Component\n * --------------------------------------------------------------------------*/\n\nexport const WithdrawAssetsModal = () => {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n\n const [modalOpened, setModalOpened] = useState(false);\n // Withdraw Assets modal steps: withdrawInfo/pending/completed\n const [modalStep, setModalStep] = useState(\n ListingStatusCodes.WithdrawInfo,\n );\n\n const { assetsToWithdraw } = useSettingsStore();\n\n const handleModalOpen = (modalOpenedStatus: boolean) => {\n setModalOpened(modalOpenedStatus);\n setModalStep(ListingStatusCodes.WithdrawInfo);\n };\n\n const handleModalClose = () => {\n setModalOpened(false);\n };\n\n const handleWithdrawAssets = async () => {\n if (\n !assetsToWithdraw.length ||\n !assetsToWithdraw[0].principalId\n ) {\n AppLog.warn('Oops! Missing principalId to withdraw');\n\n return;\n }\n\n setModalStep(ListingStatusCodes.Pending);\n\n dispatch(\n marketplaceActions.withdrawFungible({\n principalId: assetsToWithdraw[0].principalId,\n onSuccess: () => {\n setModalStep(ListingStatusCodes.Completed);\n },\n onFailure: () => {\n setModalStep(ListingStatusCodes.WithdrawInfo);\n },\n }),\n );\n };\n\n return (\n \n {/*\n ---------------------------------\n Modal Trigger\n ---------------------------------\n */}\n \n \n {t('translation:alerts.retryMessage')}\n \n \n \n {/*\n ---------------------------------\n Modal Overlay\n ---------------------------------\n */}\n \n {/*\n ---------------------------------\n Modal Content\n ---------------------------------\n */}\n {\n event.preventDefault();\n }}\n onEscapeKeyDown={(event) => {\n event.preventDefault();\n }}\n >\n {/*\n ---------------------------------\n Step: 1 -> Assets to withdraw\n ---------------------------------\n */}\n {modalStep === ListingStatusCodes.WithdrawInfo && (\n \n {/*\n ---------------------------------\n Header\n ---------------------------------\n */}\n \n \n {t('translation:modals.title.withdrawAssets')}\n \n \n {t('translation:modals.description.withdrawAssets')}\n \n \n {/*\n ---------------------------------\n Non Fungibles details\n ---------------------------------\n */}\n \n {assetsToWithdraw?.map((asset) => (\n \n \n \n {asset.amount} WICP\n \n \n ))}\n \n {/*\n ---------------------------------\n Action Buttons\n ---------------------------------\n */}\n \n \n \n {t('translation:modals.buttons.cancel')}\n \n \n \n \n {t('translation:modals.buttons.withdraw')}\n \n \n \n \n )}\n {/*\n ---------------------------------\n Step: 2 -> pending\n ---------------------------------\n */}\n {modalStep === ListingStatusCodes.Pending && (\n \n {/*\n ---------------------------------\n Pending Header\n ---------------------------------\n */}\n \n \n {t('translation:modals.title.withdrawAssets')}\n \n \n {t('translation:modals.description.withdrawAssets')}\n \n \n {/*\n ---------------------------------\n Pending details\n ---------------------------------\n */}\n \n \n )}\n {/*\n ---------------------------------\n Step: 3 -> completed\n ---------------------------------\n */}\n {modalStep === ListingStatusCodes.Completed && (\n \n {/*\n ---------------------------------\n Confirmed Header\n ---------------------------------\n */}\n \n \n {t('translation:modals.title.withdrawalSuccess')}\n \n \n {/*\n ---------------------------------\n Confirmed details\n ---------------------------------\n */}\n \n {/*\n ---------------------------------\n Confirmed Action Buttons\n ---------------------------------\n */}\n \n \n \n {t('translation:modals.buttons.close')}\n \n \n \n \n )}\n \n \n \n );\n};\n","export enum OfferTypeStatusCodes {\r\n OffersReceived = 'offers received',\r\n OffersMade = 'offers made',\r\n}\r\n\r\nexport enum OffersTableHeaders {\r\n OffersReceivedAction = 'offersReceivedAction',\r\n OffersMadeAction = 'offersMadeAction',\r\n}\r\n","import { useState, useMemo, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n useAppDispatch,\r\n usePlugStore,\r\n RootState,\r\n marketplaceActions,\r\n crownsActions,\r\n} from '../../store';\r\nimport {\r\n ItemDetailsCell,\r\n PriceDetailsCell,\r\n TextCell,\r\n TextLinkCell,\r\n} from '../core';\r\nimport { AcceptOfferModal, CancelOfferModal } from '../modals';\r\nimport { TableLayout } from './table-layout';\r\nimport {\r\n Container,\r\n InfiniteScrollWrapper,\r\n ButtonWrapper,\r\n EmptyStateMessage,\r\n} from './styles';\r\nimport TableSkeletons from './table-skeletons';\r\nimport {\r\n OfferTypeStatusCodes,\r\n OffersTableHeaders,\r\n} from '../../constants/my-offers';\r\nimport { OffersTableItem } from '../../declarations/legacy';\r\nimport {\r\n formatPriceValue,\r\n parseE8SAmountToWICP,\r\n} from '../../utils/formatters';\r\nimport { isNFTOwner } from '../../integrations/kyasshu/utils';\r\nimport { formatTimestamp } from '../../integrations/functions/date';\r\nimport { getICAccountLink } from '../../utils/account-id';\r\n\r\n/* --------------------------------------------------------------------------\r\n * My Offers Table Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport type MyOffersTableProps = {\r\n offersType?: string; // offers received / offers made\r\n};\r\n\r\nexport type TableDetails = {\r\n loading: boolean;\r\n loadedOffers: Array;\r\n};\r\n\r\n// TODO: See parser.ts and refactor to use common type\r\n// the current is all string which is not correct\r\n\r\nexport const MyOffersTable = ({ offersType }: MyOffersTableProps) => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const { isConnected, principalId: connectedPlugUser } =\r\n usePlugStore();\r\n const [columnsToHide, setColumnsToHide] = useState>(\r\n [],\r\n );\r\n const [tableDetails, setTableDetails] = useState({\r\n loadedOffers: [],\r\n loading: true,\r\n });\r\n\r\n const ownerTokenIdentifiers = useSelector(\r\n (state: RootState) => state.crowns.ownerTokenIdentifiers,\r\n );\r\n\r\n const recentlyAcceptedOffers = useSelector(\r\n (state: RootState) => state.marketplace.recentlyAcceptedOffers,\r\n );\r\n\r\n const recentlyCancelledOffers = useSelector(\r\n (state: RootState) => state.marketplace.recentlyCancelledOffers,\r\n );\r\n\r\n const tokenOffers = useSelector(\r\n (state: RootState) => state.marketplace.tokenOffers,\r\n );\r\n\r\n const { id: plugPrincipal } = useParams();\r\n\r\n const isConnectedOwner = isNFTOwner({\r\n isConnected,\r\n owner: connectedPlugUser,\r\n principalId: plugPrincipal,\r\n });\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n\r\n setTableDetails({\r\n loading: true,\r\n loadedOffers: [],\r\n });\r\n }, [offersType]);\r\n\r\n useEffect(() => {\r\n // hide offersReceivedAction & offersMadeAction\r\n // when user not connected to plug\r\n if (!isConnectedOwner) {\r\n if (\r\n !columnsToHide.includes(\r\n OffersTableHeaders.OffersReceivedAction,\r\n )\r\n ) {\r\n setColumnsToHide((oldColumns) => [\r\n ...oldColumns,\r\n OffersTableHeaders.OffersReceivedAction,\r\n OffersTableHeaders.OffersMadeAction,\r\n ]);\r\n }\r\n\r\n return;\r\n }\r\n\r\n // hide offersMadeAction if offersType = OffersReceived\r\n if (offersType === OfferTypeStatusCodes.OffersReceived) {\r\n const newColumns = columnsToHide.filter(\r\n (header) =>\r\n header !== OffersTableHeaders.OffersReceivedAction,\r\n );\r\n setColumnsToHide([\r\n ...newColumns,\r\n OffersTableHeaders.OffersMadeAction,\r\n ]);\r\n\r\n return;\r\n }\r\n\r\n // hide offersReceivedAction if offersType = OffersMade\r\n if (offersType === OfferTypeStatusCodes.OffersMade) {\r\n const newColumns = columnsToHide.filter(\r\n (header) => header !== OffersTableHeaders.OffersMadeAction,\r\n );\r\n setColumnsToHide([\r\n ...newColumns,\r\n OffersTableHeaders.OffersReceivedAction,\r\n ]);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [offersType, isConnectedOwner]);\r\n\r\n // TODO: Update mockedetails configured below\r\n // with original details while doing integration\r\n const hasMoreData = false;\r\n const nextPageNo = 0;\r\n\r\n useEffect(() => {\r\n if (!plugPrincipal) return;\r\n\r\n setTableDetails({\r\n loading: true,\r\n loadedOffers: [],\r\n });\r\n\r\n if (offersType === OfferTypeStatusCodes.OffersMade) {\r\n dispatch(\r\n marketplaceActions.getBuyerOffers({\r\n userPrincipalId: plugPrincipal,\r\n onSuccess: (offers) => {\r\n if (offersType === OfferTypeStatusCodes.OffersMade) {\r\n setTableDetails({\r\n loading: false,\r\n loadedOffers: offers,\r\n });\r\n }\r\n },\r\n onFailure: () => {\r\n // TODO: handle failure messages\r\n },\r\n }),\r\n );\r\n return;\r\n }\r\n\r\n dispatch(\r\n crownsActions.getOwnerTokenIdentifiers({\r\n principalId: plugPrincipal,\r\n }),\r\n );\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [dispatch, offersType, isConnected, recentlyCancelledOffers]);\r\n\r\n useEffect(() => {\r\n if (!ownerTokenIdentifiers) return;\r\n\r\n setTableDetails({\r\n loading: true,\r\n loadedOffers: [],\r\n });\r\n\r\n dispatch(\r\n marketplaceActions.getTokenOffers({\r\n // TODO: handle offers data gracefully\r\n ownerTokenIdentifiers,\r\n\r\n onFailure: () => {\r\n // TODO: handle failure messages\r\n },\r\n }),\r\n );\r\n }, [ownerTokenIdentifiers, dispatch, recentlyAcceptedOffers]);\r\n\r\n useEffect(() => {\r\n if (offersType === OfferTypeStatusCodes.OffersReceived) {\r\n setTableDetails({\r\n loading: false,\r\n loadedOffers: tokenOffers,\r\n });\r\n }\r\n }, [tokenOffers]);\r\n\r\n const loadMoreData = () => {\r\n // TODO: Add logic to load more data\r\n };\r\n\r\n const columns = useMemo(\r\n () => [\r\n {\r\n Header: t('translation:tables.titles.item'),\r\n // eslint-disable-next-line\r\n accessor: ({ item }: OffersTableItem) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: t('translation:tables.titles.price'),\r\n accessor: ({\r\n price,\r\n computedCurrencyPrice,\r\n }: OffersTableItem) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: t('translation:tables.titles.floorDifference'),\r\n accessor: ({ floorDifference }: OffersTableItem) => (\r\n \r\n ),\r\n },\r\n {\r\n Header: t('translation:tables.titles.from'),\r\n accessor: ({ fromDetails }: OffersTableItem) => {\r\n const url = getICAccountLink(fromDetails.address);\r\n\r\n return (\r\n \r\n );\r\n },\r\n },\r\n {\r\n Header: t('translation:tables.titles.time'),\r\n accessor: ({ time }: OffersTableItem) => (\r\n \r\n ),\r\n },\r\n {\r\n id: OffersTableHeaders.OffersReceivedAction,\r\n Header: t('translation:tables.titles.action'),\r\n // TODO: Update formatted price and offerFrom with dynamic fields\r\n accessor: ({\r\n price,\r\n fromDetails,\r\n item,\r\n computedCurrencyPrice,\r\n }: OffersTableItem) => (\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n id: OffersTableHeaders.OffersMadeAction,\r\n Header: t('translation:tables.titles.action'),\r\n // TODO: Update cancel offer modal\r\n accessor: ({ item }: OffersTableItem) => (\r\n \r\n \r\n \r\n ),\r\n },\r\n ],\r\n [t, columnsToHide], // eslint-disable-line react-hooks/exhaustive-deps\r\n );\r\n\r\n const { loading, loadedOffers } = tableDetails;\r\n\r\n return (\r\n <>\r\n {(loading || (!loading && loadedOffers.length > 0)) && (\r\n 0 ? loadMoreData : () => {}}\r\n hasMore={hasMoreData}\r\n loader={\r\n \r\n }\r\n useWindow={true || false}\r\n threshold={250 * 5}\r\n className=\"infinite-loader\"\r\n >\r\n \r\n \r\n \r\n \r\n )}\r\n {!loading && loadedOffers.length === 0 && (\r\n \r\n {(offersType === OfferTypeStatusCodes.OffersReceived &&\r\n t('translation:emptyStates.noOffersYet')) ||\r\n (offersType === OfferTypeStatusCodes.OffersMade &&\r\n t('translation:emptyStates.noOffersMade'))}\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { useMemo, useState, useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport {\n useAppDispatch,\n RootState,\n marketplaceActions,\n usePlugStore,\n} from '../../store';\nimport { PriceDetailsCell, TextCell, TextLinkCell } from '../core';\nimport { AcceptOfferModal } from '../modals';\nimport { TableLayout } from './table-layout';\nimport {\n Container,\n ButtonWrapper,\n EmptyStateMessage,\n} from './styles';\nimport { OffersTableItem } from '../../declarations/legacy';\nimport {\n formatPriceValue,\n parseE8SAmountToWICP,\n} from '../../utils/formatters';\nimport { isTokenId } from '../../utils/nfts';\nimport { isNFTOwner } from '../../integrations/kyasshu/utils';\nimport { formatTimestamp } from '../../integrations/functions/date';\nimport { getICAccountLink } from '../../utils/account-id';\n\n/* --------------------------------------------------------------------------\n * NFT Offers Table Component\n * --------------------------------------------------------------------------*/\n\nexport type NFTOffersTableProps = {\n isConnectedOwner?: boolean;\n};\n\nexport type NFTTableDetails = {\n loading: boolean;\n loadedOffers: Array;\n};\n\nexport const NFTOffersTable = ({\n isConnectedOwner,\n}: NFTOffersTableProps) => {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const [columnsToHide, setColumnsToHide] = useState>(\n [],\n );\n const [hideColumns, setHideColumn] = useState(false);\n\n const [tableDetails, setTableDetails] = useState({\n loadedOffers: [],\n loading: true,\n });\n\n const recentlyAcceptedOffers = useSelector(\n (state: RootState) => state.marketplace.recentlyAcceptedOffers,\n );\n\n const recentlyMadeOffers = useSelector(\n (state: RootState) => state.marketplace.recentlyMadeOffers,\n );\n\n const recentlyCancelledOffers = useSelector(\n (state: RootState) => state.marketplace.recentlyCancelledOffers,\n );\n\n const tokenOffers = useSelector(\n (state: RootState) => state.marketplace.tokenOffers,\n );\n\n const { id: tokenId } = useParams();\n\n const { isConnected, principalId: plugPrincipal } = usePlugStore();\n\n useEffect(() => {\n if (!isConnectedOwner && !columnsToHide.includes('action')) {\n setColumnsToHide((oldColumns) => [...oldColumns, 'action']);\n setHideColumn(true);\n\n return;\n }\n\n const newColumnsToHide = columnsToHide.filter(\n (header) => header !== 'action',\n );\n\n setColumnsToHide(newColumnsToHide);\n setHideColumn(false);\n }, [isConnectedOwner]);\n\n useEffect(() => {\n if (!isTokenId(tokenId)) return;\n\n dispatch(\n marketplaceActions.getTokenOffers({\n // TODO: update ownerTokenIdentifiers naming convention\n ownerTokenIdentifiers: [BigInt(tokenId as string)],\n\n onFailure: () => {\n // TODO: handle failure messages\n },\n }),\n );\n }, [\n dispatch,\n recentlyAcceptedOffers,\n recentlyMadeOffers,\n recentlyCancelledOffers,\n ]);\n\n useEffect(() => {\n setTableDetails({\n loading: false,\n loadedOffers: tokenOffers,\n });\n }, [tokenOffers]);\n\n const columns = useMemo(\n () => [\n {\n Header: t('translation:tables.titles.price'),\n accessor: ({\n price,\n computedCurrencyPrice,\n }: OffersTableItem) => (\n \n ),\n },\n {\n Header: t('translation:tables.titles.floorDifference'),\n accessor: ({ floorDifference }: OffersTableItem) => (\n \n ),\n },\n {\n Header: t('translation:tables.titles.from'),\n accessor: ({ fromDetails }: OffersTableItem) => {\n const isOwner = isNFTOwner({\n isConnected,\n owner: fromDetails.address,\n principalId: plugPrincipal,\n });\n const url = getICAccountLink(fromDetails.address);\n\n return (\n \n );\n },\n },\n {\n Header: t('translation:tables.titles.time'),\n accessor: ({ time }: OffersTableItem) => (\n \n ),\n },\n {\n id: 'action',\n Header: t('translation:tables.titles.action'),\n // TODO: Update formatted price and offerFrom with dynamic fields\n accessor: ({\n price,\n fromDetails,\n item,\n computedCurrencyPrice,\n }: OffersTableItem) => (\n \n \n \n ),\n },\n ],\n [t, columnsToHide], // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n const { loading, loadedOffers } = tableDetails;\n\n return (\n \n \n \n );\n};\n","import React, { useMemo, useEffect, useCallback } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { Principal } from '@dfinity/principal';\nimport { v4 as uuid } from 'uuid';\nimport {\n useThemeStore,\n useAppDispatch,\n useTableStore,\n tableActions,\n capActions,\n RootState,\n} from '../../store';\nimport {\n ItemDetailsCell,\n TypeDetailsCell,\n PriceDetailsCell,\n TextCell,\n TextLinkCell,\n} from '../core';\nimport { TableLayout } from './table-layout';\nimport { Container, InfiniteScrollWrapper } from './styles';\nimport { NFTMetadata } from '../../declarations/legacy';\nimport TableSkeletons from './table-skeletons';\nimport {\n parseE8SAmountToWICP,\n formatAddress,\n} from '../../utils/formatters';\nimport { getICAccountLink } from '../../utils/account-id';\nimport config from '../../config/env';\nimport { OperationType } from '../../constants';\n\ninterface RowProps {\n item: {\n name: string;\n logo: string;\n token_id: string;\n };\n type: OperationType;\n price: string;\n quantity: string;\n seller: Principal;\n buyer?: Principal;\n time: string;\n data: NFTMetadata;\n callerDfinityExplorerUrl: string;\n}\n\nexport const UserActivityTable = () => {\n const { t } = useTranslation();\n const { theme } = useThemeStore();\n const {\n loadedUserActivityData,\n hasMoreUserActivities,\n loadingUserTableData,\n nextUserActivityPageNo,\n } = useTableStore();\n const dispatch = useAppDispatch();\n const bucketId = useSelector(\n (state: RootState) => state.cap.bucketId,\n );\n const tableSkeletonId = uuid();\n\n const { id: plugPrincipal } = useParams();\n\n useEffect(() => {\n dispatch(\n capActions.getTokenContractRootBucket({\n marketplaceCanisterId: config?.marketplaceCanisterId,\n }),\n );\n }, [dispatch]);\n\n useEffect(() => {\n if (!bucketId || !plugPrincipal) return;\n\n dispatch(\n tableActions.getUserActivity({\n pageCount: 0,\n bucketId,\n plugPrincipal,\n }),\n );\n }, [dispatch, bucketId, plugPrincipal]);\n\n const loadMoreData = useCallback(() => {\n if (\n loadingUserTableData ||\n !hasMoreUserActivities ||\n !bucketId ||\n !plugPrincipal\n )\n return;\n dispatch(\n tableActions.getUserActivity({\n pageCount: nextUserActivityPageNo,\n bucketId,\n plugPrincipal,\n }),\n );\n }, [\n dispatch,\n loadingUserTableData,\n hasMoreUserActivities,\n nextUserActivityPageNo,\n bucketId,\n plugPrincipal,\n ]);\n\n const columns = useMemo(\n () => [\n {\n Header: t('translation:tables.titles.item'),\n // eslint-disable-next-line\n accessor: ({ item }: RowProps) => (\n \n ),\n },\n {\n Header: t('translation:tables.titles.type'),\n accessor: ({ type }: RowProps) => (\n \n ),\n },\n {\n Header: t('translation:tables.titles.price'),\n accessor: ({ price }: RowProps) => (\n \n ),\n },\n {\n Header: t('translation:tables.titles.seller'),\n accessor: ({ seller }: RowProps) => {\n const principalText = seller.toText();\n const short = formatAddress(principalText);\n const url = getICAccountLink(principalText);\n\n return (\n \n );\n },\n },\n {\n Header: t('translation:tables.titles.buyer'),\n accessor: ({ buyer }: RowProps) => {\n if (!buyer) {\n return ;\n }\n\n const principalText = buyer.toText();\n const short = formatAddress(principalText);\n const url = getICAccountLink(principalText);\n\n return (\n \n );\n },\n },\n {\n Header: t('translation:tables.titles.time'),\n accessor: ({ time }: RowProps) => (\n \n ),\n },\n ],\n [t, theme], // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n return (\n = 0 ? loadMoreData : () => {}}\n hasMore={hasMoreUserActivities}\n loader={\n \n }\n useWindow={true || false}\n threshold={250 * 5}\n className=\"infinite-loader\"\n >\n \n \n \n \n );\n};\n","import React, { useEffect, useState, useMemo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport * as Accordion from '@radix-ui/react-accordion';\r\nimport {\r\n usePlugStore,\r\n RootState,\r\n useAppDispatch,\r\n marketplaceActions,\r\n} from '../../../store';\r\nimport {\r\n AccordionStyle,\r\n AccordionTrigger,\r\n AccordionContent,\r\n AccordionHead,\r\n PlugButtonWrapper,\r\n UndefinedPrice,\r\n ButtonListWrapper,\r\n ButtonDetailsWrapper,\r\n PriceWrapper,\r\n CurrentPriceWrapper,\r\n LogoWrapper,\r\n OfferLabel,\r\n OfferPrice,\r\n MarketPrice,\r\n ItemCount,\r\n} from './styles';\r\nimport { NFTOffersTable } from '../../tables';\r\nimport { Plug } from '../../plug';\r\nimport { getCurrentMarketPrice } from '../../../integrations/marketplace/price.utils';\r\n\r\nimport {\r\n BuyNowModal,\r\n MakeOfferModal,\r\n CancelOfferModal,\r\n} from '../../modals';\r\nimport { isNFTOwner } from '../../../integrations/kyasshu/utils';\r\nimport { PlugStatusCodes } from '../../../constants/plug';\r\nimport { Icon } from '../../icons';\r\nimport wicpIcon from '../../../assets/wicp.svg';\r\nimport { OffersTableItem } from '../../../declarations/legacy';\r\nimport {\r\n parseE8SAmountToWICP,\r\n formatPriceValue,\r\n} from '../../../utils/formatters';\r\nimport {\r\n isTokenId,\r\n isOperatorMarketplace,\r\n} from '../../..//utils/nfts';\r\n\r\nexport type OfferAccordionProps = {\r\n lastSalePrice?: string;\r\n isListed?: boolean;\r\n owner?: string;\r\n showNFTActionButtons: boolean;\r\n operator?: string;\r\n};\r\n\r\ntype ConnectedProps = {\r\n isListed?: boolean;\r\n isOwner?: boolean;\r\n price?: string;\r\n showNFTActionButtons: boolean;\r\n operator?: string;\r\n};\r\n\r\ntype DisconnectedProps = {\r\n connectionStatus: string;\r\n};\r\n\r\n// TODO: move OnConnected component to seperate file\r\n// to avoid more no of lines of code in a single file\r\nconst OnConnected = ({\r\n isListed,\r\n isOwner,\r\n price,\r\n showNFTActionButtons,\r\n operator,\r\n}: ConnectedProps) => {\r\n const { id } = useParams();\r\n const dispatch = useAppDispatch();\r\n const [loadingOffers, setLoadingOffers] = useState(true);\r\n const { principalId: plugPrincipalId } = usePlugStore();\r\n\r\n const recentlyAcceptedOffers = useSelector(\r\n (state: RootState) => state.marketplace.recentlyAcceptedOffers,\r\n );\r\n\r\n const recentlyMadeOffers = useSelector(\r\n (state: RootState) => state.marketplace.recentlyMadeOffers,\r\n );\r\n\r\n const recentlyCancelledOffers = useSelector(\r\n (state: RootState) => state.marketplace.recentlyCancelledOffers,\r\n );\r\n\r\n const tokenOffers = useSelector(\r\n (state: RootState) => state.marketplace.tokenOffers,\r\n );\r\n\r\n const userMadeOffer: OffersTableItem = useMemo(\r\n () =>\r\n tokenOffers.find(\r\n (offer: OffersTableItem) =>\r\n offer?.fromDetails?.address === plugPrincipalId &&\r\n offer?.item?.tokenId.toString() === id,\r\n ),\r\n [id, tokenOffers, plugPrincipalId],\r\n );\r\n\r\n useEffect(() => {\r\n // TODO: handle the error gracefully when there is no id\r\n if (!id || !plugPrincipalId) return;\r\n\r\n dispatch(\r\n marketplaceActions.getTokenOffers({\r\n ownerTokenIdentifiers: [BigInt(id)],\r\n\r\n onSuccess: () => {\r\n setLoadingOffers(false);\r\n },\r\n\r\n onFailure: () => {\r\n // TODO: handle failure messages\r\n },\r\n }),\r\n );\r\n }, [\r\n id,\r\n dispatch,\r\n plugPrincipalId,\r\n recentlyAcceptedOffers,\r\n recentlyMadeOffers,\r\n recentlyCancelledOffers,\r\n ]);\r\n\r\n const showNonOwnerButtons = !isOwner && showNFTActionButtons;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showNonOwnerButtons && !loadingOffers && userMadeOffer && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst OnDisconnected = ({ connectionStatus }: DisconnectedProps) =>\r\n connectionStatus !== PlugStatusCodes.Verifying ? (\r\n \r\n \r\n \r\n ) : null;\r\n\r\nexport const OfferAccordion = ({\r\n lastSalePrice,\r\n isListed,\r\n owner,\r\n showNFTActionButtons,\r\n operator,\r\n}: OfferAccordionProps) => {\r\n const { t } = useTranslation();\r\n const { id } = useParams();\r\n const dispatch = useAppDispatch();\r\n const [loadingOffers, setLoadingOffers] = useState(true);\r\n // TODO: On loading and awaiting for token offers response\r\n // should display a small loader in the place of price\r\n const [isAccordionOpen, setIsAccordionOpen] = useState(true);\r\n const [marketPrice, setMarketPrice] = useState<\r\n string | undefined\r\n >();\r\n\r\n const {\r\n isConnected,\r\n principalId: plugPrincipal,\r\n connectionStatus,\r\n } = usePlugStore();\r\n\r\n const tokenOffers = useSelector(\r\n (state: RootState) => state.marketplace.tokenOffers,\r\n );\r\n\r\n const topOffer: OffersTableItem = useMemo(\r\n () => tokenOffers && tokenOffers[0],\r\n [tokenOffers],\r\n );\r\n\r\n useEffect(() => {\r\n // TODO: handle the error gracefully when there is no id\r\n if (!isTokenId(id)) return;\r\n\r\n dispatch(\r\n marketplaceActions.getTokenOffers({\r\n ownerTokenIdentifiers: [BigInt(id as string)],\r\n\r\n onSuccess: () => {\r\n setLoadingOffers(false);\r\n },\r\n\r\n onFailure: () => {\r\n // TODO: handle failure messages\r\n },\r\n }),\r\n );\r\n }, [id, dispatch, plugPrincipal]);\r\n\r\n useEffect(() => {\r\n if (!lastSalePrice || !isListed) return;\r\n\r\n (async () => {\r\n // TODO: On loading and awaiting for coin gecko response\r\n // should display a small loader in the place of price\r\n\r\n const formattedPrice = await getCurrentMarketPrice({\r\n currentMakeListingPrice: Number(lastSalePrice),\r\n });\r\n\r\n setMarketPrice(formattedPrice);\r\n })();\r\n }, [lastSalePrice, isListed]);\r\n\r\n const isListedWithPrice = isListed && lastSalePrice;\r\n\r\n const isOwner = isNFTOwner({\r\n isConnected,\r\n owner,\r\n principalId: plugPrincipal,\r\n });\r\n\r\n return (\r\n \r\n \r\n {isListed ? (\r\n \r\n \r\n \r\n
\r\n \r\n {t(\r\n 'translation:accordions.offer.header.currentPrice',\r\n )}\r\n \r\n \r\n {(isListedWithPrice && `${lastSalePrice} WICP`) || (\r\n --\r\n )}\r\n \r\n
\r\n
\r\n \r\n {isListedWithPrice && marketPrice}\r\n \r\n
\r\n ) : (\r\n \r\n \r\n \r\n
\r\n \r\n {t('translation:accordions.offer.header.topOffer')}\r\n \r\n {(!loadingOffers && (\r\n \r\n {(topOffer?.price &&\r\n `${parseE8SAmountToWICP(\r\n topOffer.price,\r\n )} WICP`) ||\r\n t(\r\n 'translation:accordions.offer.emptyStates.noOffer',\r\n )}\r\n \r\n )) || --}\r\n
\r\n
\r\n \r\n {(topOffer?.computedCurrencyPrice &&\r\n `US$${formatPriceValue(\r\n topOffer.computedCurrencyPrice.toString(),\r\n )}`) || --}\r\n \r\n
\r\n )}\r\n {(isConnected && (\r\n \r\n )) || }\r\n
\r\n {isConnected && showNFTActionButtons && (\r\n \r\n setIsAccordionOpen(!isAccordionOpen)}\r\n >\r\n
\r\n \r\n

\r\n {`${t('translation:accordions.offer.header.offer')}`}\r\n {`(${tokenOffers.length})`}\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n","import { styled } from '../../../stitches.config';\r\nimport { SkeletonBox } from '../skeleton';\r\n\r\nexport const ItemDetails = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n alignItems: 'center',\r\n});\r\n\r\nexport const ThumbnailSkeleton = styled(SkeletonBox, {\r\n width: '48px',\r\n height: '48px',\r\n borderRadius: '10px',\r\n marginRight: '12px',\r\n});\r\n\r\nexport const ItemLogo = styled('img', {\r\n width: '48px',\r\n height: '48px',\r\n borderRadius: '10px',\r\n marginRight: '12px',\r\n});\r\n\r\nexport const ItemName = styled('div', {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '20px',\r\n color: '$mainTextColor',\r\n});\r\n\r\nexport const TypeDetails = styled('div', {\r\n color: '$mainTextColor',\r\n display: 'flex',\r\n alignItems: 'center',\r\n});\r\n\r\nexport const TypeLogo = styled('img', {\r\n width: '18px',\r\n height: '18px',\r\n color: '$mainTextColor',\r\n marginRight: '8px',\r\n});\r\n\r\nexport const TypeName = styled('div', {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '20px',\r\n color: '$mainTextColor',\r\n textTransform: 'capitalize',\r\n\r\n variants: {\r\n tableType: {\r\n nftActivity: {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '22px',\r\n\r\n color: '$mainTextColor',\r\n },\r\n\r\n offers: {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '19px',\r\n\r\n color: '$mainTextColor',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const PriceDetails = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n flexDirection: 'column',\r\n});\r\n\r\nexport const WICPContainer = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n variants: {\r\n tableType: {\r\n nftActivity: {\r\n marginBottom: '2px',\r\n },\r\n\r\n offers: {\r\n marginBottom: '3px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const WICPText = styled('div', {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '20px',\r\n color: '$mainTextColor',\r\n marginRight: '4px',\r\n\r\n variants: {\r\n tableType: {\r\n nftActivity: {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '22px',\r\n\r\n color: '$mainTextColor',\r\n },\r\n\r\n offers: {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '19px',\r\n\r\n color: '$mainTextColor',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const WICPLogo = styled('img', {\r\n width: '15px',\r\n height: '15px',\r\n});\r\n\r\nexport const PriceText = styled('div', {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '20px',\r\n color: '#777E90',\r\n\r\n variants: {\r\n tableType: {\r\n nftActivity: {\r\n fontSize: '14px',\r\n fontWeight: '500',\r\n lineHeight: '17px',\r\n color: '#767D8E',\r\n },\r\n\r\n offers: {\r\n fontSize: '14px',\r\n fontWeight: '500',\r\n lineHeight: '17px',\r\n color: '#767D8E',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const TextDetails = styled('div', {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '20px',\r\n color: '$mainTextColor',\r\n\r\n variants: {\r\n type: {\r\n activityTime: {\r\n color: '$primary',\r\n },\r\n\r\n nftActivityDate: {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '22px',\r\n color: '$primary',\r\n },\r\n\r\n offers: {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '19px',\r\n color: '$tableTextColor',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const TextLinkDetails = styled('a', {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '20px',\r\n color: '$primary',\r\n textDecoration: 'none',\r\n cursor: 'pointer',\r\n\r\n variants: {\r\n type: {\r\n nftActivity: {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '22px',\r\n color: '$primary',\r\n },\r\n\r\n offers: {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '19px',\r\n color: '$primary',\r\n },\r\n },\r\n },\r\n});\r\n","import React, { useEffect } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n tableActions,\r\n useAppDispatch,\r\n RootState,\r\n} from '../../../store';\r\nimport {\r\n isTokenId,\r\n getTokenMetadataThumbnail,\r\n} from '../../../utils/nfts';\r\nimport {\r\n ItemDetails,\r\n ItemLogo,\r\n ItemName,\r\n ThumbnailSkeleton,\r\n} from './styles';\r\n\r\nexport interface ItemDetailsCellProps {\r\n name?: string;\r\n logo?: string;\r\n id?: string;\r\n}\r\n\r\nexport const ItemDetailsCell = ({\r\n name,\r\n id,\r\n}: ItemDetailsCellProps) => {\r\n const dispatch = useAppDispatch();\r\n const tokenMetadataById = useSelector(\r\n (state: RootState) => state.table.tokenMetadataById,\r\n );\r\n const hasThumbnail =\r\n isTokenId(id) &&\r\n getTokenMetadataThumbnail({\r\n tokenMetadataById,\r\n tokendId: id as string | number,\r\n });\r\n\r\n useEffect(() => {\r\n if (!isTokenId(id) || hasThumbnail) return;\r\n\r\n // Only request metadata if NOT hasThumbnail as we cache\r\n dispatch(\r\n tableActions.getTokenMetadata({ id } as {\r\n id: number | string;\r\n }),\r\n );\r\n }, [dispatch, id, hasThumbnail]);\r\n\r\n return (\r\n \r\n \r\n {!hasThumbnail ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {name}\r\n \r\n \r\n );\r\n};\r\n","import { useTranslation } from 'react-i18next';\r\nimport { OperationType } from '../../../constants';\r\nimport { Icon, Icons } from '../../icons';\r\nimport { TypeDetails, TypeName } from './styles';\r\n\r\nexport interface TypeDetailsCellProps {\r\n type: OperationType;\r\n tableType: any;\r\n}\r\n\r\nconst EventIcon: { [key in OperationType]: keyof typeof Icons } = {\r\n acceptOffer: 'sale',\r\n directBuy: 'sale',\r\n makeListing: 'list',\r\n cancelListing: 'offer',\r\n makeOffer: 'offer',\r\n cancelOffer: 'hand-paper',\r\n denyOffer: 'hand-paper',\r\n mint: 'mint',\r\n transfer: 'transfer',\r\n};\r\n\r\nexport const TypeDetailsCell = ({\r\n type,\r\n tableType,\r\n}: TypeDetailsCellProps) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n {type && Object.keys(EventIcon).includes(type) && (\r\n \r\n )}\r\n \r\n {t(`translation:tables.eventType.${type}`)}\r\n \r\n \r\n );\r\n};\r\n","import wicpIcon from '../../../assets/wicp.svg';\r\nimport {\r\n PriceDetails,\r\n WICPContainer,\r\n WICPText,\r\n WICPLogo,\r\n PriceText,\r\n} from './styles';\r\n\r\nexport interface PriceDetailsCellProps {\r\n wicp: string;\r\n price?: string;\r\n tableType: any;\r\n}\r\n\r\nexport const PriceDetailsCell = ({\r\n wicp,\r\n price,\r\n tableType,\r\n}: PriceDetailsCellProps) => (\r\n \r\n \r\n {wicp ? wicp : '-'}\r\n {wicp ? \"WICP\" : '-'}\r\n {wicp && }\r\n \r\n {price && {price}}\r\n \r\n);\r\n","import React from 'react';\r\nimport { TextDetails } from './styles';\r\n\r\nexport interface TextCellProps {\r\n text?: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n type: any;\r\n}\r\n\r\nexport const TextCell = ({ text, type }: TextCellProps) => (\r\n {text ? text : '-'}\r\n);\r\n","import React, { useState, useEffect } from 'react';\r\nimport { SkeletonBox } from '../skeleton';\r\nimport { TextLinkDetails } from './styles';\r\nimport { getICNSName, formatICNSName } from '../../../utils/icns';\r\nimport { AppLog } from '../../../utils/log';\r\n\r\nexport interface TextLinkCellProps {\r\n text?: string;\r\n url?: string;\r\n type: any;\r\n principalId?: string;\r\n}\r\n\r\nexport const TextLinkCell = ({\r\n text,\r\n type,\r\n url,\r\n principalId,\r\n}: TextLinkCellProps) => {\r\n const [icnsName, setICNSName] = useState('');\r\n const [icnsNameLoadingStatus, setICNSNameLoadingStatus] =\r\n useState(true);\r\n\r\n useEffect(() => {\r\n (async () => {\r\n if (!principalId) {\r\n setICNSNameLoadingStatus(false);\r\n\r\n return;\r\n }\r\n\r\n setICNSNameLoadingStatus(true);\r\n\r\n try {\r\n const icnsName = await getICNSName(principalId);\r\n\r\n setICNSName(icnsName);\r\n setICNSNameLoadingStatus(false);\r\n } catch (error) {\r\n setICNSNameLoadingStatus(false);\r\n AppLog.error(error);\r\n }\r\n })();\r\n }, [principalId]);\r\n\r\n if (icnsNameLoadingStatus) {\r\n return ;\r\n }\r\n\r\n if (icnsName) {\r\n return (\r\n \r\n {formatICNSName(icnsName)}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {text ? text : '-'}\r\n \r\n );\r\n};\r\n","import history from 'history/browser';\nimport { useNavigate } from 'react-router-dom';\n\nexport const useHistoryBack = () => {\n const navigate = useNavigate();\n\n const goBack = () =>\n (window.history.state.idx !== 0 && history.back()) ||\n navigate('/');\n\n return goBack;\n};\n\n","import { styled } from '../../stitches.config';\r\n\r\nexport const Container = styled('div', {\r\n width: '100%',\r\n height: '72px',\r\n // background: '#FAFBFD',\r\n background: '$backgroundColor',\r\n paddingBottom: '30px',\r\n});\r\n\r\nexport const NftActionBarWrapper = styled('div', {\r\n maxWidth: '1190px',\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n margin: 'auto',\r\n});\r\n\r\nexport const ActionText = styled('p', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n color: '#777E90',\r\n display: 'flex',\r\n margin: '0',\r\n textTransform: 'capitalize',\r\n cursor: 'pointer',\r\n\r\n '& img': {\r\n marginRight: '5px',\r\n },\r\n});\r\n\r\nexport const ButtonListWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginLeft: '10px',\r\n});\r\n\r\nexport const ButtonWrapper = styled('div', {\r\n marginLeft: '0px',\r\n});\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useHistoryBack } from '../../hooks/use-history-back';\r\nimport {\r\n CancelListingModal,\r\n ChangePriceModal,\r\n SellModal,\r\n} from '../modals';\r\nimport {\r\n Container,\r\n NftActionBarWrapper,\r\n ActionText,\r\n ButtonListWrapper,\r\n ButtonWrapper,\r\n} from './styles';\r\n\r\nimport { usePlugStore } from '../../store';\r\nimport { isNFTOwner } from '../../integrations/kyasshu/utils';\r\nimport { Icon } from '../icons';\r\n\r\nexport type NftActionBarProps = {\r\n isListed?: boolean;\r\n owner?: string;\r\n showNFTActionButtons: boolean;\r\n};\r\n\r\ntype ConnectedProps = {\r\n isListed?: boolean;\r\n};\r\n\r\nconst OnConnected = ({ isListed }: ConnectedProps) => (\r\n \r\n {isListed && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\n// TODO: On disconnected users should display a particular state\r\n// also, for the users which are not \"ownersOf\"\r\nconst OnDisconnected = () => null;\r\n\r\nexport const NftActionBar = ({\r\n isListed,\r\n owner,\r\n showNFTActionButtons,\r\n}: NftActionBarProps) => {\r\n const { t } = useTranslation();\r\n const { isConnected, principalId: plugPrincipal } = usePlugStore();\r\n\r\n const isConnectedOwner = isNFTOwner({\r\n isConnected,\r\n owner,\r\n principalId: plugPrincipal,\r\n });\r\n\r\n const goBack = useHistoryBack();\r\n\r\n return (\r\n \r\n \r\n goBack()}>\r\n \r\n {t('translation:buttons.links.back')}\r\n \r\n {showNFTActionButtons &&\r\n (isConnectedOwner ? (\r\n \r\n ) : (\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n","import { styled } from '../../../stitches.config';\r\n\r\nexport const Container = styled('div', {\r\n width: 'auto',\r\n marginBottom: '25px',\r\n textAlign: 'center',\r\n color: '$mainTextColor',\r\n});\r\n\r\nexport const CompletedLogo = styled('img', {\r\n width: '112px',\r\n height: '112px',\r\n});\r\n","import React from 'react';\r\nimport Lottie from 'react-lottie';\r\nimport partyPopperLottie from '../../../assets/lotties/party-popper.json';\r\nimport { Container } from './styles';\r\n\r\nexport const Completed = () => (\r\n \r\n \r\n \r\n);\r\n","import React from 'react';\r\nimport { Icon } from '../../icons';\r\nimport { Container } from './styles';\r\n\r\nexport const Pending = () => (\r\n \r\n \r\n \r\n);\r\n","export class ImageCache {\r\n private static readonly maxSize = 250;\r\n\r\n private static readonly cache: { [src: string]: HTMLImageElement } =\r\n {};\r\n\r\n private static readonly listeners: {\r\n [src: string]: { image: HTMLImageElement; listener: () => void };\r\n } = {};\r\n\r\n static store(\r\n src: string,\r\n cb: () => void,\r\n ): Promise {\r\n // It doesn't need to wait garbage collect result\r\n this.garbageCollect();\r\n\r\n const hasCachedImage = this.get(src);\r\n\r\n return new Promise((resolve, reject) => {\r\n if (hasCachedImage && typeof cb === 'function') {\r\n cb();\r\n resolve(hasCachedImage);\r\n\r\n return;\r\n }\r\n\r\n const image = new Image();\r\n\r\n const listener = () => {\r\n this.cache[src] = image;\r\n resolve(image);\r\n\r\n if (typeof cb !== 'function') return;\r\n\r\n cb();\r\n };\r\n\r\n // References\r\n this.listeners[src] = {\r\n image,\r\n listener,\r\n };\r\n\r\n // Listeners\r\n image.addEventListener(\r\n 'load',\r\n listener,\r\n /* the listener is removed automatically after invoked */\r\n {\r\n once: true,\r\n },\r\n );\r\n image.addEventListener('error', reject);\r\n\r\n // Pass source\r\n image.src = src;\r\n });\r\n }\r\n\r\n static get(url: string): HTMLImageElement | undefined {\r\n return this.cache[url];\r\n }\r\n\r\n static removeListener(src: string) {\r\n if (!this.listeners[src]) return;\r\n\r\n const { image, listener } = this.listeners[src];\r\n\r\n image.removeEventListener('load', listener);\r\n\r\n delete this.listeners[src];\r\n }\r\n\r\n static garbageCollect(): Promise {\r\n return new Promise((resolve) => {\r\n const cacheKeys = Object.keys(this.cache);\r\n if (cacheKeys.length > ImageCache.maxSize) {\r\n delete ImageCache.cache[cacheKeys[0]];\r\n }\r\n resolve();\r\n });\r\n }\r\n}\r\n","import { styled } from '../../stitches.config';\r\n\r\nexport const ImagePreloadStyles = styled('img', {});\r\n","/* eslint-disable react/prop-types */\r\nimport React, {\r\n forwardRef,\r\n useMemo,\r\n useState,\r\n useEffect,\r\n} from 'react';\r\nimport { ImageCache } from '../../utils/image-cache';\r\nimport { AppLog } from '../../utils/log';\r\nimport { SkeletonBox } from '../core';\r\nimport { ImagePreloadStyles } from './styles';\r\n\r\nexport type ImagePreloadProps = React.ComponentProps<\r\n typeof ImagePreloadStyles\r\n>;\r\n\r\nexport const ImagePreload = React.memo(\r\n forwardRef(\r\n ({ src, ...props }, ref) => {\r\n const [loaded, setLoaded] = useState(false);\r\n const onLoad = () => setLoaded(true);\r\n\r\n useEffect(() => {\r\n if (!src) return;\r\n\r\n try {\r\n ImageCache.store(src, onLoad);\r\n } catch (err) {\r\n AppLog.warn('Failed to load image', err);\r\n }\r\n\r\n return () => {\r\n ImageCache.removeListener(src);\r\n };\r\n }, [src]);\r\n\r\n if (!loaded) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return ;\r\n },\r\n ),\r\n);\r\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type * as Radix from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * VisuallyHidden\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'VisuallyHidden';\n\ntype VisuallyHiddenElement = React.ElementRef;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef;\ninterface VisuallyHiddenProps extends PrimitiveSpanProps {}\n\nconst VisuallyHidden = React.forwardRef(\n (props, forwardedRef) => {\n return (\n \n );\n }\n);\n\nVisuallyHidden.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = VisuallyHidden;\n\nexport {\n VisuallyHidden,\n //\n Root,\n};\nexport type { VisuallyHiddenProps };\n","import * as React from 'react';\n\nfunction usePrevious(value: T) {\n const ref = React.useRef({ value, previous: value });\n\n // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\n\nexport { usePrevious };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useEscapeKeydown } from '@radix-ui/react-use-escape-keydown';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useRect } from '@radix-ui/react-use-rect';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal } from '@radix-ui/react-portal';\nimport { Slottable } from '@radix-ui/react-slot';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\nimport { useId } from '@radix-ui/react-id';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype ScopedProps

= P & { __scopeTooltip?: Scope };\nconst [createTooltipContext, createTooltipScope] = createContextScope('Tooltip', [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipProvider\n * -----------------------------------------------------------------------------------------------*/\n\nconst PROVIDER_NAME = 'TooltipProvider';\nconst DEFAULT_DELAY_DURATION = 700;\nconst TOOLTIP_OPEN = 'tooltip.open';\n\ntype TooltipProviderContextValue = {\n isOpenDelayed: boolean;\n delayDuration: number;\n onOpen(): void;\n onClose(): void;\n};\n\nconst [TooltipProviderContextProvider, useTooltipProviderContext] =\n createTooltipContext(PROVIDER_NAME, {\n isOpenDelayed: true,\n delayDuration: DEFAULT_DELAY_DURATION,\n onOpen: () => {},\n onClose: () => {},\n });\n\ninterface TooltipProviderProps {\n /**\n * The duration from when the mouse enters the trigger until the tooltip gets opened.\n * @defaultValue 700\n */\n delayDuration?: number;\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number;\n children: React.ReactNode;\n}\n\nconst TooltipProvider: React.FC = (\n props: ScopedProps\n) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n children,\n } = props;\n const [isOpenDelayed, setIsOpenDelayed] = React.useState(true);\n const skipDelayTimerRef = React.useRef(0);\n\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n\n return (\n {\n window.clearTimeout(skipDelayTimerRef.current);\n setIsOpenDelayed(false);\n }, [])}\n onClose={React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => setIsOpenDelayed(true),\n skipDelayDuration\n );\n }, [skipDelayDuration])}\n >\n {children}\n \n );\n};\n\nTooltipProvider.displayName = PROVIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Tooltip\n * -----------------------------------------------------------------------------------------------*/\n\nconst TOOLTIP_NAME = 'Tooltip';\n\ntype TooltipContextValue = {\n contentId: string;\n open: boolean;\n stateAttribute: 'closed' | 'delayed-open' | 'instant-open';\n trigger: TooltipTriggerElement | null;\n onTriggerChange(trigger: TooltipTriggerElement | null): void;\n onTriggerEnter(): void;\n onOpen(): void;\n onClose(): void;\n};\n\nconst [TooltipContextProvider, useTooltipContext] =\n createTooltipContext(TOOLTIP_NAME);\n\ninterface TooltipProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n /**\n * The duration from when the mouse enters the trigger until the tooltip gets opened. This will\n * override the prop with the same name passed to Provider.\n * @defaultValue 700\n */\n delayDuration?: number;\n children?: React.ReactNode;\n}\n\nconst Tooltip: React.FC = (props: ScopedProps) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n delayDuration: delayDurationProp,\n } = props;\n const context = useTooltipProviderContext(TOOLTIP_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const delayDuration = delayDurationProp ?? context.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const { onOpen, onClose } = context;\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: (open) => {\n if (open) {\n // we dispatch here so `TooltipProvider` isn't required to\n // ensure other tooltips are aware of this one opening.\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n onOpen();\n }\n onOpenChange?.(open);\n },\n });\n const stateAttribute = React.useMemo(() => {\n return open ? (wasOpenDelayedRef.current ? 'delayed-open' : 'instant-open') : 'closed';\n }, [open]);\n\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n }, delayDuration);\n }, [delayDuration, setOpen]);\n\n React.useEffect(() => {\n return () => window.clearTimeout(openTimerRef.current);\n }, []);\n\n return (\n \n {\n if (context.isOpenDelayed) handleDelayedOpen();\n else handleOpen();\n }, [context.isOpenDelayed, handleDelayedOpen, handleOpen])}\n onOpen={React.useCallback(handleOpen, [handleOpen])}\n onClose={React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n setOpen(false);\n onClose();\n }, [setOpen, onClose])}\n >\n {children}\n \n \n );\n};\n\nTooltip.displayName = TOOLTIP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'TooltipTrigger';\n\ntype TooltipTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef;\ninterface TooltipTriggerProps extends PrimitiveButtonProps {}\n\nconst TooltipTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.onTriggerChange);\n const isMouseDownRef = React.useRef(false);\n const handleMouseUp = React.useCallback(() => (isMouseDownRef.current = false), []);\n\n React.useEffect(() => {\n return () => document.removeEventListener('mouseup', handleMouseUp);\n }, [handleMouseUp]);\n\n return (\n \n {\n context.onClose();\n isMouseDownRef.current = true;\n document.addEventListener('mouseup', handleMouseUp, { once: true });\n })}\n onFocus={composeEventHandlers(props.onFocus, () => {\n if (!isMouseDownRef.current) context.onOpen();\n })}\n onBlur={composeEventHandlers(props.onBlur, context.onClose)}\n onClick={composeEventHandlers(props.onClick, (event) => {\n // keyboard click will occur under different conditions for different node\n // types so we use `onClick` instead of `onKeyDown` to respect that\n const isKeyboardClick = event.detail === 0;\n if (isKeyboardClick) context.onClose();\n })}\n />\n \n );\n }\n);\n\nTooltipTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'TooltipContent';\n\ntype TooltipContentElement = TooltipContentImplElement;\ninterface TooltipContentProps extends TooltipContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TooltipContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return (\n \n \n \n );\n }\n);\n\ntype TooltipContentImplElement = React.ElementRef;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef;\ninterface TooltipContentImplProps extends PopperContentProps {\n /**\n * A more descriptive label for accessibility purpose\n */\n 'aria-label'?: string;\n\n /**\n * Whether the Tooltip should render in a Portal\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst TooltipContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n 'aria-label': ariaLabel,\n portalled = true,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const PortalWrapper = portalled ? Portal : React.Fragment;\n const { onClose } = context;\n\n useEscapeKeydown(() => onClose());\n\n React.useEffect(() => {\n // Close this tooltip if another one opens\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n\n return (\n \n \n \n {children}\n \n {ariaLabel || children}\n \n \n \n );\n }\n);\n\nTooltipContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'TooltipArrow';\n\ntype TooltipArrowElement = React.ElementRef;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef;\ninterface TooltipArrowProps extends PopperArrowProps {}\n\nconst TooltipArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n return ;\n }\n);\n\nTooltipArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction CheckTriggerMoved(props: ScopedProps<{}>) {\n const { __scopeTooltip } = props;\n const context = useTooltipContext('CheckTriggerMoved', __scopeTooltip);\n\n const triggerRect = useRect(context.trigger);\n const triggerLeft = triggerRect?.left;\n const previousTriggerLeft = usePrevious(triggerLeft);\n const triggerTop = triggerRect?.top;\n const previousTriggerTop = usePrevious(triggerTop);\n const handleClose = context.onClose;\n\n React.useEffect(() => {\n // checking if the user has scrolled…\n const hasTriggerMoved =\n (previousTriggerLeft !== undefined && previousTriggerLeft !== triggerLeft) ||\n (previousTriggerTop !== undefined && previousTriggerTop !== triggerTop);\n\n if (hasTriggerMoved) {\n handleClose();\n }\n }, [handleClose, previousTriggerLeft, previousTriggerTop, triggerLeft, triggerTop]);\n\n return null;\n}\n\nconst Provider = TooltipProvider;\nconst Root = Tooltip;\nconst Trigger = TooltipTrigger;\nconst Content = TooltipContent;\nconst Arrow = TooltipArrow;\n\nexport {\n createTooltipScope,\n //\n TooltipProvider,\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipArrow,\n //\n Provider,\n Root,\n Trigger,\n Content,\n Arrow,\n};\nexport type { TooltipProps, TooltipTriggerProps, TooltipContentProps, TooltipArrowProps };\n","import { styled } from '@stitches/react';\r\nimport * as Tooltip from '@radix-ui/react-tooltip';\r\n\r\nexport const NumberTooltipTrigger = styled(Tooltip.Trigger, {\r\n userSelect: 'none',\r\n margin: '-0.5rem',\r\n padding: '0.5rem',\r\n});\r\n\r\nexport const NumberTooltipContent = styled(Tooltip.Content, {\r\n padding: '0.5rem 1rem',\r\n backgroundColor: '$backgroundColor',\r\n border: '1px solid $borderColor',\r\n color: '$mainTextColor',\r\n boxShadow: '$active',\r\n borderRadius: '5px',\r\n fontWeight: 'bold',\r\n marginTop: '-0.7rem',\r\n});\r\n","import * as Tooltip from '@radix-ui/react-tooltip';\r\nimport React, { useMemo } from 'react';\r\nimport { useTheme } from '../../hooks';\r\nimport {\r\n formatAmountAbbreviation,\r\n formatAmountDecimals,\r\n} from '../../utils/formatters';\r\nimport { NumberTooltipContent, NumberTooltipTrigger } from './styles';\r\n\r\nexport interface NumberTooltipProps\r\n extends React.HTMLProps {\r\n children: number | string;\r\n}\r\n\r\nexport const NumberTooltip: React.FC = ({\r\n children,\r\n ...spanProps\r\n}) => {\r\n const [, themeObject] = useTheme();\r\n\r\n const [triggerText, contentText] = useMemo(() => {\r\n const content = formatAmountDecimals(String(children));\r\n const trigger = formatAmountAbbreviation(content);\r\n return [trigger, content];\r\n }, [children]);\r\n\r\n return (\r\n \r\n \r\n {triggerText}\r\n \r\n {contentText.length > 3 && (\r\n \r\n {contentText}\r\n \r\n )}\r\n \r\n );\r\n};\r\n","export class VideoCache {\r\n private static readonly maxSize = 25;\r\n\r\n private static readonly cache: { [src: string]: HTMLVideoElement } =\r\n {};\r\n\r\n private static readonly listeners: {\r\n [src: string]: { video: HTMLVideoElement; listener: () => void };\r\n } = {};\r\n\r\n static async store(\r\n src: string,\r\n cb: () => void,\r\n ): Promise {\r\n this.garbageCollect();\r\n\r\n const hasCachedVideo = this.get(src);\r\n\r\n return new Promise((resolve, reject) => {\r\n if (hasCachedVideo && typeof cb === 'function') {\r\n cb();\r\n resolve(hasCachedVideo);\r\n\r\n return;\r\n }\r\n\r\n const video = document.createElement('video');\r\n\r\n const listener = () => {\r\n this.cache[src] = video;\r\n resolve(video);\r\n\r\n if (typeof cb !== 'function') return;\r\n\r\n cb();\r\n };\r\n\r\n this.listeners[src] = {\r\n video,\r\n listener,\r\n };\r\n\r\n video.addEventListener('loadeddata', listener, {\r\n once: true,\r\n });\r\n\r\n video.addEventListener('error', reject);\r\n\r\n video.src = src;\r\n });\r\n }\r\n\r\n static get(url: string): HTMLVideoElement | undefined {\r\n return this.cache[url];\r\n }\r\n\r\n static removeListener(src: string) {\r\n if (!this.listeners[src]) return;\r\n\r\n const { video, listener } = this.listeners[src];\r\n\r\n video.removeEventListener('loadeddata', listener);\r\n\r\n video.removeEventListener('error', listener);\r\n\r\n delete this.listeners[src];\r\n }\r\n\r\n static garbageCollect(): Promise {\r\n return new Promise((resolve) => {\r\n const cacheKeys = Object.keys(this.cache);\r\n if (cacheKeys.length > VideoCache.maxSize) {\r\n delete VideoCache.cache[cacheKeys[0]];\r\n }\r\n resolve();\r\n });\r\n }\r\n}\r\n","import { styled } from '../../stitches.config';\r\nimport { Icon } from '../icons';\r\n\r\nexport const VideoPreloadContainer = styled('div', {\r\n position: 'relative',\r\n});\r\n\r\nexport const VideoPreloadStyles = styled('video', {});\r\n\r\nexport const VideoPreloadSpinner = styled(Icon, {\r\n position: 'absolute',\r\n left: '50%',\r\n top: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n color: 'white',\r\n zIndex: 10,\r\n});\r\n","/* eslint-disable react/prop-types */\r\nimport React, {\r\n forwardRef,\r\n useMemo,\r\n useState,\r\n useEffect,\r\n} from 'react';\r\nimport { VideoCache } from '../../utils/video-cache';\r\nimport { AppLog } from '../../utils/log';\r\nimport { SkeletonBox } from '../core';\r\nimport {\r\n VideoPreloadContainer,\r\n VideoPreloadSpinner,\r\n VideoPreloadStyles,\r\n} from './styles';\r\n\r\nexport type VideoPreloadProps = React.ComponentProps<\r\n typeof VideoPreloadStyles\r\n>;\r\n\r\nexport const VideoPreload = React.memo(\r\n forwardRef(\r\n ({ src, ...props }, ref) => {\r\n const [loaded, setLoaded] = useState(false);\r\n const [video, setVideo] = useState();\r\n const onLoad = () => setLoaded(true);\r\n\r\n useEffect(() => {\r\n if (!src) return;\r\n const videoElement = VideoCache.get(src);\r\n\r\n if (!videoElement) {\r\n VideoCache.store(src, onLoad)\r\n .then((videoEl) => {\r\n setLoaded(true);\r\n setVideo(videoEl);\r\n })\r\n .catch((err) => {\r\n AppLog.warn('Failed to load video', err);\r\n });\r\n } else {\r\n setLoaded(true);\r\n setVideo(videoElement);\r\n }\r\n\r\n return () => {\r\n VideoCache.removeListener(src);\r\n };\r\n }, [src, setLoaded]);\r\n\r\n if (!loaded && !props.poster) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {(!loaded || !video) && (\r\n \r\n )}\r\n \r\n );\r\n },\r\n ),\r\n);\r\n","import { Link } from 'react-router-dom';\r\nimport { styled, keyframes } from '../../../../stitches.config';\r\nimport { ImagePreload } from '../../../image-preload';\r\nimport { NumberTooltip } from '../../../number-tooltip';\r\nimport { VideoPreload } from '../../../video-preload';\r\n\r\nconst overlaySpinner = keyframes({\r\n from: {\r\n transform: 'rotate(0deg)',\r\n },\r\n to: {\r\n transform: 'rotate(360deg)',\r\n },\r\n});\r\n\r\nexport const CardContainer = styled('div', {\r\n transition: 'all 0.2s ease-in-out',\r\n});\r\n\r\nexport const CardWrapper = styled('div', {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n background: '$backgroundColor',\r\n border: '1.5px solid $borderColor',\r\n boxSizing: 'border-box',\r\n borderRadius: '14px',\r\n width: '100%',\r\n padding: '10px 15px',\r\n overflow: 'hidden',\r\n minWidth: '210px',\r\n\r\n transition: 'all 0.2s ease-in-out',\r\n boxShadow: '$default',\r\n '&:hover': {\r\n boxShadow: '$active',\r\n },\r\n});\r\n\r\nexport const MediaWrapper = styled('div', {\r\n position: 'relative',\r\n height: '207px',\r\n margin: '10px -15px',\r\n});\r\n\r\nexport const PreviewDetails = styled('div', {\r\n minHeight: '207px',\r\n width: '100%',\r\n height: '100%',\r\n});\r\n\r\nexport const PreviewImage = styled(ImagePreload, {\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover',\r\n borderRadius: '0px',\r\n});\r\n\r\nexport const PreviewCardVideo = styled(VideoPreload, {\r\n height: '100%',\r\n width: '100%',\r\n objectFit: 'cover',\r\n borderRadius: '0px',\r\n});\r\n\r\nexport const VideoLoader = styled('div', {\r\n position: 'absolute',\r\n left: '50%',\r\n top: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '2em',\r\n height: '2em',\r\n border: '2px solid white',\r\n borderRadius: '50%',\r\n borderColor: 'white white transparent transparent',\r\n animation: `${overlaySpinner} 1s linear infinite`,\r\n margin: '-15px',\r\n});\r\n\r\nexport const Flex = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n});\r\n\r\nexport const OwnedCardText = styled('span', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '12px',\r\n lineHeight: '15px',\r\n color: '#777E90',\r\n margin: '0',\r\n height: '15px',\r\n});\r\n\r\nexport const NftDataText = styled('span', {\r\n fontStyle: 'normal',\r\n fontWeight: 'bolder',\r\n fontSize: '18px',\r\n lineHeight: '24px',\r\n color: '$mainTextColor',\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n '& img': {\r\n marginRight: '3px',\r\n width: '15px',\r\n },\r\n});\r\n\r\nexport const NftDataHeader = styled('span', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '14px',\r\n color: '$nftCardName',\r\n});\r\n\r\nexport const ActionDetails = styled('span', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '14px',\r\n color: '$nftCardName',\r\n\r\n '& b': {\r\n color: '$mainTextColor',\r\n },\r\n});\r\n\r\nexport const ActionText = styled('span', {\r\n marginRight: '5px',\r\n});\r\n\r\nexport const NFTCardOptions = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n background: '$nftCardSubSection',\r\n padding: '5px 15px',\r\n\r\n minHeight: '28px',\r\n margin: '10px -15px -10px -15px',\r\n\r\n '& p': {\r\n margin: '0',\r\n },\r\n});\r\n\r\nexport const PriceInActionSheet = styled(NumberTooltip, {\r\n fontSize: '14px',\r\n fontWeight: '700',\r\n color: '$mainTextColor',\r\n});\r\n\r\nexport const HoverMessageContainer = styled('span', {\r\n position: 'absolute',\r\n bottom: '2px',\r\n left: '2px',\r\n right: '2px',\r\n borderRadius: '4px',\r\n\r\n textAlign: 'center',\r\n fontSize: '10px',\r\n\r\n backgroundColor: '$backgroundColor',\r\n color: '$mainTextColor',\r\n});\r\n\r\nexport const RouterLink = styled(Link, {\r\n variants: {\r\n previewCard: {\r\n true: {\r\n pointerEvents: 'none',\r\n },\r\n },\r\n },\r\n});\r\n","import { useEffect, useState, useRef } from 'react';\r\nimport { VideoCache } from '../../../../utils/video-cache';\r\nimport {\r\n MediaWrapper,\r\n PreviewCardVideo,\r\n PreviewDetails,\r\n PreviewImage,\r\n} from './styles';\r\n\r\nexport type MediaProps = {\r\n disableVideo?: boolean;\r\n previewCard?: boolean;\r\n location?: string;\r\n preview?: string;\r\n videoLoadDelay?: number;\r\n containerRef: React.RefObject;\r\n};\r\n\r\nexport const Media = ({\r\n location = '',\r\n preview,\r\n containerRef,\r\n videoLoadDelay = 500,\r\n previewCard,\r\n}: MediaProps): JSX.Element => {\r\n const [previewTriggered, setPreviewTriggered] =\r\n useState(previewCard);\r\n const [startedHovering, setStartedHovering] = useState(false);\r\n let triggerTimeout = useRef();\r\n\r\n const resetTimeout = () => {\r\n clearTimeout(triggerTimeout.current);\r\n triggerTimeout.current = undefined;\r\n };\r\n\r\n const hoverInCallback = () => {\r\n setStartedHovering(true);\r\n\r\n if (location !== '' && VideoCache.get(location)) {\r\n return setPreviewTriggered(true);\r\n }\r\n\r\n if (!previewTriggered && !triggerTimeout.current) {\r\n triggerTimeout.current = setTimeout(() => {\r\n setPreviewTriggered(true);\r\n }, videoLoadDelay);\r\n }\r\n };\r\n\r\n const hoverOutCallback = () => {\r\n setPreviewTriggered(false);\r\n setStartedHovering(false);\r\n resetTimeout();\r\n };\r\n\r\n useEffect(() => {\r\n if (!previewCard && containerRef.current) {\r\n containerRef.current.addEventListener(\r\n 'mouseenter',\r\n hoverInCallback,\r\n );\r\n containerRef.current.addEventListener(\r\n 'mouseleave',\r\n hoverOutCallback,\r\n );\r\n\r\n return () => {\r\n resetTimeout();\r\n if (containerRef.current) {\r\n containerRef.current.removeEventListener(\r\n 'mouseenter',\r\n hoverInCallback,\r\n );\r\n containerRef.current.removeEventListener(\r\n 'mouseleave',\r\n hoverOutCallback,\r\n );\r\n }\r\n };\r\n }\r\n }, [\r\n setPreviewTriggered,\r\n setStartedHovering,\r\n containerRef,\r\n previewTriggered,\r\n videoLoadDelay,\r\n previewCard,\r\n location,\r\n ]);\r\n\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n if (startedHovering) {\r\n containerRef.current.style.transform = 'scale(1.03)';\r\n } else {\r\n containerRef.current.style.transform = '';\r\n }\r\n }, [previewCard, startedHovering, containerRef]);\r\n\r\n return (\r\n \r\n \r\n {previewTriggered ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n","/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React, { useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { CardOptionsDropdown } from '../../dropdown';\r\nimport {\r\n CardContainer,\r\n CardWrapper,\r\n NFTCardOptions,\r\n Flex,\r\n OwnedCardText,\r\n NftDataHeader,\r\n ActionDetails,\r\n NftDataText,\r\n ActionText,\r\n PriceInActionSheet,\r\n RouterLink,\r\n} from './styles';\r\nimport wicpLogo from '../../../../assets/wicp.svg';\r\nimport {\r\n BuyNowModal,\r\n MakeOfferModal,\r\n ConnectToPlugModal,\r\n SellModal,\r\n ChangePriceModal,\r\n} from '../../../modals';\r\nimport { usePlugStore } from '../../../../store';\r\nimport { parseE8SAmountToWICP } from '../../../../utils/formatters';\r\nimport { NFTActionStatuses } from '../../../../constants/common';\r\nimport { NumberTooltip } from '../../../number-tooltip';\r\nimport { Media } from './media';\r\nimport { isOperatorMarketplace } from '../../../../utils/nfts';\r\n\r\nexport type NftCardProps = {\r\n owned?: boolean;\r\n // TODO: Data should have a well defined type def\r\n data: any;\r\n previewCard?: boolean;\r\n previewCardAmount?: string | number;\r\n};\r\n\r\ntype ConnectedProps = {\r\n owned?: boolean;\r\n isForSale?: boolean;\r\n tokenId: string;\r\n price?: bigint;\r\n operator?: string;\r\n};\r\n\r\ntype DisconnectedProps = {\r\n isForSale?: boolean;\r\n};\r\n\r\ntype LastActionTakenDetailsProps = {\r\n // TODO: update data type whereever it's required\r\n data: any;\r\n isForSale?: boolean;\r\n};\r\n\r\nconst OnConnected = ({\r\n owned,\r\n isForSale,\r\n tokenId,\r\n price,\r\n operator,\r\n}: ConnectedProps) => {\r\n const { t } = useTranslation();\r\n const showBuyerOptions = !owned;\r\n const showSellOptions = owned;\r\n\r\n return (\r\n <>\r\n {showSellOptions && (\r\n

\r\n \r\n\r\n \r\n
\r\n )}\r\n {(showBuyerOptions && (\r\n
\r\n \r\n \r\n
\r\n )) || }\r\n \r\n );\r\n};\r\n\r\nconst OnDisconnected = ({ isForSale }: DisconnectedProps) => {\r\n const { t } = useTranslation();\r\n return (\r\n
\r\n {isForSale ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst LastActionTakenDetails = ({\r\n data,\r\n isForSale,\r\n}: LastActionTakenDetailsProps) => {\r\n const { t } = useTranslation();\r\n\r\n if (data?.lastActionTaken === NFTActionStatuses.Sold) {\r\n return (\r\n \r\n {data?.lastSale && (\r\n <>\r\n \r\n {t('translation:nftCard.lastSale')}\r\n \r\n \r\n {(data?.lastSale &&\r\n parseE8SAmountToWICP(\r\n BigInt(data.lastSale),\r\n ).toString()) ||\r\n ''}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {data?.lastOffer && (\r\n <>\r\n \r\n {!isForSale\r\n ? `${t('translation:nftCard.offerFor')} `\r\n : `${t('translation:nftCard.last')} `}\r\n \r\n \r\n {(data?.lastOffer &&\r\n parseE8SAmountToWICP(\r\n BigInt(data.lastOffer),\r\n ).toString()) ||\r\n ''}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport const NftCard = React.memo(\r\n ({\r\n owned,\r\n data,\r\n previewCard = false,\r\n previewCardAmount,\r\n }: NftCardProps) => {\r\n const { t } = useTranslation();\r\n const { isConnected } = usePlugStore();\r\n const navigate = useNavigate();\r\n const containerRef = useRef(null);\r\n\r\n // TODO: Move any status code as constant\r\n const isForSale = data.status === 'forSale';\r\n\r\n return (\r\n {\r\n // Keyboard accessibility\r\n if (event.keyCode === 13) navigate(`/nft/${data.id}`);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {owned ? `${t('translation:nftCard.owned')}` : ''}\r\n \r\n {!previewCard && }\r\n \r\n \r\n \r\n {data?.name}\r\n \r\n {isForSale || previewCard\r\n ? `${t('translation:nftCard.price')}`\r\n : ''}\r\n \r\n \r\n \r\n #{data?.id}\r\n \r\n {isForSale && !previewCard && (\r\n <>\r\n \"\"\r\n \r\n {parseE8SAmountToWICP(data?.price)}\r\n \r\n \r\n )}\r\n {previewCard && (\r\n <>\r\n \"\"\r\n \r\n {previewCardAmount || ''}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {!previewCard && (\r\n e.stopPropagation()}>\r\n {(isConnected && (\r\n \r\n )) || }\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n },\r\n);\r\n","import { styled } from '../../../../stitches.config';\r\nimport { SkeletonBox } from '../../skeleton';\r\n\r\nexport const CardWrapper = styled('div', {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n background: '$backgroundColor',\r\n border: '1.5px solid $borderColor',\r\n boxSizing: 'border-box',\r\n boxShadow: '$default',\r\n borderRadius: '14px',\r\n width: '100%',\r\n height: '100%',\r\n padding: '10px',\r\n cursor: 'pointer',\r\n transition: 'all 0.5s ease-in-out',\r\n});\r\n\r\nexport const SkeletonLarge = styled(SkeletonBox, {\r\n height: '200px',\r\n width: '100%',\r\n margin: '10px 0px',\r\n});\r\n\r\nexport const SkeletonSmall = styled(SkeletonBox, {\r\n width: '100%',\r\n margin: '8px 0px 0px',\r\n});\r\n","import { CardWrapper, SkeletonLarge, SkeletonSmall } from './styles';\r\n\r\nexport const NftSkeleton = () => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import * as TooltipPrimitive from '@radix-ui/react-tooltip';\r\nimport { styled, keyframes } from '../../../stitches.config';\r\n\r\nconst slideUpAndFade = keyframes({\r\n '0%': {\r\n opacity: 0,\r\n transform: 'translateY(2px)',\r\n },\r\n '100%': {\r\n opacity: 1,\r\n transform: 'translateY(0)',\r\n },\r\n});\r\n\r\nconst slideRightAndFade = keyframes({\r\n '0%': {\r\n opacity: 0,\r\n transform: 'translateX(-2px)',\r\n },\r\n '100%': {\r\n opacity: 1,\r\n transform: 'translateX(0)',\r\n },\r\n});\r\n\r\nconst slideDownAndFade = keyframes({\r\n '0%': {\r\n opacity: 0,\r\n transform: 'translateY(-2px)',\r\n },\r\n '100%': {\r\n opacity: 1,\r\n transform: 'translateY(0)',\r\n },\r\n});\r\n\r\nconst slideLeftAndFade = keyframes({\r\n '0%': {\r\n opacity: 0,\r\n transform: 'translateX(2px)',\r\n },\r\n '100%': {\r\n opacity: 1,\r\n transform: 'translateX(0)',\r\n },\r\n});\r\n\r\nconst boxShadowOne = 'hsl(206 22% 7% / 35%) 0px 10px 38px -10px';\r\nconst boxShadowTwo = 'hsl(206 22% 7% / 20%) 0px 10px 20px -15px';\r\n\r\nexport const StyledContent = styled(TooltipPrimitive.Content, {\r\n borderRadius: 4,\r\n padding: '10px 15px',\r\n fontSize: 15,\r\n lineHeight: 1,\r\n color: '$defaultTxtColour',\r\n backgroundColor: '$defaultBackgroundColour',\r\n boxShadow: `${boxShadowOne}, ${boxShadowTwo}`,\r\n '@media (prefers-reduced-motion: no-preference)': {\r\n animationDuration: '100ms',\r\n animationTimingFunction: 'cubic-bezier(0.16, 1, 0.3, 1)',\r\n willChange: 'transform, opacity',\r\n '&[data-state=\"delayed-open\"]': {\r\n '&[data-side=\"top\"]': {\r\n animationName: slideDownAndFade,\r\n },\r\n '&[data-side=\"right\"]': {\r\n animationName: slideLeftAndFade,\r\n },\r\n '&[data-side=\"bottom\"]': {\r\n animationName: slideUpAndFade,\r\n },\r\n '&[data-side=\"left\"]': {\r\n animationName: slideRightAndFade,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const StyledArrow = styled(TooltipPrimitive.Arrow, {\r\n fill: '$defaultBackgroundColour',\r\n});\r\n","import React from 'react';\r\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\r\nimport { StyledContent, StyledArrow } from './styles';\r\nimport { useTheme } from '../../../hooks';\r\n\r\n/* --------------------------------------------------------------------------\r\n * Tooltip Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport type TooltipProps = {\r\n children?: React.ReactNode;\r\n text?: string;\r\n};\r\n\r\nexport const Tooltip = ({ children, text }: TooltipProps) => {\r\n const [, themeObject] = useTheme();\r\n\r\n return (\r\n \r\n \r\n
{children}
\r\n
\r\n {text && (\r\n \r\n {text}\r\n \r\n \r\n )}\r\n
\r\n );\r\n};\r\n","export enum ButtonType {\r\n plug = 'plug',\r\n}\r\n","import { styled } from '../../../stitches.config';\r\n\r\nexport const EmptyStateWrapper = styled('div', {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n height: '100%',\r\n});\r\n\r\nexport const EmptyStateMessage = styled('p', {\r\n fontStyle: 'normal',\r\n fontWeight: '700',\r\n fontSize: '32px',\r\n lineHeight: '39px',\r\n color: '$mainTextColor',\r\n marginBottom: '12px',\r\n});\r\n\r\nexport const ButtonWrapper = styled('div', {\r\n height: '50px',\r\n margin: '10px',\r\n\r\n '.plug-button': {\r\n marginLeft: '0px',\r\n },\r\n});\r\n","import { useTranslation } from 'react-i18next';\r\nimport { filterActions, useAppDispatch } from '../../../store';\r\nimport { ButtonType } from '../../../constants/empty-states';\r\nimport { Plug } from '../../plug';\r\nimport { ActionButton } from '../buttons';\r\nimport {\r\n EmptyStateWrapper,\r\n EmptyStateMessage,\r\n ButtonWrapper,\r\n} from './styles';\r\n\r\nexport type EmptyStateProps = {\r\n message: string;\r\n buttonType?: string;\r\n buttonText?: string;\r\n};\r\n\r\nexport const EmptyState = ({\r\n message,\r\n buttonType,\r\n buttonText,\r\n}: EmptyStateProps) => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n\r\n return (\r\n \r\n {message}\r\n \r\n {buttonType === ButtonType.plug ? (\r\n // eslint-disable-next-line\r\n {\r\n dispatch(\r\n filterActions.removeFilter(\r\n `${t('translation:buttons.action.myNfts')}`,\r\n ),\r\n );\r\n dispatch(filterActions.setMyNfts(false));\r\n }}\r\n >\r\n \r\n \r\n ) : (\r\n {\r\n dispatch(\r\n filterActions.removeFilter(\r\n `${t('translation:buttons.action.myNfts')}`,\r\n ),\r\n );\r\n dispatch(filterActions.setMyNfts(false));\r\n dispatch(filterActions.clearAllFilters());\r\n }}\r\n >\r\n {buttonText}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n","import { MutableRefObject, RefCallback } from \"react\";\n\n// Internal\nexport interface State {\n items: Item[];\n innerMargin?: number;\n innerSize?: number;\n}\n\nexport interface Measure {\n idx: number;\n start: number;\n end: number;\n size: number;\n}\n\n// External\nexport type SsrItemCount = number | [number, number];\n\ntype UseIsScrolling = boolean | ((speed: number) => boolean);\n\nexport type ItemSize = number | ((index: number, width: number) => number);\n\ntype ScrollDuration = number | ((distance: number) => number);\n\ninterface ScrollEasingFunction {\n (time: number): number;\n}\n\ninterface IsItemLoaded {\n (index: number): boolean;\n}\n\ninterface LoadMore {\n (event: {\n startIndex: number;\n stopIndex: number;\n loadIndex: number;\n readonly scrollOffset: number;\n readonly userScroll: boolean;\n }): void;\n}\n\ninterface OnScroll {\n (event: {\n overscanStartIndex: number;\n overscanStopIndex: number;\n visibleStartIndex: number;\n visibleStopIndex: number;\n readonly scrollOffset: number;\n readonly scrollForward: boolean;\n readonly userScroll: boolean;\n }): void;\n}\n\nexport interface OnResizeEvent {\n width: number;\n height: number;\n}\n\nexport interface OnResize {\n (event: OnResizeEvent): void;\n}\n\nexport interface Item {\n readonly index: number;\n readonly start: number;\n readonly size: number;\n readonly width: number;\n readonly isScrolling?: true;\n readonly isSticky?: true;\n measureRef: RefCallback;\n}\n\nexport interface ScrollToOptions {\n offset: number;\n smooth?: boolean;\n}\n\nexport interface ScrollTo {\n (value: number | ScrollToOptions, callback?: () => void): void;\n}\n\nexport enum Align {\n auto = \"auto\",\n start = \"start\",\n center = \"center\",\n end = \"end\",\n}\n\nexport interface ScrollToItemOptions {\n index: number;\n align?: Align;\n smooth?: boolean;\n}\n\nexport interface ScrollToItem {\n (index: number | ScrollToItemOptions, callback?: () => void): void;\n}\n\nexport interface StartItem {\n (index: number, callback?: () => void): void;\n}\n\nexport interface Options {\n itemCount: number;\n ssrItemCount?: SsrItemCount;\n itemSize?: ItemSize;\n horizontal?: boolean;\n resetScroll?: boolean;\n overscanCount?: number;\n useIsScrolling?: UseIsScrolling;\n stickyIndices?: number[];\n scrollDuration?: ScrollDuration;\n scrollEasingFunction?: ScrollEasingFunction;\n loadMoreCount?: number;\n isItemLoaded?: IsItemLoaded;\n loadMore?: LoadMore;\n onScroll?: OnScroll;\n onResize?: OnResize;\n}\n\nexport interface Return {\n outerRef: MutableRefObject;\n innerRef: MutableRefObject;\n items: Item[];\n scrollTo: ScrollTo;\n scrollToItem: ScrollToItem;\n startItem: StartItem;\n}\n","export default (\n low: number,\n high: number,\n input: number,\n getVal: (idx: number) => number\n): number => {\n while (low <= high) {\n const mid = ((low + high) / 2) | 0;\n const val = getVal(mid);\n\n if (input < val) {\n high = mid - 1;\n } else if (input > val) {\n low = mid + 1;\n } else {\n return mid;\n }\n }\n\n return low > 0 ? low - 1 : 0;\n};\n","export default (val: unknown): val is number =>\n typeof val === \"number\" && !Number.isNaN(val);\n","export default (): number =>\n // eslint-disable-next-line compat/compat\n \"performance\" in window ? performance.now() : Date.now();\n","import { MutableRefObject, useRef } from \"react\";\n\nexport default (val: T): MutableRefObject => {\n const ref = useRef(val);\n ref.current = val;\n return ref;\n};\n","import { useEffect, useLayoutEffect } from \"react\";\n\nexport default typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n","import { useCallback, useRef, useState } from \"react\";\n\nimport {\n Align,\n Item,\n ItemSize,\n Measure,\n Options,\n Return,\n ScrollTo,\n ScrollToOptions,\n ScrollToItem,\n ScrollToItemOptions,\n SsrItemCount,\n StartItem,\n State,\n} from \"./types\";\nimport {\n findNearestBinarySearch,\n isNumber,\n now,\n shouldUpdate,\n useDebounce,\n useIsoLayoutEffect,\n useLatest,\n useResizeEffect,\n} from \"./utils\";\n\nconst getInitState = (itemSize: ItemSize, ssrItemCount: SsrItemCount = 0) => {\n const [idx, len] = isNumber(ssrItemCount)\n ? [0, ssrItemCount - 1]\n : ssrItemCount;\n const items = [];\n\n for (let i = idx; i <= len; i += 1)\n items.push({\n index: i,\n start: 0,\n width: 0,\n size: isNumber(itemSize) ? itemSize : itemSize(i, 0),\n measureRef: /* istanbul ignore next */ () => null,\n });\n\n return { items };\n};\n\nexport default <\n O extends HTMLElement = HTMLElement,\n I extends HTMLElement = O\n>({\n itemCount,\n ssrItemCount,\n itemSize = 50,\n horizontal,\n resetScroll,\n overscanCount = 1,\n useIsScrolling,\n stickyIndices,\n // Default = 100ms <= distance * 0.75 <= 500ms\n scrollDuration = (d) => Math.min(Math.max(d * 0.075, 100), 500),\n // Default = easeInOutSine\n scrollEasingFunction = (t) => -(Math.cos(Math.PI * t) - 1) / 2,\n loadMoreCount = 15,\n isItemLoaded,\n loadMore,\n onScroll,\n onResize,\n}: Options): Return => {\n const [state, setState] = useState(() =>\n getInitState(itemSize, ssrItemCount)\n );\n const isMountedRef = useRef(false);\n const isScrollingRef = useRef(true);\n const isScrollToItemRef = useRef(false);\n const hasDynamicSizeRef = useRef(false);\n const rosRef = useRef>(new Map());\n const scrollOffsetRef = useRef(0);\n const prevItemIdxRef = useRef(-1);\n const prevVStopRef = useRef(-1);\n const outerRef = useRef(null);\n const innerRef = useRef(null);\n const outerRectRef = useRef({ width: 0, height: 0 });\n const msDataRef = useRef([]);\n const userScrollRef = useRef(true);\n const scrollToRafRef = useRef();\n const stickyIndicesRef = useLatest(stickyIndices);\n const durationRef = useLatest(scrollDuration);\n const easingFnRef = useLatest(scrollEasingFunction);\n const isItemLoadedRef = useLatest(isItemLoaded);\n const loadMoreRef = useLatest(loadMore);\n const itemSizeRef = useLatest(itemSize);\n const useIsScrollingRef = useLatest(useIsScrolling);\n const onScrollRef = useLatest(onScroll);\n const onResizeRef = useLatest(onResize);\n const sizeKey = !horizontal ? \"height\" : \"width\";\n const marginKey = !horizontal ? \"marginTop\" : \"marginLeft\";\n const scrollKey = !horizontal ? \"scrollTop\" : \"scrollLeft\";\n\n const getItemSize = useCallback(\n (idx: number) => {\n const { current: size } = itemSizeRef;\n return isNumber(size) ? size : size(idx, outerRectRef.current.width);\n },\n [itemSizeRef]\n );\n\n const getMeasure = useCallback((idx: number, size: number): Measure => {\n const start = msDataRef.current[idx - 1]?.end ?? 0;\n return { idx, start, end: start + size, size };\n }, []);\n\n const measureItems = useCallback(\n (useCache = true) => {\n msDataRef.current.length = itemCount;\n\n for (let i = 0; i < itemCount; i += 1)\n msDataRef.current[i] = getMeasure(\n i,\n useCache && msDataRef.current[i]\n ? msDataRef.current[i].size\n : getItemSize(i)\n );\n },\n [getItemSize, getMeasure, itemCount]\n );\n\n const getCalcData = useCallback(\n (scrollOffset: number) => {\n const { current: msData } = msDataRef;\n const lastIdx = msData.length - 1;\n let vStart = 0;\n\n if (hasDynamicSizeRef.current) {\n while (\n vStart < lastIdx &&\n msData[vStart].start + msData[vStart].size < scrollOffset\n )\n vStart += 1;\n } else {\n vStart = findNearestBinarySearch(\n 0,\n lastIdx,\n scrollOffset,\n (idx) => msData[idx].start\n );\n }\n\n let vStop = vStart;\n let currStart = msData[vStop].start;\n\n while (\n vStop < lastIdx &&\n currStart < scrollOffset + outerRectRef.current[sizeKey]\n ) {\n currStart += msData[vStop].size;\n vStop += 1;\n }\n\n vStop = vStop === lastIdx ? vStop : vStop - 1;\n const oStart = Math.max(vStart - overscanCount, 0);\n const oStop = Math.min(vStop + overscanCount, lastIdx);\n const innerMargin = msData[oStart].start;\n const totalSize = Math[oStop < lastIdx ? \"max\" : \"min\"](\n msData[oStop].end + msData[oStop].size,\n msData[lastIdx].end\n );\n\n return {\n oStart,\n oStop,\n vStart,\n vStop,\n innerMargin,\n innerSize: totalSize - innerMargin,\n };\n },\n [overscanCount, sizeKey]\n );\n\n const scrollTo = useCallback(\n (offset: number, isScrolling = true) => {\n if (outerRef.current) {\n userScrollRef.current = false;\n isScrollingRef.current = isScrolling;\n outerRef.current[scrollKey] = offset;\n }\n },\n [scrollKey]\n );\n\n const scrollToOffset = useCallback(\n (val, cb) => {\n const { offset, smooth }: ScrollToOptions = isNumber(val)\n ? { offset: val }\n : val;\n\n if (!isNumber(offset)) return;\n\n if (!smooth) {\n scrollTo(offset);\n if (cb) cb();\n\n return;\n }\n\n const { current: prevOffset } = scrollOffsetRef;\n const start = now();\n\n const scroll = () => {\n let { current: duration } = durationRef;\n duration = isNumber(duration)\n ? duration\n : duration(Math.abs(offset - prevOffset));\n const time = Math.min((now() - start) / duration, 1);\n const easing = easingFnRef.current(time);\n\n scrollTo(easing * (offset - prevOffset) + prevOffset);\n\n if (time < 1) {\n scrollToRafRef.current = requestAnimationFrame(scroll);\n } else if (cb) {\n cb();\n }\n };\n\n scrollToRafRef.current = requestAnimationFrame(scroll);\n },\n [durationRef, easingFnRef, scrollTo]\n );\n\n const scrollToIndex = useCallback(\n (\n val: Parameters[0],\n cb: Parameters[1],\n isSync?: boolean\n ) => {\n const {\n index,\n align = Align.auto,\n smooth,\n }: ScrollToItemOptions = isNumber(val) ? { index: val } : val;\n\n if (!isNumber(index)) return;\n\n isScrollToItemRef.current = true;\n\n // For dynamic size, we must measure it for getting the correct scroll position\n if (hasDynamicSizeRef.current) measureItems();\n\n const { current: msData } = msDataRef;\n const ms = msData[Math.max(0, Math.min(index, msData.length - 1))];\n\n if (!ms) return;\n\n const { start, end, size } = ms;\n const totalSize = msData[msData.length - 1].end;\n const outerSize = outerRectRef.current[sizeKey];\n let { current: scrollOffset } = scrollOffsetRef;\n\n if (totalSize <= outerSize) {\n if (cb) cb();\n return;\n }\n\n if (\n isSync ||\n align === Align.start ||\n (align === Align.auto &&\n scrollOffset + outerSize > end &&\n scrollOffset > start)\n ) {\n scrollOffset =\n totalSize - start <= outerSize ? totalSize - outerSize : start;\n } else if (\n align === Align.end ||\n (align === Align.auto &&\n scrollOffset + outerSize < end &&\n scrollOffset < start)\n ) {\n scrollOffset = start + size <= outerSize ? 0 : start - outerSize + size;\n } else if (align === Align.center && start + size / 2 > outerSize / 2) {\n const to = start - outerSize / 2 + size / 2;\n scrollOffset = totalSize - to <= outerSize ? totalSize - outerSize : to;\n }\n\n if (\n hasDynamicSizeRef.current &&\n Math.abs(scrollOffset - scrollOffsetRef.current) <= 1\n ) {\n if (cb) cb();\n return;\n }\n\n scrollToOffset({ offset: scrollOffset, smooth }, () => {\n if (!hasDynamicSizeRef.current) {\n if (cb) cb();\n } else if (isSync) {\n requestAnimationFrame(() => scrollToIndex(val, cb, isSync));\n } else {\n setTimeout(() => scrollToIndex(val, cb));\n }\n });\n },\n [measureItems, scrollToOffset, sizeKey]\n );\n\n const scrollToItem = useCallback(\n (val, cb) => scrollToIndex(val, cb),\n [scrollToIndex]\n );\n\n const startItem = useCallback(\n (idx, cb) => scrollToIndex(idx, cb, true),\n [scrollToIndex]\n );\n\n const [resetIsScrolling, cancelResetIsScrolling] = useDebounce(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n () => handleScroll(scrollOffsetRef.current),\n 150\n );\n\n const handleScroll = useCallback(\n (scrollOffset: number, isScrolling?: boolean, uxScrolling?: boolean) => {\n if (\n loadMoreRef.current &&\n !isMountedRef.current &&\n !(isItemLoadedRef.current && isItemLoadedRef.current(0))\n )\n loadMoreRef.current({\n startIndex: 0,\n stopIndex: loadMoreCount - 1,\n loadIndex: 0,\n scrollOffset,\n userScroll: false,\n });\n\n if (!itemCount) {\n setState({ items: [] });\n return;\n }\n\n const calcData = getCalcData(scrollOffset);\n const { oStart, oStop, vStart, vStop } = calcData;\n let { innerMargin, innerSize } = calcData;\n const items: Item[] = [];\n const stickies = Array.isArray(stickyIndicesRef.current)\n ? stickyIndicesRef.current\n : [];\n\n for (let i = oStart; i <= oStop; i += 1) {\n const { current: msData } = msDataRef;\n const { start, size } = msData[i];\n\n items.push({\n index: i,\n start: start - innerMargin,\n size,\n width: outerRectRef.current.width,\n isScrolling: uxScrolling || undefined,\n isSticky: stickies.includes(i) || undefined,\n measureRef: (el) => {\n if (!el) return;\n\n // eslint-disable-next-line compat/compat\n new ResizeObserver(([{ target }], ro) => {\n // NOTE: Use `borderBoxSize` when it's supported by Safari\n // see: https://caniuse.com/mdn-api_resizeobserverentry_borderboxsize\n const measuredSize = target.getBoundingClientRect()[sizeKey];\n\n if (!measuredSize) {\n ro.disconnect();\n rosRef.current.delete(target);\n return;\n }\n\n const prevEnd = msData[i - 1]?.end ?? 0;\n\n if (measuredSize !== size || start !== prevEnd) {\n // To prevent dynamic size from jumping during backward scrolling\n if (i < prevItemIdxRef.current && start < scrollOffset)\n scrollTo(scrollOffset + measuredSize - size, false);\n\n msDataRef.current[i] = getMeasure(i, measuredSize);\n if (!isScrollToItemRef.current)\n handleScroll(\n scrollOffsetRef.current,\n isScrolling,\n uxScrolling\n );\n\n hasDynamicSizeRef.current = true;\n }\n\n prevItemIdxRef.current = i;\n\n rosRef.current.get(target)?.disconnect();\n rosRef.current.set(target, ro);\n }).observe(el);\n },\n });\n }\n\n if (stickies.length) {\n const stickyIdx =\n stickies[\n findNearestBinarySearch(\n 0,\n stickies.length - 1,\n vStart,\n (idx) => stickies[idx]\n )\n ];\n\n if (oStart > stickyIdx) {\n const { size } = msDataRef.current[stickyIdx];\n\n items.unshift({\n index: stickyIdx,\n start: 0,\n size,\n width: outerRectRef.current.width,\n isScrolling: uxScrolling || undefined,\n isSticky: true,\n measureRef: /* istanbul ignore next */ () => null,\n });\n\n innerMargin -= size;\n innerSize += size;\n }\n }\n\n setState((prevState) =>\n shouldUpdate(prevState.items, items, { measureRef: true })\n ? { items, innerMargin, innerSize }\n : prevState\n );\n\n if (!isScrolling) return;\n\n const scrollForward = scrollOffset > scrollOffsetRef.current;\n\n if (onScrollRef.current)\n onScrollRef.current({\n overscanStartIndex: oStart,\n overscanStopIndex: oStop,\n visibleStartIndex: vStart,\n visibleStopIndex: vStop,\n scrollOffset,\n scrollForward,\n userScroll: userScrollRef.current,\n });\n\n const loadIndex = Math.max(\n Math.floor((vStop + 1) / loadMoreCount) - (scrollForward ? 0 : 1),\n 0\n );\n const startIndex = loadIndex * loadMoreCount;\n\n if (\n loadMoreRef.current &&\n vStop !== prevVStopRef.current &&\n !(isItemLoadedRef.current && isItemLoadedRef.current(loadIndex))\n )\n loadMoreRef.current({\n startIndex,\n stopIndex: startIndex + loadMoreCount - 1,\n loadIndex,\n scrollOffset,\n userScroll: userScrollRef.current,\n });\n\n if (uxScrolling) resetIsScrolling();\n\n prevVStopRef.current = vStop;\n },\n [\n stickyIndicesRef,\n getCalcData,\n getMeasure,\n itemCount,\n loadMoreCount,\n loadMoreRef,\n onScrollRef,\n resetIsScrolling,\n scrollTo,\n sizeKey,\n isItemLoadedRef,\n ]\n );\n\n useResizeEffect(\n outerRef,\n (rect) => {\n const { width, height } = outerRectRef.current;\n const isSameWidth = width === rect.width;\n const isSameSize = isSameWidth && height === rect.height;\n const msDataLen = msDataRef.current.length;\n const prevTotalSize = msDataRef.current[msDataLen - 1]?.end;\n\n outerRectRef.current = rect;\n measureItems(hasDynamicSizeRef.current);\n handleScroll(scrollOffsetRef.current);\n\n if (resetScroll && itemCount !== msDataLen)\n setTimeout(() => scrollTo(0, false));\n\n if (!isMountedRef.current) {\n isMountedRef.current = true;\n return;\n }\n\n if (!hasDynamicSizeRef.current && !isSameWidth) {\n const totalSize = msDataRef.current[msDataRef.current.length - 1]?.end;\n const ratio = totalSize / prevTotalSize || 1;\n\n scrollTo(scrollOffsetRef.current * ratio, false);\n }\n\n if (!isSameSize && onResizeRef.current) onResizeRef.current(rect);\n },\n [itemCount, resetScroll, handleScroll, measureItems, onResizeRef, scrollTo]\n );\n\n useIsoLayoutEffect(() => {\n if (!innerRef.current) return;\n\n if (isNumber(state.innerMargin))\n innerRef.current.style[marginKey] = `${state.innerMargin}px`;\n if (isNumber(state.innerSize))\n innerRef.current.style[sizeKey] = `${state.innerSize}px`;\n }, [marginKey, sizeKey, state.innerMargin, state.innerSize]);\n\n useIsoLayoutEffect(() => {\n const { current: outer } = outerRef;\n\n if (!outer) return () => null;\n\n const scrollHandler = ({ target }: Event) => {\n const scrollOffset = (target as O)[scrollKey];\n\n if (scrollOffset === scrollOffsetRef.current) return;\n\n let { current: uxScrolling } = useIsScrollingRef;\n uxScrolling =\n typeof uxScrolling === \"function\"\n ? uxScrolling(Math.abs(scrollOffset - scrollOffsetRef.current))\n : uxScrolling;\n\n handleScroll(scrollOffset, isScrollingRef.current, uxScrolling);\n\n userScrollRef.current = true;\n isScrollingRef.current = true;\n isScrollToItemRef.current = false;\n scrollOffsetRef.current = scrollOffset;\n };\n\n outer.addEventListener(\"scroll\", scrollHandler, { passive: true });\n\n const ros = rosRef.current;\n\n return () => {\n cancelResetIsScrolling();\n if (scrollToRafRef.current) {\n cancelAnimationFrame(scrollToRafRef.current);\n scrollToRafRef.current = undefined;\n }\n\n outer.removeEventListener(\"scroll\", scrollHandler);\n\n ros.forEach((ro) => ro.disconnect());\n ros.clear();\n };\n }, [cancelResetIsScrolling, handleScroll, scrollKey, useIsScrollingRef]);\n\n return {\n outerRef,\n innerRef,\n items: state.items,\n scrollTo: scrollToOffset,\n scrollToItem,\n startItem,\n };\n};\n","import { useCallback, useRef } from \"react\";\n\nimport now from \"./now\";\nimport useLatest from \"./useLatest\";\n\ninterface Fn {\n (): void;\n}\n\nexport default (cb: Fn, delay: number): [Fn, Fn] => {\n const rafRef = useRef();\n const cbRef = useLatest(cb);\n\n const cancel = useCallback(() => {\n if (rafRef.current) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = undefined;\n }\n }, []);\n\n const tick = useCallback(\n (start: number) => {\n if (now() - start >= delay) {\n cbRef.current();\n } else {\n rafRef.current = requestAnimationFrame(() => tick(start));\n }\n },\n [cbRef, delay]\n );\n\n const fn = useCallback(() => {\n cancel();\n tick(now());\n }, [cancel, tick]);\n\n return [fn, cancel];\n};\n","import { Item } from \"../types\";\n\nexport default (\n prev: Item[],\n next: Item[],\n skip: Record\n): boolean => {\n if (prev.length !== next.length) return true;\n\n for (let i = 0; i < prev.length; i += 1)\n if (\n Object.keys(prev[i]).some((key) => {\n const k = key as keyof Item;\n return !skip[k] && prev[i][k] !== next[i][k];\n })\n )\n return true;\n\n return false;\n};\n","import { DependencyList, RefObject } from \"react\";\n\nimport { OnResize } from \"../types\";\nimport useIsoLayoutEffect from \"./useIsoLayoutEffect\";\nimport useLatest from \"./useLatest\";\n\nexport default (\n ref: RefObject,\n cb: OnResize,\n deps: DependencyList\n): void => {\n const cbRef = useLatest(cb);\n\n useIsoLayoutEffect(() => {\n if (!ref?.current) return () => null;\n\n // eslint-disable-next-line compat/compat\n const observer = new ResizeObserver(([{ contentRect }]) => {\n const { width, height } = contentRect;\n cbRef.current({ width, height });\n });\n\n observer.observe(ref.current);\n\n return () => observer.disconnect();\n }, [cbRef, ref, ...deps]);\n};\n","import { styled } from '../../../stitches.config';\n\nexport const CardListContainer = styled('div', {\n width: '450px',\n\n '@large': {\n width: '100%',\n },\n});\n\n","import throttle from 'lodash.throttle';\r\nimport { Fragment, useEffect, useRef, useState } from 'react';\r\nimport useVirtual from 'react-cool-virtual';\r\nimport { CardListContainer } from './styles';\r\n\r\nconst DefaultProps = {\r\n width: 210,\r\n height: 348,\r\n headerOffset: 76,\r\n columns: 3,\r\n scrollThreshold: 348,\r\n rowSpacing: 1.06,\r\n padding: 15,\r\n throttlingInterval: 300,\r\n};\r\n\r\nexport type VirtualizedGridProps = Partial<\r\n typeof DefaultProps\r\n> & {\r\n items: T[];\r\n ItemRenderer: React.VFC;\r\n Skeleton: React.VFC;\r\n loadingMore?: boolean;\r\n};\r\n\r\nexport const VirtualizedGrid = ({\r\n items,\r\n ItemRenderer,\r\n loadingMore,\r\n Skeleton,\r\n width = DefaultProps.width,\r\n height = DefaultProps.height,\r\n headerOffset = DefaultProps.headerOffset,\r\n columns = DefaultProps.columns,\r\n scrollThreshold = DefaultProps.scrollThreshold,\r\n rowSpacing = DefaultProps.rowSpacing,\r\n padding = DefaultProps.padding,\r\n throttlingInterval = DefaultProps.throttlingInterval,\r\n}: VirtualizedGridProps) => {\r\n const wrapperRef = useRef(null);\r\n\r\n const [colItems, setColItems] = useState(columns);\r\n const [spacingCoefficient, setSpacingCoefficient] =\r\n useState(rowSpacing);\r\n\r\n const row = useVirtual({\r\n itemCount:\r\n Math.ceil(items.length / colItems) + (loadingMore ? 2 : 0),\r\n itemSize: height,\r\n });\r\n\r\n const col = useVirtual({\r\n horizontal: true,\r\n itemCount: colItems,\r\n itemSize: width,\r\n });\r\n\r\n // Calculate the total amount of columns and spacing\r\n useEffect(() => {\r\n const wrapperReference = wrapperRef.current;\r\n if (!wrapperReference || width <= 0) return;\r\n\r\n // Event listener for column items\r\n const resizeListener = () => {\r\n // Calculate the possible amount of columns\r\n const wrapperWidth =\r\n wrapperReference.getBoundingClientRect().width;\r\n let newColItems = Math.floor(wrapperWidth / width);\r\n\r\n // Calculate the column spacing coefficient\r\n const getSpacingCoefficient = () =>\r\n (wrapperWidth - width * newColItems) /\r\n (newColItems - 1) /\r\n width;\r\n let newSpacingCoefficient = getSpacingCoefficient();\r\n\r\n // Decrease the column number if the space between columns is too small\r\n if (\r\n (newSpacingCoefficient * wrapperWidth) / newColItems <\r\n padding\r\n ) {\r\n newColItems -= 1;\r\n newSpacingCoefficient = getSpacingCoefficient();\r\n }\r\n\r\n // Update column items state\r\n setColItems(newColItems);\r\n setSpacingCoefficient(newSpacingCoefficient + 1);\r\n };\r\n resizeListener();\r\n\r\n // Add throttled listener to window resize\r\n const resizeListenerThrottled = throttle(\r\n resizeListener,\r\n throttlingInterval,\r\n );\r\n window.addEventListener('resize', resizeListenerThrottled);\r\n return () => {\r\n window.removeEventListener('resize', resizeListenerThrottled);\r\n };\r\n }, [wrapperRef, width, throttlingInterval, padding]);\r\n\r\n useEffect(() => {\r\n const scrollerReference = row.outerRef.current;\r\n const wrapperReference = wrapperRef.current;\r\n const innerReference = row.innerRef.current;\r\n if (!scrollerReference || !wrapperReference || !innerReference)\r\n return;\r\n\r\n // Set scroller height to cover the view\r\n scrollerReference.style.height = `${\r\n window.innerHeight - headerOffset\r\n }px`;\r\n\r\n // Calculate the scroll distance between the\r\n // top of the page and the top of the list\r\n const initialTop = scrollerReference.getBoundingClientRect().top;\r\n const topFullDistance =\r\n initialTop + window.scrollY - headerOffset - padding;\r\n\r\n // Event listener to update scroll position\r\n const updateListener = () => {\r\n // Window scroll applicable to scroller\r\n const windowRelativeScroll =\r\n document.documentElement.scrollHeight +\r\n scrollThreshold / 2 -\r\n topFullDistance;\r\n\r\n // Calculate the new scroller scroll position\r\n const scrollCoefficient =\r\n scrollerReference.scrollHeight / windowRelativeScroll;\r\n const currentWindowRelativeScroll =\r\n window.scrollY - topFullDistance;\r\n const scrollerY = Math.max(\r\n currentWindowRelativeScroll * scrollCoefficient,\r\n 0,\r\n );\r\n\r\n // Apply the new scroller scroll position\r\n scrollerReference.scrollTo(0, scrollerY);\r\n\r\n // New offset of the scroller inside the wrapper\r\n const topThreshold = scrollThreshold / 2;\r\n const realOffset = Math.max(\r\n currentWindowRelativeScroll - topThreshold,\r\n 0,\r\n );\r\n const maximalOffset =\r\n wrapperReference.getBoundingClientRect().height -\r\n scrollerReference.offsetHeight;\r\n const offsetInWrapper = Math.min(realOffset, maximalOffset);\r\n\r\n // Apply the new offset inside the wrappers\r\n scrollerReference.style.transform = `translateY(${offsetInWrapper}px)`;\r\n };\r\n updateListener();\r\n // Add scroll event listener\r\n window.addEventListener('scroll', updateListener);\r\n\r\n // Add throttled update for resize events\r\n const updateListenerThrottled = throttle(\r\n updateListener,\r\n throttlingInterval,\r\n );\r\n const resizeObserver = new ResizeObserver(() => {\r\n wrapperReference.style.height = `${scrollerReference.scrollHeight}px`;\r\n updateListenerThrottled();\r\n });\r\n resizeObserver.observe(innerReference);\r\n resizeObserver.observe(scrollerReference);\r\n\r\n // Clear all event listeners on unmount\r\n return () => {\r\n resizeObserver.disconnect();\r\n window.removeEventListener('scroll', updateListener);\r\n };\r\n }, [\r\n row.outerRef,\r\n row.innerRef,\r\n wrapperRef,\r\n scrollThreshold,\r\n throttlingInterval,\r\n headerOffset,\r\n padding,\r\n ]);\r\n\r\n const getItemIndex = (rowIndex: number, colIndex: number) =>\r\n rowIndex * colItems + colIndex;\r\n\r\n return (\r\n \r\n {\r\n row.outerRef.current = el;\r\n col.outerRef.current = el;\r\n }}\r\n >\r\n {\r\n row.innerRef.current = el;\r\n col.innerRef.current = el;\r\n }}\r\n >\r\n {row.items.map((rowItem) => (\r\n \r\n {col.items.map((colItem) => (\r\n \r\n {items[\r\n getItemIndex(rowItem.index, colItem.index)\r\n ] && (\r\n \r\n )}\r\n {!items[\r\n getItemIndex(rowItem.index, colItem.index)\r\n ] &&\r\n loadingMore && }\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport { NftCard } from '../core/cards/nft-card';\r\nimport {\r\n useNFTSStore,\r\n useFilterStore,\r\n useAppDispatch,\r\n usePlugStore,\r\n nftsActions,\r\n} from '../../store';\r\nimport { EmptyState, NftSkeleton, VirtualizedGrid } from '../core';\r\nimport { ButtonType } from '../../constants/empty-states';\r\nimport {\r\n usePriceValues,\r\n useTraitsPayload,\r\n isNFTOwner,\r\n} from '../../integrations/kyasshu/utils';\r\nimport { parseAmountToE8SAsNum } from '../../utils/formatters';\r\n\r\nexport const NftList = () => {\r\n const { t } = useTranslation();\r\n // eslint-disable-next-line\r\n const dispatch = useAppDispatch();\r\n const { loadedNFTS, hasMoreNFTs, loadingNFTs, nextPageNo } =\r\n useNFTSStore();\r\n const { isMyNfts, status, defaultFilters } = useFilterStore();\r\n const { principalId, isConnected } = usePlugStore();\r\n const traitsPayload = useTraitsPayload();\r\n const priceValues = usePriceValues();\r\n // eslint-disable-next-line object-curly-newline\r\n let payload = {};\r\n if (\r\n traitsPayload.length ||\r\n isMyNfts ||\r\n (priceValues && Object.keys(priceValues).length) ||\r\n status !== ''\r\n ) {\r\n payload = {\r\n traits: traitsPayload.length ? traitsPayload : undefined,\r\n principal: isMyNfts ? principalId : undefined,\r\n status,\r\n price:\r\n priceValues && Object.keys(priceValues).length\r\n ? {\r\n min: parseAmountToE8SAsNum(priceValues?.min),\r\n max: parseAmountToE8SAsNum(priceValues?.max),\r\n type: 'currentPrice',\r\n }\r\n : undefined,\r\n };\r\n }\r\n\r\n const { sortBy } = useFilterStore();\r\n\r\n const loadMoreNFTS = () => {\r\n if (loadingNFTs || !hasMoreNFTs || nextPageNo <= 0) return;\r\n\r\n dispatch(\r\n nftsActions.getNFTs({\r\n payload,\r\n sort: sortBy,\r\n order: 'd',\r\n page: nextPageNo,\r\n count: 25,\r\n }),\r\n );\r\n };\r\n\r\n if (isMyNfts && !isConnected) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (\r\n isMyNfts &&\r\n isConnected &&\r\n defaultFilters.length > 1 &&\r\n !loadedNFTS.length\r\n ) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (\r\n isMyNfts &&\r\n isConnected &&\r\n !loadedNFTS.length &&\r\n defaultFilters.length === 1\r\n ) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (defaultFilters.length && !loadedNFTS.length) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n (\r\n \r\n ))}\r\n Skeleton={NftSkeleton}\r\n />\r\n \r\n );\r\n};\r\n","import { NftSkeleton } from '../core';\r\n\r\nconst NftListData = Array(6)\r\n .fill('')\r\n .map((_, id) => ({ id: `${id}` }));\r\n\r\nexport const NftSkeletonList = () => (\r\n <>\r\n {NftListData.map((item) => (\r\n \r\n ))}\r\n \r\n);\r\n","import { styled } from '../../stitches.config';\r\n\r\nexport const Container = styled('div', {\r\n position: 'relative',\r\n // borderTop: '1px solid rgb(229, 232, 235)',\r\n borderTop: '1px solid $borderColor',\r\n padding: '0px 80px 80px',\r\n width: '100%',\r\n // borderLeft: '1px solid rgb(229, 232, 235)',\r\n borderLeft: '1px solid $borderColor',\r\n\r\n '@sm': {\r\n padding: '0px 15px 15px',\r\n },\r\n});\r\n\r\nexport const FilteredContainer = styled('div', {\r\n margin: 'auto',\r\n});\r\n\r\nexport const ContentWrapper = styled('div', {\r\n margin: '25px 0px 15px',\r\n});\r\n\r\nexport const Flex = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n\r\n // variants\r\n variants: {\r\n withMargin: {\r\n true: {\r\n margin: '25px 0 10px',\r\n },\r\n },\r\n\r\n justifyContent: {\r\n true: {\r\n justifyContent: 'space-between',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const ContentFlex = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n marginBottom: '10px',\r\n});\r\n\r\nexport const SkeletonListWrapper = styled('div', {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(auto-fill,minmax(185px, 1fr))',\r\n gridAutoFlow: 'row dense',\r\n gridGap: '35px 50px',\r\n});\r\n\r\nexport const ClearButton = styled('div', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '14px',\r\n lineHeight: '19px',\r\n color: '$primary',\r\n\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n});\r\n","import { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n useFilterStore,\r\n filterActions,\r\n useAppDispatch,\r\n useNFTSStore,\r\n settingsActions,\r\n nftsActions,\r\n usePlugStore,\r\n} from '../../store';\r\nimport { useNFTSFetcher } from '../../integrations/kyasshu';\r\nimport { NftList } from '../nft-list';\r\nimport { NftSkeletonList } from '../nft-skeleton-list';\r\nimport {\r\n FilteredCountChip,\r\n FilteredTraitsChip,\r\n SortByFilterDropdown,\r\n} from '../core';\r\nimport {\r\n Container,\r\n FilteredContainer,\r\n ContentWrapper,\r\n Flex,\r\n ContentFlex,\r\n SkeletonListWrapper,\r\n ClearButton,\r\n} from './styles';\r\n\r\nexport const CollectionItems = () => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const appliedFilters = useFilterStore();\r\n\r\n const {\r\n loadingNFTs,\r\n loadingCollectionData,\r\n totalNFTSCount,\r\n totalOwnersCount,\r\n floorPrice,\r\n loadedNFTS,\r\n totalVolume,\r\n } = useNFTSStore();\r\n\r\n const { isConnected } = usePlugStore();\r\n\r\n const appliedFiltersCount =\r\n appliedFilters?.defaultFilters.length || 0;\r\n\r\n useEffect(() => {\r\n if (appliedFiltersCount > 0) return;\r\n\r\n dispatch(nftsActions.getCollectionData());\r\n }, [appliedFiltersCount]);\r\n\r\n useNFTSFetcher();\r\n\r\n // TODO: move applied filters to seperate component\r\n const handleRemoveFilter = (appliedFilter: any) => {\r\n // TODO: apply sorting to fetch kyasshu API\r\n // eslint-disable-next-line no-console\r\n if (\r\n appliedFilter.filterCategory ===\r\n `${t('translation:filters.priceRange')}`\r\n ) {\r\n dispatch(\r\n filterActions.removePriceFilter(appliedFilter.filterCategory),\r\n );\r\n dispatch(settingsActions.setPriceApplyButton(false));\r\n } else {\r\n dispatch(filterActions.removeFilter(appliedFilter.filterName));\r\n dispatch(\r\n filterActions.removeTraitsFilter({\r\n value: appliedFilter.filterName,\r\n key: appliedFilter.filterCategory,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n // TODO: Add loader when collection data or floor price\r\n // details are loading\r\n\r\n const displayClearButton = () => {\r\n if (\r\n appliedFilters.isMyNfts &&\r\n isConnected &&\r\n !loadedNFTS.length &&\r\n appliedFilters.defaultFilters.length === 1\r\n )\r\n return;\r\n\r\n if (appliedFilters?.defaultFilters?.length) {\r\n return (\r\n {\r\n dispatch(filterActions.clearAllFilters());\r\n dispatch(settingsActions.setPriceApplyButton(false));\r\n dispatch(filterActions.setMyNfts(false));\r\n }}\r\n >{`${t('translation:filters.clearAll')}`}\r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {!loadingCollectionData && totalNFTSCount > 0 && (\r\n \r\n )}\r\n {!loadingCollectionData && totalOwnersCount > 0 && (\r\n \r\n )}\r\n {!loadingCollectionData && floorPrice > 0 && (\r\n \r\n )}\r\n {!loadingCollectionData && totalVolume > 0 && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {appliedFilters.defaultFilters.map((appliedFilter) => {\r\n if (!Array.isArray(appliedFilter.filterName)) {\r\n if (\r\n appliedFilters.isMyNfts &&\r\n isConnected &&\r\n !loadedNFTS.length &&\r\n appliedFilter?.filterName ===\r\n t('translation:buttons.action.myNfts')\r\n )\r\n return;\r\n return (\r\n {\r\n if (\r\n appliedFilter.filterName ===\r\n `${t('translation:buttons.action.myNfts')}`\r\n ) {\r\n dispatch(filterActions.setMyNfts(false));\r\n } else if (\r\n appliedFilter.filterName ===\r\n `${t('translation:buttons.action.buyNow')}`\r\n ) {\r\n dispatch(filterActions.setStatusFilter(''));\r\n } else if (\r\n appliedFilter.filterName ===\r\n `${t(\r\n 'translation:buttons.action.hasOffers',\r\n )}`\r\n ) {\r\n dispatch(filterActions.setStatusFilter(''));\r\n }\r\n handleRemoveFilter(appliedFilter);\r\n }}\r\n />\r\n );\r\n }\r\n return appliedFilter.filterName.map((value) => {\r\n return (\r\n {\r\n dispatch(\r\n filterActions.removeTraitsFilter({\r\n value,\r\n key: appliedFilter.filterCategory,\r\n }),\r\n );\r\n }}\r\n />\r\n );\r\n });\r\n })}\r\n {displayClearButton()}\r\n \r\n \r\n \r\n {loadingNFTs && loadedNFTS.length === 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { useId } from '@radix-ui/react-id';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Tabs\n * -----------------------------------------------------------------------------------------------*/\n\nconst TABS_NAME = 'Tabs';\n\ntype ScopedProps

= P & { __scopeTabs?: Scope };\nconst [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\n\ntype TabsContextValue = {\n baseId: string;\n value?: string;\n onValueChange: (value: string) => void;\n orientation?: TabsProps['orientation'];\n dir?: TabsProps['dir'];\n activationMode?: TabsProps['activationMode'];\n};\n\nconst [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\n\ntype TabsElement = React.ElementRef;\ntype RovingFocusGroupProps = Radix.ComponentPropsWithoutRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface TabsProps extends PrimitiveDivProps {\n /** The value for the selected tab, if controlled */\n value?: string;\n /** The value of the tab to select by default, if uncontrolled */\n defaultValue?: string;\n /** A function called when a new tab is selected */\n onValueChange?: (value: string) => void;\n /**\n * The orientation the tabs are layed out.\n * Mainly so arrow navigation is done accordingly (left & right vs. up & down)\n * @defaultValue horizontal\n */\n orientation?: RovingFocusGroupProps['orientation'];\n /**\n * The direction of navigation between toolbar items.\n * @defaultValue ltr\n */\n dir?: RovingFocusGroupProps['dir'];\n /**\n * Whether a tab is activated automatically or manually.\n * @defaultValue automatic\n * */\n activationMode?: 'automatic' | 'manual';\n}\n\nconst Tabs = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n dir = 'ltr',\n activationMode = 'automatic',\n ...tabsProps\n } = props;\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue,\n });\n\n return (\n \n \n \n );\n }\n);\n\nTabs.displayName = TABS_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsList\n * -----------------------------------------------------------------------------------------------*/\n\nconst TAB_LIST_NAME = 'TabsList';\n\ntype TabsListElement = React.ElementRef;\ninterface TabsListProps extends PrimitiveDivProps {\n loop?: RovingFocusGroupProps['loop'];\n}\n\nconst TabsList = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return (\n \n \n \n );\n }\n);\n\nTabsList.displayName = TAB_LIST_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'TabsTrigger';\n\ntype TabsTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef;\ninterface TabsTriggerProps extends PrimitiveButtonProps {\n value: string;\n}\n\nconst TabsTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return (\n \n {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n // prevent focus to avoid accidental activation\n event.preventDefault();\n }\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if ([' ', 'Enter'].includes(event.key)) context.onValueChange(value);\n })}\n onFocus={composeEventHandlers(props.onFocus, () => {\n // handle \"automatic\" activation if necessary\n // ie. activate tab following focus\n const isAutomaticActivation = context.activationMode !== 'manual';\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })}\n />\n \n );\n }\n);\n\nTabsTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'TabsContent';\n\ntype TabsContentElement = React.ElementRef;\ninterface TabsContentProps extends PrimitiveDivProps {\n value: string;\n}\n\nconst TabsContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeTabs, value, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return (\n \n );\n }\n);\n\nTabsContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`;\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`;\n}\n\nconst Root = Tabs;\nconst List = TabsList;\nconst Trigger = TabsTrigger;\nconst Content = TabsContent;\n\nexport {\n createTabsScope,\n //\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n //\n Root,\n List,\n Trigger,\n Content,\n};\nexport type { TabsProps, TabsListProps, TabsTriggerProps, TabsContentProps };\n","import * as Tabs from '@radix-ui/react-tabs';\r\nimport { styled } from '../../stitches.config';\r\n\r\nexport const TabsRoot = styled(Tabs.Root, {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: '$backgroundColor',\r\n\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n});\r\n\r\nexport const TabsList = styled(Tabs.List, {\r\n flexShrink: 0,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n});\r\n\r\nexport const TabsTrigger = styled(Tabs.Trigger, {\r\n backgroundColor: '$backgroundColor',\r\n padding: '0 20px',\r\n height: 45,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontweight: '500',\r\n fontSize: '18px',\r\n lineHeight: '22px',\r\n border: '0px',\r\n cursor: 'pointer',\r\n fontFamily: 'proxima-nova, sans-serif',\r\n variants: {\r\n status: {\r\n active: {\r\n borderBottom: '3px solid $tabActive',\r\n color: '$mainTextColor',\r\n borderTop: 'none',\r\n borderLeft: 'none',\r\n borderRight: 'none',\r\n },\r\n inactive: {\r\n border: '0',\r\n color: '#777E90',\r\n },\r\n },\r\n },\r\n '& img': {\r\n marginRight: '12px',\r\n },\r\n '&:hover': {\r\n color: '$mainTextColor',\r\n },\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n});\r\n\r\nexport const TabsContentWrapper = styled('div', {\r\n display: 'flex',\r\n\r\n '@md': {\r\n flexWrap: 'wrap',\r\n justifyContent: 'center',\r\n borderTop: '1px solid $borderColor',\r\n },\r\n});\r\n\r\nexport const TabsContent = styled(Tabs.Content, {\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n});\r\n","export const triggerWindowResizeEvent = () =>\n window.dispatchEvent(new Event('resize'));\n","import { styled, keyframes } from '../../stitches.config';\r\nimport { Icon } from '../icons';\r\n\r\nconst closeArrowBounce = keyframes({\r\n '50%': {\r\n transform: 'translateX(-3px)',\r\n },\r\n});\r\n\r\nconst openArrowBounce = keyframes({\r\n '50%': {\r\n transform: 'rotate(-180deg) translateX(-3px)',\r\n },\r\n});\r\n\r\nexport const Container = styled('div', {\r\n position: 'relative',\r\n});\r\n\r\nexport const CloseFilterContainer = styled('div', {\r\n // base styles\r\n position: 'absolute',\r\n right: '-22px',\r\n top: '24px',\r\n zIndex: 1,\r\n\r\n // variants\r\n variants: {\r\n opened: {\r\n true: {\r\n position: 'absolute',\r\n right: '-34px',\r\n top: '24px',\r\n zIndex: 1,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const FiltersContainer = styled('div', {\r\n width: '340px',\r\n background: '$backgroundColor',\r\n height: '100vh',\r\n borderTop: '1px solid $borderColor',\r\n position: 'sticky',\r\n top: '0',\r\n overflowY: 'scroll',\r\n overflowX: 'hidden',\r\n msOverflowStyle: 'none',\r\n scrollbarWidth: 'none',\r\n\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n});\r\n\r\nexport const FiltersWrapper = styled('div', {\r\n padding: '0 20px 32px',\r\n});\r\n\r\nexport const Flex = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n margin: '0 0 0px',\r\n\r\n variants: {\r\n justify: {\r\n spaceBetween: {\r\n justifyContent: 'space-between',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const FilterSection = styled('div', {\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n margin: '35px 0px 0px',\r\n\r\n '&:nth-child(1)': {\r\n marginBottom: '15px',\r\n },\r\n});\r\n\r\nexport const FilterGroup = styled('div', {\r\n width: '100%',\r\n marginBottom: '30px',\r\n});\r\n\r\nexport const Heading = styled('h5', {\r\n fontStyle: 'normal',\r\n fontWeight: 'bold',\r\n fontSize: '22px',\r\n lineHeight: '27px',\r\n color: '$mainTextColor',\r\n margin: 0,\r\n});\r\n\r\nexport const ClearButton = styled('div', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '14px',\r\n lineHeight: '19px',\r\n color: '$primary',\r\n margin: '0px 0px 0px 15px',\r\n\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n});\r\n\r\nexport const Subtext = styled('p', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '14px',\r\n lineHeight: '19px',\r\n color: '$primary',\r\n margin: '0px 0px 0px 30px',\r\n\r\n variants: {\r\n color: {\r\n primary: {\r\n color: '$primary',\r\n },\r\n secondary: {\r\n color: '#777E90',\r\n },\r\n },\r\n margin: {\r\n left: {\r\n margin: '0px 0px 0px 15px',\r\n },\r\n right: {\r\n margin: '0px 30px 0px 0px',\r\n },\r\n rightAndLeft: {\r\n margin: '0px 8px',\r\n },\r\n topAndBottom: {\r\n margin: '30px 0px',\r\n },\r\n none: {\r\n margin: 0,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const Subheadings = styled('p', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n color: '#777E90',\r\n margin: '0px 0px 15px',\r\n});\r\n\r\nexport const CheckboxFilters = styled('div', {\r\n margin: '0px 0px 15px',\r\n\r\n // '.checkbox-accordian': {\r\n // marginBottom: '0px',\r\n // },\r\n});\r\n\r\nexport const FilterButtonWrapper = styled('div', {\r\n width: '135px',\r\n height: '44px',\r\n\r\n button: {\r\n fontWeight: '500',\r\n },\r\n});\r\n\r\nexport const CollapseIcon = styled(Icon, {\r\n color: '$mainTextColor',\r\n width: '24px',\r\n height: '24px',\r\n\r\n variants: {\r\n opened: {\r\n true: {\r\n '&:hover': {\r\n animation: `${openArrowBounce} 1600ms linear infinite`,\r\n },\r\n },\r\n false: {\r\n '&:hover': {\r\n animation: `${closeArrowBounce} 1600ms linear infinite`,\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const FilterHeader = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n margin: '0',\r\n position: 'sticky',\r\n width: '100%',\r\n background: '$backgroundColor',\r\n top: '0',\r\n padding: '32px 20px 20px',\r\n zIndex: '5',\r\n});\r\n","import React from 'react';\r\nimport { CheckboxSkeletonWrapper } from './styles';\r\n\r\nconst CheckboxAccordionSkeleton = () => (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default CheckboxAccordionSkeleton;\r\n","import { useState, useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { triggerWindowResizeEvent } from '../../utils/window';\r\nimport {\r\n useFilterStore,\r\n filterActions,\r\n useAppDispatch,\r\n settingsActions,\r\n useSettingsStore,\r\n notificationActions,\r\n} from '../../store';\r\nimport {\r\n ActionButton,\r\n CheckboxFilterAccordion,\r\n FilterInput,\r\n IconActionButton,\r\n} from '../core';\r\nimport {\r\n Container,\r\n CloseFilterContainer,\r\n FiltersContainer,\r\n FiltersWrapper,\r\n Flex,\r\n FilterSection,\r\n FilterGroup,\r\n Heading,\r\n Subtext,\r\n ClearButton,\r\n Subheadings,\r\n CheckboxFilters,\r\n FilterButtonWrapper,\r\n CollapseIcon,\r\n FilterHeader,\r\n} from './styles';\r\nimport CheckboxAccordionSkeleton from '../core/accordions/checkbox-accordion-skeleton';\r\n\r\n/* --------------------------------------------------------------------------\r\n * Filters Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport const Filters = () => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const {\r\n defaultFilters,\r\n loadedFiltersList,\r\n status,\r\n loadingFilterList,\r\n isMyNfts,\r\n isAlreadyFetched,\r\n } = useFilterStore();\r\n const { collapsed, displayPriceApplyButton } = useSettingsStore();\r\n const [statusFilter, setStatusFilter] = useState('');\r\n const [priceFilterValue, setPriceFilterValue] = useState({\r\n min: '',\r\n max: '',\r\n });\r\n const myNfts = `${t('translation:buttons.action.myNfts')}`;\r\n\r\n useEffect(() => {\r\n if (!isAlreadyFetched) {\r\n dispatch(filterActions.getFilterTraits());\r\n }\r\n }, [dispatch, isAlreadyFetched]);\r\n\r\n useEffect(() => {\r\n if (!displayPriceApplyButton) {\r\n setPriceFilterValue({\r\n min: '',\r\n max: '',\r\n });\r\n }\r\n }, [displayPriceApplyButton]);\r\n\r\n useEffect(() => {\r\n // Triggering the resize event twice\r\n // is intentional, as required by list view\r\n // virtualized list when the filter returns from collapsed\r\n triggerWindowResizeEvent();\r\n // The second resize call is only required when NOT collapsed\r\n // this is when going from collapse to NOT collapsed\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n !collapsed && triggerWindowResizeEvent();\r\n }, [collapsed]);\r\n\r\n const filterExists = (filterName: string) =>\r\n defaultFilters.some(\r\n (appliedFilter) => appliedFilter.filterName === filterName,\r\n );\r\n\r\n const applyFilter = (filterCategory: string, filterName: any) => {\r\n const filterCategoryExists = defaultFilters.some(\r\n (appliedFilter) =>\r\n appliedFilter.filterCategory === filterCategory,\r\n );\r\n\r\n const filterNameExists = defaultFilters.some(\r\n (appliedFilter) => appliedFilter.filterName === filterName,\r\n );\r\n\r\n // TODO: do something about the switch statement atm hardtyped\r\n switch (true) {\r\n case filterCategoryExists && filterNameExists:\r\n dispatch(filterActions.removeFilter(filterName));\r\n break;\r\n case filterCategoryExists && !filterNameExists:\r\n dispatch(\r\n filterActions.updateFilter({\r\n filterCategory,\r\n filterName,\r\n }),\r\n );\r\n break;\r\n default:\r\n dispatch(\r\n filterActions.applyFilter({\r\n filterName,\r\n filterCategory,\r\n }),\r\n );\r\n break;\r\n }\r\n };\r\n\r\n const applyPriceFilter = (value: string, isMax: boolean) => {\r\n const key = isMax ? 'max' : 'min';\r\n const altKey = isMax ? 'min' : 'max';\r\n if (\r\n (value === '' && priceFilterValue[altKey] === '') ||\r\n Number(value) < 0\r\n ) {\r\n dispatch(settingsActions.setPriceApplyButton(false));\r\n } else if (value === '' || Number(value) < 0) {\r\n dispatch(settingsActions.setPriceApplyButton(false));\r\n } else {\r\n dispatch(settingsActions.setPriceApplyButton(true));\r\n }\r\n\r\n setPriceFilterValue((prevState) => ({\r\n ...prevState,\r\n [key]: value,\r\n }));\r\n };\r\n\r\n const handlePriceFilter = () => {\r\n if (priceFilterValue.min === '' && priceFilterValue.max === '') {\r\n dispatch(\r\n filterActions.removePriceFilter(\r\n `${t('translation:filters.priceRange')}`,\r\n ),\r\n );\r\n\r\n return;\r\n }\r\n\r\n if (priceFilterValue.max === '') {\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n `${t('translation:errorMessages.priceEmptyField')}`,\r\n ),\r\n );\r\n\r\n return;\r\n }\r\n\r\n if (Number(priceFilterValue.min) > Number(priceFilterValue.max)) {\r\n dispatch(\r\n notificationActions.setErrorMessage(\r\n `${t(\r\n 'translation:errorMessages.priceMinShouldBeLessThanMax',\r\n )}`,\r\n ),\r\n );\r\n\r\n return;\r\n }\r\n\r\n if (priceFilterValue.min === '' && priceFilterValue.max !== '') {\r\n setPriceFilterValue((prevState) => ({\r\n ...prevState,\r\n min: '0',\r\n }));\r\n applyFilter(`${t('translation:filters.priceRange')}`, {\r\n ...priceFilterValue,\r\n min: '0',\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (priceFilterValue.min !== '' && priceFilterValue.max !== '') {\r\n applyFilter(\r\n `${t('translation:filters.priceRange')}`,\r\n priceFilterValue,\r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n dispatch(settingsActions.setFilterCollapsed(!collapsed));\r\n }}\r\n >\r\n \r\n \r\n \r\n {!collapsed && (\r\n \r\n \r\n Filters\r\n {defaultFilters.length ? (\r\n {\r\n dispatch(filterActions.clearAllFilters());\r\n dispatch(\r\n settingsActions.setPriceApplyButton(false),\r\n );\r\n dispatch(filterActions.setMyNfts(false));\r\n setPriceFilterValue({\r\n min: '',\r\n max: '',\r\n });\r\n }}\r\n >\r\n {`${t('translation:filters.clearAll')}`}\r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n \r\n \r\n Display\r\n \r\n \r\n {\r\n dispatch(filterActions.removeFilter(myNfts));\r\n dispatch(filterActions.setMyNfts(false));\r\n }}\r\n >\r\n {t('translation:buttons.action.allNfts')}\r\n \r\n \r\n \r\n or\r\n \r\n \r\n {\r\n applyFilter('Display', myNfts);\r\n dispatch(filterActions.setMyNfts(!isMyNfts));\r\n }}\r\n >\r\n {t('translation:buttons.action.myNfts')}\r\n \r\n \r\n \r\n \r\n \r\n Status\r\n \r\n \r\n {\r\n if (statusFilter !== '') setStatusFilter('');\r\n applyFilter(\r\n 'Status',\r\n `${t('translation:buttons.action.buyNow')}`,\r\n );\r\n if (\r\n status !==\r\n `${t('translation:filters.forSale')}`\r\n ) {\r\n dispatch(\r\n filterActions.setStatusFilter(\r\n `${t('translation:filters.forSale')}`,\r\n ),\r\n );\r\n } else {\r\n dispatch(filterActions.setStatusFilter(''));\r\n }\r\n }}\r\n >\r\n {t('translation:buttons.action.buyNow')}\r\n \r\n \r\n \r\n or\r\n \r\n \r\n {\r\n if (statusFilter !== '') setStatusFilter('');\r\n applyFilter(\r\n 'Status',\r\n `${t(\r\n 'translation:buttons.action.hasOffers',\r\n )}`,\r\n );\r\n if (\r\n status !==\r\n `${t('translation:filters.forOffer')}`\r\n ) {\r\n dispatch(\r\n filterActions.setStatusFilter(\r\n `${t('translation:filters.forOffer')}`,\r\n ),\r\n );\r\n } else {\r\n dispatch(filterActions.setStatusFilter(''));\r\n }\r\n }}\r\n >\r\n {t('translation:buttons.action.hasOffers')}\r\n \r\n \r\n \r\n \r\n {Boolean(status.length) && (\r\n \r\n Price Range\r\n \r\n {\r\n applyPriceFilter(value, false);\r\n }}\r\n />\r\n \r\n to\r\n \r\n {\r\n applyPriceFilter(value, true);\r\n }}\r\n />\r\n \r\n
\r\n {displayPriceApplyButton && (\r\n \r\n {t('translation:buttons.action.apply')}\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n Traits\r\n \r\n \r\n {/* TO-DO: Refactor */}\r\n {loadingFilterList ? (\r\n \r\n ) : (\r\n (loadedFiltersList[0] as any)?.map(\r\n (checkboxData: any) => (\r\n \r\n ),\r\n )\r\n )}\r\n \r\n \r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n","import { useMemo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport { ActivityTable } from '../tables';\r\nimport { CollectionItems } from '../items';\r\nimport {\r\n TabsRoot,\r\n TabsTrigger,\r\n TabsList,\r\n TabsContentWrapper,\r\n TabsContent,\r\n} from './styles';\r\nimport { Filters } from '../filters';\r\nimport { Icon } from '../icons';\r\n\r\nexport const CollectionTabs = () => {\r\n const { t } = useTranslation();\r\n\r\n const location = useLocation();\r\n const navigate = useNavigate();\r\n\r\n const selectedTab = useMemo(\r\n () => location.pathname.split('/').pop() || 'items',\r\n [location],\r\n );\r\n\r\n const [itemsStatus, activityStatus] = useMemo<\r\n ('active' | 'inactive')[]\r\n >(\r\n () =>\r\n ['items', 'activity'].map((tab) =>\r\n selectedTab === tab ? 'active' : 'inactive',\r\n ),\r\n [selectedTab],\r\n );\r\n\r\n return (\r\n \r\n \r\n navigate('/')}\r\n >\r\n \r\n {t('translation:tabs.items')}\r\n \r\n navigate('/activity')}\r\n >\r\n \r\n {t('translation:tabs.activity')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { styled } from '../../stitches.config';\r\nimport { Icon } from '../icons';\r\n\r\nexport const CollectionMetadataWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n maxWidth: '670px',\r\n marginBottom: '25px',\r\n});\r\n\r\nexport const Heading = styled('h3', {\r\n fontStyle: 'normal',\r\n fontWeight: 'bold',\r\n fontSize: '32px',\r\n lineHeight: '39px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: '$mainTextColor',\r\n margin: '0 0 10px',\r\n});\r\n\r\nexport const Subtext = styled('p', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '18px',\r\n lineHeight: '20px',\r\n color: '#767D8E',\r\n margin: '0',\r\n});\r\n\r\nexport const VerifiedIcon = styled(Icon, {\r\n color: '$primary',\r\n width: '16px',\r\n});\r\n","import React from 'react';\r\nimport copyToClipboard from 'copy-to-clipboard';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { notificationActions, useAppDispatch } from '../../store';\r\nimport { LinkButton } from '../core';\r\n\r\nimport {\r\n CollectionMetadataWrapper,\r\n Heading,\r\n Subtext,\r\n VerifiedIcon,\r\n} from './styles';\r\nimport { Icon } from '../icons';\r\n\r\nexport interface NFTMetaDataProps {\r\n id?: string;\r\n}\r\n\r\nexport const NFTMetaData = ({ id }: NFTMetaDataProps) => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n\r\n return (\r\n \r\n

\r\n #{id}\r\n \r\n Crowns\r\n \r\n \r\n
\r\n {\r\n copyToClipboard(window.location.href);\r\n dispatch(\r\n notificationActions.setSuccessMessage(\r\n `${t('translation:successMessages.copyToClipboard')}`,\r\n ),\r\n );\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n","import { styled } from '../../stitches.config';\r\nimport background from '../../assets/nft-background.png';\r\nimport { Icon } from '../icons';\r\n\r\nexport const NftMetadataWrapper = styled('div', {\r\n display: 'block',\r\n fontFamily: 'proxima-nova, sans-serif',\r\n backgroundColor: '$backgroundColor',\r\n});\r\n\r\nexport const NftMetadataBackground = styled('div', {\r\n height: '200px',\r\n backgroundImage: `url(${background})`,\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'no-repeat',\r\n});\r\n\r\nexport const NftMetadataContent = styled('div', {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-between',\r\n margin: '20px auto 0',\r\n padding: '0px 80px 0px',\r\n\r\n '@md': {\r\n justifyContent: 'center',\r\n },\r\n});\r\n\r\nexport const NftMetadataContentWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n justifyContent: 'space-between',\r\n marginBottom: '25px',\r\n position: 'relative',\r\n});\r\n\r\nexport const NftProfilePictureWrapper = styled('div', {\r\n position: 'absolute',\r\n marginRight: '10px',\r\n backgroundColor: 'black',\r\n border: '5px solid $backgroundColor',\r\n borderRadius: '100%',\r\n padding: '10px',\r\n top: '-65px',\r\n\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n\r\n width: '96px',\r\n height: '96px',\r\n\r\n '& img': {\r\n width: '85%',\r\n position: 'relative',\r\n },\r\n});\r\n\r\nexport const Heading = styled('h2', {\r\n fontStyle: 'normal',\r\n fontWeight: 'bold',\r\n fontSize: '32px',\r\n lineHeight: '39px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: '$mainTextColor',\r\n margin: '0',\r\n\r\n '& img': {\r\n marginLeft: '10px',\r\n },\r\n});\r\n\r\nexport const Subtext = styled('p', {\r\n fontStyle: 'normal',\r\n fontWeight: '500',\r\n fontSize: '16px',\r\n lineHeight: '19px',\r\n color: '#777E90',\r\n maxWidth: '600px',\r\n marginBottom: '0px',\r\n});\r\n\r\nexport const ButtonsWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginBottom: '25px',\r\n});\r\n\r\nexport const HeaderWrapper = styled('div', {\r\n marginLeft: '140px',\r\n});\r\n\r\nexport const VerifiedIcon = styled(Icon, {\r\n color: '$primary',\r\n});\r\n","var _rect,_defs;function _extends(){_extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n\r\n const { loadingTableData } = useTableStore();\r\n const { loadingNFTs, loadingCollectionData } = useNFTSStore();\r\n\r\n const showLoading = useMemo(\r\n () => loadingTableData || loadingNFTs || loadingCollectionData,\r\n [loadingTableData, loadingNFTs, loadingCollectionData],\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \"crown-pfp\"\r\n \r\n \r\n \r\n Crowns\r\n \r\n {showLoading && (\r\n \r\n )}\r\n \r\n \r\n {t('translation:common.crownsDescription')}\r\n \r\n \r\n \r\n \r\n \r\n {t('translation:buttons.links.website')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n copyToClipboard(window.location.href);\r\n dispatch(\r\n notificationActions.setSuccessMessage(\r\n `${t(\r\n 'translation:successMessages.copyToClipboard',\r\n )}`,\r\n ),\r\n );\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport { styled, keyframes } from '../../stitches.config';\r\n\r\nconst overlayShow = keyframes({\r\n '0%': {\r\n opacity: 0,\r\n },\r\n '100%': {\r\n opacity: 1,\r\n },\r\n});\r\n\r\nconst contentShow = keyframes({\r\n '0%': {\r\n opacity: 0,\r\n transform: 'translateX(-50%) scale(.96)',\r\n },\r\n '100%': {\r\n opacity: 1,\r\n transform: 'translateX(-50%) scale(1)',\r\n },\r\n});\r\n\r\nexport const SearchModalTrigger = styled('div', {\r\n // base styles\r\n width: '100%',\r\n maxWidth: '600px',\r\n marginRight: '7px',\r\n});\r\n\r\nexport const ModalOverlay = styled(DialogPrimitive.Overlay, {\r\n backgroundColor: '$modalOverlay',\r\n position: 'fixed',\r\n inset: 0,\r\n '@media (prefers-reduced-motion: no-preference)': {\r\n animation: `${overlayShow} 150ms cubic-bezier(0.16, 1, 0.3, 1)`,\r\n },\r\n});\r\n\r\nexport const ModalContent = styled(DialogPrimitive.Content, {\r\n minHeight: '200px',\r\n maxHeight: '600px',\r\n backgroundColor: '$backgroundColor',\r\n borderRadius: '30px',\r\n border: '1.5px solid $borderColor',\r\n boxShadow: '0px 4px 24px rgba(0, 0, 0, 0.25)',\r\n position: 'fixed',\r\n top: '15%',\r\n left: '50%',\r\n transform: 'translateX(-50%)',\r\n padding: 20,\r\n '@media (prefers-reduced-motion: no-preference)': {\r\n animation: `${contentShow} 150ms cubic-bezier(0.16, 1, 0.3, 1)`,\r\n },\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n});\r\n\r\nexport const SearchContainer = styled('div', {\r\n // base styles\r\n width: '600px',\r\n marginBottom: '10px',\r\n});\r\n\r\nexport const ItemsEmptyContainer = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexDirection: 'column',\r\n padding: '0px 0px 10px',\r\n height: '200px',\r\n color: '#969faf',\r\n fontSize: '14px',\r\n fontWeight: 'normal',\r\n});\r\n\r\nexport const ItemsListContainer = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n padding: '0px 0px 10px',\r\n maxHeight: '325px',\r\n overflow: 'scroll',\r\n msOverflowStyle: 'none',\r\n scrollbarWidth: 'none',\r\n\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n});\r\n\r\nexport const ItemDetailsWrapper = styled('div', {\r\n // base styles\r\n width: '560px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n padding: '32px 20px',\r\n border: '1.5px solid $borderColor',\r\n background: '$chipsBackgroundColor',\r\n borderRadius: '14px',\r\n margin: '5px 0px',\r\n\r\n // variants\r\n variants: {\r\n lastChild: {\r\n true: {\r\n padding: '32px 0px 12px',\r\n borderTop: '1.5px solid $borderColor',\r\n borderBottom: 'initial',\r\n marginTop: '35px',\r\n },\r\n },\r\n },\r\n\r\n '&:hover': {\r\n cursor: 'pointer',\r\n background: '$backgroundColor',\r\n },\r\n});\r\n\r\nexport const ItemDetails = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n alignItems: 'center',\r\n});\r\n\r\nexport const ItemLogo = styled('img', {\r\n width: '40px',\r\n height: '40px',\r\n marginRight: '12px',\r\n borderRadius: '12px',\r\n});\r\n\r\nexport const ItemName = styled('div', {\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n color: '$mainTextColor',\r\n});\r\n\r\nexport const PriceDetails = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n flexDirection: 'column',\r\n});\r\n\r\nexport const WICPContainer = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginBottom: '6px',\r\n\r\n // variants\r\n variants: {\r\n size: {\r\n small: {\r\n marginBottom: '4px',\r\n },\r\n\r\n large: {\r\n marginBottom: '8px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const WICPText = styled('div', {\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n color: '$mainTextColor',\r\n\r\n // variants\r\n variants: {\r\n size: {\r\n small: {\r\n fontSize: '16px',\r\n },\r\n\r\n large: {\r\n fontSize: '24px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const WICPLogo = styled('img', {\r\n width: '15px',\r\n height: '15px',\r\n marginRight: '5px',\r\n\r\n // variants\r\n variants: {\r\n size: {\r\n large: {\r\n width: '20px',\r\n height: '20px',\r\n marginRight: '4px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const PriceText = styled('div', {\r\n fontSize: '16px',\r\n fontWeight: '500',\r\n lineHeight: '20px',\r\n color: '#777E90',\r\n textAlign: 'right',\r\n\r\n // variants\r\n variants: {\r\n size: {\r\n large: {\r\n fontSize: '20px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const SubText = styled('span', {\r\n '&:first-child': {\r\n marginRight: '10px',\r\n },\r\n});\r\n\r\nexport const LoadingWrapper = styled('div', {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n marginLeft: '-25px',\r\n});\r\n","import React, { useState, useCallback } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport debounce from 'lodash.debounce';\r\nimport { useTranslation } from 'react-i18next';\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\r\nimport { SearchInput } from '../core';\r\nimport wicpIcon from '../../assets/wicp.svg';\r\nimport {\r\n SearchModalTrigger,\r\n ModalOverlay,\r\n ModalContent,\r\n SearchContainer,\r\n ItemsEmptyContainer,\r\n ItemsListContainer,\r\n ItemDetailsWrapper,\r\n ItemDetails,\r\n ItemLogo,\r\n ItemName,\r\n PriceDetails,\r\n WICPContainer,\r\n WICPText,\r\n WICPLogo,\r\n PriceText,\r\n SubText,\r\n LoadingWrapper,\r\n} from './styles';\r\nimport {\r\n filterActions,\r\n useAppDispatch,\r\n useFilterStore,\r\n useNFTSStore,\r\n} from '../../store';\r\nimport { formatPriceValue } from '../../utils/formatters';\r\nimport { SpinnerIcon } from '../icons/custom';\r\n\r\nconst DEBOUNCE_TIMEOUT_MS = 400;\r\n\r\n/* --------------------------------------------------------------------------\r\n * Global Search Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport const GlobalSearch = () => {\r\n const { t } = useTranslation();\r\n const { loadedNFTS } = useNFTSStore();\r\n const dispatch = useAppDispatch();\r\n const { sortBy, searchResults, loadingSearch } = useFilterStore();\r\n\r\n const [modalOpened, setModalOpened] = useState(false);\r\n const [searchText, setSearchText] = useState('');\r\n const [currentAbortController, setCurrentAbortController] =\r\n useState();\r\n\r\n const handleModalOpen = (status: boolean) => {\r\n setModalOpened(status);\r\n setSearchText('');\r\n };\r\n\r\n const debouncedSearchHandler = useCallback(\r\n debounce((value: string, abortController: AbortController) => {\r\n dispatch(\r\n filterActions.getSearchResults({\r\n sort: sortBy,\r\n order: 'd',\r\n page: 0,\r\n count: 25,\r\n search: value,\r\n abortController,\r\n }),\r\n );\r\n }, DEBOUNCE_TIMEOUT_MS),\r\n [loadedNFTS],\r\n );\r\n\r\n const handleSearch = (value: string) => {\r\n if (!value) {\r\n dispatch(filterActions.setSearchResults([]));\r\n return;\r\n }\r\n\r\n // Abort any pending request before proceeding\r\n if (currentAbortController) currentAbortController.abort();\r\n\r\n const abortController = new AbortController();\r\n\r\n setCurrentAbortController(abortController);\r\n\r\n debouncedSearchHandler(value, abortController);\r\n };\r\n\r\n const closeDropDown = () => handleModalOpen(false);\r\n\r\n return (\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Trigger\r\n ---------------------------------\r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n ---------------------------------\r\n Modal Overlay\r\n ---------------------------------\r\n */}\r\n \r\n {/*\r\n ---------------------------------\r\n Modal Content\r\n ---------------------------------\r\n */}\r\n \r\n \r\n setSearchText(value)}\r\n handleSearch={handleSearch}\r\n />\r\n \r\n {searchText &&\r\n !loadingSearch &&\r\n (searchResults.length ? (\r\n \r\n {searchResults?.map((nft) => (\r\n \r\n \r\n \r\n \r\n {`${nft.name} ${nft.id}`}\r\n \r\n \r\n {Boolean(nft?.wicpPrice) && (\r\n \r\n \r\n \r\n {nft.wicpPrice}\r\n WICP\r\n \r\n \r\n )}\r\n {Boolean(nft?.price) && (\r\n \r\n $\r\n {`${formatPriceValue(\r\n nft.price.toString(),\r\n )}`}\r\n \r\n )}\r\n \r\n \r\n \r\n ))}\r\n \r\n ) : (\r\n \r\n {t('translation:emptyStates.noNFTId')}\r\n \r\n ))}\r\n {!searchText && !loadingSearch && (\r\n \r\n {t('translation:common.noRecentSearch')}\r\n \r\n )}\r\n {loadingSearch && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n","var _path, _g, _path2, _g2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _rect, _path17, _path18, _path19, _circle, _circle2, _circle3, _defs;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgJellyFullImage(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 747,\n height: 359,\n viewBox: \"0 0 747 359\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M352.084 241.496C352.084 248.979 353.141 254.428 355.256 257.844C357.371 261.097 360.705 262.724 365.26 262.724C376.647 262.724 384.373 258.088 388.44 248.816C392.669 239.544 394.784 226.856 394.784 210.752C394.784 202.944 394.296 192.045 393.32 178.056C392.344 164.717 391.856 154.795 391.856 148.288C374.451 148.288 365.748 144.872 365.748 138.04C365.748 133.973 366.399 131.289 367.7 129.988C369.164 128.687 371.36 128.036 374.288 128.036C376.077 128.036 378.029 128.199 380.144 128.524C382.259 128.687 383.804 128.768 384.78 128.768C388.033 129.256 391.124 129.5 394.052 129.5C399.42 129.5 404.381 129.256 408.936 128.768C414.792 128.443 419.184 128.28 422.112 128.28C427.968 128.28 432.035 128.849 434.312 129.988C436.752 131.127 437.972 133.323 437.972 136.576C437.972 139.992 437.077 142.432 435.288 143.896C433.661 145.197 431.221 146.173 427.968 146.824L416.744 148.044C416.581 158.78 417.232 171.631 418.696 186.596C418.859 188.873 419.184 193.184 419.672 199.528C420.16 205.709 420.404 211.403 420.404 216.608C420.404 237.755 415.931 254.103 406.984 265.652C398.037 277.039 384.699 282.732 366.968 282.732C355.907 282.732 346.635 279.56 339.152 273.216C331.832 266.709 328.172 257.031 328.172 244.18C328.172 240.601 329.473 237.755 332.076 235.64C334.679 233.363 338.176 232.224 342.568 232.224C345.659 232.224 348.017 233.281 349.644 235.396C351.271 237.511 352.084 239.544 352.084 241.496ZM438.517 230.272C438.517 224.091 439.656 217.909 441.933 211.728C444.211 205.384 447.22 199.609 450.961 194.404C454.703 189.199 460.64 184.969 468.773 181.716C476.907 178.3 484.145 176.592 490.489 176.592C496.996 176.592 503.584 177.487 510.253 179.276C517.085 181.065 521.803 183.831 524.405 187.572C530.424 196.031 533.433 204.327 533.433 212.46C533.433 216.852 532.457 220.593 530.505 223.684C528.716 226.775 526.113 230.109 522.697 233.688C519.932 236.616 515.54 238.568 509.521 239.544C503.665 240.52 497.809 241.008 491.953 241.008C488.212 241.008 483.657 240.683 478.289 240.032C472.921 239.219 467.716 238.243 462.673 237.104C462.999 240.357 463.812 243.529 465.113 246.62C466.415 249.711 467.96 252.069 469.749 253.696C473.003 256.787 476.337 258.739 479.753 259.552C483.332 260.365 487.887 260.772 493.417 260.772C499.273 260.772 504.723 259.796 509.765 257.844C513.832 256.38 517.167 255.648 519.769 255.648C522.86 255.648 525.219 256.624 526.845 258.576C528.472 260.365 529.285 262.724 529.285 265.652C529.285 269.719 526.927 273.053 522.209 275.656C517.492 278.259 512.043 280.211 505.861 281.512C499.843 282.651 494.963 283.22 491.221 283.22C483.576 283.22 476.175 281.837 469.017 279.072C461.86 276.307 455.923 272.403 451.205 267.36C447.301 262.805 444.211 257.356 441.933 251.012C439.656 244.505 438.517 237.592 438.517 230.272ZM491.709 197.332C488.131 197.332 484.552 198.064 480.973 199.528C477.395 200.829 474.467 202.7 472.189 205.14C469.261 208.231 467.228 210.752 466.089 212.704C465.113 214.493 464.463 217.015 464.137 220.268C468.204 221.569 476.663 222.22 489.513 222.22C496.508 222.22 501.876 221.163 505.617 219.048C509.521 216.933 511.473 214.168 511.473 210.752C511.473 207.336 509.359 204.245 505.129 201.48C500.9 198.715 496.427 197.332 491.709 197.332ZM566.998 244.18C566.998 250.361 567.893 255.16 569.682 258.576C571.634 261.829 574.074 263.456 577.002 263.456C578.629 263.456 580.174 263.375 581.638 263.212C583.102 262.887 584.566 262.724 586.03 262.724C587.657 262.724 589.04 263.537 590.178 265.164C591.48 266.791 592.13 268.58 592.13 270.532C592.13 274.436 590.26 277.527 586.518 279.804C582.94 281.919 578.06 282.976 571.878 282.976C567.486 282.976 563.013 281.675 558.458 279.072C554.066 276.307 550.406 272.077 547.478 266.384C544.55 260.528 543.086 253.289 543.086 244.668C543.086 226.124 543.412 210.427 544.062 197.576C544.876 182.285 545.282 163.009 545.282 139.748C545.282 132.428 545.689 127.304 546.502 124.376C547.478 122.099 549.024 120.391 551.138 119.252C553.416 117.951 555.774 117.3 558.214 117.3C560.654 117.3 562.769 117.707 564.558 118.52C566.51 119.333 567.812 120.635 568.462 122.424C569.113 124.376 569.52 126.328 569.682 128.28C570.008 130.069 570.17 132.672 570.17 136.088C570.17 142.757 569.926 149.183 569.438 155.364C569.113 162.847 568.95 168.296 568.95 171.712C567.649 200.341 566.998 224.497 566.998 244.18ZM619.02 244.18C619.02 250.361 619.915 255.16 621.704 258.576C623.656 261.829 626.096 263.456 629.024 263.456C630.651 263.456 632.196 263.375 633.66 263.212C635.124 262.887 636.588 262.724 638.052 262.724C639.679 262.724 641.061 263.537 642.2 265.164C643.501 266.791 644.152 268.58 644.152 270.532C644.152 274.436 642.281 277.527 638.54 279.804C634.961 281.919 630.081 282.976 623.9 282.976C619.508 282.976 615.035 281.675 610.48 279.072C606.088 276.307 602.428 272.077 599.5 266.384C596.572 260.528 595.108 253.289 595.108 244.668C595.108 226.124 595.433 210.427 596.084 197.576C596.897 182.285 597.304 163.009 597.304 139.748C597.304 132.428 597.711 127.304 598.524 124.376C599.5 122.099 601.045 120.391 603.16 119.252C605.437 117.951 607.796 117.3 610.236 117.3C612.676 117.3 614.791 117.707 616.58 118.52C618.532 119.333 619.833 120.635 620.484 122.424C621.135 124.376 621.541 126.328 621.704 128.28C622.029 130.069 622.192 132.672 622.192 136.088C622.192 142.757 621.948 149.183 621.46 155.364C621.135 162.847 620.972 168.296 620.972 171.712C619.671 200.341 619.02 224.497 619.02 244.18ZM671.286 331.776C665.267 331.776 660.143 330.719 655.914 328.604C651.684 326.652 648.512 324.212 646.398 321.284C644.446 318.519 643.47 316.079 643.47 313.964C643.47 311.036 644.527 308.433 646.642 306.156C648.756 304.041 651.115 302.984 653.718 302.984C655.182 302.984 656.564 303.472 657.866 304.448C659.33 305.424 660.224 305.993 660.55 306.156C661.363 306.807 662.42 307.783 663.722 309.084C665.023 310.548 666.324 311.28 667.626 311.28C671.367 311.28 674.376 308.921 676.654 304.204C678.931 299.487 681.127 291.841 683.242 281.268C672.506 263.537 662.339 245.481 652.742 227.1C643.144 208.719 638.346 196.275 638.346 189.768C638.346 185.701 639.81 182.692 642.738 180.74C645.666 178.788 649 177.812 652.742 177.812C655.507 177.812 657.703 178.381 659.33 179.52C660.956 180.496 662.258 182.367 663.234 185.132C667.788 198.959 672.424 211.321 677.142 222.22C681.859 232.956 687.308 243.773 693.49 254.672C696.418 248.165 699.915 237.511 703.982 222.708C706.422 214.087 708.536 207.092 710.326 201.724C712.115 196.193 714.148 191.151 716.426 186.596C717.89 183.668 719.679 181.309 721.794 179.52C724.071 177.731 726.511 176.836 729.114 176.836C732.042 176.836 735.051 177.893 738.142 180.008C741.395 181.96 743.022 184.319 743.022 187.084C743.022 187.897 742.452 189.849 741.314 192.94C734.97 207.092 729.358 220.756 724.478 233.932C719.598 246.945 715.043 261.26 710.814 276.876C708.211 285.172 705.446 293.224 702.518 301.032C699.59 309.003 697.556 313.964 696.418 315.916C693.002 320.471 689.342 324.212 685.438 327.14C681.534 330.231 676.816 331.776 671.286 331.776Z\",\n fill: \"#5542CF\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_9_2)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44 59.1143H254V304.114C254 333.938 229.823 358.114 200 358.114H98C68.1766 358.114 44 333.938 44 304.114V59.1143Z\",\n fill: \"#C5E2F3\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.465 340.52L135.465 340.52C141.253 345.537 148.618 347.214 156.009 345.198C160.858 343.874 166.271 346.11 168.673 351.651C171.298 357.708 168.347 364.87 162.311 367.245L162.311 367.245C147.111 373.228 131.35 369.639 120.238 357.665L120.238 357.665C115.826 352.911 116.266 345.178 121.255 340.855L121.255 340.855C125.799 336.917 131.65 337.213 135.465 340.52ZM120.6 340.099L120.6 340.099L120.6 340.099Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.541 276.138L108.541 276.138C113.043 282.335 119.837 285.637 127.493 285.346C132.515 285.155 137.282 288.557 138.367 294.499C139.553 300.993 135.057 307.301 128.64 308.248L128.64 308.248C112.479 310.633 97.9407 303.569 89.8281 289.391L89.8281 289.391C86.6064 283.761 88.7868 276.328 94.6245 273.247L94.6245 273.247C99.9424 270.44 105.574 272.053 108.541 276.138ZM94.1577 272.363L94.1578 272.363L94.1577 272.363Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.9481 288.167C92.8245 288.063 92.7161 287.936 92.6307 287.787C91.5208 285.847 91.266 283.551 91.913 281.324C92.5753 279.044 94.0737 277.19 96.132 276.103C96.8225 275.739 97.6771 276.004 98.0417 276.694C98.4058 277.384 98.1412 278.239 97.4512 278.603C96.0765 279.329 95.0736 280.574 94.6273 282.112C94.1958 283.598 94.3578 285.115 95.084 286.384C95.4713 287.061 95.2368 287.924 94.559 288.312C94.031 288.614 93.3889 288.538 92.9481 288.167Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M195.774 333.881L195.749 332.886L195.774 333.881C204.226 333.672 211.694 329.949 216.609 323.451C219.891 319.111 226.253 317.053 232.319 319.568C238.884 322.289 241.367 329.565 237.868 335.406L237.868 335.406C228.996 350.221 212.812 358.336 194.667 356.993L194.667 356.993C187.378 356.454 182.39 350.37 183.605 343.874L183.605 343.874C184.726 337.883 190.001 334.024 195.774 333.881Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M227.854 202.378L227.855 201.378L227.854 202.378C236.813 202.384 244.607 198.233 249.599 190.793C252.945 185.806 259.582 183.6 266.069 186.72C273.161 190.133 276.09 198.891 272.499 205.745L272.499 205.745C263.542 222.846 246.678 231.831 227.489 229.725L227.489 229.725C219.797 228.881 214.162 221.564 215.287 213.775L215.287 213.775C216.311 206.682 221.822 202.373 227.854 202.378Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M228.504 225.731C228.319 225.777 228.123 225.792 227.923 225.77C225.306 225.483 222.945 224.135 221.272 221.976C219.561 219.767 218.834 217.056 219.225 214.344C219.357 213.435 220.201 212.804 221.11 212.935C222.02 213.067 222.65 213.911 222.519 214.82C222.257 216.631 222.748 218.449 223.903 219.939C225.018 221.378 226.575 222.275 228.286 222.463C229.199 222.563 229.858 223.384 229.758 224.298C229.68 225.01 229.162 225.568 228.504 225.731Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M213.931 145.351L213.932 144.351L213.931 145.351C222.89 145.358 230.684 141.207 235.676 133.767C239.022 128.78 245.659 126.573 252.146 129.694C259.238 133.106 262.167 141.864 258.577 148.719L258.577 148.719C249.62 165.82 232.755 174.804 213.566 172.698L213.566 172.698C205.874 171.855 200.239 164.538 201.364 156.749L201.364 156.749C202.388 149.656 207.899 145.346 213.931 145.351Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M170.765 145.224L170.765 145.224C165.571 139.054 157.792 137.667 149.255 141.085C146.365 142.243 143.671 142.161 141.582 141.022C139.502 139.888 137.843 137.608 137.213 134.003C136.527 130.071 137.454 125.539 139.54 121.464C141.625 117.392 144.815 113.88 148.522 111.939L148.522 111.939C157.685 107.137 166.312 105.569 173.738 106.974C181.143 108.375 187.464 112.751 192.025 120.061L192.025 120.061C193.817 122.933 194.171 127.007 193.155 131.273C192.143 135.521 189.799 139.827 186.394 143.072L186.394 143.072C183.281 146.039 180.128 147.516 177.402 147.784C174.7 148.049 172.376 147.138 170.765 145.224ZM187.084 143.796L187.084 143.796L187.084 143.796Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M188.396 123.311C188.535 123.393 188.658 123.511 188.754 123.664C190.007 125.674 190.3 128.476 189.58 131.555C188.842 134.705 187.164 137.654 184.854 139.856C184.079 140.594 183.118 140.603 182.706 139.876C182.294 139.149 182.589 137.961 183.364 137.222C184.906 135.752 186.03 133.773 186.527 131.647C187.008 129.595 186.821 127.74 186.001 126.426C185.564 125.724 185.825 124.538 186.585 123.775C187.178 123.181 187.9 123.02 188.396 123.311Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M183.08 278.304L183.08 278.304C190.74 278.31 197.407 274.758 201.676 268.397C204.476 264.223 210.032 262.371 215.475 264.989C221.424 267.852 223.879 275.198 220.869 280.944L220.869 280.944C213.29 295.415 199.024 303.015 182.787 301.233L182.787 301.233C176.339 300.525 171.611 294.389 172.555 287.856L172.555 287.856C173.414 281.904 178.032 278.3 183.08 278.304ZM171.565 287.713L171.565 287.713L171.565 287.713Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M183.633 297.99C183.476 298.029 183.309 298.042 183.139 298.023C180.917 297.779 178.911 296.635 177.49 294.801C176.037 292.924 175.419 290.622 175.751 288.318C175.863 287.545 176.58 287.01 177.352 287.121C178.125 287.233 178.66 287.95 178.549 288.722C178.327 290.26 178.744 291.804 179.725 293.07C180.672 294.293 181.994 295.054 183.448 295.214C184.223 295.299 184.783 295.997 184.698 296.773C184.632 297.378 184.192 297.852 183.633 297.99Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.647 101.323L128.647 101.323C136.23 100.24 142.324 95.7769 145.645 88.8732C147.824 84.3439 153.06 81.7204 158.82 83.5383C165.115 85.5255 168.59 92.4482 166.428 98.5637L166.428 98.5637C160.983 113.965 147.943 123.516 131.617 124.061L131.616 124.061C125.134 124.278 119.582 118.876 119.587 112.275L119.587 112.275C119.591 106.262 123.649 102.037 128.647 101.323ZM118.587 112.275L118.587 112.275L118.587 112.275Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M131.993 120.73C131.843 120.791 131.68 120.827 131.509 120.834C129.275 120.908 127.126 120.06 125.459 118.447C123.754 116.796 122.815 114.605 122.816 112.277C122.817 111.497 123.451 110.865 124.231 110.865C125.012 110.866 125.643 111.499 125.643 112.28C125.642 113.834 126.274 115.303 127.425 116.416C128.537 117.492 129.954 118.058 131.415 118.009C132.195 117.983 132.848 118.594 132.874 119.374C132.895 119.982 132.527 120.514 131.993 120.73Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.1328 279.118L83.1328 279.118C75.4818 278.746 68.6527 281.975 64.0849 288.125C61.0881 292.16 55.45 293.744 50.1386 290.869C44.3333 287.726 42.2319 280.27 45.513 274.675L45.513 274.675C53.7754 260.583 68.3879 253.673 84.522 256.23L84.5221 256.23C90.9285 257.244 95.3573 263.599 94.1028 270.08L94.1028 270.08C92.9602 275.983 88.1752 279.363 83.1328 279.118ZM95.0845 270.27L95.0844 270.27L95.0845 270.27Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.522 259.428C83.6804 259.397 83.8477 259.392 84.0167 259.419C86.2248 259.769 88.1737 261.008 89.5052 262.908C90.8674 264.852 91.3742 267.181 90.9321 269.466C90.7835 270.232 90.042 270.733 89.2758 270.585C88.5094 270.436 88.009 269.695 88.1569 268.929C88.4526 267.403 88.1097 265.841 87.1901 264.529C86.3027 263.263 85.0184 262.439 83.5742 262.21C82.8036 262.088 82.2776 261.364 82.3997 260.593C82.4952 259.992 82.957 259.54 83.522 259.428Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.289 249.459L125.289 249.459C132.885 250.447 139.952 247.78 145.002 242.019C148.314 238.239 154.062 237.114 159.124 240.409C164.656 244.01 166.149 251.611 162.428 256.924L162.428 256.924C153.055 270.303 137.933 276.011 122.057 272.161L122.057 272.161C115.754 270.633 111.852 263.941 113.625 257.583L113.625 257.583C115.241 251.791 120.283 248.808 125.289 249.459ZM112.662 257.314L112.662 257.314L112.662 257.314Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.312 269.053C123.152 269.072 122.985 269.063 122.818 269.023C120.646 268.496 118.803 267.104 117.629 265.103C116.429 263.055 116.111 260.692 116.736 258.45C116.946 257.698 117.726 257.259 118.478 257.469C119.229 257.679 119.668 258.458 119.459 259.21C119.041 260.707 119.257 262.292 120.068 263.673C120.85 265.007 122.064 265.932 123.485 266.276C124.243 266.461 124.709 267.224 124.525 267.983C124.381 268.574 123.884 268.988 123.312 269.053Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136.54 229.835L136.54 229.835C143.406 233.231 150.956 232.997 157.599 229.182C161.958 226.679 167.76 227.476 171.482 232.233C175.55 237.433 174.5 245.107 169.258 248.928L169.258 248.928C156.057 258.55 139.901 259.051 126.129 250.267L126.129 250.267C120.66 246.779 119.136 239.184 122.874 233.743L122.874 233.743C126.278 228.786 132.014 227.598 136.54 229.835ZM122.049 233.177L122.049 233.177L122.049 233.177Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.323 247.733C128.165 247.699 128.01 247.636 127.865 247.544C125.98 246.342 124.688 244.428 124.226 242.154C123.753 239.828 124.218 237.49 125.536 235.572C125.978 234.928 126.857 234.765 127.501 235.207C128.144 235.649 128.307 236.529 127.866 237.172C126.985 238.453 126.676 240.022 126.996 241.592C127.304 243.107 128.152 244.375 129.385 245.162C130.043 245.581 130.236 246.455 129.816 247.113C129.489 247.626 128.885 247.856 128.323 247.733Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M146.439 264.615L146.439 264.615C153.02 260.694 156.925 254.228 157.33 246.578C157.596 241.559 161.417 237.121 167.433 236.58C174.008 235.989 179.881 241.039 180.242 247.515L180.242 247.515C181.15 263.825 172.795 277.662 157.938 284.454L157.938 284.454C152.04 287.152 144.835 284.305 142.297 278.212L142.297 278.212C139.985 272.661 142.102 267.199 146.439 264.615ZM141.374 278.597L141.374 278.596L141.374 278.597Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M157.003 281.236C156.888 281.35 156.751 281.446 156.596 281.518C154.562 282.447 152.253 282.492 150.094 281.646C147.884 280.779 146.173 279.119 145.278 276.97C144.978 276.25 145.319 275.423 146.039 275.122C146.76 274.822 147.587 275.163 147.888 275.884C148.485 277.318 149.634 278.43 151.126 279.014C152.565 279.579 154.091 279.555 155.421 278.947C156.131 278.623 156.969 278.935 157.294 279.645C157.546 280.199 157.412 280.831 157.003 281.236Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M147.647 152.478L147.646 152.478C129.679 150.028 114.215 137.649 106.47 119.397L106.47 119.397C103.325 111.986 106.513 104.674 112.963 103.17L112.963 103.17C118.991 101.764 125.197 105.281 128.22 110.918L129.102 110.445L128.22 110.918C132.553 118.994 139.599 124.668 147.938 126.727C153.584 128.122 158.662 133.511 159.358 140.514C159.735 144.307 158.542 147.533 156.425 149.682C154.311 151.828 151.217 152.965 147.647 152.478Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.063 119.148C109.937 118.996 109.829 118.822 109.748 118.633C108.698 116.157 108.615 113.56 109.514 111.32C110.433 109.027 112.232 107.463 114.579 106.915C115.366 106.732 116.28 107.29 116.62 108.16C116.96 109.032 116.597 109.886 115.811 110.07C114.243 110.435 113.039 111.487 112.419 113.034C111.82 114.528 111.867 116.242 112.554 117.861C112.921 118.725 112.59 119.599 111.815 119.812C111.211 119.978 110.515 119.693 110.063 119.148Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.956 156.691L104.956 156.691C103.93 149.1 99.5126 142.972 92.6341 139.6C88.1212 137.387 85.5371 132.132 87.3983 126.386C89.4327 120.105 96.3814 116.682 102.48 118.891L102.48 118.891C117.841 124.451 127.293 137.562 127.716 153.892L127.716 153.892C127.884 160.376 122.44 165.888 115.84 165.833L115.84 165.833C109.827 165.784 105.633 161.694 104.956 156.691ZM115.832 166.833L115.832 166.833L115.832 166.833Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.388 153.491C124.448 153.641 124.483 153.805 124.488 153.976C124.545 156.211 123.681 158.353 122.055 160.008C120.392 161.701 118.194 162.623 115.866 162.604C115.085 162.597 114.458 161.959 114.465 161.179C114.471 160.398 115.109 159.771 115.89 159.777C117.444 159.79 118.917 159.169 120.039 158.026C121.123 156.923 121.7 155.51 121.662 154.049C121.642 153.269 122.258 152.62 123.038 152.6C123.647 152.584 124.176 152.956 124.388 153.491Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M157.349 180.344L157.349 180.344C151.875 174.986 144.625 172.866 137.126 174.432C132.206 175.46 126.937 172.901 124.875 167.224C122.621 161.019 126 154.049 132.168 152.044L132.169 152.044C147.703 146.992 163.218 151.528 173.585 164.151L173.585 164.152C177.702 169.164 176.794 176.857 171.553 180.869L171.553 180.869C166.779 184.525 160.957 183.876 157.349 180.344ZM172.161 181.663L172.161 181.663L172.161 181.663Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M170.713 165.879C170.853 165.961 170.981 166.069 171.09 166.201C172.508 167.929 173.143 170.149 172.877 172.454C172.605 174.812 171.437 176.89 169.59 178.305C168.97 178.78 168.083 178.662 167.608 178.042C167.134 177.422 167.252 176.535 167.871 176.061C169.106 175.116 169.886 173.72 170.069 172.129C170.247 170.593 169.833 169.124 168.905 167.994C168.41 167.391 168.497 166.501 169.101 166.005C169.571 165.619 170.217 165.588 170.713 165.879Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.8187 235.021L83.8187 235.021C76.7891 231.978 69.2604 232.594 62.8192 236.741C58.5933 239.462 52.7583 238.96 48.8001 234.397C44.4739 229.411 45.1331 221.693 50.1747 217.612L50.1748 217.612C62.8711 207.333 78.9808 206.013 93.1807 214.088L93.1808 214.088C98.8194 217.294 100.726 224.802 97.2692 230.426L97.2692 230.426C94.1205 235.549 88.4516 237.027 83.8187 235.021ZM98.1211 230.949L98.121 230.949L98.1211 230.949Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.1182 216.73C91.2775 216.756 91.4357 216.811 91.5847 216.895C93.5279 218.001 94.9155 219.846 95.4926 222.094C96.0827 224.393 95.7366 226.751 94.518 228.734C94.109 229.399 93.2387 229.606 92.5737 229.198C91.9088 228.789 91.7016 227.919 92.1099 227.254C92.9241 225.93 93.1534 224.347 92.7546 222.796C92.3701 221.298 91.4583 220.074 90.1873 219.352C89.5091 218.966 89.2716 218.104 89.6576 217.425C89.9585 216.896 90.5502 216.635 91.1182 216.73Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.8524 296.779L94.8524 296.779C98.3084 303.616 104.489 307.958 112.093 308.892C117.081 309.504 121.244 313.624 121.368 319.662C121.503 326.262 116.058 331.772 109.573 331.684L109.573 331.684C93.2385 331.461 80.0127 322.169 74.2651 306.878L74.2651 306.878C71.9825 300.807 75.3204 293.817 81.5747 291.706L81.5748 291.706C87.2723 289.783 92.5748 292.274 94.8524 296.779ZM81.255 290.759L81.2551 290.759L81.255 290.759Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.5403 306.168C77.4348 306.045 77.3481 305.902 77.2875 305.742C76.5013 303.649 76.6158 301.343 77.6098 299.246C78.6272 297.102 80.4021 295.511 82.6074 294.766C83.3471 294.517 84.1485 294.914 84.3984 295.653C84.6478 296.393 84.2502 297.195 83.511 297.445C82.0382 297.941 80.8494 299.011 80.1636 300.458C79.5008 301.856 79.4187 303.379 79.9332 304.748C80.2075 305.478 79.8384 306.293 79.1074 306.568C78.538 306.782 77.9164 306.604 77.5403 306.168Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M211.885 279.345L211.885 279.345C205.942 274.512 198.527 273.067 191.204 275.315C186.399 276.79 180.918 274.726 178.343 269.263C175.529 263.291 178.253 256.04 184.211 253.477L184.211 253.477C199.217 247.02 215.082 250.111 226.565 261.729L226.565 261.729C231.125 266.342 230.927 274.086 226.077 278.563L226.077 278.563C221.659 282.642 215.802 282.53 211.885 279.345ZM226.756 279.298L226.755 279.298L226.756 279.298Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M223.864 263.714C224.01 263.782 224.147 263.878 224.268 263.999C225.839 265.59 226.675 267.742 226.622 270.062C226.568 272.435 225.596 274.611 223.886 276.191C223.312 276.72 222.419 276.684 221.889 276.111C221.36 275.537 221.396 274.643 221.969 274.113C223.111 273.059 223.76 271.598 223.796 269.997C223.832 268.45 223.286 267.026 222.258 265.986C221.709 265.431 221.714 264.536 222.27 263.987C222.702 263.56 223.343 263.469 223.864 263.714Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.4649 340.52L71.4649 340.52C77.2532 345.537 84.6184 347.214 92.009 345.198C96.8578 343.874 102.271 346.11 104.673 351.651C107.298 357.708 104.347 364.87 98.3114 367.245L98.3114 367.245C83.1106 373.228 67.3504 369.639 56.2383 357.665L56.2382 357.665C51.8256 352.911 52.2664 345.178 57.255 340.855L57.2551 340.855C61.7994 336.917 67.6502 337.213 71.4649 340.52ZM56.6001 340.099L56.6003 340.099L56.6001 340.099Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.0004 355.767C58.8565 355.694 58.7221 355.594 58.6053 355.469C57.0848 353.83 56.317 351.652 56.4428 349.335C56.5718 346.965 57.6115 344.82 59.3703 343.295C59.9605 342.784 60.8528 342.849 61.3641 343.438C61.8751 344.028 61.8108 344.921 61.2213 345.432C60.0465 346.45 59.3516 347.89 59.2652 349.489C59.1812 351.033 59.6825 352.475 60.6771 353.546C61.2078 354.118 61.1748 355.012 60.6024 355.544C60.1564 355.957 59.5137 356.028 59.0004 355.767Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.245 253.847L103.245 253.847C97.6165 248.651 90.3074 246.744 82.8573 248.528C77.9694 249.699 72.6288 247.295 70.4015 241.681C67.9674 235.544 71.1412 228.478 77.2487 226.294L77.2488 226.294C92.6296 220.791 108.27 224.871 119.001 237.187L119.001 237.187C123.263 242.077 122.58 249.793 117.458 253.957L117.458 253.958C112.793 257.751 106.954 257.272 103.245 253.847ZM118.089 254.733L118.089 254.733L118.089 254.733Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.181 238.998C116.323 239.076 116.454 239.18 116.567 239.309C118.035 240.994 118.734 243.195 118.536 245.507C118.333 247.872 117.226 249.983 115.421 251.452C114.815 251.944 113.925 251.852 113.432 251.247C112.94 250.641 113.032 249.751 113.637 249.259C114.844 248.278 115.583 246.86 115.72 245.265C115.852 243.724 115.396 242.268 114.436 241.165C113.923 240.577 113.984 239.684 114.573 239.171C115.032 238.772 115.676 238.721 116.181 238.998Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M244.463 299.393L244.463 299.393C239.544 293.521 232.539 290.696 224.922 291.514C219.924 292.052 214.934 288.986 213.442 283.133C211.811 276.736 215.861 270.133 222.197 268.746L222.197 268.746C238.155 265.251 253.146 271.295 262.218 284.88L262.218 284.88C265.82 290.274 264.158 297.84 258.546 301.316L258.546 301.316C253.435 304.483 247.705 303.263 244.463 299.393ZM259.073 302.166L259.073 302.166L259.073 302.166Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M259.189 286.316C259.32 286.411 259.437 286.531 259.532 286.673C260.773 288.533 261.186 290.805 260.694 293.072C260.191 295.392 258.824 297.345 256.845 298.571C256.181 298.982 255.311 298.777 254.899 298.114C254.488 297.45 254.693 296.579 255.357 296.168C256.678 295.349 257.593 294.038 257.932 292.472C258.26 290.961 257.993 289.458 257.181 288.242C256.748 287.593 256.923 286.716 257.572 286.282C258.078 285.945 258.724 285.977 259.189 286.316Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M198.858 137.984L198.858 137.984C191.215 138.499 184.805 142.495 180.979 149.132C178.468 153.486 173.051 155.712 167.443 153.47C161.313 151.018 158.364 143.856 160.977 137.919L160.977 137.919C167.555 122.966 181.271 114.414 197.592 115.088L197.592 115.088C204.073 115.355 209.207 121.156 208.71 127.738L208.71 127.738C208.257 133.734 203.895 137.645 198.858 137.984ZM209.707 127.813L209.707 127.813L209.707 127.813Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M196.968 118.381C197.122 118.332 197.288 118.308 197.459 118.315C199.693 118.407 201.772 119.413 203.314 121.146C204.891 122.919 205.664 125.174 205.489 127.495C205.43 128.274 204.751 128.857 203.973 128.798C203.195 128.739 202.612 128.06 202.67 127.282C202.788 125.732 202.267 124.22 201.202 123.024C200.174 121.869 198.803 121.199 197.342 121.138C196.562 121.106 195.956 120.448 195.988 119.668C196.014 119.06 196.42 118.557 196.968 118.381Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.9565 245.706L94.9565 245.706C101.157 250.204 108.639 251.239 115.828 248.591C120.544 246.854 126.13 248.613 129.002 253.926C132.141 259.734 129.82 267.124 124.012 270.012L124.012 270.012C109.385 277.285 93.3735 275.071 81.2683 264.103L81.2683 264.103C76.4613 259.748 76.2323 252.005 80.8287 247.267L80.8288 247.267C85.0158 242.951 90.8704 242.741 94.9565 245.706ZM80.111 246.571L80.1112 246.571L80.111 246.571Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.2136 160.273L82.2136 160.273C76.0599 155.379 68.3528 154.813 60.7836 158.574C58.2615 159.827 55.6371 160.012 53.3487 159.179C51.0666 158.348 49.0149 156.467 47.7046 153.391C46.2774 150.039 46.2741 146.042 47.4554 142.345C48.6364 138.65 50.9745 135.341 54.1152 133.341L54.1152 133.341C61.9502 128.349 69.9311 126.21 77.3789 126.791C84.8191 127.37 91.8023 130.668 97.6543 136.683L97.6544 136.683C99.956 139.049 101.082 142.561 100.953 146.325C100.824 150.083 99.4421 154.002 96.8478 157.098L96.8478 157.098C92.1028 162.761 86.081 163.349 82.2136 160.273ZM97.6142 157.74L97.6143 157.74L97.6142 157.74Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M208.438 251.606L208.438 251.606C201.155 249.231 193.716 250.547 187.69 255.276C183.736 258.379 177.88 258.422 173.513 254.249C168.741 249.688 168.678 241.942 173.317 237.409L173.317 237.408C185.001 225.991 200.917 223.175 215.808 229.892L215.808 229.892C221.721 232.558 224.319 239.856 221.401 245.777L221.401 245.777C218.744 251.171 213.237 253.171 208.438 251.606ZM222.298 246.219L222.298 246.219L222.298 246.219Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M214 232.715C214.161 232.726 214.324 232.766 214.48 232.836C216.518 233.755 218.072 235.464 218.856 237.647C219.657 239.881 219.533 242.262 218.504 244.35C218.159 245.05 217.312 245.338 216.612 244.993C215.911 244.648 215.624 243.801 215.969 243.1C216.656 241.706 216.737 240.109 216.195 238.602C215.673 237.146 214.651 236.013 213.318 235.412C212.607 235.091 212.29 234.254 212.611 233.543C212.861 232.988 213.426 232.673 214 232.715Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M133.463 293.393L133.463 293.393C128.544 287.521 121.539 284.696 113.922 285.514C108.924 286.052 103.934 282.986 102.442 277.133C100.811 270.736 104.861 264.133 111.197 262.746L111.197 262.746C127.155 259.251 142.146 265.295 151.218 278.88L151.218 278.88C154.82 284.274 153.158 291.84 147.546 295.316L147.546 295.316C142.435 298.483 136.705 297.263 133.463 293.393ZM148.073 296.166L148.073 296.166L148.073 296.166Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M148.189 280.316C148.32 280.411 148.437 280.531 148.532 280.673C149.773 282.533 150.186 284.805 149.694 287.072C149.191 289.392 147.824 291.345 145.845 292.571C145.181 292.982 144.311 292.777 143.899 292.114C143.488 291.45 143.693 290.579 144.357 290.168C145.678 289.349 146.593 288.038 146.932 286.472C147.26 284.961 146.993 283.458 146.181 282.242C145.748 281.593 145.923 280.716 146.572 280.282C147.078 279.945 147.724 279.977 148.189 280.316Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136.833 166.37L136.833 166.37C130.513 162.04 123.006 161.208 115.891 164.048C111.223 165.912 105.592 164.304 102.578 159.07C99.2833 153.349 101.404 145.899 107.133 142.856L107.133 142.856C121.558 135.191 137.624 136.972 150.02 147.611L150.02 147.611C154.943 151.834 155.38 159.568 150.913 164.428L150.913 164.428C146.844 168.855 140.997 169.223 136.833 166.37ZM151.649 165.105L151.649 165.105L151.649 165.105Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M183.962 251.829L183.962 251.829C187.284 258.731 193.379 263.194 200.963 264.276C205.938 264.986 210.02 269.186 210.025 275.226C210.031 281.827 204.48 287.23 197.997 287.014L197.997 287.014C181.67 286.472 168.629 276.923 163.182 261.523L163.182 261.523C161.018 255.408 164.492 248.485 170.787 246.497L170.787 246.497C176.521 244.686 181.773 247.28 183.962 251.829ZM170.485 245.543L170.485 245.543L170.485 245.543Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.9654 260.946L55.9654 260.946C54.7107 253.39 50.1106 247.398 43.1335 244.235C38.556 242.159 35.8146 236.984 37.5017 231.184C39.3459 224.845 46.1881 221.215 52.351 223.238L52.351 223.238C67.8719 228.333 77.7156 241.153 78.63 257.463L78.63 257.463C78.9936 263.939 73.719 269.612 67.1197 269.756L67.1197 269.756C61.1078 269.888 56.7923 265.927 55.9654 260.946ZM67.1416 270.756L67.1416 270.756L67.1416 270.756Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.2918 257.161C75.3559 257.31 75.3958 257.472 75.4058 257.643C75.5306 259.875 74.7319 262.042 73.1567 263.745C71.5448 265.488 69.3754 266.476 67.0484 266.527C66.268 266.544 65.622 265.925 65.6045 265.145C65.5877 264.364 66.2066 263.718 66.9867 263.701C68.5406 263.667 69.9948 263.002 71.0819 261.826C72.1321 260.69 72.6658 259.261 72.584 257.801C72.5405 257.022 73.1362 256.355 73.916 256.311C74.5233 256.277 75.0632 256.633 75.2918 257.161Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.8883 286.995L50.8883 286.995C58.5433 287.272 65.3319 283.959 69.8231 277.753C72.7697 273.682 78.3878 272.027 83.7344 274.837C89.5781 277.908 91.7717 285.337 88.5602 290.972L88.5602 290.972C80.4729 305.166 65.9471 312.255 49.7826 309.899L49.7825 309.899C43.364 308.964 38.8568 302.664 40.031 296.169L40.031 296.169C41.1004 290.251 45.8432 286.812 50.8883 286.995ZM39.047 295.991L39.0471 295.991L39.047 295.991Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_d_9_2)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.8883 161.995L38.8883 161.995C46.5433 162.272 53.3319 158.959 57.8231 152.753C60.7697 148.682 66.3878 147.027 71.7344 149.837C77.5781 152.908 79.7717 160.337 76.5602 165.972L76.5602 165.972C68.4729 180.166 53.9471 187.255 37.7826 184.899L37.7825 184.899C31.364 183.964 26.8568 177.664 28.031 171.169L28.031 171.169C29.1004 165.251 33.8432 161.812 38.8883 161.995ZM27.047 170.991L27.0471 170.991L27.047 170.991Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M231.885 318.346L231.885 318.346C225.942 313.513 218.527 312.068 211.204 314.316C206.399 315.791 200.918 313.727 198.343 308.264C195.529 302.292 198.253 295.041 204.211 292.478L204.211 292.478C219.217 286.021 235.082 289.112 246.565 300.73L246.565 300.73C251.125 305.343 250.927 313.087 246.077 317.564L246.077 317.564C241.659 321.643 235.802 321.531 231.885 318.346ZM246.756 318.299L246.755 318.299L246.756 318.299Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.2511 240.493L50.2511 240.493C54.2717 247.013 60.7968 250.819 68.4522 251.108C73.4747 251.297 77.9704 255.05 78.6031 261.057C79.2944 267.622 74.3346 273.572 67.8643 274.031L67.8643 274.031C51.5697 275.187 37.607 267.045 30.5895 252.293L30.5895 252.293C27.8027 246.436 30.5388 239.189 36.5927 236.559L36.5928 236.559C42.1077 234.162 47.6014 236.196 50.2511 240.493ZM36.1942 235.642L36.1943 235.642L36.1942 235.642Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.672 291.821L140.672 291.821C147.516 288.382 151.875 282.212 152.827 274.61C153.452 269.623 157.581 265.471 163.62 265.362C170.221 265.244 175.717 270.702 175.612 277.187L175.612 277.187C175.349 293.521 166.025 306.723 150.719 312.433L150.719 312.433C144.642 314.701 137.661 311.345 135.566 305.086L135.566 305.086C133.657 299.383 136.161 294.087 140.672 291.821ZM134.617 305.403L134.617 305.403L134.617 305.403Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.017 309.156C149.895 309.261 149.751 309.348 149.591 309.408C147.496 310.189 145.19 310.069 143.096 309.069C140.954 308.047 139.367 306.268 138.628 304.061C138.381 303.32 138.78 302.52 139.52 302.272C140.26 302.024 141.061 302.424 141.309 303.164C141.802 304.638 142.869 305.829 144.314 306.519C145.71 307.185 147.233 307.271 148.603 306.76C149.335 306.487 150.148 306.858 150.421 307.59C150.634 308.16 150.454 308.781 150.017 309.156Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M226.236 246.246L226.236 246.246C228.284 238.865 226.639 231.492 221.646 225.682C218.37 221.87 218.066 216.021 222.04 211.474C226.385 206.503 234.12 206.095 238.856 210.528L238.856 210.528C250.782 221.691 254.303 237.467 248.257 252.642L248.257 252.642C245.856 258.668 238.682 261.588 232.637 258.937L232.636 258.937C227.129 256.522 224.886 251.11 226.236 246.246ZM232.235 259.853L232.235 259.853L232.235 259.853Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M245.357 250.962C245.352 251.123 245.32 251.287 245.257 251.446C244.429 253.523 242.791 255.151 240.645 256.032C238.449 256.932 236.065 256.914 233.933 255.979C233.218 255.666 232.894 254.832 233.207 254.117C233.52 253.402 234.354 253.078 235.069 253.391C236.492 254.015 238.091 254.025 239.573 253.416C241.004 252.83 242.09 251.758 242.632 250.4C242.921 249.675 243.742 249.322 244.467 249.611C245.032 249.836 245.372 250.386 245.357 250.962Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M182.438 316.606L182.438 316.606C175.155 314.231 167.716 315.547 161.69 320.276C157.736 323.379 151.88 323.422 147.513 319.249C142.741 314.688 142.678 306.942 147.317 302.409L147.317 302.408C159.001 290.991 174.917 288.175 189.808 294.892L189.808 294.892C195.721 297.558 198.319 304.856 195.401 310.777L195.401 310.777C192.744 316.171 187.237 318.171 182.438 316.606ZM196.298 311.219L196.298 311.219L196.298 311.219Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M188 297.715C188.161 297.726 188.324 297.766 188.48 297.836C190.518 298.755 192.072 300.464 192.856 302.647C193.657 304.881 193.533 307.262 192.504 309.35C192.159 310.05 191.312 310.338 190.612 309.993C189.911 309.648 189.624 308.801 189.969 308.1C190.656 306.706 190.737 305.109 190.195 303.602C189.673 302.146 188.651 301.013 187.318 300.412C186.607 300.091 186.29 299.254 186.611 298.543C186.861 297.988 187.426 297.673 188 297.715Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M226.941 311.616L226.941 311.616C234.246 313.922 241.672 312.536 247.654 307.75C251.578 304.61 257.434 304.512 261.839 308.644C266.654 313.16 266.79 320.905 262.194 325.482L262.194 325.482C250.619 337.009 234.729 339.974 219.776 333.399L219.776 333.399C213.838 330.788 211.172 323.515 214.033 317.567L214.033 317.567C216.64 312.148 222.127 310.096 226.941 311.616ZM213.132 317.134L213.132 317.134L213.132 317.134Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M222.941 156.841L222.941 156.841C230.246 159.146 237.672 157.761 243.654 152.975C247.578 149.835 253.434 149.736 257.839 153.868C262.654 158.385 262.79 166.13 258.194 170.707L258.194 170.707C246.619 182.234 230.729 185.199 215.776 178.623L215.776 178.623C209.838 176.013 207.172 168.74 210.033 162.792L210.033 162.792C212.64 157.373 218.127 155.321 222.941 156.841ZM209.132 162.358L209.132 162.358L209.132 162.358Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M223.444 229.349L223.444 229.349C228.226 235.432 235.33 238.194 243.224 237.083C248.399 236.354 253.344 239.414 254.567 245.542C255.915 252.299 251.34 259.512 244.657 261.203L244.657 261.203C227.991 265.42 212.887 259.501 204.279 245.457L204.279 245.457C200.866 239.888 202.947 231.739 209.025 227.812L209.025 227.812C214.533 224.253 220.352 225.415 223.444 229.349Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.515 243.747C207.386 243.651 207.272 243.528 207.181 243.381C206 241.453 205.696 239.062 206.324 236.647C206.968 234.176 208.482 232.066 210.589 230.704C211.295 230.248 212.183 230.437 212.572 231.125C212.96 231.814 212.702 232.743 211.996 233.199C210.589 234.108 209.575 235.525 209.142 237.193C208.723 238.802 208.917 240.384 209.689 241.644C210.101 242.317 209.875 243.251 209.182 243.731C208.642 244.104 207.977 244.091 207.515 243.747Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.865 308.749L139.865 308.749C142.557 315.921 148.228 320.91 155.685 322.665C160.578 323.817 164.268 328.365 163.733 334.381C163.149 340.957 157.138 345.842 150.7 345.048L150.7 345.048C134.487 343.049 122.351 332.373 118.301 316.548L118.301 316.548C116.693 310.264 120.771 303.679 127.218 302.261L127.218 302.261C133.091 300.97 138.091 304.023 139.865 308.749ZM127.003 301.285L127.004 301.285L127.003 301.285Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.634 316.198C121.543 316.065 121.472 315.913 121.429 315.747C120.875 313.581 121.24 311.301 122.456 309.325C123.701 307.304 125.639 305.915 127.912 305.415C128.674 305.248 129.428 305.73 129.596 306.492C129.763 307.255 129.281 308.008 128.519 308.176C127.001 308.51 125.702 309.444 124.863 310.808C124.052 312.125 123.805 313.63 124.167 315.047C124.361 315.803 123.905 316.573 123.148 316.766C122.559 316.917 121.961 316.672 121.634 316.198Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.376 210.334L173.376 210.334C166.295 213.256 161.491 219.086 159.978 226.596C158.985 231.523 154.559 235.358 148.528 235.018C141.937 234.647 136.861 228.796 137.446 222.336L137.446 222.336C138.92 206.067 149.198 193.592 164.884 189.033L164.884 189.033C171.113 187.223 177.827 191.087 179.452 197.484L179.452 197.484C180.932 203.312 178.042 208.408 173.376 210.334ZM180.421 197.238L180.421 197.238L180.421 197.238Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.342 192.353C165.472 192.258 165.621 192.182 165.785 192.134C167.932 191.51 170.223 191.801 172.237 192.953C174.297 194.132 175.748 196.023 176.321 198.279C176.513 199.036 176.055 199.804 175.299 199.997C174.543 200.189 173.774 199.731 173.581 198.975C173.199 197.468 172.224 196.201 170.833 195.406C169.491 194.638 167.978 194.44 166.574 194.848C165.824 195.065 165.04 194.635 164.822 193.885C164.653 193.301 164.878 192.695 165.342 192.353Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M135.502 344.786L135.502 344.786C127.869 344.15 120.932 347.141 116.155 353.129C113.02 357.058 107.331 358.447 102.122 355.39C96.4286 352.048 94.586 344.524 98.0584 339.046L98.0585 339.045C106.803 325.247 121.645 318.847 137.681 321.959L137.682 321.959C144.049 323.194 148.256 329.699 146.778 336.132L146.778 336.132C145.432 341.993 140.533 345.205 135.502 344.786ZM147.753 336.356L147.752 336.356L147.753 336.356Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M181.289 313.459L181.289 313.459C188.885 314.447 195.952 311.78 201.002 306.019C204.314 302.239 210.062 301.114 215.124 304.409C220.656 308.01 222.149 315.611 218.428 320.924L218.428 320.924C209.055 334.303 193.933 340.011 178.057 336.161L178.057 336.161C171.754 334.633 167.852 327.941 169.625 321.583L169.625 321.583C171.241 315.791 176.283 312.808 181.289 313.459ZM168.662 321.314L168.662 321.314L168.662 321.314Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M179.312 333.053C179.152 333.072 178.985 333.063 178.818 333.023C176.646 332.496 174.803 331.104 173.629 329.103C172.429 327.055 172.111 324.692 172.736 322.45C172.946 321.698 173.726 321.259 174.478 321.469C175.229 321.679 175.668 322.458 175.459 323.21C175.041 324.707 175.257 326.292 176.068 327.673C176.85 329.007 178.064 329.932 179.485 330.276C180.243 330.461 180.709 331.224 180.525 331.983C180.381 332.574 179.884 332.988 179.312 333.053Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.9959 212.227L73.9959 212.227C66.5815 210.303 59.2376 212.072 53.5119 217.161C49.7554 220.501 43.9127 220.903 39.299 217.004C34.2566 212.744 33.7193 205.016 38.0722 200.207L38.0723 200.207C49.0341 188.096 64.7483 184.311 80.0225 190.103L80.0225 190.103C86.0876 192.402 89.1277 199.527 86.5783 205.615L86.5782 205.615C84.256 211.162 78.8824 213.496 73.9959 212.227ZM87.5007 206.002L87.5005 206.001L87.5007 206.002Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.3911 193.031C78.5525 193.032 78.7173 193.062 78.8774 193.122C80.9677 193.915 82.623 195.526 83.5393 197.657C84.4765 199.838 84.4978 202.221 83.5991 204.369C83.2973 205.089 82.4694 205.427 81.7494 205.126C81.0295 204.824 80.6907 203.997 80.9917 203.277C81.5923 201.843 81.5751 200.244 80.9422 198.773C80.3316 197.352 79.2422 196.283 77.875 195.765C77.1455 195.488 76.7781 194.673 77.0549 193.942C77.2708 193.374 77.8153 193.025 78.3911 193.031Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M219.697 259.52L219.697 259.52C227.339 260.043 234.23 256.951 238.919 250.892C241.995 246.917 247.663 245.445 252.917 248.425C258.659 251.682 260.612 259.178 257.221 264.707L257.221 264.707C248.681 278.633 233.935 285.252 217.855 282.377L217.854 282.377C211.469 281.235 207.167 274.794 208.55 268.339L208.55 268.339C209.809 262.459 214.66 259.175 219.697 259.52ZM207.572 268.13L207.572 268.13L207.572 268.13Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.085 143.057L168.085 143.057C175.356 145.469 182.801 144.192 188.852 139.494C192.821 136.411 198.678 136.398 203.023 140.594C207.771 145.18 207.794 152.926 203.132 157.435L203.132 157.435C191.39 168.792 175.459 171.526 160.603 164.733L160.603 164.733C154.704 162.036 152.144 154.725 155.092 148.82L155.092 148.819C157.777 143.439 163.294 141.468 168.085 143.057ZM154.197 148.373L154.197 148.373L154.197 148.373Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M178.139 323.577L178.139 323.577C179.06 331.181 183.392 337.369 190.223 340.837C194.705 343.112 197.216 348.403 195.275 354.122C193.154 360.374 186.159 363.7 180.091 361.408L180.091 361.408C164.809 355.635 155.539 342.394 155.343 326.06L155.343 326.06C155.265 319.574 160.784 314.138 167.383 314.284L167.383 314.284C173.395 314.417 177.532 318.565 178.139 323.577ZM167.405 313.285L167.405 313.285L167.405 313.285Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M158.664 326.507C158.607 326.356 158.574 326.192 158.572 326.021C158.545 323.785 159.438 321.656 161.087 320.023C162.774 318.353 164.985 317.462 167.312 317.513C168.092 317.53 168.71 318.177 168.694 318.957C168.676 319.738 168.029 320.356 167.249 320.339C165.695 320.304 164.213 320.905 163.075 322.032C161.976 323.12 161.38 324.525 161.398 325.987C161.407 326.767 160.782 327.407 160.001 327.417C159.393 327.424 158.87 327.045 158.664 326.507Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.2609 350.016L88.2609 350.016C83.2173 344.251 76.1526 341.577 68.5549 342.558C63.5703 343.202 58.5157 340.244 56.8982 334.425C55.1305 328.065 59.0379 321.376 65.3431 319.854L65.3431 319.854C81.222 316.018 96.3392 321.739 105.7 335.126L105.7 335.126C109.417 340.442 107.917 348.041 102.382 351.637L102.382 351.637C97.3395 354.913 91.5849 353.815 88.2609 350.016ZM102.927 352.476L102.927 352.476L102.927 352.476Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M214.932 173.692L214.932 173.692C221.138 178.182 228.622 179.207 235.807 176.549C240.521 174.805 246.109 176.557 248.988 181.866C252.135 187.67 249.824 195.063 244.02 197.959L244.02 197.959C229.403 205.252 213.388 203.06 201.268 192.108L201.268 192.108C196.455 187.759 196.216 180.017 200.806 175.273L200.806 175.273C204.987 170.951 210.841 170.733 214.932 173.692ZM200.087 174.578L200.087 174.578L200.087 174.578Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M203.853 189.974C203.703 189.914 203.561 189.827 203.433 189.712C201.775 188.213 200.819 186.111 200.741 183.792C200.661 181.42 201.509 179.192 203.127 177.519C203.67 176.958 204.565 176.944 205.126 177.486C205.687 178.029 205.701 178.923 205.158 179.484C204.077 180.601 203.512 182.097 203.566 183.698C203.618 185.243 204.244 186.635 205.328 187.615C205.907 188.139 205.953 189.032 205.429 189.611C205.021 190.062 204.387 190.189 203.853 189.974Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M142.805 198.016L142.805 198.016C137.762 192.251 130.697 189.577 123.099 190.558C118.115 191.202 113.06 188.244 111.443 182.425C109.675 176.065 113.582 169.376 119.888 167.854L119.888 167.854C135.766 164.018 150.884 169.739 160.244 183.126L160.244 183.126C163.962 188.442 162.462 196.041 156.926 199.637L156.926 199.637C151.884 202.913 146.129 201.815 142.805 198.016ZM157.471 200.476L157.471 200.476L157.471 200.476Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M157.247 184.627C157.38 184.719 157.499 184.837 157.598 184.977C158.879 186.809 159.34 189.072 158.897 191.349C158.443 193.679 157.118 195.661 155.167 196.929C154.512 197.354 153.637 197.168 153.212 196.514C152.787 195.859 152.973 194.984 153.627 194.559C154.931 193.712 155.817 192.381 156.122 190.809C156.418 189.291 156.119 187.794 155.282 186.596C154.835 185.956 154.99 185.076 155.63 184.628C156.129 184.28 156.775 184.298 157.247 184.627Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.9482 311.392L45.9482 311.392C53.6057 311.587 60.3586 308.202 64.7834 301.948C67.6863 297.845 73.2864 296.131 78.6627 298.883C84.5389 301.892 86.8116 309.297 83.6604 314.967L83.6604 314.967C75.7251 329.245 61.2758 336.49 45.087 334.306L45.0869 334.306C38.6588 333.44 34.0847 327.188 35.1895 320.681L35.1895 320.681C36.1957 314.752 40.9015 311.263 45.9482 311.392ZM34.2036 320.513L34.2038 320.513L34.2036 320.513Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.013 331.085C45.8553 331.12 45.6882 331.129 45.5186 331.106C43.303 330.807 41.3261 329.613 39.9511 327.745C38.5445 325.833 37.9841 323.516 38.3734 321.221C38.5043 320.451 39.2341 319.934 40.0035 320.064C40.7731 320.195 41.2905 320.925 41.1602 321.694C40.8998 323.226 41.2786 324.78 42.2282 326.07C43.1446 327.316 44.4476 328.11 45.8966 328.305C46.6699 328.41 47.2124 329.121 47.108 329.895C47.0265 330.497 46.5752 330.96 46.013 331.085Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M200.159 133.413L200.159 133.413C207.742 132.33 213.837 127.867 217.157 120.963C219.336 116.434 224.572 113.81 230.332 115.628C236.627 117.615 240.102 124.538 237.94 130.654L237.94 130.654C232.495 146.055 219.455 155.606 203.129 156.151L203.129 156.151C196.646 156.368 191.094 150.966 191.099 144.365L191.099 144.365C191.103 138.352 195.162 134.127 200.159 133.413ZM190.099 144.365L190.099 144.365L190.099 144.365Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 233,\n y: 141.114,\n width: 20,\n height: 216,\n rx: 10,\n fill: \"url(#paint0_linear_9_2)\",\n fillOpacity: 0.4\n }), /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 216,\n rx: 10,\n transform: \"matrix(-1 0 0 1 68 141.114)\",\n fill: \"url(#paint1_linear_9_2)\",\n fillOpacity: 0.4\n }), /*#__PURE__*/React.createElement(\"rect\", {\n width: 23,\n height: 216,\n rx: 11.5,\n transform: \"matrix(0 1 1 0 42 331.114)\",\n fill: \"url(#paint2_linear_9_2)\",\n fillOpacity: 0.4\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.9482 168.392L51.9482 168.392C59.6057 168.587 66.3586 165.202 70.7834 158.948C73.6863 154.845 79.2864 153.131 84.6627 155.883C90.5389 158.892 92.8116 166.297 89.6604 171.967L89.6604 171.967C81.7251 186.245 67.2758 193.49 51.087 191.306L51.0869 191.306C44.6588 190.44 40.0847 184.188 41.1895 177.681L41.1895 177.681C42.1957 171.752 46.9015 168.263 51.9482 168.392ZM40.2036 177.513L40.2038 177.513L40.2036 177.513Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.013 188.085C51.8553 188.12 51.6882 188.129 51.5186 188.106C49.303 187.807 47.3261 186.613 45.9511 184.745C44.5445 182.833 43.9841 180.516 44.3734 178.221C44.5043 177.451 45.2341 176.934 46.0035 177.064C46.7731 177.195 47.2905 177.925 47.1602 178.694C46.8998 180.226 47.2786 181.78 48.2282 183.07C49.1446 184.316 50.4476 185.11 51.8966 185.305C52.6699 185.41 53.2124 186.121 53.108 186.895C53.0265 187.497 52.5752 187.96 52.013 188.085Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3,\n filter: \"url(#filter1_f_9_2)\"\n }, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"path-96-outside-1_9_2\",\n maskUnits: \"userSpaceOnUse\",\n x: 84.8087,\n y: 262.841,\n width: 128.752,\n height: 77.8601,\n fill: \"black\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"white\",\n x: 84.8087,\n y: 262.841,\n width: 128.752,\n height: 77.8601\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M90.7653 272.528C90.7351 272.707 90.7063 272.887 90.6787 273.067C86.852 298.094 109.86 324.334 142.068 331.675C174.276 339.017 203.487 324.68 207.314 299.653C208.176 294.015 207.676 288.315 206.016 282.784L90.7653 272.528Z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.6787 273.067L94.6327 273.671L94.6327 273.671L90.6787 273.067ZM90.7653 272.528L91.1199 268.543L87.4356 268.216L86.8209 271.863L90.7653 272.528ZM142.068 331.675L141.179 335.575L141.179 335.575L142.068 331.675ZM207.314 299.653L211.268 300.257L211.268 300.257L207.314 299.653ZM206.016 282.784L209.847 281.634L209.069 279.04L206.371 278.799L206.016 282.784ZM94.6327 273.671C94.6572 273.511 94.6829 273.352 94.7097 273.192L86.8209 271.863C86.7874 272.062 86.7553 272.262 86.7246 272.462L94.6327 273.671ZM142.957 327.775C127.633 324.282 114.585 316.307 105.868 306.366C97.138 296.41 92.9407 284.737 94.6327 273.671L86.7246 272.462C84.59 286.423 89.9831 300.384 99.8525 311.64C109.735 322.911 124.294 331.726 141.179 335.575L142.957 327.775ZM203.36 299.048C201.679 310.044 194.423 318.886 183.571 324.211C172.687 329.553 158.284 331.269 142.957 327.775L141.179 335.575C158.06 339.423 174.366 337.641 187.096 331.393C199.859 325.129 209.123 314.289 211.268 300.257L203.36 299.048ZM202.185 283.934C203.69 288.948 204.125 294.047 203.36 299.048L211.268 300.257C212.228 293.982 211.663 287.683 209.847 281.634L202.185 283.934ZM206.371 278.799L91.1199 268.543L90.4108 276.512L205.662 286.768L206.371 278.799Z\",\n fill: \"white\",\n mask: \"url(#path-96-outside-1_9_2)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M90.7653 272.528C90.7351 272.707 90.7063 272.887 90.6787 273.067C86.852 298.094 109.86 324.334 142.068 331.675C174.276 339.017 203.487 324.68 207.314 299.653C208.176 294.015 207.676 288.315 206.016 282.784L90.7653 272.528Z\",\n fill: \"white\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3,\n filter: \"url(#filter2_f_9_2)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 108.397,\n cy: 204.865,\n rx: 33.5249,\n ry: 50.2873,\n transform: \"rotate(-1 108.397 204.865)\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.31 257.144C119.443 256.967 128.264 250.65 134.403 241.084C140.552 231.504 144.165 218.469 143.917 204.245C143.669 190.02 139.602 177.12 133.123 167.759C126.654 158.413 117.618 152.408 107.485 152.585C97.352 152.762 88.5307 159.079 82.3916 168.645C76.2433 178.225 72.6297 191.26 72.8779 205.485C73.1262 219.709 77.1926 232.609 83.6714 241.97C90.1407 251.316 99.1771 257.321 109.31 257.144Z\",\n stroke: \"white\",\n strokeWidth: 4\n })), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3,\n filter: \"url(#filter3_f_9_2)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 189.398,\n cy: 204.865,\n rx: 33.5249,\n ry: 50.2873,\n transform: \"rotate(1 189.398 204.865)\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M188.485 257.144C198.618 257.321 207.654 251.316 214.123 241.97C220.602 232.61 224.669 219.709 224.917 205.485C225.165 191.261 221.552 178.226 215.403 168.645C209.264 159.079 200.443 152.762 190.31 152.585C180.177 152.409 171.141 158.413 164.672 167.76C158.193 177.12 154.126 190.021 153.878 204.245C153.63 218.469 157.243 231.504 163.392 241.084C169.531 250.651 178.352 256.967 188.485 257.144Z\",\n stroke: \"white\",\n strokeWidth: 4\n })), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"path-103-outside-2_9_2\",\n maskUnits: \"userSpaceOnUse\",\n x: 84.2121,\n y: 262.842,\n width: 128.752,\n height: 77.8601,\n fill: \"black\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"white\",\n x: 84.2121,\n y: 262.842,\n width: 128.752,\n height: 77.8601\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M90.1686 272.529C90.1385 272.708 90.1096 272.888 90.082 273.068C86.2553 298.095 109.263 324.335 141.471 331.676C173.679 339.018 202.891 324.681 206.717 299.654C207.58 294.016 207.08 288.316 205.42 282.785L90.1686 272.529Z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.082 273.068L94.0361 273.672L94.0361 273.672L90.082 273.068ZM90.1686 272.529L90.5232 268.544L86.8389 268.217L86.2243 271.864L90.1686 272.529ZM141.471 331.676L140.582 335.576L140.582 335.576L141.471 331.676ZM206.717 299.654L210.671 300.258L210.671 300.258L206.717 299.654ZM205.42 282.785L209.251 281.635L208.472 279.041L205.774 278.8L205.42 282.785ZM94.0361 273.672C94.0606 273.512 94.0862 273.353 94.113 273.193L86.2243 271.864C86.1907 272.063 86.1586 272.263 86.128 272.463L94.0361 273.672ZM142.36 327.776C127.036 324.283 113.988 316.308 105.271 306.367C96.5414 296.411 92.3441 284.738 94.0361 273.672L86.128 272.463C83.9933 286.424 89.3864 300.385 99.2559 311.641C109.138 322.912 123.697 331.727 140.582 335.576L142.36 327.776ZM202.763 299.049C201.082 310.045 193.826 318.887 182.975 324.212C172.091 329.554 157.687 331.27 142.36 327.776L140.582 335.576C157.463 339.424 173.769 337.642 186.499 331.394C199.263 325.13 208.526 314.29 210.671 300.258L202.763 299.049ZM201.588 283.935C203.093 288.949 203.528 294.048 202.763 299.049L210.671 300.258C211.631 293.983 211.066 287.683 209.251 281.635L201.588 283.935ZM205.774 278.8L90.5232 268.544L89.8141 276.513L205.065 286.769L205.774 278.8Z\",\n fill: \"#272B42\",\n mask: \"url(#path-103-outside-2_9_2)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M90.1686 272.529C90.1385 272.708 90.1096 272.888 90.082 273.068C86.2553 298.095 109.263 324.335 141.471 331.676C173.679 339.018 202.891 324.681 206.717 299.654C207.58 294.016 207.08 288.316 205.42 282.785L90.1686 272.529Z\",\n fill: \"#272B42\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M206.918 298.265L90.8479 287.936C89.635 283.037 89.3391 278.028 90.0976 273.067C90.1252 272.887 90.1541 272.707 90.1843 272.528L205.435 282.784C206.959 287.862 207.505 293.081 206.918 298.265Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M189.297 325.53C182.773 317.737 168.236 312.671 151.567 313.322C138.702 313.824 127.369 317.622 120.156 323.135C126.691 326.916 134.041 329.856 141.946 331.657C159.979 335.768 177.073 333.083 189.297 325.53Z\",\n fill: \"#272B42\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3,\n filter: \"url(#filter4_f_9_2)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 107.937,\n cy: 204.757,\n rx: 39.9296,\n ry: 58.0688,\n transform: \"rotate(-1 107.937 204.757)\",\n fill: \"white\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.744 256.967C118.876 256.79 127.698 250.474 133.837 240.907C139.985 231.327 143.599 218.292 143.35 204.068C143.102 189.844 139.036 176.943 132.557 167.583C126.088 158.236 117.051 152.232 106.918 152.408C96.7856 152.585 87.9643 158.902 81.8252 168.468C75.6769 178.049 72.0633 191.084 72.3115 205.308C72.5598 219.532 76.6262 232.433 83.105 241.793C89.5743 251.139 98.6107 257.144 108.744 256.967Z\",\n fill: \"white\",\n stroke: \"#272B42\",\n strokeWidth: 4\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M78.9307 228.989C77.347 223.333 76.424 217.162 76.311 210.691C75.8263 182.922 90.4407 160.149 108.953 159.826C121.57 159.606 132.742 169.87 138.731 185.221C133.519 166.608 121.151 153.578 106.953 153.826C88.4407 154.149 73.8263 176.922 74.311 204.691C74.4654 213.533 76.1323 221.817 78.9307 228.989Z\",\n fill: \"#D3D2D3\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 116.556,\n cy: 209.609,\n rx: 13.7622,\n ry: 20.6433,\n transform: \"rotate(-2 116.556 209.609)\",\n fill: \"#272B42\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 110.1,\n cy: 192.315,\n rx: 4.70114,\n ry: 7.05171,\n transform: \"rotate(-2 110.1 192.315)\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 110.1,\n cy: 192.315,\n rx: 4.70114,\n ry: 7.05171,\n transform: \"rotate(-2 110.1 192.315)\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M188.485 257.144C198.618 257.321 207.654 251.316 214.123 241.97C220.602 232.61 224.669 219.709 224.917 205.485C225.165 191.261 221.552 178.226 215.403 168.645C209.264 159.079 200.443 152.762 190.31 152.585C180.177 152.409 171.141 158.413 164.672 167.76C158.193 177.12 154.126 190.021 153.878 204.245C153.63 218.469 157.243 231.504 163.392 241.084C169.531 250.651 178.352 256.967 188.485 257.144Z\",\n fill: \"white\",\n stroke: \"#272B42\",\n strokeWidth: 4\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M218.088 230.167C220.887 222.899 222.554 214.506 222.708 205.545C223.193 177.407 208.578 154.331 190.066 154.004C175.868 153.752 163.5 166.955 158.288 185.817C164.277 170.262 175.449 159.86 188.066 160.083C206.578 160.411 221.193 183.487 220.708 211.625C220.595 218.182 219.672 224.436 218.088 230.167Z\",\n fill: \"#D3D2D3\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 180.617,\n cy: 209.787,\n rx: 13.7622,\n ry: 20.6433,\n transform: \"rotate(2 180.617 209.787)\",\n fill: \"#272B42\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 186.495,\n cy: 192.493,\n rx: 4.70114,\n ry: 7.05171,\n transform: \"rotate(2 186.495 192.493)\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 186.495,\n cy: 192.493,\n rx: 4.70114,\n ry: 7.05171,\n transform: \"rotate(2 186.495 192.493)\",\n fill: \"white\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46 92.1143H252V304.114C252 332.833 228.719 356.114 200 356.114H98C69.2812 356.114 46 332.833 46 304.114V92.1143Z\",\n stroke: \"#272B42\",\n strokeWidth: 4\n })), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter5_d_9_2)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M286.888 142.033C283.42 147.699 278.048 151.94 271.738 153.99C276.754 156.788 280.785 161.07 283.28 166.252C285.782 171.45 286.615 177.297 285.664 182.989C284.713 188.681 282.025 193.938 277.97 198.036C273.915 202.133 268.693 204.87 263.022 205.87C265.012 209.673 266.019 213.916 265.951 218.211C265.883 222.505 264.742 226.714 262.633 230.452C260.523 234.191 257.513 237.34 253.876 239.611C253.265 239.993 252.639 240.348 252 240.676V205.114C252 199.892 248.664 195.448 244.006 193.799C237.168 186.16 231.632 173.8 233.037 155.855C217.783 153.275 214.017 144.232 214.017 133.982C214.024 133.189 214.081 132.396 214.189 131.61C210.868 134.201 206.857 135.749 202.659 136.059C198.462 136.369 194.267 135.427 190.603 133.352C186.939 131.276 183.97 128.161 182.069 124.397C180.169 120.634 179.422 116.391 179.923 112.202C177.354 113.581 174.532 114.419 171.628 114.664C168.725 114.91 165.802 114.557 163.039 113.629C160.277 112.701 157.733 111.216 155.563 109.266C153.394 107.316 151.646 104.942 150.426 102.29C150.253 101.918 149.977 101.603 149.632 101.382C149.286 101.161 148.885 101.043 148.475 101.043C148.065 101.043 147.664 101.161 147.318 101.382C146.973 101.603 146.697 101.918 146.524 102.29C145.304 104.942 143.556 107.316 141.386 109.266C139.217 111.216 136.673 112.701 133.911 113.629C131.148 114.557 128.225 114.91 125.322 114.664C122.418 114.419 119.595 113.581 117.027 112.202C117.546 116.396 116.81 120.65 114.914 124.424C113.018 128.198 110.046 131.323 106.375 133.402C102.704 135.481 98.5003 136.421 94.296 136.102C90.0918 135.783 86.0769 134.219 82.7603 131.61C82.8686 132.396 82.9261 133.189 82.9324 133.982C82.9324 144.232 79.1673 153.275 63.913 155.855C65.3227 173.482 59.9606 185.757 53.2739 193.425C47.9598 194.66 44 199.425 44 205.114V240.191C43.6927 240.016 43.3886 239.835 43.0881 239.647C39.4514 237.375 36.4409 234.226 34.3316 230.488C32.2223 226.75 31.0815 222.541 31.0135 218.247C30.9455 213.952 31.9524 209.709 33.9423 205.906C28.2712 204.906 23.0487 202.169 18.9937 198.072C14.9388 193.974 12.2509 188.717 11.3001 183.025C10.3492 177.333 11.1822 171.486 13.6843 166.288C16.1865 161.09 20.2347 156.797 25.2717 154.001C18.9581 151.951 13.5821 147.71 10.1118 142.04C6.64151 136.37 5.30494 129.645 6.34278 123.075C7.38063 116.505 10.7247 110.523 15.7728 106.205C20.8209 101.887 27.2412 99.5174 33.8778 99.5228C34.7312 99.5228 35.5775 99.5731 36.4165 99.6522C33.0679 95.0749 31.1915 89.5829 31.0379 83.9091C30.8842 78.2353 32.4606 72.6494 35.5566 67.8968C38.6526 63.1442 43.121 59.4509 48.3657 57.3097C53.6103 55.1685 59.3817 54.6813 64.9098 55.913C63.7123 50.1389 64.3709 44.133 66.791 38.7574C69.2111 33.3818 73.2683 28.913 78.3802 25.9923C83.4921 23.0717 89.3958 21.8494 95.2439 22.501C101.092 23.1526 106.584 25.6446 110.931 29.6191C114.34 22.5696 119.663 16.6256 126.288 12.4684C132.913 8.3112 140.572 6.10901 148.389 6.11427H148.59C156.406 6.10901 164.066 8.3112 170.691 12.4684C177.316 16.6256 182.638 22.5696 186.048 29.6191C190.396 25.6496 195.887 23.1619 201.733 22.5129C207.579 21.8639 213.48 23.0868 218.59 26.0063C223.7 28.9259 227.757 33.3921 230.178 38.7646C232.599 44.1372 233.261 50.1402 232.069 55.913C237.597 54.677 243.37 55.1607 248.618 57.2994C253.865 59.4381 258.336 63.1301 261.435 67.8826C264.534 72.6351 266.112 78.2218 265.96 83.8971C265.808 89.5724 263.932 95.0662 260.583 99.645C261.423 99.5659 262.269 99.5156 263.122 99.5156C269.759 99.5102 276.179 101.88 281.227 106.198C286.275 110.516 289.619 116.498 290.657 123.068C291.695 129.638 290.358 136.363 286.888 142.033Z\",\n fill: \"#272B42\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M74.1031 54.9218C75.2071 43.2477 85.0369 34.1143 97 34.1143C99.5752 34.1143 102.052 34.5375 104.363 35.3182C101.034 32.0967 96.4986 30.1143 91.5 30.1143C81.2827 30.1143 73 38.397 73 48.6143C73 50.8293 73.3893 52.9534 74.1031 54.9218Z\",\n fill: \"#4BEC78\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M223.485 55.022C223.301 52.5888 222.724 50.1435 221.719 47.7725C217.049 36.7586 204.803 31.2739 193.625 34.8145C195.158 33.3889 196.962 32.2014 199.001 31.3368C208.408 27.3484 219.266 31.7408 223.255 41.1474C225.206 45.7496 225.151 50.6993 223.485 55.022Z\",\n fill: \"#F54B4B\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M274.42 143.389C278.486 141.169 281.728 137.429 283.216 132.657C286.257 122.903 280.814 112.53 271.06 109.49C268.945 108.83 266.802 108.57 264.71 108.666C275.527 113.194 281.321 125.296 277.761 136.717C276.994 139.176 275.853 141.414 274.42 143.389Z\",\n fill: \"#3AE2F8\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M266.431 196.169C270.909 194.98 274.948 192.119 277.528 187.838C282.801 179.087 279.982 167.717 271.231 162.444C269.334 161.3 267.314 160.537 265.26 160.133C274.689 167.104 277.438 180.238 271.263 190.484C269.934 192.689 268.293 194.592 266.431 196.169Z\",\n fill: \"#7D6AF7\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M231.167 65.8365C242.893 65.699 253.015 74.5073 254.281 86.4032C254.554 88.9639 254.395 91.471 253.863 93.8523C256.714 90.201 258.205 85.4813 257.676 80.5109C256.595 70.351 247.483 62.9911 237.323 64.0722C235.12 64.3065 233.049 64.9184 231.167 65.8365Z\",\n fill: \"#4BEC78\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M173.685 31.8136C171.232 29.3982 168.377 27.1995 165.167 25.3273C150.255 16.6303 132.988 18.0804 125.204 28.2655C125.394 25.8938 126.075 23.6117 127.291 21.527C132.899 11.9105 147.771 10.1362 160.507 17.5641C166.738 21.198 171.303 26.3612 173.685 31.8136Z\",\n fill: \"#EF4ACB\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M66.6427 66.1846C64.2076 66.0281 61.706 66.2595 59.2183 66.9253C47.662 70.018 40.5276 81.3821 42.4791 92.9447C41.2807 91.2277 40.3555 89.2765 39.7829 87.1369C37.1415 77.267 43.0014 67.1245 52.8713 64.4831C57.6999 63.1909 62.5938 63.9333 66.6427 66.1846Z\",\n fill: \"#7D6AF7\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.304 144.095C15.8393 135.051 16.3458 121.643 24.8139 113.193C26.6367 111.374 28.6885 109.924 30.8764 108.844C26.2443 108.915 21.6335 110.716 18.0953 114.246C10.8631 121.463 10.8508 133.177 18.0679 140.409C19.6325 141.977 21.4083 143.206 23.304 144.095Z\",\n fill: \"#F54B4B\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M31.7213 197.208C22.3483 190.162 19.7043 177.007 25.9607 166.81C27.3074 164.616 28.9632 162.726 30.8376 161.164C26.3508 162.317 22.2892 165.146 19.6751 169.406C14.3317 178.115 17.0598 189.507 25.7684 194.85C27.6563 196.008 29.6702 196.787 31.7213 197.208Z\",\n fill: \"#EF4ACB\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M85.1039 94.9605C84.8816 83.2364 93.6163 73.0507 105.503 71.6987C108.061 71.4077 110.57 71.5484 112.955 72.0628C109.283 69.2383 104.552 67.7812 99.586 68.3461C89.4342 69.5008 82.1405 78.6665 83.2952 88.8183C83.5455 91.019 84.1723 93.0854 85.1039 94.9605Z\",\n fill: \"#EF4ACB\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M70.4933 118.449C68.0582 118.293 65.5566 118.524 63.0689 119.19C51.5126 122.283 44.3781 133.647 46.3297 145.209C45.1312 143.492 44.2061 141.541 43.6335 139.402C40.9921 129.532 46.8519 119.389 56.7219 116.748C61.5505 115.456 66.4444 116.198 70.4933 118.449Z\",\n fill: \"#3AE2F8\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M133.01 70.0101C141.735 62.1748 155.153 62.1221 163.949 70.2306C165.842 71.976 167.376 73.9655 168.546 76.1063C168.282 71.4813 166.291 66.9497 162.616 63.5618C155.103 56.6366 143.4 57.1125 136.474 64.6248C134.973 66.2533 133.82 68.0789 133.01 70.0101Z\",\n fill: \"#3AE2F8\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M230.761 118.021C242.309 120.056 250.626 130.586 249.668 142.51C249.462 145.077 248.842 147.512 247.879 149.754C251.357 146.693 253.696 142.331 254.096 137.348C254.914 127.164 247.32 118.245 237.136 117.427C234.928 117.249 232.78 117.467 230.761 118.021Z\",\n fill: \"#F54B4B\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.281 91.7457L206.446 48.9542L211.795 52.725L181.63 95.5165L186.979 99.2871L217.144 56.4954L222.493 60.2661L192.328 103.058L197.677 106.828L227.842 64.0367L233.191 67.8073L203.026 110.599L208.375 114.37L238.539 71.5779L243.889 75.3487L213.723 118.14L219.072 121.911L253.008 73.7704C255.526 70.1984 256.502 65.8598 255.757 61.5537C255.012 57.2476 252.634 53.4892 249.062 50.9715L248.059 50.2644L253.423 42.6549C255.57 39.6089 258.735 37.3954 262.332 36.4218C266.263 35.3582 269.537 32.6496 271.316 28.9904C273.078 25.3639 273.187 21.1612 271.615 17.4601C270.04 13.7522 267.234 10.4013 263.502 7.77045C259.65 5.05501 255.425 3.53243 251.285 3.36754C250.317 3.32906 249.354 3.39419 248.413 3.5571C245.544 4.05374 242.868 5.45874 240.806 7.60342C238.013 10.5073 236.593 14.4777 236.91 18.4972C237.203 22.2141 236.182 25.9392 234.034 28.9865L228.67 36.5957L227.667 35.8886C220.293 30.6911 210.065 32.461 204.868 39.8345L170.932 87.975L176.281 91.7457ZM253.286 16.5831L258.635 20.3537L254.864 25.7026L249.515 21.932L253.286 16.5831Z\",\n fill: \"#F5CA32\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 215.576,\n y: 119.354,\n width: 49.4133,\n height: 54.3633,\n transform: \"rotate(-144.989 215.576 119.354)\",\n fill: \"#272B42\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M179.864 91.793L175.76 88.8785L206.233 45.7093L210.057 48.9994L179.864 91.793Z\",\n fill: \"#F5CA32\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M198.767 105.494L192.529 101.074L223.788 56.8008L229.734 61.6031L198.767 105.494Z\",\n fill: \"#F5CA32\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M218.066 119.806L211.828 115.385L243.087 71.1123L249.033 75.9147L218.066 119.806Z\",\n fill: \"#F5CA32\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 183.378,\n cy: 84.3072,\n r: 13.2047,\n fill: \"#272B42\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 198.106,\n cy: 104.114,\n r: 11.6811,\n fill: \"#272B42\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 216.39,\n cy: 111.224,\n r: 11.6811,\n fill: \"#272B42\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_d_9_2\",\n x: 22.8447,\n y: 147.438,\n width: 60.1968,\n height: 46.9062,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 4\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 2\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_9_2\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_9_2\",\n result: \"shape\"\n })), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter1_f_9_2\",\n x: 74.2617,\n y: 256.216,\n width: 149.468,\n height: 93.3809,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6,\n result: \"effect1_foregroundBlur_9_2\"\n })), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter2_f_9_2\",\n x: 58.8657,\n y: 138.581,\n width: 99.063,\n height: 132.566,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6,\n result: \"effect1_foregroundBlur_9_2\"\n })), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter3_f_9_2\",\n x: 139.866,\n y: 138.582,\n width: 99.063,\n height: 132.566,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6,\n result: \"effect1_foregroundBlur_9_2\"\n })), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter4_f_9_2\",\n x: 56.0005,\n y: 134.692,\n width: 103.873,\n height: 140.129,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6,\n result: \"effect1_foregroundBlur_9_2\"\n })), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter5_d_9_2\",\n x: 0,\n y: 4.11426,\n width: 297,\n height: 246.562,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 4\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 3\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_9_2\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_9_2\",\n result: \"shape\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_9_2\",\n x1: 244,\n y1: 240.614,\n x2: 233,\n y2: 240.614,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_9_2\",\n x1: 11,\n y1: 99.5,\n x2: 9.94183e-8,\n y2: 99.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_9_2\",\n x1: 12.65,\n y1: 99.5,\n x2: 1.14334e-7,\n y2: 99.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_9_2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44 90.1143H254V304.114C254 333.938 229.823 358.114 200 358.114H98C68.1766 358.114 44 333.938 44 304.114V90.1143Z\",\n fill: \"white\"\n })))));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgJellyFullImage);\nexport default __webpack_public_path__ + \"static/media/jelly-full-image.838b9540e3b08048cf748723c2460251.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _g, _path2, _g2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _rect, _path17, _path18, _path19, _circle, _circle2, _circle3, _defs;\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgJellyFullImageDark(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 747,\n height: 359,\n viewBox: \"0 0 747 359\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M352.084 241.496C352.084 248.979 353.141 254.428 355.256 257.844C357.371 261.097 360.705 262.724 365.26 262.724C376.647 262.724 384.373 258.088 388.44 248.816C392.669 239.544 394.784 226.856 394.784 210.752C394.784 202.944 394.296 192.045 393.32 178.056C392.344 164.717 391.856 154.795 391.856 148.288C374.451 148.288 365.748 144.872 365.748 138.04C365.748 133.973 366.399 131.289 367.7 129.988C369.164 128.687 371.36 128.036 374.288 128.036C376.077 128.036 378.029 128.199 380.144 128.524C382.259 128.687 383.804 128.768 384.78 128.768C388.033 129.256 391.124 129.5 394.052 129.5C399.42 129.5 404.381 129.256 408.936 128.768C414.792 128.443 419.184 128.28 422.112 128.28C427.968 128.28 432.035 128.849 434.312 129.988C436.752 131.127 437.972 133.323 437.972 136.576C437.972 139.992 437.077 142.432 435.288 143.896C433.661 145.197 431.221 146.173 427.968 146.824L416.744 148.044C416.581 158.78 417.232 171.631 418.696 186.596C418.859 188.873 419.184 193.184 419.672 199.528C420.16 205.709 420.404 211.403 420.404 216.608C420.404 237.755 415.931 254.103 406.984 265.652C398.037 277.039 384.699 282.732 366.968 282.732C355.907 282.732 346.635 279.56 339.152 273.216C331.832 266.709 328.172 257.031 328.172 244.18C328.172 240.601 329.473 237.755 332.076 235.64C334.679 233.363 338.176 232.224 342.568 232.224C345.659 232.224 348.017 233.281 349.644 235.396C351.271 237.511 352.084 239.544 352.084 241.496ZM438.517 230.272C438.517 224.091 439.656 217.909 441.933 211.728C444.211 205.384 447.22 199.609 450.961 194.404C454.703 189.199 460.64 184.969 468.773 181.716C476.907 178.3 484.145 176.592 490.489 176.592C496.996 176.592 503.584 177.487 510.253 179.276C517.085 181.065 521.803 183.831 524.405 187.572C530.424 196.031 533.433 204.327 533.433 212.46C533.433 216.852 532.457 220.593 530.505 223.684C528.716 226.775 526.113 230.109 522.697 233.688C519.932 236.616 515.54 238.568 509.521 239.544C503.665 240.52 497.809 241.008 491.953 241.008C488.212 241.008 483.657 240.683 478.289 240.032C472.921 239.219 467.716 238.243 462.673 237.104C462.999 240.357 463.812 243.529 465.113 246.62C466.415 249.711 467.96 252.069 469.749 253.696C473.003 256.787 476.337 258.739 479.753 259.552C483.332 260.365 487.887 260.772 493.417 260.772C499.273 260.772 504.723 259.796 509.765 257.844C513.832 256.38 517.167 255.648 519.769 255.648C522.86 255.648 525.219 256.624 526.845 258.576C528.472 260.365 529.285 262.724 529.285 265.652C529.285 269.719 526.927 273.053 522.209 275.656C517.492 278.259 512.043 280.211 505.861 281.512C499.843 282.651 494.963 283.22 491.221 283.22C483.576 283.22 476.175 281.837 469.017 279.072C461.86 276.307 455.923 272.403 451.205 267.36C447.301 262.805 444.211 257.356 441.933 251.012C439.656 244.505 438.517 237.592 438.517 230.272ZM491.709 197.332C488.131 197.332 484.552 198.064 480.973 199.528C477.395 200.829 474.467 202.7 472.189 205.14C469.261 208.231 467.228 210.752 466.089 212.704C465.113 214.493 464.463 217.015 464.137 220.268C468.204 221.569 476.663 222.22 489.513 222.22C496.508 222.22 501.876 221.163 505.617 219.048C509.521 216.933 511.473 214.168 511.473 210.752C511.473 207.336 509.359 204.245 505.129 201.48C500.9 198.715 496.427 197.332 491.709 197.332ZM566.998 244.18C566.998 250.361 567.893 255.16 569.682 258.576C571.634 261.829 574.074 263.456 577.002 263.456C578.629 263.456 580.174 263.375 581.638 263.212C583.102 262.887 584.566 262.724 586.03 262.724C587.657 262.724 589.04 263.537 590.178 265.164C591.48 266.791 592.13 268.58 592.13 270.532C592.13 274.436 590.26 277.527 586.518 279.804C582.94 281.919 578.06 282.976 571.878 282.976C567.486 282.976 563.013 281.675 558.458 279.072C554.066 276.307 550.406 272.077 547.478 266.384C544.55 260.528 543.086 253.289 543.086 244.668C543.086 226.124 543.412 210.427 544.062 197.576C544.876 182.285 545.282 163.009 545.282 139.748C545.282 132.428 545.689 127.304 546.502 124.376C547.478 122.099 549.024 120.391 551.138 119.252C553.416 117.951 555.774 117.3 558.214 117.3C560.654 117.3 562.769 117.707 564.558 118.52C566.51 119.333 567.812 120.635 568.462 122.424C569.113 124.376 569.52 126.328 569.682 128.28C570.008 130.069 570.17 132.672 570.17 136.088C570.17 142.757 569.926 149.183 569.438 155.364C569.113 162.847 568.95 168.296 568.95 171.712C567.649 200.341 566.998 224.497 566.998 244.18ZM619.02 244.18C619.02 250.361 619.915 255.16 621.704 258.576C623.656 261.829 626.096 263.456 629.024 263.456C630.651 263.456 632.196 263.375 633.66 263.212C635.124 262.887 636.588 262.724 638.052 262.724C639.679 262.724 641.061 263.537 642.2 265.164C643.501 266.791 644.152 268.58 644.152 270.532C644.152 274.436 642.281 277.527 638.54 279.804C634.961 281.919 630.081 282.976 623.9 282.976C619.508 282.976 615.035 281.675 610.48 279.072C606.088 276.307 602.428 272.077 599.5 266.384C596.572 260.528 595.108 253.289 595.108 244.668C595.108 226.124 595.433 210.427 596.084 197.576C596.897 182.285 597.304 163.009 597.304 139.748C597.304 132.428 597.711 127.304 598.524 124.376C599.5 122.099 601.045 120.391 603.16 119.252C605.437 117.951 607.796 117.3 610.236 117.3C612.676 117.3 614.791 117.707 616.58 118.52C618.532 119.333 619.833 120.635 620.484 122.424C621.135 124.376 621.541 126.328 621.704 128.28C622.029 130.069 622.192 132.672 622.192 136.088C622.192 142.757 621.948 149.183 621.46 155.364C621.135 162.847 620.972 168.296 620.972 171.712C619.671 200.341 619.02 224.497 619.02 244.18ZM671.286 331.776C665.267 331.776 660.143 330.719 655.914 328.604C651.684 326.652 648.512 324.212 646.398 321.284C644.446 318.519 643.47 316.079 643.47 313.964C643.47 311.036 644.527 308.433 646.642 306.156C648.756 304.041 651.115 302.984 653.718 302.984C655.182 302.984 656.564 303.472 657.866 304.448C659.33 305.424 660.224 305.993 660.55 306.156C661.363 306.807 662.42 307.783 663.722 309.084C665.023 310.548 666.324 311.28 667.626 311.28C671.367 311.28 674.376 308.921 676.654 304.204C678.931 299.487 681.127 291.841 683.242 281.268C672.506 263.537 662.339 245.481 652.742 227.1C643.144 208.719 638.346 196.275 638.346 189.768C638.346 185.701 639.81 182.692 642.738 180.74C645.666 178.788 649 177.812 652.742 177.812C655.507 177.812 657.703 178.381 659.33 179.52C660.956 180.496 662.258 182.367 663.234 185.132C667.788 198.959 672.424 211.321 677.142 222.22C681.859 232.956 687.308 243.773 693.49 254.672C696.418 248.165 699.915 237.511 703.982 222.708C706.422 214.087 708.536 207.092 710.326 201.724C712.115 196.193 714.148 191.151 716.426 186.596C717.89 183.668 719.679 181.309 721.794 179.52C724.071 177.731 726.511 176.836 729.114 176.836C732.042 176.836 735.051 177.893 738.142 180.008C741.395 181.96 743.022 184.319 743.022 187.084C743.022 187.897 742.452 189.849 741.314 192.94C734.97 207.092 729.358 220.756 724.478 233.932C719.598 246.945 715.043 261.26 710.814 276.876C708.211 285.172 705.446 293.224 702.518 301.032C699.59 309.003 697.556 313.964 696.418 315.916C693.002 320.471 689.342 324.212 685.438 327.14C681.534 330.231 676.816 331.776 671.286 331.776Z\",\n fill: \"white\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_117_1051)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44 59.1143H254V304.114C254 333.938 229.823 358.114 200 358.114H98C68.1766 358.114 44 333.938 44 304.114V59.1143Z\",\n fill: \"#C5E2F3\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.311 367.245L162.311 367.245C147.111 373.228 131.35 369.639 120.238 357.665L120.238 357.665C115.826 352.911 116.266 345.178 121.255 340.855L121.255 340.855C125.799 336.917 131.65 337.213 135.465 340.52L136.103 339.784L135.465 340.52C141.253 345.537 148.618 347.214 156.009 345.198C160.858 343.874 166.271 346.11 168.673 351.651C171.298 357.708 168.347 364.87 162.311 367.245ZM120.6 340.099L120.6 340.099L120.6 340.099Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.64 308.248L128.64 308.248C112.479 310.633 97.9407 303.569 89.8281 289.391L89.8281 289.391C86.6064 283.761 88.7868 276.328 94.6245 273.247L94.6245 273.247C99.9424 270.44 105.574 272.053 108.541 276.138L109.329 275.566L108.541 276.138C113.043 282.335 119.837 285.637 127.493 285.346C132.515 285.155 137.282 288.557 138.367 294.499C139.553 300.993 135.057 307.301 128.64 308.248ZM94.1578 272.363L94.1577 272.363L94.1578 272.363Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.9481 288.167C92.8245 288.063 92.7161 287.936 92.6307 287.787C91.5208 285.847 91.266 283.551 91.913 281.324C92.5753 279.044 94.0737 277.19 96.132 276.103C96.8225 275.739 97.6771 276.004 98.0417 276.694C98.4058 277.384 98.1412 278.239 97.4512 278.603C96.0765 279.329 95.0736 280.574 94.6273 282.112C94.1958 283.598 94.3578 285.115 95.084 286.384C95.4713 287.061 95.2368 287.924 94.559 288.312C94.031 288.614 93.3889 288.538 92.9481 288.167Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M237.868 335.406L237.868 335.406C228.996 350.221 212.812 358.336 194.667 356.993L194.667 356.993C187.378 356.454 182.39 350.37 183.605 343.874L183.605 343.874C184.726 337.883 190.001 334.024 195.774 333.881L195.749 332.886L195.774 333.881C204.226 333.672 211.694 329.949 216.609 323.451C219.891 319.111 226.253 317.053 232.319 319.568C238.884 322.289 241.367 329.565 237.868 335.406ZM182.63 343.691L182.629 343.691L182.63 343.691Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M272.499 205.745L272.499 205.745C263.542 222.846 246.678 231.831 227.489 229.725L227.489 229.725C219.797 228.881 214.162 221.564 215.287 213.775L215.287 213.775C216.311 206.682 221.822 202.373 227.854 202.378L227.855 201.378L227.854 202.378C236.813 202.384 244.607 198.233 249.599 190.793C252.945 185.806 259.582 183.6 266.069 186.72C273.161 190.133 276.09 198.891 272.499 205.745Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M228.504 225.731C228.319 225.777 228.123 225.792 227.923 225.77C225.306 225.483 222.945 224.135 221.272 221.976C219.561 219.767 218.834 217.056 219.225 214.344C219.357 213.435 220.201 212.804 221.11 212.935C222.02 213.067 222.65 213.911 222.519 214.82C222.257 216.631 222.748 218.449 223.903 219.939C225.018 221.378 226.575 222.275 228.286 222.463C229.199 222.563 229.858 223.384 229.758 224.298C229.68 225.01 229.162 225.568 228.504 225.731Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M258.577 148.719L258.577 148.719C249.62 165.82 232.755 174.804 213.566 172.698L213.566 172.698C205.874 171.855 200.239 164.538 201.364 156.749L201.364 156.749C202.388 149.656 207.899 145.346 213.931 145.351L213.932 144.351L213.931 145.351C222.89 145.358 230.684 141.207 235.676 133.767C239.022 128.78 245.659 126.573 252.146 129.694C259.238 133.106 262.167 141.864 258.577 148.719Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M148.521 111.939L148.521 111.939C157.685 107.137 166.311 105.569 173.737 106.974C181.142 108.375 187.464 112.751 192.024 120.061L192.024 120.061C193.817 122.933 194.17 127.007 193.154 131.273C192.142 135.521 189.798 139.827 186.393 143.072L186.393 143.072C183.281 146.039 180.128 147.516 177.401 147.784C174.699 148.049 172.375 147.138 170.765 145.224L169.999 145.868L170.765 145.224C165.571 139.054 157.791 137.667 149.255 141.085C146.365 142.243 143.671 142.161 141.582 141.022C139.501 139.888 137.843 137.608 137.213 134.003C136.526 130.071 137.453 125.539 139.54 121.464C141.625 117.392 144.815 113.88 148.521 111.939ZM187.068 143.78L187.083 143.796L187.068 143.78Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M188.396 123.311C188.535 123.393 188.657 123.511 188.754 123.664C190.007 125.674 190.3 128.476 189.579 131.555C188.842 134.705 187.163 137.654 184.853 139.856C184.078 140.594 183.117 140.603 182.705 139.876C182.294 139.149 182.589 137.961 183.363 137.222C184.906 135.752 186.03 133.773 186.526 131.647C187.007 129.595 186.82 127.74 186.001 126.426C185.563 125.724 185.824 124.538 186.585 123.775C187.177 123.181 187.899 123.02 188.396 123.311Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M220.869 280.944L220.869 280.944C213.29 295.415 199.024 303.015 182.787 301.233L182.787 301.233C176.339 300.525 171.611 294.389 172.555 287.856L172.555 287.856C173.414 281.904 178.032 278.3 183.08 278.304L183.081 277.33L183.08 278.304C190.74 278.31 197.407 274.758 201.676 268.397C204.476 264.223 210.032 262.371 215.475 264.989C221.424 267.852 223.879 275.198 220.869 280.944ZM171.565 287.713L171.565 287.713L171.565 287.713Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M183.632 297.99C183.476 298.029 183.309 298.042 183.139 298.023C180.916 297.779 178.911 296.635 177.49 294.801C176.036 292.924 175.419 290.622 175.751 288.318C175.863 287.545 176.58 287.01 177.352 287.121C178.124 287.233 178.66 287.95 178.549 288.722C178.326 290.26 178.743 291.804 179.725 293.07C180.672 294.293 181.994 295.054 183.447 295.214C184.223 295.299 184.783 295.997 184.698 296.773C184.631 297.378 184.191 297.852 183.632 297.99Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M166.428 98.5637L166.428 98.5638C160.983 113.965 147.943 123.516 131.617 124.061L131.616 124.061C125.134 124.278 119.582 118.876 119.587 112.275L119.587 112.275C119.591 106.262 123.649 102.037 128.647 101.323L128.509 100.359L128.647 101.323C136.23 100.24 142.324 95.7769 145.645 88.8732C147.824 84.3439 153.06 81.7204 158.82 83.5383C165.115 85.5255 168.59 92.4482 166.428 98.5637ZM118.587 112.275L118.587 112.275L118.587 112.275Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M131.993 120.73C131.843 120.791 131.68 120.827 131.509 120.834C129.275 120.908 127.126 120.06 125.459 118.447C123.754 116.796 122.815 114.605 122.816 112.277C122.817 111.497 123.451 110.865 124.231 110.865C125.012 110.866 125.643 111.499 125.643 112.28C125.642 113.834 126.274 115.303 127.425 116.416C128.537 117.492 129.954 118.058 131.415 118.009C132.195 117.983 132.848 118.594 132.874 119.374C132.895 119.982 132.527 120.514 131.993 120.73Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.513 274.675L45.513 274.675C53.7754 260.583 68.3879 253.673 84.522 256.23L84.5221 256.23C90.9285 257.244 95.3573 263.599 94.1028 270.08L94.1028 270.08C92.9602 275.983 88.1752 279.363 83.1328 279.118L83.0855 280.091L83.1328 279.118C75.4818 278.746 68.6527 281.975 64.0849 288.125C61.0881 292.16 55.45 293.744 50.1386 290.869C44.3333 287.726 42.2319 280.27 45.513 274.675ZM95.0843 270.27L95.0845 270.27L95.0843 270.27Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.522 259.428C83.6804 259.397 83.8477 259.392 84.0167 259.419C86.2248 259.769 88.1737 261.008 89.5052 262.908C90.8674 264.852 91.3742 267.181 90.9321 269.466C90.7835 270.232 90.042 270.733 89.2758 270.585C88.5094 270.436 88.009 269.695 88.1569 268.929C88.4526 267.403 88.1097 265.841 87.1901 264.529C86.3027 263.263 85.0184 262.439 83.5742 262.21C82.8036 262.088 82.2776 261.364 82.3997 260.593C82.4952 259.992 82.9571 259.54 83.522 259.428Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.428 256.924L162.428 256.924C153.055 270.303 137.933 276.011 122.057 272.161L122.057 272.161C115.754 270.633 111.852 263.941 113.625 257.583L113.625 257.583C115.241 251.791 120.283 248.808 125.289 249.459L125.415 248.493L125.289 249.459C132.885 250.447 139.952 247.78 145.002 242.019C148.314 238.239 154.062 237.114 159.124 240.409C164.656 244.01 166.149 251.611 162.428 256.924ZM112.662 257.314L112.662 257.314L112.662 257.314Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.312 269.053C123.151 269.072 122.984 269.063 122.818 269.023C120.645 268.496 118.803 267.104 117.629 265.103C116.428 263.055 116.111 260.692 116.736 258.45C116.946 257.698 117.725 257.259 118.477 257.469C119.229 257.679 119.668 258.458 119.459 259.21C119.041 260.707 119.256 262.292 120.067 263.673C120.85 265.007 122.063 265.932 123.484 266.276C124.243 266.461 124.708 267.224 124.524 267.983C124.381 268.574 123.884 268.988 123.312 269.053Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M169.258 248.928L169.258 248.928C156.057 258.55 139.901 259.051 126.129 250.267L126.129 250.267C120.66 246.779 119.136 239.184 122.874 233.743L122.874 233.743C126.278 228.786 132.014 227.598 136.54 229.835L136.971 228.963L136.54 229.835C143.406 233.231 150.956 232.997 157.599 229.182C161.958 226.679 167.76 227.476 171.482 232.233C175.55 237.433 174.5 245.107 169.258 248.928ZM122.05 233.177L122.049 233.177L122.05 233.177Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.323 247.733C128.165 247.699 128.01 247.636 127.866 247.544C125.981 246.342 124.689 244.428 124.226 242.154C123.753 239.828 124.219 237.49 125.536 235.572C125.978 234.928 126.858 234.765 127.501 235.207C128.145 235.649 128.308 236.529 127.866 237.172C126.986 238.453 126.677 240.022 126.996 241.592C127.304 243.107 128.153 244.375 129.386 245.162C130.043 245.581 130.237 246.455 129.817 247.113C129.49 247.626 128.886 247.856 128.323 247.733Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.242 247.515L180.242 247.515C181.15 263.825 172.795 277.663 157.938 284.454L157.938 284.454C152.04 287.152 144.835 284.305 142.297 278.212L142.297 278.212C139.985 272.661 142.102 267.199 146.439 264.615L145.941 263.779L146.439 264.615C153.02 260.694 156.925 254.228 157.33 246.578C157.596 241.559 161.417 237.121 167.433 236.58C174.008 235.989 179.881 241.039 180.242 247.515ZM141.374 278.596L141.374 278.597L141.374 278.596Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M157.003 281.236C156.889 281.35 156.752 281.446 156.596 281.518C154.563 282.447 152.254 282.492 150.094 281.646C147.884 280.779 146.174 279.119 145.278 276.97C144.979 276.25 145.32 275.423 146.04 275.122C146.761 274.822 147.588 275.163 147.888 275.884C148.485 277.318 149.635 278.43 151.126 279.014C152.566 279.579 154.092 279.555 155.421 278.947C156.131 278.623 156.969 278.935 157.294 279.645C157.547 280.199 157.412 280.831 157.003 281.236Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M147.647 152.478L147.646 152.478C129.679 150.028 114.215 137.649 106.47 119.397L106.47 119.397C103.325 111.986 106.513 104.674 112.963 103.17L112.963 103.17C118.991 101.764 125.197 105.281 128.22 110.918L129.102 110.445L128.22 110.918C132.553 118.994 139.599 124.668 147.938 126.727C153.584 128.122 158.662 133.511 159.358 140.514C159.735 144.307 158.542 147.533 156.425 149.682C154.311 151.828 151.217 152.965 147.647 152.478ZM112.736 102.197L112.736 102.196L112.736 102.197Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.064 119.148C109.937 118.996 109.829 118.822 109.749 118.633C108.699 116.157 108.615 113.56 109.514 111.32C110.434 109.027 112.233 107.463 114.58 106.915C115.367 106.732 116.28 107.29 116.621 108.16C116.96 109.032 116.598 109.886 115.811 110.07C114.244 110.435 113.039 111.487 112.419 113.034C111.82 114.528 111.868 116.242 112.555 117.861C112.921 118.725 112.591 119.599 111.816 119.812C111.212 119.978 110.515 119.693 110.064 119.148Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.48 118.891L102.48 118.891C117.841 124.451 127.293 137.562 127.716 153.892L127.716 153.892C127.884 160.376 122.44 165.888 115.84 165.833L115.84 165.833C109.827 165.784 105.633 161.694 104.956 156.691L103.991 156.821L104.956 156.691C103.93 149.1 99.5126 142.972 92.6341 139.6C88.1212 137.387 85.5371 132.132 87.3983 126.386C89.4327 120.105 96.3814 116.682 102.48 118.891ZM115.832 166.833L115.832 166.833L115.832 166.833Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.388 153.491C124.448 153.641 124.483 153.805 124.488 153.976C124.545 156.211 123.681 158.353 122.055 160.008C120.392 161.701 118.194 162.623 115.866 162.604C115.085 162.597 114.458 161.959 114.465 161.179C114.471 160.398 115.109 159.771 115.89 159.777C117.444 159.79 118.917 159.169 120.039 158.026C121.123 156.923 121.7 155.51 121.662 154.049C121.642 153.269 122.258 152.62 123.038 152.6C123.647 152.584 124.176 152.956 124.388 153.491Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.169 152.044L132.169 152.044C147.704 146.992 163.218 151.528 173.585 164.151L173.586 164.152C177.702 169.164 176.795 176.857 171.554 180.869L171.554 180.869C166.779 184.525 160.957 183.876 157.349 180.344L156.668 181.04L157.349 180.344C151.875 174.986 144.625 172.866 137.126 174.432C132.206 175.46 126.938 172.901 124.876 167.224C122.622 161.019 126 154.049 132.169 152.044ZM172.161 181.663L172.162 181.663L172.161 181.663Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M170.714 165.879C170.853 165.961 170.981 166.069 171.09 166.201C172.509 167.929 173.143 170.149 172.878 172.454C172.606 174.812 171.438 176.89 169.59 178.305C168.97 178.78 168.083 178.662 167.609 178.042C167.134 177.422 167.252 176.535 167.872 176.061C169.106 175.116 169.887 173.72 170.07 172.129C170.247 170.593 169.834 169.124 168.906 167.994C168.411 167.391 168.498 166.501 169.101 166.005C169.571 165.619 170.217 165.588 170.714 165.879Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.1752 217.612L50.1753 217.612C62.8716 207.333 78.9813 206.013 93.1812 214.088L93.1813 214.088C98.8199 217.294 100.726 224.802 97.2697 230.426L97.2697 230.426C94.121 235.549 88.4521 237.027 83.8192 235.021L83.4323 235.915L83.8192 235.021C76.7896 231.978 69.2609 232.594 62.8197 236.741C58.5937 239.462 52.7588 238.96 48.8005 234.397C44.4744 229.411 45.1336 221.693 50.1752 217.612ZM98.1214 230.949L98.1216 230.949L98.1214 230.949Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.1187 216.73C91.278 216.756 91.4362 216.811 91.5851 216.895C93.5284 218.001 94.916 219.846 95.493 222.094C96.0832 224.393 95.7371 226.751 94.5185 228.734C94.1095 229.399 93.2392 229.606 92.5742 229.198C91.9093 228.789 91.7021 227.919 92.1104 227.254C92.9246 225.93 93.1539 224.347 92.7551 222.796C92.3706 221.298 91.4588 220.074 90.1878 219.352C89.5096 218.966 89.2721 218.104 89.6581 217.425C89.959 216.896 90.5507 216.635 91.1187 216.73Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.573 331.684L109.573 331.684C93.2385 331.461 80.0127 322.169 74.2652 306.878L74.2651 306.878C71.9825 300.807 75.3204 293.817 81.5747 291.706L81.5748 291.706C87.2723 289.783 92.5748 292.274 94.8524 296.779L95.7215 296.34L94.8524 296.779C98.3084 303.616 104.489 307.958 112.093 308.892C117.081 309.504 121.244 313.624 121.368 319.662C121.503 326.262 116.058 331.772 109.573 331.684ZM81.2551 290.759L81.255 290.759L81.2551 290.759Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.5408 306.168C77.4353 306.045 77.3486 305.902 77.288 305.742C76.5018 303.649 76.6163 301.343 77.6103 299.246C78.6277 297.102 80.4026 295.511 82.6079 294.766C83.3476 294.517 84.149 294.914 84.3989 295.653C84.6483 296.393 84.2507 297.195 83.5115 297.445C82.0387 297.941 80.8499 299.011 80.1641 300.458C79.5012 301.856 79.4192 303.379 79.9336 304.748C80.208 305.478 79.8389 306.293 79.1079 306.568C78.5384 306.782 77.9169 306.604 77.5408 306.168Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M184.211 253.477L184.211 253.477C199.216 247.02 215.081 250.111 226.564 261.729L226.565 261.729C231.124 266.342 230.927 274.086 226.077 278.563L226.077 278.563C221.658 282.642 215.801 282.53 211.884 279.345L211.27 280.101L211.884 279.345C205.941 274.512 198.527 273.067 191.203 275.315C186.399 276.79 180.918 274.726 178.343 269.263C175.528 263.291 178.253 256.04 184.211 253.477ZM226.755 279.298L226.755 279.298L226.755 279.298Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M223.864 263.714C224.01 263.782 224.147 263.878 224.268 263.999C225.839 265.59 226.675 267.742 226.622 270.062C226.568 272.435 225.596 274.611 223.886 276.191C223.312 276.72 222.419 276.684 221.889 276.111C221.36 275.537 221.396 274.643 221.969 274.113C223.111 273.059 223.76 271.598 223.796 269.997C223.832 268.45 223.286 267.026 222.258 265.986C221.709 265.431 221.714 264.536 222.27 263.987C222.702 263.56 223.343 263.469 223.864 263.714Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.3114 367.245L98.3114 367.245C83.1106 373.228 67.3504 369.639 56.2383 357.665L56.2382 357.665C51.8256 352.911 52.2664 345.178 57.255 340.855L57.2551 340.855C61.7994 336.917 67.6502 337.213 71.4649 340.52L72.1028 339.784L71.4649 340.52C77.2532 345.537 84.6184 347.214 92.009 345.198C96.8578 343.874 102.271 346.11 104.673 351.651C107.298 357.708 104.347 364.87 98.3114 367.245ZM56.6003 340.099L56.6001 340.099L56.6003 340.099Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.0004 355.767C58.8565 355.694 58.7221 355.594 58.6053 355.469C57.0848 353.83 56.317 351.652 56.4428 349.335C56.5718 346.965 57.6115 344.82 59.3703 343.295C59.9605 342.784 60.8528 342.849 61.3641 343.438C61.8751 344.028 61.8108 344.921 61.2213 345.432C60.0465 346.45 59.3516 347.89 59.2652 349.489C59.1812 351.033 59.6825 352.475 60.6771 353.546C61.2078 354.118 61.1748 355.012 60.6024 355.544C60.1564 355.957 59.5137 356.028 59.0004 355.767Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.2487 226.294L77.2488 226.294C92.6296 220.791 108.27 224.871 119.001 237.187L119.001 237.187C123.263 242.077 122.58 249.793 117.458 253.957L117.458 253.958C112.793 257.751 106.954 257.272 103.245 253.847L102.584 254.563L103.245 253.847C97.6165 248.651 90.3074 246.744 82.8573 248.528C77.9694 249.699 72.6288 247.295 70.4015 241.681C67.9674 235.544 71.1412 228.478 77.2487 226.294ZM118.089 254.733L118.089 254.733L118.089 254.733Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.181 238.999C116.322 239.076 116.453 239.18 116.566 239.309C118.035 240.994 118.734 243.195 118.535 245.507C118.332 247.872 117.226 249.983 115.42 251.452C114.814 251.944 113.924 251.852 113.432 251.247C112.94 250.641 113.032 249.751 113.637 249.259C114.843 248.278 115.583 246.86 115.719 245.265C115.852 243.724 115.396 242.268 114.435 241.165C113.923 240.577 113.984 239.684 114.572 239.171C115.031 238.772 115.676 238.721 116.181 238.999Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M222.197 268.746L222.197 268.746C238.155 265.251 253.146 271.295 262.218 284.88L262.218 284.88C265.82 290.274 264.158 297.84 258.546 301.316L258.546 301.316C253.435 304.483 247.705 303.263 244.463 299.393L243.717 300.018L244.463 299.393C239.544 293.521 232.539 290.696 224.922 291.514C219.924 292.052 214.934 288.986 213.442 283.133C211.811 276.736 215.861 270.133 222.197 268.746ZM259.073 302.166L259.073 302.166L259.073 302.166Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M259.189 286.316C259.32 286.411 259.437 286.531 259.532 286.673C260.773 288.533 261.186 290.805 260.694 293.072C260.191 295.392 258.824 297.345 256.845 298.571C256.181 298.982 255.311 298.777 254.899 298.114C254.488 297.45 254.693 296.579 255.357 296.168C256.678 295.349 257.593 294.038 257.932 292.472C258.26 290.961 257.993 289.458 257.181 288.242C256.748 287.593 256.923 286.716 257.572 286.282C258.078 285.945 258.724 285.977 259.189 286.316Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M160.977 137.919L160.977 137.919C167.555 122.966 181.271 114.414 197.592 115.088L197.592 115.088C204.073 115.355 209.207 121.156 208.71 127.738L208.71 127.738C208.257 133.734 203.895 137.645 198.858 137.984L198.923 138.956L198.858 137.984C191.215 138.499 184.805 142.495 180.979 149.132C178.468 153.486 173.051 155.712 167.443 153.47C161.313 151.018 158.364 143.856 160.977 137.919ZM209.707 127.813L209.707 127.813L209.707 127.813Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M196.968 118.381C197.122 118.332 197.288 118.308 197.459 118.315C199.693 118.407 201.772 119.413 203.314 121.146C204.891 122.919 205.664 125.174 205.489 127.495C205.43 128.274 204.751 128.857 203.973 128.798C203.195 128.739 202.612 128.06 202.67 127.282C202.788 125.732 202.267 124.22 201.202 123.024C200.174 121.869 198.803 121.199 197.342 121.138C196.562 121.106 195.956 120.448 195.988 119.668C196.014 119.06 196.42 118.557 196.968 118.381Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.011 270.012L124.011 270.012C109.384 277.285 93.373 275.071 81.2678 264.103L81.2678 264.103C76.4609 259.748 76.2318 252.005 80.8282 247.267L80.8283 247.267C85.0153 242.951 90.8699 242.741 94.9561 245.706L95.5279 244.917L94.9561 245.706C101.156 250.204 108.639 251.239 115.827 248.591C120.544 246.854 126.13 248.613 129.002 253.926C132.141 259.734 129.82 267.124 124.011 270.012ZM80.1107 246.571L80.1105 246.571L80.1107 246.571Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.2136 160.273L81.5912 161.055L82.2136 160.273C76.0599 155.379 68.3528 154.813 60.7836 158.574C58.2615 159.827 55.6371 160.012 53.3487 159.179C51.0666 158.348 49.0149 156.468 47.7046 153.391C46.2774 150.039 46.2741 146.042 47.4554 142.345C48.6364 138.65 50.9745 135.341 54.1152 133.341L54.1152 133.341C61.9502 128.349 69.9311 126.21 77.3789 126.791C84.8191 127.37 91.8023 130.668 97.6543 136.683L97.6544 136.683C99.956 139.049 101.082 142.561 100.953 146.325C100.824 150.083 99.4421 154.002 96.8478 157.098L96.8478 157.098C92.1028 162.761 86.081 163.349 82.2136 160.273ZM97.6143 157.74L97.6141 157.74L97.6143 157.74Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.317 237.409L173.317 237.408C185.001 225.991 200.917 223.175 215.808 229.892L215.808 229.892C221.721 232.558 224.319 239.856 221.401 245.777L221.401 245.777C218.744 251.171 213.237 253.171 208.438 251.606L208.136 252.532L208.438 251.606C201.155 249.231 193.716 250.547 187.69 255.276C183.736 258.379 177.88 258.422 173.513 254.249C168.741 249.688 168.678 241.942 173.317 237.409ZM222.298 246.219L222.298 246.219L222.298 246.219Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M214 232.715C214.161 232.726 214.324 232.766 214.48 232.836C216.518 233.755 218.072 235.464 218.856 237.647C219.657 239.881 219.533 242.262 218.504 244.35C218.159 245.05 217.312 245.338 216.612 244.993C215.911 244.648 215.624 243.801 215.969 243.1C216.656 241.706 216.737 240.109 216.195 238.602C215.673 237.146 214.651 236.013 213.318 235.412C212.607 235.091 212.29 234.254 212.611 233.543C212.861 232.988 213.426 232.673 214 232.715Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.197 262.746L111.197 262.746C127.155 259.251 142.146 265.295 151.218 278.88L151.218 278.88C154.82 284.274 153.158 291.84 147.546 295.316L147.546 295.316C142.435 298.483 136.705 297.263 133.463 293.393L132.717 294.018L133.463 293.393C128.544 287.521 121.539 284.696 113.922 285.514C108.924 286.052 103.934 282.986 102.442 277.133C100.811 270.736 104.861 264.133 111.197 262.746ZM148.073 296.166L148.073 296.166L148.073 296.166Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M148.189 280.316C148.32 280.411 148.437 280.531 148.532 280.673C149.773 282.533 150.186 284.805 149.694 287.072C149.191 289.392 147.824 291.345 145.845 292.571C145.181 292.982 144.311 292.777 143.899 292.114C143.488 291.45 143.693 290.579 144.357 290.168C145.678 289.349 146.593 288.038 146.932 286.472C147.26 284.961 146.993 283.458 146.181 282.242C145.748 281.593 145.923 280.716 146.572 280.282C147.078 279.945 147.724 279.977 148.189 280.316Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.133 142.856L107.133 142.856C121.558 135.191 137.624 136.972 150.02 147.611L150.02 147.611C154.943 151.834 155.38 159.568 150.913 164.428L150.913 164.428C146.844 168.855 140.997 169.223 136.833 166.37L136.282 167.173L136.833 166.37C130.513 162.04 123.006 161.208 115.891 164.048C111.223 165.912 105.592 164.304 102.578 159.07C99.2833 153.349 101.404 145.899 107.133 142.856ZM151.649 165.104L151.649 165.105L151.649 165.104Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M197.997 287.014L197.997 287.014C181.67 286.472 168.629 276.923 163.182 261.523L163.182 261.523C161.018 255.408 164.492 248.485 170.787 246.497L170.787 246.497C176.521 244.686 181.773 247.28 183.962 251.829L184.84 251.407L183.962 251.829C187.284 258.731 193.379 263.194 200.963 264.276C205.938 264.986 210.02 269.186 210.025 275.226C210.031 281.827 204.48 287.23 197.997 287.014ZM170.485 245.543L170.485 245.543L170.485 245.543Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.351 223.238L52.351 223.238C67.8719 228.333 77.7156 241.153 78.63 257.463L78.63 257.463C78.9936 263.939 73.719 269.612 67.1197 269.756L67.1197 269.756C61.1078 269.888 56.7923 265.927 55.9654 260.946L55.0047 261.106L55.9654 260.946C54.7107 253.39 50.1106 247.398 43.1335 244.235C38.556 242.159 35.8146 236.984 37.5017 231.184C39.3459 224.845 46.1881 221.215 52.351 223.238ZM67.1416 270.756L67.1416 270.756L67.1416 270.756Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.2918 257.161C75.3559 257.31 75.3958 257.472 75.4058 257.643C75.5306 259.875 74.7319 262.042 73.1567 263.745C71.5448 265.488 69.3754 266.476 67.0484 266.527C66.268 266.544 65.622 265.925 65.6045 265.145C65.5877 264.364 66.2066 263.718 66.9867 263.701C68.5406 263.667 69.9948 263.002 71.0819 261.826C72.1321 260.69 72.6658 259.261 72.584 257.801C72.5405 257.022 73.1362 256.355 73.916 256.311C74.5233 256.277 75.0632 256.633 75.2918 257.161Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.5602 290.972L88.5601 290.972C80.4729 305.166 65.9471 312.255 49.7826 309.899L49.7825 309.899C43.364 308.964 38.8568 302.664 40.031 296.169L40.031 296.169C41.1004 290.251 45.8432 286.812 50.8883 286.995L50.9235 286.022L50.8883 286.995C58.5433 287.272 65.3319 283.959 69.8231 277.753C72.7697 273.682 78.3878 272.027 83.7344 274.837C89.5781 277.908 91.7717 285.337 88.5602 290.972ZM39.0472 295.991L39.047 295.991L39.0472 295.991Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_d_117_1051)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.5602 165.972L76.5601 165.972C68.4729 180.166 53.9471 187.255 37.7826 184.899L37.7825 184.899C31.364 183.964 26.8568 177.664 28.031 171.169L28.031 171.169C29.1004 165.251 33.8432 161.812 38.8883 161.995L38.9235 161.022L38.8883 161.995C46.5433 162.272 53.3319 158.959 57.8231 152.753C60.7697 148.682 66.3878 147.027 71.7344 149.837C77.5781 152.908 79.7717 160.337 76.5602 165.972ZM27.0472 170.991L27.047 170.991L27.0472 170.991Z\",\n fill: \"#4BEC78\",\n stroke: \"black\",\n strokeWidth: 2\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M204.211 292.478L204.211 292.478C219.216 286.021 235.081 289.112 246.564 300.73L246.565 300.73C251.124 305.343 250.927 313.087 246.077 317.564L246.077 317.564C241.658 321.643 235.801 321.531 231.884 318.346L231.27 319.102L231.884 318.346C225.941 313.513 218.527 312.068 211.203 314.316C206.399 315.791 200.918 313.727 198.343 308.264C195.528 302.292 198.253 295.041 204.211 292.478ZM246.755 318.299L246.755 318.299L246.755 318.299Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.8643 274.031L67.8643 274.031C51.5697 275.187 37.607 267.045 30.5895 252.293L30.5895 252.293C27.8027 246.436 30.5388 239.189 36.5927 236.559L36.5928 236.559C42.1077 234.162 47.6014 236.196 50.2511 240.493L51.0801 239.982L50.2511 240.493C54.2717 247.013 60.7968 250.819 68.4522 251.108C73.4747 251.297 77.9704 255.05 78.6031 261.057C79.2944 267.622 74.3346 273.572 67.8643 274.031ZM36.1943 235.642L36.1942 235.642L36.1943 235.642Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M175.612 277.187L175.612 277.187C175.349 293.521 166.025 306.723 150.719 312.433L150.719 312.433C144.642 314.701 137.661 311.345 135.566 305.086L135.566 305.086C133.657 299.383 136.161 294.087 140.672 291.821L140.235 290.951L140.672 291.821C147.516 288.382 151.875 282.212 152.827 274.61C153.452 269.623 157.581 265.471 163.62 265.362C170.221 265.244 175.717 270.702 175.612 277.187ZM134.618 305.403L134.617 305.403L134.618 305.403Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.017 309.156C149.894 309.261 149.751 309.348 149.591 309.408C147.496 310.189 145.189 310.069 143.096 309.069C140.954 308.047 139.367 306.268 138.628 304.061C138.38 303.32 138.78 302.52 139.52 302.272C140.26 302.024 141.06 302.424 141.308 303.164C141.801 304.638 142.868 305.829 144.314 306.519C145.709 307.185 147.233 307.271 148.603 306.76C149.334 306.487 150.148 306.858 150.421 307.59C150.633 308.16 150.454 308.781 150.017 309.156Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M238.856 210.528L238.856 210.528C250.782 221.691 254.303 237.467 248.257 252.642L248.257 252.642C245.856 258.668 238.682 261.588 232.637 258.937L232.636 258.937C227.129 256.522 224.886 251.11 226.236 246.246L225.298 245.985L226.236 246.246C228.284 238.865 226.639 231.492 221.646 225.682C218.37 221.87 218.066 216.021 222.04 211.474C226.385 206.503 234.12 206.095 238.856 210.528ZM232.235 259.853L232.235 259.853L232.235 259.853Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M245.357 250.962C245.353 251.123 245.32 251.287 245.257 251.446C244.43 253.523 242.792 255.151 240.645 256.032C238.449 256.932 236.065 256.914 233.934 255.979C233.219 255.666 232.894 254.832 233.207 254.117C233.521 253.402 234.354 253.078 235.069 253.391C236.492 254.015 238.092 254.025 239.573 253.416C241.004 252.83 242.091 251.758 242.632 250.4C242.921 249.675 243.742 249.322 244.468 249.611C245.033 249.836 245.373 250.386 245.357 250.962Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M147.317 302.409L147.317 302.408C159.001 290.991 174.917 288.175 189.808 294.892L189.808 294.892C195.721 297.558 198.319 304.856 195.401 310.777L195.401 310.777C192.744 316.171 187.237 318.171 182.438 316.606L182.136 317.532L182.438 316.606C175.155 314.231 167.716 315.547 161.69 320.276C157.736 323.379 151.88 323.422 147.513 319.249C142.741 314.688 142.678 306.942 147.317 302.409ZM196.298 311.219L196.298 311.219L196.298 311.219Z\",\n fill: \"#553BF4\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M188 297.715C188.161 297.726 188.324 297.766 188.48 297.836C190.518 298.755 192.072 300.464 192.856 302.647C193.657 304.881 193.533 307.262 192.504 309.35C192.159 310.05 191.312 310.338 190.612 309.993C189.911 309.648 189.624 308.801 189.969 308.1C190.656 306.706 190.737 305.109 190.195 303.602C189.673 302.146 188.651 301.013 187.318 300.412C186.607 300.091 186.29 299.254 186.611 298.543C186.861 297.988 187.426 297.673 188 297.715Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M262.193 325.482L262.193 325.482C250.618 337.009 234.729 339.974 219.776 333.399L219.775 333.399C213.838 330.788 211.171 323.515 214.033 317.567L214.033 317.567C216.639 312.148 222.127 310.096 226.941 311.616L227.234 310.687L226.941 311.616C234.246 313.922 241.671 312.536 247.653 307.75C251.578 304.61 257.433 304.512 261.839 308.644C266.654 313.16 266.79 320.905 262.193 325.482ZM213.132 317.134L213.132 317.134L213.132 317.134Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M258.193 170.707L258.193 170.707C246.618 182.234 230.729 185.199 215.776 178.623L215.775 178.623C209.838 176.013 207.171 168.74 210.033 162.792L210.033 162.792C212.639 157.373 218.127 155.321 222.941 156.841L223.234 155.912L222.941 156.841C230.246 159.146 237.671 157.761 243.653 152.975C247.578 149.835 253.433 149.736 257.839 153.868C262.654 158.385 262.79 166.13 258.193 170.707ZM209.132 162.358L209.132 162.358L209.132 162.358Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M244.657 261.203L244.657 261.203C227.991 265.42 212.887 259.501 204.279 245.457L204.279 245.457C200.866 239.888 202.947 231.739 209.025 227.812L209.025 227.812C214.533 224.253 220.352 225.415 223.444 229.349L224.23 228.731L223.444 229.349C228.226 235.432 235.33 238.194 243.224 237.083C248.399 236.354 253.344 239.414 254.567 245.542C255.915 252.299 251.34 259.512 244.657 261.203Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.515 243.747C207.386 243.651 207.272 243.528 207.181 243.381C206 241.453 205.696 239.062 206.324 236.647C206.968 234.176 208.482 232.066 210.589 230.704C211.295 230.248 212.183 230.437 212.572 231.125C212.96 231.814 212.702 232.743 211.996 233.199C210.589 234.108 209.575 235.525 209.142 237.193C208.723 238.802 208.917 240.384 209.689 241.644C210.101 242.317 209.875 243.251 209.182 243.731C208.642 244.104 207.977 244.091 207.515 243.747Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.7 345.048L150.7 345.048C134.487 343.049 122.351 332.373 118.301 316.548L118.301 316.548C116.693 310.264 120.771 303.679 127.218 302.261L127.218 302.261C133.091 300.97 138.091 304.023 139.865 308.749L140.777 308.407L139.865 308.749C142.557 315.921 148.228 320.91 155.685 322.665C160.578 323.817 164.268 328.365 163.733 334.381C163.149 340.957 157.138 345.842 150.7 345.048ZM127.003 301.285L127.003 301.285L127.003 301.285Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.635 316.198C121.543 316.065 121.473 315.913 121.43 315.747C120.876 313.581 121.241 311.301 122.457 309.325C123.702 307.304 125.639 305.915 127.912 305.415C128.675 305.248 129.428 305.73 129.596 306.492C129.763 307.255 129.281 308.008 128.519 308.176C127.001 308.51 125.703 309.444 124.864 310.808C124.053 312.125 123.805 313.63 124.168 315.047C124.361 315.803 123.905 316.573 123.149 316.766C122.56 316.917 121.961 316.672 121.635 316.198Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M137.446 222.336L137.446 222.336C138.919 206.067 149.197 193.592 164.884 189.033L164.884 189.033C171.112 187.223 177.826 191.087 179.451 197.484L179.451 197.484C180.932 203.312 178.042 208.408 173.375 210.334L173.747 211.234L173.375 210.334C166.294 213.256 161.491 219.086 159.977 226.596C158.984 231.523 154.558 235.358 148.528 235.018C141.937 234.647 136.86 228.796 137.446 222.336ZM180.42 197.238L180.42 197.238L180.42 197.238Z\",\n fill: \"#EE38C6\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165.342 192.353C165.472 192.258 165.621 192.182 165.785 192.134C167.932 191.51 170.223 191.801 172.237 192.953C174.297 194.132 175.748 196.023 176.321 198.279C176.513 199.036 176.055 199.804 175.299 199.997C174.543 200.189 173.774 199.731 173.581 198.975C173.199 197.468 172.224 196.201 170.833 195.406C169.491 194.638 167.978 194.44 166.574 194.848C165.824 195.065 165.04 194.635 164.822 193.885C164.653 193.301 164.878 192.695 165.342 192.353Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.0584 339.046L98.0585 339.045C106.803 325.247 121.645 318.847 137.681 321.959L137.682 321.959C144.049 323.194 148.256 329.699 146.778 336.132L146.778 336.132C145.432 341.993 140.533 345.205 135.502 344.786L135.421 345.757L135.502 344.786C127.869 344.15 120.932 347.141 116.155 353.129C113.02 357.058 107.331 358.447 102.122 355.39C96.4286 352.048 94.586 344.524 98.0584 339.046ZM147.752 336.356L147.753 336.356L147.752 336.356Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M218.428 320.924L218.428 320.924C209.055 334.303 193.933 340.011 178.057 336.161L178.057 336.161C171.754 334.633 167.852 327.941 169.625 321.583L169.625 321.583C171.241 315.791 176.283 312.808 181.289 313.459L181.415 312.493L181.289 313.459C188.885 314.447 195.952 311.78 201.002 306.019C204.314 302.239 210.062 301.114 215.124 304.409C220.656 308.01 222.149 315.611 218.428 320.924ZM168.662 321.314L168.662 321.314L168.662 321.314Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M179.312 333.053C179.151 333.072 178.984 333.063 178.818 333.023C176.645 332.496 174.803 331.104 173.629 329.103C172.428 327.055 172.111 324.692 172.736 322.45C172.946 321.698 173.725 321.259 174.477 321.469C175.229 321.679 175.668 322.458 175.459 323.21C175.041 324.707 175.256 326.292 176.067 327.673C176.85 329.007 178.063 329.932 179.484 330.276C180.243 330.461 180.708 331.224 180.524 331.983C180.381 332.574 179.884 332.988 179.312 333.053Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.0717 200.207L38.0718 200.207C49.0337 188.096 64.7478 184.311 80.022 190.103L80.022 190.103C86.0871 192.402 89.1272 199.527 86.5778 205.615L86.5778 205.615C84.2555 211.162 78.8819 213.496 73.9955 212.227L73.7508 213.17L73.9954 212.227C66.581 210.303 59.2371 212.072 53.5114 217.161C49.7549 220.501 43.9122 220.903 39.2986 217.004C34.2561 212.744 33.7188 205.016 38.0717 200.207ZM87.4999 206.001L87.5002 206.002L87.4999 206.001Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.3911 193.031C78.5525 193.032 78.7173 193.062 78.8774 193.122C80.9677 193.915 82.623 195.526 83.5393 197.657C84.4765 199.838 84.4978 202.221 83.5991 204.369C83.2973 205.089 82.4694 205.427 81.7494 205.126C81.0295 204.824 80.6907 203.997 80.9917 203.277C81.5923 201.843 81.5751 200.244 80.9422 198.773C80.3316 197.352 79.2422 196.283 77.875 195.765C77.1455 195.488 76.7781 194.673 77.0549 193.942C77.2708 193.374 77.8153 193.025 78.3911 193.031Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M257.221 264.707L257.221 264.707C248.681 278.633 233.935 285.252 217.855 282.377L217.854 282.377C211.469 281.235 207.167 274.794 208.55 268.339L208.55 268.339C209.809 262.459 214.66 259.175 219.697 259.52L219.763 258.548L219.697 259.52C227.339 260.043 234.23 256.951 238.919 250.892C241.995 246.917 247.663 245.445 252.917 248.425C258.659 251.682 260.612 259.178 257.221 264.707ZM207.572 268.13L207.572 268.13L207.572 268.13Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M203.132 157.435L203.132 157.435C191.391 168.792 175.46 171.526 160.604 164.733L160.604 164.733C154.705 162.036 152.144 154.725 155.092 148.82L155.092 148.819C157.778 143.439 163.294 141.468 168.086 143.057L168.392 142.133L168.086 143.057C175.356 145.469 182.801 144.192 188.852 139.494C192.822 136.411 198.678 136.398 203.023 140.594C207.772 145.18 207.795 152.926 203.132 157.435ZM154.198 148.373L154.198 148.373L154.198 148.373Z\",\n fill: \"#F43F3F\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.091 361.408L180.091 361.408C164.809 355.635 155.539 342.394 155.343 326.06L155.343 326.06C155.265 319.574 160.784 314.138 167.383 314.284L167.383 314.284C173.395 314.417 177.532 318.565 178.139 323.577L179.106 323.46L178.139 323.577C179.06 331.181 183.392 337.369 190.223 340.837C194.705 343.112 197.216 348.403 195.275 354.122C193.154 360.374 186.159 363.7 180.091 361.408ZM167.405 313.285L167.405 313.285L167.405 313.285Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M158.664 326.507C158.607 326.356 158.574 326.192 158.572 326.021C158.545 323.785 159.438 321.656 161.087 320.023C162.774 318.353 164.985 317.462 167.312 317.513C168.092 317.53 168.71 318.177 168.694 318.957C168.676 319.738 168.029 320.356 167.249 320.339C165.695 320.304 164.213 320.905 163.075 322.032C161.976 323.12 161.38 324.525 161.398 325.987C161.407 326.767 160.782 327.407 160.001 327.417C159.393 327.424 158.87 327.045 158.664 326.507Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.3431 319.854L65.3431 319.854C81.222 316.018 96.3392 321.739 105.7 335.126L105.7 335.126C109.417 340.442 107.917 348.041 102.382 351.637L102.382 351.637C97.3395 354.913 91.5849 353.815 88.2609 350.016L87.528 350.657L88.2609 350.016C83.2173 344.251 76.1526 341.577 68.5549 342.558C63.5703 343.202 58.5157 340.244 56.8982 334.425C55.1305 328.065 59.0379 321.376 65.3431 319.854ZM102.927 352.475L102.927 352.476L102.927 352.475Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M244.02 197.959L244.02 197.959C229.403 205.252 213.388 203.06 201.268 192.108L201.268 192.108C196.455 187.759 196.216 180.017 200.806 175.273L200.806 175.273C204.987 170.951 210.841 170.733 214.932 173.692L215.502 172.903L214.932 173.692C221.138 178.182 228.622 179.207 235.807 176.549C240.521 174.805 246.109 176.557 248.988 181.866C252.135 187.67 249.824 195.063 244.02 197.959ZM200.087 174.578L200.087 174.578L200.087 174.578Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M203.853 189.974C203.703 189.914 203.56 189.827 203.433 189.712C201.774 188.213 200.818 186.111 200.74 183.792C200.661 181.42 201.508 179.192 203.127 177.519C203.67 176.958 204.564 176.944 205.125 177.486C205.686 178.029 205.7 178.923 205.158 179.484C204.077 180.601 203.511 182.097 203.565 183.698C203.617 185.243 204.243 186.635 205.328 187.615C205.907 188.139 205.952 189.032 205.429 189.611C205.021 190.062 204.387 190.189 203.853 189.974Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.888 167.854L119.888 167.854C135.767 164.018 150.884 169.739 160.245 183.126L160.245 183.126C163.962 188.442 162.462 196.041 156.927 199.637L156.927 199.637C151.884 202.913 146.13 201.815 142.806 198.016L142.073 198.657L142.806 198.016C137.762 192.251 130.697 189.577 123.1 190.558C118.115 191.202 113.061 188.244 111.443 182.425C109.675 176.065 113.583 169.376 119.888 167.854ZM157.472 200.475L157.472 200.476L157.472 200.475Z\",\n fill: \"#3AE2F8\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M157.248 184.627C157.381 184.719 157.5 184.837 157.599 184.977C158.88 186.809 159.341 189.072 158.898 191.349C158.444 193.679 157.119 195.661 155.168 196.929C154.513 197.354 153.638 197.168 153.213 196.514C152.788 195.859 152.974 194.984 153.628 194.559C154.932 193.712 155.818 192.381 156.123 190.809C156.419 189.291 156.12 187.794 155.282 186.596C154.836 185.956 154.991 185.076 155.631 184.628C156.13 184.28 156.776 184.298 157.248 184.627Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.6604 314.967L83.6604 314.967C75.7251 329.245 61.2758 336.49 45.087 334.306L45.0869 334.306C38.6588 333.44 34.0847 327.188 35.1895 320.681L35.1895 320.681C36.1957 314.752 40.9015 311.263 45.9482 311.392L45.9731 310.418L45.9482 311.392C53.6057 311.587 60.3586 308.202 64.7834 301.948C67.6863 297.845 73.2864 296.131 78.6627 298.883C84.5389 301.892 86.8116 309.297 83.6604 314.967ZM34.2039 320.513L34.2036 320.513L34.2039 320.513Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.0135 331.085C45.8558 331.12 45.6887 331.129 45.5191 331.106C43.3035 330.807 41.3266 329.613 39.9516 327.745C38.545 325.833 37.9846 323.516 38.3739 321.221C38.5048 320.451 39.2346 319.934 40.004 320.064C40.7736 320.195 41.291 320.925 41.1607 321.694C40.9003 323.226 41.2791 324.78 42.2287 326.07C43.1451 327.316 44.4481 328.11 45.8971 328.305C46.6703 328.41 47.2129 329.121 47.1085 329.895C47.027 330.497 46.5757 330.96 46.0135 331.085Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M237.939 130.654L237.939 130.654C232.495 146.055 219.455 155.606 203.128 156.151L203.128 156.151C196.646 156.368 191.094 150.966 191.098 144.365L191.098 144.365C191.103 138.352 195.161 134.127 200.159 133.413L200.021 132.449L200.159 133.413C207.742 132.33 213.836 127.867 217.157 120.963C219.335 116.434 224.571 113.81 230.331 115.628C236.627 117.615 240.102 124.538 237.939 130.654ZM190.099 144.365L190.098 144.365L190.099 144.365Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 233,\n y: 141.114,\n width: 20,\n height: 216,\n rx: 10,\n fill: \"url(#paint0_linear_117_1051)\",\n fillOpacity: 0.4\n }), /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 216,\n rx: 10,\n transform: \"matrix(-1 0 0 1 68 141.114)\",\n fill: \"url(#paint1_linear_117_1051)\",\n fillOpacity: 0.4\n }), /*#__PURE__*/React.createElement(\"rect\", {\n width: 23,\n height: 216,\n rx: 11.5,\n transform: \"matrix(0 1 1 0 42 331.114)\",\n fill: \"url(#paint2_linear_117_1051)\",\n fillOpacity: 0.4\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.6604 171.967L89.6604 171.967C81.7251 186.245 67.2758 193.49 51.087 191.306L51.0869 191.306C44.6588 190.44 40.0847 184.188 41.1895 177.681L41.1895 177.681C42.1957 171.752 46.9015 168.263 51.9482 168.392L51.9731 167.418L51.9482 168.392C59.6057 168.587 66.3586 165.202 70.7834 158.948C73.6863 154.845 79.2864 153.131 84.6627 155.883C90.5389 158.892 92.8116 166.297 89.6604 171.967ZM40.2039 177.513L40.2036 177.513L40.2039 177.513Z\",\n fill: \"#F5CA32\",\n stroke: \"black\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.0135 188.085C51.8558 188.12 51.6887 188.129 51.5191 188.106C49.3035 187.807 47.3266 186.613 45.9516 184.745C44.545 182.833 43.9846 180.516 44.3739 178.221C44.5048 177.451 45.2346 176.934 46.004 177.064C46.7736 177.195 47.291 177.925 47.1607 178.694C46.9003 180.226 47.2791 181.78 48.2287 183.07C49.1451 184.316 50.4481 185.11 51.8971 185.305C52.6703 185.41 53.2129 186.121 53.1085 186.895C53.027 187.497 52.5757 187.96 52.0135 188.085Z\",\n fill: \"#FFF5F5\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3,\n filter: \"url(#filter1_f_117_1051)\"\n }, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"path-96-outside-1_117_1051\",\n maskUnits: \"userSpaceOnUse\",\n x: 84.8087,\n y: 262.841,\n width: 128.752,\n height: 77.8601,\n fill: \"black\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"white\",\n x: 84.8087,\n y: 262.841,\n width: 128.752,\n height: 77.8601\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M90.7653 272.528C90.7351 272.707 90.7063 272.887 90.6787 273.067C86.852 298.094 109.86 324.334 142.068 331.675C174.276 339.017 203.487 324.68 207.314 299.653C208.176 294.015 207.676 288.315 206.016 282.784L90.7653 272.528Z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.6787 273.067L94.6327 273.671L94.6327 273.671L90.6787 273.067ZM90.7653 272.528L91.1199 268.543L87.4356 268.216L86.8209 271.863L90.7653 272.528ZM142.068 331.675L141.179 335.575L141.179 335.575L142.068 331.675ZM207.314 299.653L211.268 300.257L211.268 300.257L207.314 299.653ZM206.016 282.784L209.847 281.634L209.069 279.04L206.371 278.799L206.016 282.784ZM94.6327 273.671C94.6572 273.511 94.6829 273.352 94.7097 273.192L86.8209 271.863C86.7874 272.062 86.7553 272.262 86.7246 272.462L94.6327 273.671ZM142.957 327.775C127.633 324.282 114.585 316.307 105.868 306.366C97.138 296.41 92.9407 284.737 94.6327 273.671L86.7246 272.462C84.59 286.423 89.9831 300.384 99.8525 311.64C109.735 322.911 124.294 331.726 141.179 335.575L142.957 327.775ZM203.36 299.048C201.679 310.044 194.423 318.886 183.571 324.211C172.687 329.553 158.284 331.269 142.957 327.775L141.179 335.575C158.06 339.423 174.366 337.641 187.096 331.393C199.859 325.129 209.123 314.289 211.268 300.257L203.36 299.048ZM202.185 283.934C203.69 288.948 204.125 294.047 203.36 299.048L211.268 300.257C212.228 293.982 211.663 287.683 209.847 281.634L202.185 283.934ZM206.371 278.799L91.1199 268.543L90.4108 276.512L205.662 286.768L206.371 278.799Z\",\n fill: \"white\",\n mask: \"url(#path-96-outside-1_117_1051)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M90.7653 272.528C90.7351 272.707 90.7063 272.887 90.6787 273.067C86.852 298.094 109.86 324.334 142.068 331.675C174.276 339.017 203.487 324.68 207.314 299.653C208.176 294.015 207.676 288.315 206.016 282.784L90.7653 272.528Z\",\n fill: \"white\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3,\n filter: \"url(#filter2_f_117_1051)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 108.397,\n cy: 204.865,\n rx: 33.5249,\n ry: 50.2873,\n transform: \"rotate(-1 108.397 204.865)\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.31 257.144C119.443 256.967 128.264 250.65 134.403 241.084C140.552 231.504 144.165 218.469 143.917 204.245C143.669 190.02 139.602 177.12 133.123 167.759C126.654 158.413 117.618 152.408 107.485 152.585C97.352 152.762 88.5307 159.079 82.3916 168.645C76.2433 178.225 72.6297 191.26 72.8779 205.485C73.1262 219.709 77.1926 232.609 83.6715 241.97C90.1407 251.316 99.1771 257.321 109.31 257.144Z\",\n stroke: \"white\",\n strokeWidth: 4\n })), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3,\n filter: \"url(#filter3_f_117_1051)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 189.398,\n cy: 204.865,\n rx: 33.5249,\n ry: 50.2873,\n transform: \"rotate(1 189.398 204.865)\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M188.485 257.144C198.618 257.321 207.655 251.316 214.124 241.97C220.603 232.61 224.669 219.709 224.917 205.485C225.166 191.261 221.552 178.226 215.404 168.645C209.265 159.079 200.443 152.762 190.311 152.585C180.178 152.409 171.141 158.413 164.672 167.76C158.193 177.12 154.127 190.021 153.879 204.245C153.63 218.469 157.244 231.504 163.392 241.084C169.531 250.651 178.353 256.967 188.485 257.144Z\",\n stroke: \"white\",\n strokeWidth: 4\n })), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"path-103-outside-2_117_1051\",\n maskUnits: \"userSpaceOnUse\",\n x: 84.2121,\n y: 262.842,\n width: 128.752,\n height: 77.8601,\n fill: \"black\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"white\",\n x: 84.2121,\n y: 262.842,\n width: 128.752,\n height: 77.8601\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M90.1686 272.529C90.1385 272.708 90.1096 272.888 90.082 273.068C86.2553 298.095 109.263 324.335 141.471 331.676C173.679 339.018 202.891 324.681 206.717 299.654C207.58 294.016 207.08 288.316 205.42 282.785L90.1686 272.529Z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.082 273.068L94.0361 273.672L94.0361 273.672L90.082 273.068ZM90.1686 272.529L90.5232 268.544L86.8389 268.217L86.2243 271.864L90.1686 272.529ZM141.471 331.676L140.582 335.576L140.582 335.576L141.471 331.676ZM206.717 299.654L210.671 300.258L210.671 300.258L206.717 299.654ZM205.42 282.785L209.251 281.635L208.472 279.041L205.774 278.8L205.42 282.785ZM94.0361 273.672C94.0606 273.512 94.0862 273.353 94.113 273.193L86.2243 271.864C86.1907 272.063 86.1586 272.263 86.128 272.463L94.0361 273.672ZM142.36 327.776C127.036 324.283 113.988 316.308 105.271 306.367C96.5414 296.411 92.3441 284.738 94.0361 273.672L86.128 272.463C83.9933 286.424 89.3864 300.385 99.2559 311.641C109.138 322.912 123.697 331.727 140.582 335.576L142.36 327.776ZM202.763 299.049C201.082 310.045 193.826 318.887 182.975 324.212C172.091 329.554 157.687 331.27 142.36 327.776L140.582 335.576C157.463 339.424 173.769 337.642 186.499 331.394C199.263 325.13 208.526 314.29 210.671 300.258L202.763 299.049ZM201.588 283.935C203.093 288.949 203.528 294.048 202.763 299.049L210.671 300.258C211.631 293.983 211.066 287.683 209.251 281.635L201.588 283.935ZM205.774 278.8L90.5232 268.544L89.8141 276.513L205.065 286.769L205.774 278.8Z\",\n fill: \"#272B42\",\n mask: \"url(#path-103-outside-2_117_1051)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M90.1686 272.529C90.1385 272.708 90.1096 272.888 90.082 273.068C86.2553 298.095 109.263 324.335 141.471 331.676C173.679 339.018 202.891 324.681 206.717 299.654C207.58 294.016 207.08 288.316 205.42 282.785L90.1686 272.529Z\",\n fill: \"#272B42\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M206.918 298.265L90.8479 287.936C89.635 283.037 89.3391 278.028 90.0976 273.067C90.1252 272.887 90.1541 272.707 90.1843 272.528L205.435 282.784C206.959 287.862 207.505 293.081 206.918 298.265Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M189.298 325.53C182.773 317.737 168.237 312.671 151.567 313.322C138.703 313.824 127.37 317.622 120.156 323.135C126.692 326.916 134.042 329.856 141.946 331.657C159.979 335.768 177.073 333.083 189.298 325.53Z\",\n fill: \"#272B42\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.3,\n filter: \"url(#filter4_f_117_1051)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 107.937,\n cy: 204.757,\n rx: 39.9296,\n ry: 58.0688,\n transform: \"rotate(-1 107.937 204.757)\",\n fill: \"white\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.744 256.967C118.876 256.79 127.698 250.474 133.837 240.907C139.985 231.327 143.599 218.292 143.35 204.068C143.102 189.844 139.036 176.943 132.557 167.583C126.088 158.236 117.051 152.232 106.918 152.408C96.7856 152.585 87.9643 158.902 81.8252 168.468C75.6769 178.049 72.0633 191.084 72.3115 205.308C72.5598 219.532 76.6262 232.433 83.105 241.793C89.5743 251.139 98.6107 257.144 108.744 256.967Z\",\n fill: \"white\",\n stroke: \"#272B42\",\n strokeWidth: 4\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M78.9312 228.989C77.3475 223.333 76.4245 217.162 76.3115 210.691C75.8268 182.922 90.4412 160.149 108.954 159.826C121.571 159.606 132.742 169.87 138.731 185.221C133.519 166.608 121.152 153.578 106.954 153.826C88.4412 154.149 73.8268 176.922 74.3115 204.691C74.4659 213.533 76.1328 221.817 78.9312 228.989Z\",\n fill: \"#D3D2D3\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 116.556,\n cy: 209.609,\n rx: 13.7622,\n ry: 20.6433,\n transform: \"rotate(-2 116.556 209.609)\",\n fill: \"#272B42\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 110.1,\n cy: 192.315,\n rx: 4.70114,\n ry: 7.05171,\n transform: \"rotate(-2 110.1 192.315)\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 110.1,\n cy: 192.315,\n rx: 4.70114,\n ry: 7.05171,\n transform: \"rotate(-2 110.1 192.315)\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M188.484 257.144C198.617 257.321 207.654 251.316 214.123 241.97C220.602 232.61 224.668 219.709 224.917 205.485C225.165 191.261 221.551 178.226 215.403 168.645C209.264 159.079 200.442 152.762 190.31 152.585C180.177 152.409 171.14 158.413 164.671 167.76C158.192 177.12 154.126 190.021 153.878 204.245C153.629 218.469 157.243 231.504 163.391 241.084C169.53 250.651 178.352 256.967 188.484 257.144Z\",\n fill: \"white\",\n stroke: \"#272B42\",\n strokeWidth: 4\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M218.088 230.167C220.887 222.899 222.554 214.506 222.708 205.545C223.193 177.407 208.578 154.331 190.066 154.004C175.868 153.752 163.5 166.955 158.288 185.817C164.277 170.262 175.449 159.86 188.066 160.083C206.578 160.411 221.193 183.487 220.708 211.625C220.595 218.182 219.672 224.436 218.088 230.167Z\",\n fill: \"#D3D2D3\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 180.617,\n cy: 209.787,\n rx: 13.7622,\n ry: 20.6433,\n transform: \"rotate(2 180.617 209.787)\",\n fill: \"#272B42\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 186.495,\n cy: 192.493,\n rx: 4.70114,\n ry: 7.05171,\n transform: \"rotate(2 186.495 192.493)\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 186.495,\n cy: 192.493,\n rx: 4.70114,\n ry: 7.05171,\n transform: \"rotate(2 186.495 192.493)\",\n fill: \"white\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46 92.1143H252V304.114C252 332.833 228.719 356.114 200 356.114H98C69.2812 356.114 46 332.833 46 304.114V92.1143Z\",\n stroke: \"#272B42\",\n strokeWidth: 4\n })), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter5_d_117_1051)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M286.888 142.033C283.42 147.699 278.048 151.94 271.738 153.99C276.754 156.788 280.785 161.07 283.28 166.252C285.782 171.45 286.615 177.297 285.664 182.989C284.713 188.681 282.025 193.938 277.97 198.036C273.915 202.133 268.693 204.87 263.022 205.87C265.012 209.673 266.019 213.916 265.951 218.211C265.883 222.505 264.742 226.714 262.633 230.452C260.523 234.191 257.513 237.34 253.876 239.611C253.265 239.993 252.639 240.348 252 240.676V205.114C252 199.892 248.664 195.448 244.006 193.799C237.168 186.16 231.632 173.8 233.037 155.855C217.783 153.275 214.017 144.232 214.017 133.982C214.024 133.189 214.081 132.396 214.19 131.61C210.868 134.201 206.857 135.749 202.659 136.059C198.462 136.369 194.267 135.427 190.603 133.352C186.939 131.276 183.97 128.161 182.069 124.397C180.169 120.634 179.422 116.391 179.923 112.202C177.354 113.581 174.532 114.419 171.628 114.664C168.725 114.91 165.802 114.557 163.039 113.629C160.277 112.701 157.733 111.216 155.563 109.266C153.394 107.316 151.646 104.942 150.426 102.29C150.253 101.918 149.977 101.603 149.632 101.382C149.286 101.161 148.885 101.043 148.475 101.043C148.065 101.043 147.664 101.161 147.318 101.382C146.973 101.603 146.697 101.918 146.524 102.29C145.304 104.942 143.556 107.316 141.386 109.266C139.217 111.216 136.673 112.701 133.911 113.629C131.148 114.557 128.225 114.91 125.322 114.664C122.418 114.419 119.595 113.581 117.027 112.202C117.546 116.396 116.81 120.65 114.914 124.424C113.018 128.198 110.046 131.323 106.375 133.402C102.704 135.481 98.5002 136.421 94.296 136.102C90.0918 135.783 86.0769 134.219 82.7603 131.61C82.8686 132.396 82.9261 133.189 82.9324 133.982C82.9324 144.232 79.1673 153.275 63.913 155.855C65.3227 173.482 59.9606 185.757 53.2739 193.425C47.9598 194.66 44 199.425 44 205.114V240.191C43.6927 240.016 43.3886 239.835 43.0881 239.647C39.4514 237.375 36.4409 234.226 34.3316 230.488C32.2223 226.75 31.0815 222.541 31.0135 218.247C30.9455 213.952 31.9524 209.709 33.9423 205.906C28.2712 204.906 23.0487 202.169 18.9937 198.072C14.9388 193.974 12.2509 188.717 11.3001 183.025C10.3492 177.333 11.1822 171.486 13.6843 166.288C16.1865 161.09 20.2347 156.797 25.2717 154.001C18.9581 151.951 13.5821 147.71 10.1118 142.04C6.64151 136.37 5.30494 129.645 6.34278 123.075C7.38063 116.505 10.7247 110.523 15.7728 106.205C20.8209 101.887 27.2412 99.5174 33.8778 99.5228C34.7312 99.5228 35.5775 99.5731 36.4165 99.6522C33.0679 95.0749 31.1915 89.5829 31.0379 83.9091C30.8842 78.2353 32.4606 72.6494 35.5566 67.8968C38.6526 63.1442 43.121 59.4509 48.3657 57.3097C53.6103 55.1685 59.3817 54.6813 64.9098 55.913C63.7124 50.1389 64.3709 44.133 66.791 38.7574C69.2111 33.3818 73.2683 28.913 78.3802 25.9923C83.4921 23.0717 89.3958 21.8494 95.2439 22.501C101.092 23.1526 106.584 25.6446 110.931 29.6191C114.34 22.5696 119.663 16.6256 126.288 12.4684C132.913 8.3112 140.572 6.10901 148.389 6.11427H148.59C156.406 6.10901 164.066 8.3112 170.691 12.4684C177.316 16.6256 182.638 22.5696 186.048 29.6191C190.396 25.6496 195.887 23.1619 201.733 22.5129C207.579 21.8639 213.48 23.0868 218.59 26.0063C223.7 28.9259 227.757 33.3921 230.178 38.7646C232.599 44.1372 233.261 50.1402 232.069 55.913C237.597 54.677 243.37 55.1607 248.618 57.2994C253.865 59.4381 258.336 63.1301 261.435 67.8826C264.534 72.6351 266.112 78.2218 265.96 83.8971C265.808 89.5724 263.932 95.0662 260.583 99.645C261.423 99.5659 262.269 99.5156 263.122 99.5156C269.759 99.5102 276.179 101.88 281.227 106.198C286.275 110.516 289.619 116.498 290.657 123.068C291.695 129.638 290.358 136.363 286.888 142.033Z\",\n fill: \"#272B42\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M74.1031 54.9218C75.2071 43.2477 85.0369 34.1143 97 34.1143C99.5752 34.1143 102.052 34.5375 104.363 35.3182C101.034 32.0967 96.4986 30.1143 91.5 30.1143C81.2827 30.1143 73 38.397 73 48.6143C73 50.8293 73.3893 52.9534 74.1031 54.9218Z\",\n fill: \"#4BEC78\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M223.485 55.022C223.302 52.5888 222.725 50.1435 221.719 47.7725C217.05 36.7586 204.804 31.2739 193.625 34.8145C195.159 33.3889 196.962 32.2014 199.001 31.3368C208.408 27.3484 219.267 31.7408 223.255 41.1474C225.207 45.7496 225.152 50.6993 223.485 55.022Z\",\n fill: \"#F54B4B\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M274.42 143.389C278.486 141.169 281.728 137.429 283.216 132.657C286.257 122.903 280.814 112.53 271.06 109.49C268.945 108.83 266.802 108.57 264.71 108.666C275.527 113.194 281.321 125.296 277.761 136.717C276.994 139.176 275.853 141.414 274.42 143.389Z\",\n fill: \"#3AE2F8\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M266.431 196.169C270.908 194.98 274.947 192.119 277.527 187.838C282.801 179.087 279.982 167.717 271.231 162.444C269.334 161.3 267.314 160.537 265.259 160.133C274.688 167.104 277.437 180.238 271.263 190.484C269.933 192.689 268.293 194.592 266.431 196.169Z\",\n fill: \"#7D6AF7\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M231.168 65.8365C242.893 65.699 253.016 74.5073 254.282 86.4032C254.554 88.9639 254.395 91.471 253.864 93.8523C256.715 90.201 258.206 85.4813 257.677 80.5109C256.596 70.351 247.483 62.9911 237.323 64.0722C235.121 64.3065 233.05 64.9184 231.168 65.8365Z\",\n fill: \"#4BEC78\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M173.684 31.8136C171.231 29.3982 168.377 27.1995 165.166 25.3273C150.254 16.6303 132.987 18.0804 125.203 28.2655C125.394 25.8938 126.075 23.6117 127.29 21.527C132.899 11.9105 147.77 10.1362 160.506 17.5641C166.737 21.198 171.303 26.3612 173.684 31.8136Z\",\n fill: \"#EF4ACB\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M66.6427 66.1846C64.2076 66.0281 61.706 66.2595 59.2183 66.9253C47.662 70.018 40.5276 81.3821 42.4791 92.9447C41.2807 91.2277 40.3555 89.2765 39.7829 87.1369C37.1415 77.267 43.0014 67.1245 52.8713 64.4831C57.6999 63.1909 62.5938 63.9333 66.6427 66.1846Z\",\n fill: \"#7D6AF7\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.304 144.095C15.8393 135.051 16.3458 121.643 24.8139 113.193C26.6367 111.374 28.6885 109.924 30.8764 108.844C26.2443 108.915 21.6335 110.716 18.0953 114.246C10.8631 121.463 10.8508 133.177 18.0679 140.409C19.6325 141.977 21.4083 143.206 23.304 144.095Z\",\n fill: \"#F54B4B\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M31.7218 197.208C22.3487 190.162 19.7048 177.007 25.9612 166.81C27.3079 164.616 28.9637 162.726 30.8381 161.164C26.3513 162.317 22.2897 165.146 19.6756 169.406C14.3322 178.115 17.0603 189.507 25.7689 194.85C27.6568 196.008 29.6707 196.787 31.7218 197.208Z\",\n fill: \"#EF4ACB\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M85.1035 94.9605C84.8811 83.2364 93.6158 73.0507 105.502 71.6987C108.061 71.4077 110.569 71.5484 112.954 72.0628C109.282 69.2383 104.552 67.7812 99.5855 68.3461C89.4337 69.5008 82.14 78.6665 83.2947 88.8183C83.545 91.019 84.1718 93.0854 85.1035 94.9605Z\",\n fill: \"#EF4ACB\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M70.4933 118.449C68.0582 118.293 65.5566 118.524 63.0689 119.19C51.5126 122.283 44.3781 133.647 46.3297 145.209C45.1312 143.492 44.2061 141.541 43.6335 139.402C40.9921 129.532 46.8519 119.389 56.7219 116.748C61.5505 115.456 66.4444 116.198 70.4933 118.449Z\",\n fill: \"#3AE2F8\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M133.01 70.0101C141.735 62.1748 155.153 62.1221 163.949 70.2306C165.842 71.976 167.376 73.9655 168.546 76.1063C168.282 71.4813 166.291 66.9497 162.616 63.5618C155.103 56.6366 143.4 57.1125 136.474 64.6248C134.973 66.2533 133.82 68.0789 133.01 70.0101Z\",\n fill: \"#3AE2F8\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M230.76 118.021C242.308 120.056 250.626 130.586 249.668 142.51C249.462 145.077 248.842 147.512 247.878 149.754C251.356 146.693 253.695 142.331 254.095 137.348C254.913 127.164 247.32 118.245 237.136 117.427C234.928 117.249 232.779 117.467 230.76 118.021Z\",\n fill: \"#F54B4B\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.281 91.7457L206.446 48.9542L211.795 52.725L181.63 95.5165L186.979 99.2871L217.144 56.4954L222.493 60.2661L192.328 103.058L197.677 106.828L227.842 64.0367L233.191 67.8073L203.026 110.599L208.375 114.37L238.539 71.5779L243.889 75.3487L213.724 118.14L219.072 121.911L253.008 73.7704C255.526 70.1984 256.502 65.8598 255.757 61.5537C255.012 57.2476 252.634 53.4892 249.062 50.9715L248.059 50.2644L253.423 42.6549C255.57 39.6089 258.735 37.3954 262.332 36.4218C266.263 35.3582 269.537 32.6496 271.316 28.9904C273.078 25.3639 273.187 21.1612 271.615 17.4601C270.04 13.7522 267.234 10.4013 263.502 7.77045C259.65 5.05501 255.425 3.53243 251.285 3.36754C250.317 3.32906 249.354 3.39419 248.413 3.55709C245.544 4.05373 242.868 5.45874 240.806 7.60342C238.013 10.5073 236.593 14.4777 236.91 18.4972C237.203 22.2141 236.182 25.9392 234.034 28.9865L228.67 36.5957L227.667 35.8886C220.293 30.6911 210.065 32.461 204.868 39.8345L170.932 87.975L176.281 91.7457ZM253.286 16.5831L258.635 20.3537L254.864 25.7026L249.515 21.932L253.286 16.5831Z\",\n fill: \"#F5CA32\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 215.575,\n y: 119.354,\n width: 49.4133,\n height: 54.3633,\n transform: \"rotate(-144.989 215.575 119.354)\",\n fill: \"#272B42\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M179.863 91.793L175.76 88.8785L206.232 45.7093L210.056 48.9994L179.863 91.793Z\",\n fill: \"#F5CA32\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M198.767 105.494L192.529 101.074L223.788 56.8008L229.734 61.6031L198.767 105.494Z\",\n fill: \"#F5CA32\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M218.065 119.806L211.828 115.385L243.087 71.1123L249.033 75.9147L218.065 119.806Z\",\n fill: \"#F5CA32\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 183.379,\n cy: 84.3072,\n r: 13.2047,\n fill: \"#272B42\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 198.107,\n cy: 104.114,\n r: 11.6811,\n fill: \"#272B42\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 216.39,\n cy: 111.224,\n r: 11.6811,\n fill: \"#272B42\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_d_117_1051\",\n x: 22.8447,\n y: 147.438,\n width: 60.1973,\n height: 46.9062,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 4\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 2\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_117_1051\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_117_1051\",\n result: \"shape\"\n })), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter1_f_117_1051\",\n x: 74.2617,\n y: 256.216,\n width: 149.469,\n height: 93.3809,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6,\n result: \"effect1_foregroundBlur_117_1051\"\n })), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter2_f_117_1051\",\n x: 58.8662,\n y: 138.581,\n width: 99.0625,\n height: 132.566,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6,\n result: \"effect1_foregroundBlur_117_1051\"\n })), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter3_f_117_1051\",\n x: 139.866,\n y: 138.582,\n width: 99.0635,\n height: 132.566,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6,\n result: \"effect1_foregroundBlur_117_1051\"\n })), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter4_f_117_1051\",\n x: 56,\n y: 134.692,\n width: 103.873,\n height: 140.129,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 6,\n result: \"effect1_foregroundBlur_117_1051\"\n })), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter5_d_117_1051\",\n x: 0,\n y: 4.11426,\n width: 297,\n height: 246.562,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }), /*#__PURE__*/React.createElement(\"feOffset\", {\n dy: 4\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 3\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n }), /*#__PURE__*/React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4 0\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_117_1051\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow_117_1051\",\n result: \"shape\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_117_1051\",\n x1: 244,\n y1: 240.614,\n x2: 233,\n y2: 240.614,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_117_1051\",\n x1: 11,\n y1: 99.5,\n x2: 9.94183e-8,\n y2: 99.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_117_1051\",\n x1: 12.65,\n y1: 99.5,\n x2: 1.14334e-7,\n y2: 99.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_117_1051\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44 90.1143H254V304.114C254 333.938 229.823 358.114 200 358.114H98C68.1766 358.114 44 333.938 44 304.114V90.1143Z\",\n fill: \"white\"\n })))));\n}\n\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgJellyFullImageDark);\nexport default __webpack_public_path__ + \"static/media/jelly-full-image-dark.4aa8a36df8eae78737a56fb2cd5cab00.svg\";\nexport { ForwardRef as ReactComponent };","import { styled } from '../../stitches.config';\r\nimport { Icon } from '../icons';\r\n\r\nexport const Container = styled('div', {\r\n // base styles\r\n position: 'fixed',\r\n top: '0px',\r\n left: '0px',\r\n right: '0px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n padding: '14px 20px',\r\n backgroundColor: '$navBackgroundColor',\r\n boxShadow: '0px 4px 4px rgba(0, 0, 0, 0.08)',\r\n zIndex: 2,\r\n\r\n // variants\r\n variants: {\r\n showAlerts: {\r\n true: {\r\n top: '38px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const LogoContainer = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n});\r\n\r\nexport const LogoIcon = styled('img', {\r\n width: '100px',\r\n marginRight: '7px',\r\n});\r\n\r\nexport const LogoName = styled(Icon, {\r\n width: '68px',\r\n marginRight: '7px',\r\n marginTop: '5px',\r\n});\r\n\r\nexport const ActionButtonsContainer = styled('div', {\r\n // base styles\r\n display: 'flex',\r\n alignItems: 'center',\r\n});\r\n","import { Link as RouterLink, useLocation } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useCallback } from 'react';\r\nimport {\r\n useThemeStore,\r\n themeActions,\r\n useAppDispatch,\r\n useSettingsStore,\r\n} from '../../store';\r\nimport { LinkButton } from '../core';\r\nimport { GlobalSearch } from '../search';\r\nimport { Plug } from '../plug';\r\nimport jelly from '../../assets/jelly-full-image.svg';\r\nimport jellyDark from '../../assets/jelly-full-image-dark.svg';\r\nimport {\r\n Container,\r\n LogoContainer,\r\n LogoIcon,\r\n ActionButtonsContainer,\r\n} from './styles';\r\nimport { Icon } from '../icons';\r\nimport { useBuyerOffers } from '../../hooks/use-buyer-offers';\r\n\r\n/* --------------------------------------------------------------------------\r\n * NavBar Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nexport const NavBar = () => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const { theme } = useThemeStore();\r\n const { showAlerts } = useSettingsStore();\r\n const { pathname } = useLocation();\r\n const isLightTheme = theme === 'lightTheme';\r\n\r\n const changeThemeHandler = useCallback(() => {\r\n dispatch(\r\n themeActions.setTheme(\r\n isLightTheme ? 'darkTheme' : 'lightTheme',\r\n ),\r\n );\r\n }, [isLightTheme, dispatch]);\r\n\r\n useBuyerOffers();\r\n\r\n return (\r\n \r\n pathname === '/' && window.location.reload()}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n useAppDispatch,\n RootState,\n usePlugStore,\n marketplaceActions,\n} from '../store';\nimport { OffersTableItem } from '../declarations/legacy';\nimport { parseE8SAmountToWICP } from '../utils/formatters';\n\nexport const useBuyerOffers = () => {\n const dispatch = useAppDispatch();\n const { isConnected, principalId: plugPrincipal } = usePlugStore();\n\n const recentlyMadeOffers = useSelector(\n (state: RootState) => state.marketplace.recentlyMadeOffers,\n );\n\n const recentlyPurchasedTokens = useSelector(\n (state: RootState) => state.marketplace.recentlyPurchasedTokens,\n );\n\n useEffect(() => {\n if (!isConnected || !plugPrincipal) return;\n\n dispatch(\n marketplaceActions.getBuyerOffers({\n userPrincipalId: plugPrincipal,\n onSuccess: (offers) => {\n if (!offers.length) return;\n\n // calculate sumOfUserAllowance\n let sumOfUserAllowance = 0;\n offers.map((offer: OffersTableItem) => {\n sumOfUserAllowance =\n sumOfUserAllowance +\n Number(parseE8SAmountToWICP(offer.price));\n });\n\n // update sumOfUserAllowance value in store\n dispatch(\n marketplaceActions.setSumOfUserAllowance(\n sumOfUserAllowance,\n ),\n );\n },\n onFailure: () => {\n // TODO: handle failure messages\n },\n }),\n );\n }, [\n dispatch,\n isConnected,\n plugPrincipal,\n recentlyMadeOffers,\n recentlyPurchasedTokens,\n ]);\n};\n","import { styled } from '../../stitches.config';\r\nimport { SkeletonBox } from '../core';\r\nimport { VideoPreload } from '../video-preload';\r\n\r\nexport const Container = styled('div', {\r\n width: '100%',\r\n marginBottom: '20px',\r\n});\r\n\r\nexport const Wrapper = styled('div', {\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n\r\n // variants\r\n variants: {\r\n centered: {\r\n true: {\r\n justifyContent: 'center',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const PreviewContainer = styled('div', {\r\n width: '100%',\r\n maxWidth: '480px',\r\n});\r\n\r\nexport const Video = styled(VideoPreload, {\r\n width: '100%',\r\n height: 'auto',\r\n borderRadius: '14px',\r\n maxWidth: '100%',\r\n maxHeight: '100%',\r\n minHeight: '470px',\r\n marginBottom: '10px',\r\n});\r\n\r\nexport const NFTPreview = styled('img', {\r\n width: '100%',\r\n maxWidth: '480px',\r\n marginBottom: '25px',\r\n});\r\n\r\nexport const NFTTraitsContainer = styled('div', {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n});\r\n\r\nexport const DetailsContainer = styled('div', {\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'flex-end',\r\n padding: '0px 0px 0px 30px',\r\n});\r\n\r\nexport const TraitsListLoaderSkeletonWrapper = styled('div', {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n});\r\n\r\nexport const NFTTraitsChipSkeleton = styled(SkeletonBox, {\r\n boxSizing: 'border-box',\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '12px 10px',\r\n borderRadius: '14px',\r\n minWidth: '150px',\r\n border: '1.5px solid $borderColor',\r\n margin: '0px 15px 15px 0px',\r\n height: '85px',\r\n\r\n '&:nth-child(3)': {\r\n marginRight: '0px',\r\n\r\n '@md': {\r\n marginRight: '15px',\r\n },\r\n },\r\n});\r\n\r\nexport const PreviewImageSkeleton = styled(SkeletonBox, {\r\n width: '100%',\r\n maxWidth: '480px',\r\n height: '425px',\r\n marginBottom: '10px',\r\n});\r\n\r\nexport const AccordionSkeletion = styled(SkeletonBox, {\r\n width: '100%',\r\n maxWidth: '670px',\r\n height: '214px',\r\n marginBottom: '25px',\r\n});\r\n","import React from 'react';\nimport {\n TraitsListLoaderSkeletonWrapper,\n NFTTraitsChipSkeleton,\n} from './styles';\n\nconst TraitsListLoader = () => (\n \n \n \n \n \n \n);\n\nexport default TraitsListLoader;\n\n","import React from 'react';\nimport TraitsListLoader from './TraitsListLoader';\nimport {\n DetailsContainer,\n PreviewContainer,\n PreviewImageSkeleton,\n AccordionSkeletion,\n Wrapper\n} from './styles';\n\nconst NFTDetailsSkeleton = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default NFTDetailsSkeleton;\n","import { useState, useMemo, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n OfferAccordion,\r\n AboutAccordion,\r\n NFTTraitsChip,\r\n} from '../core';\r\nimport { NFTMetaData } from '../nft-metadata';\r\nimport { NftActionBar } from '../nft-action-bar';\r\nimport {\r\n Container,\r\n Wrapper,\r\n PreviewContainer,\r\n NFTTraitsContainer,\r\n DetailsContainer,\r\n Video,\r\n} from './styles';\r\n\r\nimport {\r\n useNFTSStore,\r\n RootState,\r\n useAppDispatch,\r\n marketplaceActions,\r\n nftsActions,\r\n useFilterStore,\r\n filterActions,\r\n} from '../../store';\r\nimport { NFTMetadata } from '../../declarations/legacy';\r\nimport { parseE8SAmountToWICP } from '../../utils/formatters';\r\nimport { extractTraitData } from '../../store/features/filters/async-thunks/get-filter-traits';\r\nimport TraitsListLoader from './TraitsListLoader';\r\nimport { roundOffDecimalValue } from '../../utils/nfts';\r\nimport NFTDetailsSkeleton from './nft-details-skeleton';\r\n\r\n// type CurrentListing = {\r\n// seller: string;\r\n// price: string;\r\n// };\r\n\r\nexport const NftDetails = () => {\r\n const dispatch = useAppDispatch();\r\n const { loadedNFTS } = useNFTSStore();\r\n const { loadedFiltersList, loadingFilterList } = useFilterStore();\r\n const { id } = useParams();\r\n const [showNFTActionButtons, setShowNFTActionButtons] =\r\n useState(false);\r\n const recentlyListedForSale = useSelector(\r\n (state: RootState) => state.marketplace.recentlyListedForSale,\r\n );\r\n const recentlyCancelledItems = useSelector(\r\n (state: RootState) => state.marketplace.recentlyCancelledItems,\r\n );\r\n const recentlyPurchasedTokens = useSelector(\r\n (state: RootState) => state.marketplace.recentlyPurchasedTokens,\r\n );\r\n const tokenListing = useSelector((state: RootState) => {\r\n if (\r\n !id ||\r\n !state.marketplace?.tokenListing ||\r\n !(id in state.marketplace.tokenListing)\r\n )\r\n return;\r\n\r\n // eslint-disable-next-line consistent-return\r\n return state.marketplace.tokenListing[id];\r\n });\r\n\r\n const nftDetails: NFTMetadata | undefined = useMemo(() => {\r\n const details = loadedNFTS.find((nft) => nft.id === id);\r\n if (!details) return;\r\n\r\n return extractTraitData({ dispatch, details, loadedFiltersList });\r\n }, [loadedNFTS, id, loadedFiltersList]);\r\n // TODO: We have the currentList/getAllListings because cap-sync is not available yet\r\n // which would fail to provide the data on update\r\n const owner = tokenListing?.seller?.toString() || nftDetails?.owner;\r\n const lastSalePrice =\r\n (tokenListing?.price &&\r\n parseE8SAmountToWICP(tokenListing.price)) ||\r\n (nftDetails?.price &&\r\n parseE8SAmountToWICP(BigInt(nftDetails.price)));\r\n const isListed = !!(tokenListing?.created || nftDetails?.isListed);\r\n\r\n // TODO: We need more control, plus the\r\n // kyasshu calls should be placed as a thunk/action\r\n // of the state management of your choice, which is redux toolkit\r\n // by encapsulating everying here, we lose control it seems\r\n // of course you can pass parameters, but then why is it pulling id from useParams\r\n // when you have it in the parent component?\r\n // To have this work quickly, I've disabled it for now\r\n // useNFTDetailsFetcher();\r\n useEffect(() => {\r\n // TODO: handle the error gracefully when there is no id\r\n if (!id) return;\r\n\r\n dispatch(nftsActions.getNFTDetails({ id }));\r\n\r\n dispatch(filterActions.getFilterTraits());\r\n\r\n // TODO: add loading placeholders in action buttons\r\n // like Sell/Cancel/Edit/Make Offer/Buy Now\r\n // to show users that getTokenListing call is under progress\r\n\r\n dispatch(\r\n marketplaceActions.getTokenListing({\r\n id,\r\n onSuccess: () => {\r\n // Listing got successfull so allowing\r\n // user to take actions over NFT\r\n setShowNFTActionButtons(true);\r\n },\r\n onFailure: () => {\r\n // Listing got failed so not allowing\r\n // user to take actions over NFT\r\n setShowNFTActionButtons(false);\r\n },\r\n }),\r\n );\r\n }, [\r\n dispatch,\r\n id,\r\n recentlyListedForSale,\r\n recentlyCancelledItems,\r\n recentlyPurchasedTokens,\r\n ]);\r\n\r\n return (\r\n \r\n \r\n {nftDetails ? (\r\n \r\n \r\n \r\n \r\n {loadingFilterList ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport * as DismissableLayer from '@radix-ui/react-dismissable-layer';\nimport { UnstablePortal } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { VisuallyHidden } from '@radix-ui/react-visually-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * ToastProvider\n * -----------------------------------------------------------------------------------------------*/\n\nconst PROVIDER_NAME = 'ToastProvider';\n\ntype SwipeDirection = 'up' | 'down' | 'left' | 'right';\ntype ToastProviderContextValue = {\n label: string;\n duration: number;\n swipeDirection: SwipeDirection;\n swipeThreshold: number;\n toastCount: number;\n viewport: ToastViewportElement | null;\n onViewportChange(viewport: ToastViewportElement): void;\n onToastAdd(): void;\n onToastRemove(): void;\n isFocusedToastEscapeKeyDownRef: React.MutableRefObject;\n isClosePausedRef: React.MutableRefObject;\n};\n\ntype ScopedProps

= P & { __scopeToast?: Scope };\nconst [createToastContext, createToastScope] = createContextScope('Toast');\nconst [ToastProviderProvider, useToastProviderContext] =\n createToastContext(PROVIDER_NAME);\n\ninterface ToastProviderProps {\n /**\n * An author-localized label for each toast. Used to help screen reader users\n * associate the interruption with a toast.\n * @defaultValue 'Notification'\n */\n label?: string;\n /**\n * Time in milliseconds that each toast should remain visible for.\n * @defaultValue 5000\n */\n duration?: number;\n /**\n * Direction of pointer swipe that should close the toast.\n * @defaultValue 'right'\n */\n swipeDirection?: SwipeDirection;\n /**\n * Distance in pixels that the swipe must pass before a close is triggered.\n * @defaultValue 50\n */\n swipeThreshold?: number;\n children?: React.ReactNode;\n}\n\nconst ToastProvider: React.FC = (props: ScopedProps) => {\n const {\n __scopeToast,\n label = 'Notification',\n duration = 5000,\n swipeDirection = 'right',\n swipeThreshold = 50,\n children,\n } = props;\n const [viewport, setViewport] = React.useState(null);\n const [toastCount, setToastCount] = React.useState(0);\n const isFocusedToastEscapeKeyDownRef = React.useRef(false);\n const isClosePausedRef = React.useRef(false);\n return (\n setToastCount((prevCount) => prevCount + 1), [])}\n onToastRemove={React.useCallback(() => setToastCount((prevCount) => prevCount - 1), [])}\n isFocusedToastEscapeKeyDownRef={isFocusedToastEscapeKeyDownRef}\n isClosePausedRef={isClosePausedRef}\n >\n {children}\n \n );\n};\n\nToastProvider.displayName = PROVIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToastViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'ToastViewport';\nconst VIEWPORT_DEFAULT_HOTKEY = ['F8'];\nconst VIEWPORT_PAUSE = 'toast.viewportPause';\nconst VIEWPORT_RESUME = 'toast.viewportResume';\n\ntype ToastViewportElement = React.ElementRef;\ntype PrimitiveOrderedListProps = Radix.ComponentPropsWithoutRef;\ninterface ToastViewportProps extends Omit {\n /**\n * The keys to use as the keyboard shortcut that will move focus to the toast viewport.\n * @defaultValue ['F8']\n */\n hotkey?: string[];\n /**\n * An author-localized label for the toast viewport to provide context for screen reader users\n * when navigating page landmarks. The available `{hotkey}` placeholder will be replaced for you.\n * @defaultValue 'Notifications ({hotkey})'\n */\n label?: string;\n}\n\nconst ToastViewport = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeToast,\n hotkey = VIEWPORT_DEFAULT_HOTKEY,\n label = 'Notifications ({hotkey})',\n ...viewportProps\n } = props;\n const context = useToastProviderContext(VIEWPORT_NAME, __scopeToast);\n const wrapperRef = React.useRef(null);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n const hotkeyLabel = hotkey.join('+').replace(/Key/g, '').replace(/Digit/g, '');\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n // we use `event.code` as it is consistent regardless of meta keys that were pressed.\n // for example, `event.key` for `Control+Alt+t` is `†` and `t !== †`\n const isHotkeyPressed = hotkey.every((key) => (event as any)[key] || event.code === key);\n if (isHotkeyPressed) ref.current?.focus();\n };\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [hotkey]);\n\n React.useEffect(() => {\n const wrapper = wrapperRef.current;\n const viewport = ref.current;\n if (wrapper && viewport) {\n const handlePause = () => {\n const pauseEvent = new Event(VIEWPORT_PAUSE);\n viewport.dispatchEvent(pauseEvent);\n context.isClosePausedRef.current = true;\n };\n const handleResume = () => {\n const resumeEvent = new Event(VIEWPORT_RESUME);\n viewport.dispatchEvent(resumeEvent);\n context.isClosePausedRef.current = false;\n };\n // Toasts are not in the viewport React tree so we need to bind DOM events\n wrapper.addEventListener('focusin', handlePause);\n wrapper.addEventListener('focusout', handleResume);\n wrapper.addEventListener('pointerenter', handlePause);\n wrapper.addEventListener('pointerleave', handleResume);\n window.addEventListener('blur', handlePause);\n window.addEventListener('focus', handleResume);\n return () => {\n wrapper.removeEventListener('focusin', handlePause);\n wrapper.removeEventListener('focusout', handleResume);\n wrapper.removeEventListener('pointerenter', handlePause);\n wrapper.removeEventListener('pointerleave', handleResume);\n window.removeEventListener('blur', handlePause);\n window.removeEventListener('focus', handleResume);\n };\n }\n }, [context.isClosePausedRef]);\n\n React.useEffect(() => {\n const viewport = ref.current;\n // Re-order DOM so most recent toasts are at top of DOM structure to improve tab order\n if (viewport) {\n let moved: Node[] = [];\n const observer = new MutationObserver((mutations) => {\n const [childListMutation] = mutations;\n childListMutation.addedNodes.forEach((node) => {\n if (!moved.includes(node)) {\n viewport.prepend(node);\n moved = [...moved, node];\n }\n });\n });\n observer.observe(viewport, { childList: true });\n return () => observer.disconnect();\n }\n }, []);\n\n return (\n 0 ? undefined : 'none' }}\n >\n {/**\n * tabindex on the the list so that it can be focused when items are removed. we focus\n * the list instead of the viewport so it announces number of items remaining.\n */}\n \n \n );\n }\n);\n\nToastViewport.displayName = VIEWPORT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Toast\n * -----------------------------------------------------------------------------------------------*/\n\nconst TOAST_NAME = 'Toast';\nconst TOAST_SWIPE_START = 'toast.swipeStart';\nconst TOAST_SWIPE_MOVE = 'toast.swipeMove';\nconst TOAST_SWIPE_CANCEL = 'toast.swipeCancel';\nconst TOAST_SWIPE_END = 'toast.swipeEnd';\n\ntype ToastElement = ToastImplElement;\ninterface ToastProps extends Omit {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst Toast = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, open: openProp, defaultOpen, onOpenChange, ...toastProps } = props;\n const [open = true, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n \n setOpen(false)}\n onSwipeStart={composeEventHandlers(props.onSwipeStart, (event) => {\n event.currentTarget.setAttribute('data-swipe', 'start');\n })}\n onSwipeMove={composeEventHandlers(props.onSwipeMove, (event) => {\n const { x, y } = event.detail.delta;\n event.currentTarget.setAttribute('data-swipe', 'move');\n event.currentTarget.style.setProperty('--radix-toast-swipe-move-x', `${x}px`);\n event.currentTarget.style.setProperty('--radix-toast-swipe-move-y', `${y}px`);\n })}\n onSwipeCancel={composeEventHandlers(props.onSwipeCancel, (event) => {\n event.currentTarget.setAttribute('data-swipe', 'cancel');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-move-x');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-move-y');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-end-x');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-end-y');\n })}\n onSwipeEnd={composeEventHandlers(props.onSwipeEnd, (event) => {\n const { x, y } = event.detail.delta;\n event.currentTarget.setAttribute('data-swipe', 'end');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-move-x');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-move-y');\n event.currentTarget.style.setProperty('--radix-toast-swipe-end-x', `${x}px`);\n event.currentTarget.style.setProperty('--radix-toast-swipe-end-y', `${y}px`);\n setOpen(false);\n })}\n />\n \n );\n }\n);\n\nToast.displayName = TOAST_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype SwipeEvent = { currentTarget: EventTarget & ToastElement } & Omit<\n CustomEvent<{ originalEvent: React.PointerEvent; delta: { x: number; y: number } }>,\n 'currentTarget'\n>;\n\nconst [ToastInteractiveProvider, useToastInteractiveContext] = createToastContext(TOAST_NAME, {\n isInteractive: false,\n onClose() {},\n});\n\ntype ToastImplElement = React.ElementRef;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef;\ntype ToastImplPrivateProps = { open: boolean; onClose(): void };\ntype PrimitiveListItemProps = Radix.ComponentPropsWithoutRef;\ninterface ToastImplProps extends ToastImplPrivateProps, PrimitiveListItemProps {\n type?: 'foreground' | 'background';\n /**\n * Time in milliseconds that toast should remain visible for. Overrides value\n * given to `ToastProvider`.\n */\n duration?: number;\n onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];\n onSwipeStart?(event: SwipeEvent): void;\n onSwipeMove?(event: SwipeEvent): void;\n onSwipeCancel?(event: SwipeEvent): void;\n onSwipeEnd?(event: SwipeEvent): void;\n}\n\nconst ToastImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeToast,\n type = 'foreground',\n duration: durationProp,\n open,\n onClose,\n onEscapeKeyDown,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n ...toastProps\n } = props;\n const context = useToastProviderContext(TOAST_NAME, __scopeToast);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const pointerStartRef = React.useRef<{ x: number; y: number } | null>(null);\n const swipeDeltaRef = React.useRef<{ x: number; y: number } | null>(null);\n const duration = durationProp || context.duration;\n const closeTimerStartTimeRef = React.useRef(0);\n const closeTimerRemainingTimeRef = React.useRef(duration);\n const closeTimerRef = React.useRef(0);\n const { onToastAdd, onToastRemove } = context;\n const handleClose = useCallbackRef(() => {\n // focus viewport if focus is within toast to read the remaining toast\n // count to SR users and ensure focus isn't lost\n const isFocusInToast = ref.current?.contains(document.activeElement);\n if (isFocusInToast) context.viewport?.focus();\n onClose();\n });\n\n const startTimer = React.useCallback(\n (duration) => {\n if (!duration || duration === Infinity) return;\n window.clearTimeout(closeTimerRef.current);\n closeTimerStartTimeRef.current = new Date().getTime();\n closeTimerRef.current = window.setTimeout(handleClose, duration);\n },\n [handleClose]\n );\n\n React.useEffect(() => {\n const viewport = context.viewport;\n if (viewport) {\n const handleResume = () => {\n startTimer(closeTimerRemainingTimeRef.current);\n };\n const handlePause = () => {\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.current;\n closeTimerRemainingTimeRef.current = closeTimerRemainingTimeRef.current - elapsedTime;\n window.clearTimeout(closeTimerRef.current);\n };\n viewport.addEventListener(VIEWPORT_PAUSE, handlePause);\n viewport.addEventListener(VIEWPORT_RESUME, handleResume);\n return () => {\n viewport.removeEventListener(VIEWPORT_PAUSE, handlePause);\n viewport.removeEventListener(VIEWPORT_RESUME, handleResume);\n };\n }\n }, [context.viewport, duration, startTimer]);\n\n // start timer when toast opens or duration changes.\n // we include `open` in deps because closed !== unmounted when animating\n // so it could reopen before being completely unmounted\n React.useEffect(() => {\n if (open && !context.isClosePausedRef.current) startTimer(duration);\n }, [open, duration, context.isClosePausedRef, startTimer]);\n\n React.useEffect(() => {\n onToastAdd();\n return () => onToastRemove();\n }, [onToastAdd, onToastRemove]);\n\n if (!context.viewport) return null;\n\n return (\n <>\n \n {props.children}\n \n\n \n {ReactDOM.createPortal(\n {\n if (!context.isFocusedToastEscapeKeyDownRef.current) handleClose();\n context.isFocusedToastEscapeKeyDownRef.current = false;\n })}\n >\n {\n if (event.key !== 'Escape') return;\n onEscapeKeyDown?.(event.nativeEvent);\n if (!event.nativeEvent.defaultPrevented) {\n context.isFocusedToastEscapeKeyDownRef.current = true;\n handleClose();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n if (event.button !== 0) return;\n pointerStartRef.current = { x: event.clientX, y: event.clientY };\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n if (!pointerStartRef.current) return;\n const x = event.clientX - pointerStartRef.current.x;\n const y = event.clientY - pointerStartRef.current.y;\n const hasSwipeMoveStarted = Boolean(swipeDeltaRef.current);\n const isHorizontalSwipe = ['left', 'right'].includes(context.swipeDirection);\n const clamp = ['left', 'up'].includes(context.swipeDirection)\n ? Math.min\n : Math.max;\n const clampedX = isHorizontalSwipe ? clamp(0, x) : 0;\n const clampedY = !isHorizontalSwipe ? clamp(0, y) : 0;\n const moveStartBuffer = event.pointerType === 'touch' ? 10 : 2;\n const delta = { x: clampedX, y: clampedY };\n const eventDetail = { originalEvent: event, delta };\n if (hasSwipeMoveStarted) {\n swipeDeltaRef.current = delta;\n dispatchCustomEvent(TOAST_SWIPE_MOVE, onSwipeMove, eventDetail);\n } else if (isDeltaInDirection(delta, context.swipeDirection, moveStartBuffer)) {\n swipeDeltaRef.current = delta;\n dispatchCustomEvent(TOAST_SWIPE_START, onSwipeStart, eventDetail);\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n } else if (Math.abs(x) > moveStartBuffer || Math.abs(y) > moveStartBuffer) {\n // User is swiping in wrong direction so we disable swipe gesture\n // for the current pointer down interaction\n pointerStartRef.current = null;\n }\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const delta = swipeDeltaRef.current;\n (event.target as HTMLElement).releasePointerCapture(event.pointerId);\n swipeDeltaRef.current = null;\n pointerStartRef.current = null;\n if (delta) {\n const toast = event.currentTarget;\n const eventDetail = { originalEvent: event, delta };\n if (isDeltaInDirection(delta, context.swipeDirection, context.swipeThreshold)) {\n dispatchCustomEvent(TOAST_SWIPE_END, onSwipeEnd, eventDetail);\n } else {\n dispatchCustomEvent(TOAST_SWIPE_CANCEL, onSwipeCancel, eventDetail);\n }\n // Prevent click event from triggering on items within the toast when\n // pointer up is part of a swipe gesture\n toast.addEventListener('click', (event) => event.preventDefault(), {\n once: true,\n });\n }\n })}\n />\n ,\n context.viewport\n )}\n \n \n );\n }\n);\n\nToastImpl.propTypes = {\n type(props) {\n if (props.type && !['foreground', 'background'].includes(props.type)) {\n const error = `Invalid prop \\`type\\` supplied to \\`${TOAST_NAME}\\`. Expected \\`foreground | background\\`.`;\n throw new Error(error);\n }\n return null;\n },\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\ninterface ToastAnnounceProps\n extends React.ComponentPropsWithoutRef<'div'>,\n ScopedProps<{ children?: ToastImplProps['children'] }> {}\n\nconst ToastAnnounce: React.FC = (props: ScopedProps) => {\n const { __scopeToast, ...announceProps } = props;\n const context = useToastProviderContext(TOAST_NAME, __scopeToast);\n const [renderChildren, setRenderChildren] = React.useState(false);\n const [isAnnounced, setIsAnnounced] = React.useState(false);\n\n // render children in the next frame to ensure toast is announced in NVDA\n useNextFrame(() => setRenderChildren(true));\n\n React.useEffect(() => {\n const timer = window.setTimeout(() => setIsAnnounced(true), 1000);\n return () => window.clearTimeout(timer);\n }, []);\n\n return isAnnounced ? null : (\n \n \n

\n {renderChildren && (\n <>\n {context.label} {props.children}\n \n )}\n
\n \n \n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ToastTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'ToastTitle';\n\ntype ToastTitleElement = React.ElementRef;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef;\ninterface ToastTitleProps extends PrimitiveDivProps {}\n\nconst ToastTitle = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToast, ...titleProps } = props;\n return ;\n }\n);\n\nToastTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToastDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'ToastDescription';\n\ntype ToastDescriptionElement = React.ElementRef;\ninterface ToastDescriptionProps extends PrimitiveDivProps {}\n\nconst ToastDescription = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToast, ...descriptionProps } = props;\n return ;\n }\n);\n\nToastDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToastAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst ACTION_NAME = 'ToastAction';\n\ntype ToastActionElement = ToastCloseElement;\ninterface ToastActionProps extends ToastCloseProps {\n /**\n * A short description for an alternate way to carry out the action. For screen reader users\n * who will not be able to navigate to the button easily/quickly.\n * @example Upgrade\n * @example Undo\n */\n altText: string;\n}\n\nconst ToastAction = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { altText, ...actionProps } = props;\n const context = useToastInteractiveContext(ACTION_NAME, props.__scopeToast);\n if (!altText) return null;\n return context.isInteractive ? (\n \n ) : (\n {altText}\n );\n }\n);\n\nToastAction.propTypes = {\n altText(props) {\n if (!props.altText) {\n throw new Error(`Missing prop \\`altText\\` expected on \\`${ACTION_NAME}\\``);\n }\n return null;\n },\n};\n\nToastAction.displayName = ACTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToastClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'ToastClose';\n\ntype ToastCloseElement = React.ElementRef;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef;\ninterface ToastCloseProps extends PrimitiveButtonProps {}\n\nconst ToastClose = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToast, ...closeProps } = props;\n const interactiveContext = useToastInteractiveContext(CLOSE_NAME, __scopeToast);\n return interactiveContext.isInteractive ? (\n \n ) : null;\n }\n);\n\nToastClose.displayName = CLOSE_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction dispatchCustomEvent(\n name: string,\n handler: ((event: E) => void) | undefined,\n detail: { originalEvent: ReactEvent } & (E extends CustomEvent ? D : never)\n) {\n const currentTarget = detail.originalEvent.currentTarget as HTMLElement;\n const event = new CustomEvent(name, { bubbles: true, cancelable: true, detail });\n if (handler) currentTarget.addEventListener(name, handler as EventListener, { once: true });\n currentTarget.dispatchEvent(event);\n}\n\nconst isDeltaInDirection = (\n delta: { x: number; y: number },\n direction: SwipeDirection,\n threshold = 0\n) => {\n const deltaX = Math.abs(delta.x);\n const deltaY = Math.abs(delta.y);\n const isDeltaX = deltaX > deltaY;\n if (direction === 'left' || direction === 'right') {\n return isDeltaX && deltaX > threshold;\n } else {\n return !isDeltaX && deltaY > threshold;\n }\n};\n\nfunction useNextFrame(callback = () => {}) {\n const fn = useCallbackRef(callback);\n useLayoutEffect(() => {\n let raf1 = 0;\n let raf2 = 0;\n raf1 = window.requestAnimationFrame(() => (raf2 = window.requestAnimationFrame(fn)));\n return () => {\n window.cancelAnimationFrame(raf1);\n window.cancelAnimationFrame(raf2);\n };\n }, [fn]);\n}\n\nconst Provider = ToastProvider;\nconst Viewport = ToastViewport;\nconst Root = Toast;\nconst Title = ToastTitle;\nconst Description = ToastDescription;\nconst Action = ToastAction;\nconst Close = ToastClose;\n\nexport {\n createToastScope,\n //\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastAction,\n ToastClose,\n //\n Provider,\n Viewport,\n Root,\n Title,\n Description,\n Action,\n Close,\n};\nexport type {\n ToastProviderProps,\n ToastViewportProps,\n ToastProps,\n ToastTitleProps,\n ToastDescriptionProps,\n ToastActionProps,\n ToastCloseProps,\n};\n","import * as ToastPrimitive from '@radix-ui/react-toast';\r\nimport { styled, keyframes } from '../../stitches.config';\r\n\r\nconst VIEWPORT_PADDING = 25;\r\n\r\nconst hide = keyframes({\r\n '0%': {\r\n opacity: 1,\r\n },\r\n '100%': {\r\n opacity: 0,\r\n },\r\n});\r\n\r\nconst slideIn = keyframes({\r\n from: {\r\n transform: `translateX(calc(100% + ${VIEWPORT_PADDING}px))`,\r\n },\r\n to: {\r\n transform: 'translateX(0)',\r\n },\r\n});\r\n\r\nconst swipeOut = keyframes({\r\n from: {\r\n transform: 'translateX(var(--radix-toast-swipe-end-x))',\r\n },\r\n to: {\r\n transform: `translateX(calc(100% + ${VIEWPORT_PADDING}px))`,\r\n },\r\n});\r\n\r\nexport const ToastProvider = styled(ToastPrimitive.Provider, {});\r\n\r\nexport const ToastViewport = styled(ToastPrimitive.Viewport, {\r\n position: 'fixed',\r\n top: 65,\r\n right: 0,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n padding: VIEWPORT_PADDING,\r\n gap: 10,\r\n width: 390,\r\n maxWidth: '100vw',\r\n margin: 0,\r\n listStyle: 'none',\r\n zIndex: 2147483647,\r\n});\r\n\r\nexport const Toast = styled(ToastPrimitive.Root, {\r\n backgroundColor: '$toastBackground',\r\n borderRadius: '20px',\r\n boxShadow:\r\n 'hsl(206 22% 7% / 35%) 0px 10px 38px -10px, hsl(206 22% 7% / 20%) 0px 10px 20px -15px',\r\n padding: 15,\r\n display: 'flex',\r\n gap: 15,\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n\r\n variants: {\r\n state: {\r\n success: {\r\n color: '$success',\r\n },\r\n error: {\r\n color: '$error',\r\n },\r\n },\r\n },\r\n\r\n '@media (prefers-reduced-motion: no-preference)': {\r\n '&[data-state=\"open\"]': {\r\n animation: `${slideIn} 150ms cubic-bezier(0.16, 1, 0.3, 1)`,\r\n },\r\n '&[data-state=\"closed\"]': {\r\n animation: `${hide} 100ms ease-in forwards`,\r\n },\r\n '&[data-swipe=\"move\"]': {\r\n transform: 'translateX(var(--radix-toast-swipe-move-x))',\r\n },\r\n '&[data-swipe=\"cancel\"]': {\r\n transform: 'translateX(0)',\r\n transition: 'transform 200ms ease-out',\r\n },\r\n '&[data-swipe=\"end\"]': {\r\n animation: `${swipeOut} 100ms ease-out forwards`,\r\n },\r\n },\r\n});\r\n\r\nexport const ToastDescription = styled(ToastPrimitive.Description, {\r\n gridArea: 'description',\r\n display: 'flex',\r\n alignItems: 'base-line',\r\n justifyContent: 'center',\r\n fontWeight: 'bold',\r\n});\r\n\r\nexport const ToastDescriptionText = styled('p', {\r\n margin: '0px',\r\n});\r\n","import React, { useCallback } from 'react';\r\nimport {\r\n ToastViewport,\r\n Toast,\r\n ToastDescription,\r\n ToastDescriptionText,\r\n ToastProvider,\r\n} from './styles';\r\nimport {\r\n notificationActions,\r\n NotificationMessage,\r\n useAppDispatch,\r\n useErrorsStore,\r\n} from '../../store';\r\nimport { Icon, Icons } from '../icons';\r\n\r\nconst ToastIcons: {\r\n [key in NotificationMessage['type']]: keyof typeof Icons;\r\n} = {\r\n success: 'check',\r\n error: 'warning',\r\n};\r\n\r\nexport const ToastHandler = () => {\r\n const { messages } = useErrorsStore();\r\n const dispatch = useAppDispatch();\r\n\r\n const handleClose = useCallback(\r\n (id: number) => {\r\n dispatch(notificationActions.removeMessage(id));\r\n },\r\n [dispatch],\r\n );\r\n\r\n return (\r\n \r\n {messages.map((message) => (\r\n handleClose(message.id)}\r\n duration={5000}\r\n state={message.type}\r\n >\r\n \r\n
\r\n \r\n \r\n {message.message}\r\n \r\n
\r\n
\r\n\r\n handleClose(message.id)}\r\n />\r\n \r\n ))}\r\n \r\n
\r\n );\r\n};\r\n","import { useAppSelector } from '../../hooks';\r\nimport { selectNotificationState } from './notifications-slice';\r\n\r\nexport const useErrorsStore = () =>\r\n useAppSelector(selectNotificationState);\r\n","import { styled } from '../../stitches.config';\n\nexport const AlertsContainer = styled('div', {\n position: 'fixed',\n top: '0px',\n left: '0px',\n right: '0px',\n backgroundColor: '$navBackgroundColor',\n zIndex: 2,\n});\n\nexport const AlertsWrapper = styled('div', {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '8px',\n background: '$lightYellow',\n color: '$paleYellow',\n});\n\nexport const MessageContainer = styled('div', {\n display: 'flex',\n});\n\nexport const Message = styled('div', {\n fontSize: '16px',\n fontWeight: '500',\n lineHeight: '22px',\n marginLeft: '5px',\n});\n","import { useTranslation } from 'react-i18next';\nimport {\n AlertsContainer,\n AlertsWrapper,\n MessageContainer,\n Message,\n} from './styles';\nimport { Icon } from '../icons';\nimport { WithdrawAssetsModal } from '../modals';\nimport { useAssetsToWithdraw } from '../../hooks/use-assets-to-withdraw';\n\n/* --------------------------------------------------------------------------\n * Alerts Component\n * --------------------------------------------------------------------------*/\n\nexport const Alerts = () => {\n const { t } = useTranslation();\n\n useAssetsToWithdraw();\n\n return (\n \n \n \n \n \n {t('translation:alerts.transactionsMessage')}\n \n \n \n \n \n );\n};\n","import { useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n useAppDispatch,\n RootState,\n usePlugStore,\n marketplaceActions,\n} from '../store';\n\nexport const useAssetsToWithdraw = () => {\n const dispatch = useAppDispatch();\n const { isConnected, principalId: plugPrincipal } = usePlugStore();\n\n const recentlyFailedTransactions = useSelector(\n (state: RootState) =>\n state.marketplace.recentlyFailedTransactions,\n );\n\n const recentlyWithdrawnAssets = useSelector(\n (state: RootState) => state.marketplace.recentlyWithdrawnAssets,\n );\n\n useEffect(() => {\n if (!isConnected || !plugPrincipal) return;\n\n dispatch(\n marketplaceActions.getAssetsToWithdraw({\n userPrincipalId: plugPrincipal,\n }),\n );\n }, [\n dispatch,\n isConnected,\n plugPrincipal,\n recentlyWithdrawnAssets,\n recentlyFailedTransactions,\n ]);\n};\n","import { styled } from '../../stitches.config';\r\n\r\nexport const Container = styled('div', {\r\n width: '100%',\r\n});\r\n\r\nexport const CollectionWrapper = styled('div', {\r\n paddingTop: '72px',\r\n\r\n // variants\r\n variants: {\r\n showAlerts: {\r\n true: {\r\n paddingTop: '110px',\r\n },\r\n },\r\n },\r\n});\r\n","import React from 'react';\r\nimport { CollectionOverview, CollectionTabs } from '../../components';\r\nimport { Container, CollectionWrapper } from './styles';\r\nimport { useSettingsStore } from '../../store';\r\n\r\n/* --------------------------------------------------------------------------\r\n * Collection View Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nconst CollectionView = () => {\r\n const { showAlerts } = useSettingsStore();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CollectionView;\r\n","import { styled } from '../../stitches.config';\r\n\r\nexport const Container = styled('div', {\r\n width: '100%',\r\n paddingTop: '72px',\r\n background: '$backgroundColor',\r\n\r\n // variants\r\n variants: {\r\n showAlerts: {\r\n true: {\r\n paddingTop: '110px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const NFTDetailsWrapper = styled('div', {\r\n maxWidth: '1190px',\r\n margin: 'auto',\r\n padding: '10px 30px 30px',\r\n});\r\n","import { useEffect } from 'react';\r\nimport { NFTActivityTable, NftDetails } from '../../components';\r\nimport { Container, NFTDetailsWrapper } from './styles';\r\nimport { useSettingsStore } from '../../store';\r\n\r\n/* --------------------------------------------------------------------------\r\n * NFT View Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nconst NFTView = () => {\r\n const { showAlerts } = useSettingsStore();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NFTView;\r\n","import { Icon } from '../../components';\r\nimport { styled } from '../../stitches.config';\r\n\r\nexport const Container = styled('div', {\r\n width: '100%',\r\n paddingTop: '72px',\r\n backgroundColor: '$backgroundColor',\r\n\r\n // variants\r\n variants: {\r\n showAlerts: {\r\n true: {\r\n paddingTop: '110px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const TitleWrapper = styled('div', {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n margin: '32px 80px',\r\n});\r\n\r\nexport const Title = styled('h2', {\r\n fontSize: '32px',\r\n fontWeight: '700',\r\n color: '$mainTextColor',\r\n margin: '0px',\r\n});\r\n\r\nexport const ButtonListWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n});\r\n\r\nexport const ButtonDetailsWrapper = styled('div', {\r\n height: '44px',\r\n marginLeft: '15px',\r\n});\r\n\r\nexport const StyledIcons = styled(Icon, {\r\n marginRight: '10px',\r\n});","import { useState } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { MyOffersTable } from '../../components/tables';\r\nimport { ActionButton } from '../../components/core';\r\nimport {\r\n Container,\r\n TitleWrapper,\r\n Title,\r\n ButtonListWrapper,\r\n ButtonDetailsWrapper,\r\n StyledIcons,\r\n} from './styles';\r\nimport { OfferTypeStatusCodes } from '../../constants/my-offers';\r\nimport { useSettingsStore, usePlugStore } from '../../store';\r\nimport { NftMetadataBackground } from '../../components/collection-overview/styles';\r\nimport { isNFTOwner } from '../../integrations/kyasshu/utils';\r\n\r\n/* --------------------------------------------------------------------------\r\n * Offers View Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nconst OffersView = () => {\r\n const { t } = useTranslation();\r\n const [offersType, setOffersType] = useState(\r\n OfferTypeStatusCodes.OffersReceived,\r\n );\r\n\r\n const { showAlerts } = useSettingsStore();\r\n\r\n const { isConnected, principalId: connectedPlugUser } =\r\n usePlugStore();\r\n\r\n const { id: plugPrincipal } = useParams();\r\n\r\n const isConnectedOwner = isNFTOwner({\r\n isConnected,\r\n owner: connectedPlugUser,\r\n principalId: plugPrincipal,\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {isConnectedOwner\r\n ? t('translation:offers.myOffers')\r\n : t('translation:offers.offers')}\r\n \r\n \r\n \r\n {\r\n setOffersType(OfferTypeStatusCodes.OffersReceived);\r\n }}\r\n >\r\n \r\n {t('translation:offers.offersReceived')}\r\n \r\n \r\n \r\n {\r\n setOffersType(OfferTypeStatusCodes.OffersMade);\r\n }}\r\n >\r\n \r\n {t('translation:offers.offersMade')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default OffersView;\r\n","import { styled } from '../../stitches.config';\r\n\r\nexport const Container = styled('div', {\r\n width: '100%',\r\n paddingTop: '72px',\r\n backgroundColor: '$backgroundColor',\r\n\r\n // variants\r\n variants: {\r\n showAlerts: {\r\n true: {\r\n paddingTop: '110px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const TitleWrapper = styled('div', {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n margin: '32px 80px',\r\n});\r\n\r\nexport const Title = styled('h2', {\r\n fontSize: '32px',\r\n fontWeight: '700',\r\n color: '$mainTextColor',\r\n margin: '0px',\r\n});\r\n","import { useParams } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { UserActivityTable } from '../../components/tables';\r\nimport { Container, TitleWrapper, Title } from './styles';\r\nimport { useSettingsStore, usePlugStore } from '../../store';\r\nimport { NftMetadataBackground } from '../../components/collection-overview/styles';\r\nimport { isNFTOwner } from '../../integrations/kyasshu/utils';\r\n\r\n/* --------------------------------------------------------------------------\r\n * User Activity View Component\r\n * --------------------------------------------------------------------------*/\r\n\r\nconst UserActivityView = () => {\r\n const { t } = useTranslation();\r\n\r\n const { showAlerts } = useSettingsStore();\r\n\r\n const { isConnected, principalId: connectedPlugUser } =\r\n usePlugStore();\r\n\r\n const { id: plugPrincipal } = useParams();\r\n\r\n const isConnectedOwner = isNFTOwner({\r\n isConnected,\r\n owner: connectedPlugUser,\r\n principalId: plugPrincipal,\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {isConnectedOwner\r\n ? t('translation:activity.myActivity')\r\n : t('translation:activity.userActivity')}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserActivityView;\r\n","import React from 'react';\r\nimport { BrowserRouter, Routes, Route } from 'react-router-dom';\r\nimport { NavBar, ToastHandler, Alerts } from './components';\r\nimport CollectionView from './views/CollectionView';\r\nimport NFTView from './views/NFTView';\r\nimport OfferView from './views/OffersView';\r\nimport UserActivityView from './views/UserActivityView';\r\nimport { useTheme } from './hooks/use-theme';\r\nimport { portalZIndexGlobals } from './utils/styles';\r\nimport { ThemeRootElement } from './constants/common';\r\nimport { useThemeGlobals } from './hooks';\r\n\r\nconst App = () => {\r\n const [theme, themeObject] = useTheme();\r\n\r\n useThemeGlobals(theme);\r\n portalZIndexGlobals();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n } />\r\n } />\r\n }\r\n />\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default App;\r\n","import { useEffect, useState } from 'react';\r\nimport { themeGlobals } from '../utils/styles';\r\n\r\nexport const useThemeGlobals = (selectedTheme: string) => {\r\n const [previousTheme, setPreviousTheme] = useState(selectedTheme);\r\n\r\n useEffect(() => {\r\n document.body.classList.remove(previousTheme);\r\n document.body.classList.add(selectedTheme);\r\n setPreviousTheme(selectedTheme);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedTheme]);\r\n\r\n return themeGlobals();\r\n};\r\n","import en from './en/translation.json';\r\n\r\nexport default {\r\n resources: {\r\n en: {\r\n translation: en,\r\n },\r\n },\r\n lng: 'en',\r\n defaultNS: 'common',\r\n fallbackLng: 'en',\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n};\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(\r\n ({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n },\r\n );\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport { Provider as ReduxProvider } from 'react-redux';\r\n\r\nimport './index.css';\r\nimport App from './App';\r\nimport localesConfig from './locales';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\n// application store\r\nimport { store } from './store';\r\n\r\ni18n.use(initReactI18next).init(localesConfig);\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root'),\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"names":["ReplicaRejectCode","AgentError","Error","constructor","message","Object","setPrototypeOf","prototype","concat","buffers","result","Uint8Array","reduce","acc","curr","byteLength","index","b","set","PipeArrayBuffer","buffer","length","_buffer","ArrayBuffer","_view","slice","read","num","subarray","readUint8","write","buf","offset","byteOffset","alloc","end","amount","v","idlLabelToId","label","test","Number","isSafeInteger","s","array","TextEncoder","encode","h","c","idlHash","eob","safeRead","pipe","safeReadUint8","byte","undefined","lebEncode","value","BigInt","Math","ceil","log2","Pipe","i","lebDecode","weight","valueOf","slebEncode","isNeg","getLowerBytes","bytes","slebDecode","pipeView","len","writeIntLE","min","mul","sub","readUIntLE","val","magicNumber","zipWith","xs","ys","f","map","x","TypeTable","Map","has","obj","_idx","name","add","type","idx","_typs","push","merge","knot","get","knotIdx","splice","delete","indexOf","typeName","Visitor","visitType","t","data","visitPrimitive","visitEmpty","visitBool","visitNull","visitReserved","visitText","visitNumber","visitInt","visitNat","visitFloat","visitFixedInt","visitFixedNat","visitPrincipal","visitConstruct","visitVec","ty","visitOpt","visitRecord","fields","visitTuple","components","visitVariant","visitRec","visitFunc","visitService","Type","display","valueToString","toReadableString","buildTypeTable","typeTable","_buildTypeTableImpl","PrimitiveType","checkType","ConstructType","RecClass","getType","encodeType","EmptyClass","accept","d","covariant","encodeValue","decodeValue","BoolClass","NullClass","ReservedClass","TextClass","TextDecoder","fatal","decode","IntClass","isInteger","toString","NatClass","FloatClass","_bits","view","DataView","setFloat32","setFloat64","getFloat32","getFloat64","FixedIntClass","max","readIntLE","FixedNatClass","bits","writeUIntLE","VecClass","_type","_blobOptimization","Array","isArray","every","opCode","vec","rets","e","join","OptClass","opt","RecordClass","_fields","entries","sort","a","tryAsTuple","res","key","k","hasOwnProperty","values","T","forEach","_","record","hash","expectKey","expectType","TupleClass","_components","tuple","wireType","VariantClass","variant","wireHash","_counter","fill","_id","decodePrincipalId","PrincipalId","PrincipalClass","_isPrincipal","toUint8Array","toText","FuncClass","argTypes","retTypes","annotations","types","principal","methodName","canister","method","methodLen","arg","argLen","args","retLen","annLen","anns","encodeAnnotation","str","ann","ServiceClass","func","meths","labelBuf","JSON","stringify","_key","magic","table","typs","vals","magicBuffer","rawTable","rawTypes","prevHash","objectLength","pow","funcLength","servLength","rawList","readTypeTable","Rec","Null","Bool","Nat","Int","Nat8","Nat16","Nat32","Nat64","Int8","Int16","Int32","Int64","Float32","Float64","Text","Reserved","Empty","Principal","entry","Vec","Opt","Record","Tuple","Variant","Func","Service","buildType","output","ind","ret","toHex","padStart","hexRe","RegExp","fromHex","hex","parseInt","jsSha256","update","arrayBuffer","hashValue","borc","hashString","isView","toHash","assign","requestIdOf","request","filter","k1","k2","b1","b2","u1","u2","compare","domainSeparator","SignIdentity","getPrincipal","_principal","getPublicKey","toDer","body","requestId","content","sender_pubkey","sender_sig","sign","AnonymousIdentity","createIdentityDescriptor","identity","publicKey","serializer","SelfDescribeCborSerializer","CborTag","SubmitRequestType","serialize","decodePositiveBigInt","addEncoder","priority","match","cbor","Uint8ArrayDecoder","createByteString","raw","createByteStringFromHeap","start","_heap","input","size","tags","Semantic","decodeFirst","makeNonce","Date","now","floor","random","setBigUint64","NANOSECONDS_PER_MILLISECONDS","REPLICA_PERMITTED_DRIFT_MILLISECONDS","Expiry","deltaInMSec","_value","toCBOR","makeNonceTransform","nonceFn","endpoint","nonce","makeExpiryTransform","delayInMilliseconds","ingress_expiry","RequestStatusResponseStatus","DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS","HttpDefaultFetchError","IdentityInvalidError","HttpAgent","options","source","_pipeline","_identity","_fetch","_host","_credentials","fetch","defaultFetch","window","bind","global","self","getDefaultFetch","host","URL","location","protocol","hostname","endsWith","credentials","password","Promise","resolve","addTransform","fn","findIndex","canisterId","id","ecid","effectiveCanisterId","sender","submit","request_type","canister_id","method_name","transformedRequest","_transform","headers","Authorization","btoa","transformRequest","response","all","ok","status","statusText","text","paths","_rootKeyFetched","rootKey","root_key","invalidateIdentity","replaceIdentity","p","then","r","r2","ProxyMessageKind","ProxyStubAgent","_frontend","_agent","onmessage","msg","GetPrincipal","GetPrincipalResponse","Query","query","QueryResponse","Call","call","CallResponse","ReadState","readState","ReadStateResponse","Status","StatusResponse","ProxyAgent","_backend","maybePromise","_pendingCalls","reject","error","_sendAndWait","_nextId","getDefaultAgent","agent","ic","IDL","wasm_module","CanisterSettings","compute_allocation","memory_allocation","provisional_create_canister_with_cycles","settings","create_canister","install_code","mode","install","reinstall","upgrade","set_controller","new_controller","getManagementCanister","config","transform","callConfig","first","Actor","managementCanisterIdl","callTransform","queryTransform","wasm","wasmBytesBase64","replace","wasmBytes","base64Arraybuffer","cachegetUint8Memory0","passArray8ToWasm0","malloc","ptr","memory","init","instance","module","imports","Response","WebAssembly","instantiate","Instance","load","exports","__wbindgen_wasm_module","verify","blsVerify","pk","sig","bls_init","pk1","sig1","msg1","m","w","ptr0","len0","__wbindgen_malloc","ptr1","len1","ptr2","len2","bls_verify","UnverifiedCertificateError","hashTreeToString","tree","indent","split","left","right","decoder","labelToString","isBufferEqual","a8","b8","Certificate","cert","certificate","lookup","path","checkState","lookup_path","rootHash","reconstruct","derKey","_checkDelegation","delegation","signature","expectedLength","DER_PREFIX","TypeError","prefix","extractDER","domain_sep","verified","_rootKey","subnet_id","l","trees","find_label","flatten_forks","defaultStrategy","chain","conditionalDelay","once","backoff","timeout","condition","timeInMsec","setTimeout","maxAttempts","count","attempts","throttle","throttleInMsec","startingThrottleInMsec","backoffFactor","currentThrottling","strategies","pollForResponse","strategy","state","maybeBuf","rejectCode","rejectMessage","ActorCallError","props","getOwnPropertyNames","n","QueryCallRejectedError","Code","reject_code","_a","Message","reject_message","UpdateCallRejectedError","CanisterInstallMode","metadataSymbol","Symbol","for","metadata","freeze","actor","service","Install","wasmModule","interfaceFactory","createCanister","createActor","DEFAULT_ACTOR_CONFIG","_createActorMethod","configuration","createActorClass","decodeReturnValue","returnValues","Buffer","pollingStrategyFactory","caller","includes","_b","cid","reply","pollStrategy","responseBytes","handler","withOptions","retrieve","store","createAssetCanisterActor","assetCanister","alphabet","lookupTable","create","o","lookUpTable","Uint32Array","_arr","sha","shaObj","jsSha224","sha224","other","fromText","hexString","fromHexString","arr","skip","decodeChar","char","toLowerCase","isAnonymous","toUpperCase","checksumArrayBuf","setUint32","crc","getCrc32","checksum","from","matches","stage","resp","prod","dev","local","IC_HISTORY_ROUTER_CANISTER_ID_MAINNET","mainnet","DetailValue","WithIdArg","witness","Witness","GetBucketResponse","WithWitnessArg","GetNextCanistersResponse","canisters","I64","U64","Slice","True","False","Float","Event","time","operation","details","GetTransactionResponse","Delegate","Found","GetTransactionsArg","page","GetTransactionsResponseBorrowed","GetUserTransactionsArg","user","IndefiniteEvent","contract_id","get_bucket_for","get_next_canisters","get_transaction","get_transactions","get_user_transactions","insert","migrate","GetIndexCanistersResponse","GetTokenContractRootBucketArg","GetTokenContractRootBucketResponse","GetUserRootBucketsArg","GetUserRootBucketsResponse","contracts","deploy_plug_bucket","get_index_canisters","get_token_contract_root_bucket","get_user_root_buckets","insert_new_users","install_bucket_code","trigger_upgrade","enumerable","config_1","CapBase","cache","idlFactory","agent_1","cross_fetch_1","router","CapRouter","routerCanisterId","tokenId","principal_1","inititalise","router_did_js_1","contractId","users","CapRoot","root_did_js_1","cacheStage","kyasshu_1","LastEvaluatedKey","params","KyaConnector","events_1","url","emit","req","on","event","listener","decodeDetailValue","keys","transaction","acum","to","utils","require","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","defaults","Cancel","onCanceled","requestData","requestHeaders","responseType","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","XMLHttpRequest","auth","username","unescape","encodeURIComponent","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","err","open","paramsSerializer","onreadystatechange","readyState","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","xsrfHeaderName","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","send","Axios","mergeConfig","axios","createInstance","defaultConfig","context","extend","instanceConfig","CancelToken","isCancel","VERSION","promises","spread","isAxiosError","this","__CANCEL__","executor","resolvePromise","promise","token","_listeners","onfulfilled","_resolve","reason","throwIfRequested","InterceptorManager","dispatchRequest","validator","validators","interceptors","arguments","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","apply","shift","newConfig","onFulfilled","onRejected","getUri","handlers","use","eject","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","transformData","throwIfCancellationRequested","common","adapter","transformResponse","toJSON","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","getMergedValue","target","isPlainObject","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","getDefaultAdapter","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","isObject","rawValue","parser","encoder","isString","parse","trim","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","serializedParams","parts","isDate","toISOString","hashmarkIndex","relativeURL","expires","domain","secure","cookie","isNumber","toGMTString","document","decodeURIComponent","remove","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","search","port","pathname","charAt","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","substr","callback","thing","deprecatedWarnings","version","formatMessage","desc","opts","console","warn","schema","allowUnknown","getPrototypeOf","isFunction","FormData","URLSearchParams","product","assignValue","stripBOM","charCodeAt","bignumber_js_1","EXPONENTIAL_AT","ROUNDING_MODE","ROUND_FLOOR","toBigInt","applyDecimals","decimals","dividedBy","dp","removeDecimals","multipliedBy","applyTolerance","percentage","toleranceCoefficient","plus","HOST","canisterIds","registrar","REGISTRAR_CANISTER_ID","registry","REGISTRY_CANISTER_ID","WICP","WICP_CANISTER_ID","resolver","RESOLVER_CANISTER_ID","reverse_registrar","REVERSE_TRGISTRAR_CANISTER_ID","favorite","FAVORITE_CANISTER_ID","wicpDecimal","Result","__exportStar","Result_1","TxReceipt","BidState","Time","BidExt","AuctionExt","Info","Result_3","Result_2","RecordExt","DefaultInfoExt","Metadata","TokenInfo","Operation","TransactionStatus","TxRecord","ActorAdapter","provider","declarations_1","whitelist","actors","currentPrincipal","agentOf","providerPrincipal","_c","createAgent","createAnonymousActor","extraWhitelist","canisterIdOf","actorAdapter","adapter_1","did_1","registrarActor","__1","registrar_did_1","getInfo","info","available","getAuction","principalId","tokenActor","tokenDecimals","plugBalance","balanceOf","icnsBalance","getBalance","plug","icns","total","anonymous","adapterOf","getAgentPrincipal","registrarPrincipal","parsedAmount","allowance","gte","approve","Err","placeBid","duration","getRegistrarInfo","renewPrice","renewPrices","unitPrice","renew","claimName","withdraw","registryActor","registry_did_1","getRecord","getUserDomains","item","owner","controller","ttl","expiry","recordExists","node","setRecord","setSubnodeRecord","sublabel","setOwner","setController","setResolver","setTTL","setSubnodeOwner","newExpiry","setSubnodeExpiry","operator","isApprovedForAll","who","isApproved","getApproved","approved","setApprovalForAll","getOwner","transfer","transferFrom","ICNSResolverController","resolverActor","getUserDefaultInfo","DefaultInfo","pid","coinType","getAddr","getText","getCanister","extensionType","Types","btc","setAddr","eth","icp","addrExtensions","twitter","setText","github","discord","telegram","email","avatar","textExtensions","mainCanister","setCanister","canisterExtensions","setHost","reverseActor","reverse_registrar_did_1","setName","getName","getTime","suffix","validate","zero","isZero","isEmpty","isNaN","isNotANumber","isNegative","fixStringEnding","nat","thousands","log10","abs","reg","GenIcon","DefaultContext","color","className","style","attr","IconContext","React","__assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","Tree2Element","tag","child","IconBase","elem","conf","title","svgProps","computedSize","stroke","strokeWidth","height","width","xmlns","children","Consumer","transitionalDefaults","configOrUrl","__esModule","Constructor","_defineProperty","_defineProperty2","default","defineProperties","descriptor","configurable","writable","protoProps","staticProps","_assign","_assign2","_setPrototypeOf2","_interopRequireDefault","_create2","_typeof3","subClass","superClass","__proto__","_typeof2","ReferenceError","_iterator2","_symbol2","_typeof","chars","arraybuffer","base64","substring","encoded1","encoded2","encoded3","encoded4","bufferLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","maxChunkLength","encodeChunk","globalObject","BigNumber","isNumeric","mathceil","mathfloor","bignumberError","tooManyDigits","BASE","LOG_BASE","MAX_SAFE_INTEGER","POWS_TEN","SQRT_BASE","MAX","bitFloor","coeffToString","z","j","y","xc","yc","intCheck","String","isOdd","toExponential","toFixedPoint","zs","clone","configObject","div","convertBase","parseNumeric","P","ONE","DECIMAL_PLACES","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","groupSize","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","ALPHABET","alphabetHasNormalDecimalDigits","caseChanged","isNum","_isBigNumber","round","DEBUG","format","rm","c0","ne","maxOrMin","normalise","pop","sd","ni","rd","pows10","out","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","crypto","getRandomValues","randomBytes","RANGE","isBigNumber","maximum","lt","minimum","gt","pow2_53","random53bitInt","rand","copy","sum","decimal","toBaseOut","baseIn","baseOut","arrL","reverse","callerIsToString","multiply","base","temp","xlo","xhi","carry","klo","khi","aL","bL","cmp","subtract","more","prodL","q","qc","rem","remL","rem0","xi","xL","yc0","yL","yz","NaN","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","p1","p2","absoluteValue","comparedTo","decimalPlaces","dividedToIntegerBy","idiv","exponentiatedBy","half","isModExp","nIsBig","nIsNeg","nIsOdd","mod","times","integerValue","isEqualTo","eq","isFinite","isGreaterThan","isGreaterThanOrEqualTo","isLessThan","isLessThanOrEqualTo","lte","isPositive","minus","xLTy","xe","ye","modulo","xcL","ycL","ylo","yhi","zc","sqrtBase","negated","precision","shiftedBy","squareRoot","sqrt","rep","toFixed","toFormat","g1","g2","intPart","fractionPart","intDigits","toFraction","md","d0","d1","d2","exp","n0","n1","toNumber","toPrecision","define","Bignumber","MT","POS_INT","NEG_INT","BYTE_STRING","UTF8_STRING","ARRAY","MAP","TAG","SIMPLE_FLOAT","DATE_STRING","DATE_EPOCH","POS_BIGINT","NEG_BIGINT","DECIMAL_FRAC","BIGFLOAT","BASE64URL_EXPECTED","BASE64_EXPECTED","BASE16_EXPECTED","CBOR","URI","BASE64URL","BASE64","REGEXP","MIME","NUMBYTES","ZERO","TWO","FOUR","EIGHT","INDEFINITE","SIMPLE","FALSE","TRUE","NULL","UNDEFINED","SYMS","PARENT","BREAK","STREAM","SHIFT32","SHIFT16","MAX_SAFE_HIGH","NEG_ONE","TEN","OBJECT","stdlib","foreign","heap","pushInt","pushInt32","pushInt32Neg","pushInt64","pushInt64Neg","pushFloat","pushFloatSingle","pushFloatDouble","pushTrue","pushFalse","pushUndefined","pushNull","pushInfinity","pushInfinityNeg","pushNaN","pushNaNNeg","pushArrayStart","pushArrayStartFixed","pushArrayStartFixed32","pushArrayStartFixed64","pushObjectStart","pushObjectStartFixed","pushObjectStartFixed32","pushObjectStartFixed64","pushByteString","pushByteStringStart","pushUtf8String","pushUtf8StringStart","pushSimpleUnassigned","pushTagStart","pushTagStart4","pushTagStart8","pushTagUnassigned","pushBreak","inputLength","jumpTable","checkOffset","readUInt16","readUInt32","INT_P","octet","UINT_P_8","UINT_P_16","UINT_P_32","UINT_P_64","INT_N","UINT_N_8","UINT_N_16","UINT_N_32","UINT_N_64","step","BYTE_STRING_8","BYTE_STRING_16","BYTE_STRING_32","BYTE_STRING_64","BYTE_STRING_BREAK","UTF8_STRING_8","UTF8_STRING_16","UTF8_STRING_32","UTF8_STRING_64","UTF8_STRING_BREAK","ARRAY_8","ARRAY_16","ARRAY_32","ARRAY_64","ARRAY_BREAK","MAP_8","MAP_16","MAP_32","MAP_64","MAP_BREAK","TAG_KNOWN","TAG_BIGNUM_POS","TAG_BIGNUM_NEG","TAG_FRAC","TAG_BIGNUM_FLOAT","TAG_UNASSIGNED","TAG_BASE64_URL","TAG_BASE64","TAG_BASE16","TAG_MORE_1","TAG_MORE_2","TAG_MORE_4","TAG_MORE_8","SIMPLE_UNASSIGNED","SIMPLE_FALSE","SIMPLE_TRUE","SIMPLE_NULL","SIMPLE_UNDEFINED","SIMPLE_BYTE","SIMPLE_FLOAT_HALF","g","mant","SIMPLE_FLOAT_SINGLE","SIMPLE_FLOAT_DOUBLE","ERROR","ieee754","Simple","Tagged","Decoder","nextPowerOf2","_heap8","_reset","_knownTags","arrayBufferToBignumber","log","_depth","_parents","_currentParent","_ref","ref","_closeParent","_push","createTag","createUtf8String","createMap","createObject","createArray","_dec","hasChildren","tmpKey","buildMap","_createParent","_res","tagNumber","typ","createInt","createInt32","buildInt32","createInt64","f1","f2","buildInt64","createFloat","createFloatSingle","createFloatDouble","createInt32Neg","createInt64Neg","createTrue","createFalse","createNull","createUndefined","createInfinity","Infinity","createInfinityNeg","createNaN","createNaNNeg","createUtf8StringFromHeap","createSimpleUnassigned","_createArrayStartFixed","len3","len4","_createObjectStartFixed","_decode","decodeAll","enc","Diagnose","super","fl","isNegativeZero","list","collectObject","constants","HALF","FLOAT","DOUBLE","MAXINT_BN","BUF_NAN","BUF_INF_NEG","BUF_INF_POS","Encoder","streaming","stream","onData","semanticTypes","_pushUrl","_pushBigNumber","addTypes","genTypes","addSemanticType","fun","old","resultMethod","resultLength","finalize","pushWrite","_pushUInt8","_pushUInt16BE","_pushUInt32BE","_pushDoubleBE","_pushNaN","_pushInfinity","_pushFloat","allocUnsafe","writeHalf","parseHalf","b4","writeFloatBE","readFloatBE","_pushInt","mt","orig","_pushIntNum","_pushNumber","_pushString","_pushBoolean","_pushUndefined","_pushArray","gen","pushAny","_pushTag","_pushDate","_pushBuffer","_pushNoFilter","_pushRegexp","_pushSet","_pushBigint","dec","slide","_pushMap","_pushRawMap","_pushObject","encodeCBOR","keyLength","keySorter","toType","writeUInt8","writeUInt16BE","writeUInt32BE","writeDoubleBE","diagnose","inspect","hasParent","convert","converters","er","u32","u","readUInt32BE","s16","lenA","lenB","CRC_TABLE","ensureBuffer","hasNewBufferAPI","bufferizeInt","writeInt32BE","_crc32","previous","crc32","Int32Array","signed","unsigned","customInspectSymbol","SlowBuffer","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","RangeError","encodingOrOffset","string","encoding","isEncoding","actual","fromString","arrayView","isInstance","fromArrayBuffer","fromArrayLike","fromArrayView","SharedArrayBuffer","checked","numberIsNaN","fromObject","toPrimitive","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","defineProperty","poolSize","allocUnsafeSlow","_isBuffer","pos","swap16","swap32","swap64","toLocaleString","equals","thisStart","thisEnd","thisCopy","targetCopy","hexSliceLookupTable","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","readUintLE","readUintBE","readUIntBE","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readDoubleLE","readDoubleBE","writeUintLE","writeUintBE","writeUIntBE","writeUint8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUint32LE","writeUInt32LE","writeUint32BE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeFloatLE","writeDoubleLE","targetStart","copyWithin","INVALID_BASE64_RE","leadSurrogate","base64clean","src","dst","i16","deselectCurrent","clipboardToIE11Formatting","debug","reselectPrevious","range","selection","mark","success","createRange","getSelection","textContent","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","stopPropagation","preventDefault","clipboardData","clearData","setData","onCopy","appendChild","selectNodeContents","addRange","execCommand","copyKey","prompt","removeRange","removeAllRanges","removeChild","$Object","D","it","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","O","core","__e","aFunction","that","is","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","ctx","hide","$export","own","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","IS_WRAP","W","expProto","C","Function","virtual","R","U","exec","__g","dP","createDesc","object","documentElement","cof","setToStringTag","IteratorPrototype","NAME","next","LIBRARY","redefine","Iterators","$iterCreate","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","meta","KEY","NEED","fastKey","getWeak","onFreeze","DESCRIPTORS","toObject","IObject","$assign","A","K","aLen","anObject","dPs","enumBugKeys","IE_PROTO","createDict","iframeDocument","iframe","contentWindow","close","Properties","IE8_DOM_DEFINE","Attributes","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getWindowNames","$keys","hiddenKeys","ObjectProto","names","fails","bitmap","check","buggy","def","stat","shared","uid","SHARED","copyright","toInteger","defined","TO_STRING","px","wksExt","$Symbol","USE_SYMBOL","addToUnscopables","iterated","_t","_i","_k","Arguments","$getPrototypeOf","$at","point","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","iterator","$defineProperty","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","TO_STRING_TAG","DOMIterables","Collection","__self__","DOMException","support","Blob","viewClasses","normalizeName","normalizeValue","iteratorFor","items","Headers","append","header","consumed","bodyUsed","fileReaderReady","reader","onload","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","_bodyFormData","_bodyArrayBuffer","readAsText","readBlobAsText","readArrayBufferAsText","formData","json","oldValue","Request","upcased","normalizeMethod","referrer","form","rawHeaders","bodyInit","redirectStatuses","redirect","xhr","abortXhr","polyfill","ponyfill","CryptoJS","BlockCipher","lib","C_algo","algo","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","sx","x2","x4","x8","RCON","AES","_doReset","_nRounds","_keyPriorReset","keyWords","words","keySize","sigBytes","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","encryptBlock","M","_doCryptBlock","decryptBlock","nRounds","s0","s1","s2","s3","t0","t1","t2","t3","_createHelper","factory","Cipher","C_lib","WordArray","BufferedBlockAlgorithm","C_enc","Base64","Utf8","EvpKDF","cfg","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","reset","dataUpdate","_append","_process","_doFinalize","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","C_mode","StreamCipher","blockSize","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","block","_prevBlock","processBlock","thisBlock","Pkcs7","pad","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","modeCreator","_minBufferSize","_mode","__creator","_doProcessBlock","finalProcessedBlocks","_data","cipherParams","mixIn","formatter","OpenSSLFormatter","OpenSSL","salt","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","OpenSSLKdf","kdf","execute","compute","derivedParams","globalThis","msCrypto","cryptoSecureRandomInt","subtype","overrides","$super","properties","propertyName","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","nBytes","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","escape","utf8Str","_nDataBytes","doFlush","processedWords","dataWords","dataSigBytes","nBlocksReady","nWordsReady","nBytesReady","Hasher","messageUpdate","hasher","_createHmacHelper","HMAC","parseLoop","base64Str","base64StrLength","reverseMap","bitsCombined","_map","base64Chars","triplet","paddingChar","_reverseMap","paddingIndex","Base64url","urlSafe","_safe_map","swapEndian","word","Utf16","Utf16BE","utf16Chars","utf16Str","utf16StrLength","Utf16LE","MD5","iterations","derivedKey","derivedKeyWords","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","superInit","subInit","typedArray","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Float32Array","Float64Array","typedArrayByteLength","sin","_hash","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","HmacMD5","CFB","generateKeystreamAndEncrypt","keystream","CTRGladman","incWord","b3","incCounter","counter","CTR","ECB","OFB","_keystream","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","SHA1","PBKDF2","hmac","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","C_","RabbitLegacy","X","_X","_C","nextState","IV","IV_0","IV_1","i0","i2","i1","i3","gx","ga","gb","gh","gl","Rabbit","RC4","keySigBytes","_S","keyByteIndex","keyByte","_j","generateKeystreamWord","keystreamWord","RC4Drop","drop","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","al","bl","cl","dl","ar","br","cr","dr","hl","hr","zl","zr","sl","sr","f3","f4","f5","rotl","HmacRIPEMD160","HmacSHA1","SHA256","SHA224","HmacSHA224","isPrime","sqrtN","factor","getFractionalBits","nPrime","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","HmacSHA256","X64Word","x64","Word","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","_state","nBlockSizeLanes","M2i","M2i1","lane","high","low","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","C_x64","X64WordArray","SHA512","SHA384","HmacSHA384","X64Word_create","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","bh","ch","dh","eh","fh","hh","Wil","Wih","Wi","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","t1l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1h","t2l","toX32","HmacSHA512","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","mask","TripleDES","key1","key2","key3","_des1","_des2","_des3","X32WordArray","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","$","weekdays","months","utcOffset","date","year","month","ms","Q","locale","$L","utc","$u","$x","$offset","$d","UTC","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","toDate","$locale","weekStart","daysInMonth","invalidDate","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","mm","ss","SSS","Z","getTimezoneOffset","diff","toUTCString","$i","isDayjs","en","Ls","LTS","LT","L","LL","LLL","LLLL","zone","afternoon","milliseconds","SS","Do","ordinal","day","Y","ZZ","formats","regex","hours","customParseFormat","parseTwoDigitYear","minutes","seconds","future","past","yy","fromToBase","relativeTime","thresholds","rounding","toNow","fromNow","hour","minute","second","timeZoneName","Intl","DateTimeFormat","hour12","timeZone","formatToParts","tz","$timezone","offsetName","guess","find","resolvedOptions","setDefault","getUTCFullYear","getUTCMonth","getUTCDate","getUTCDay","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","$localOffset","isUTC","ReflectOwnKeys","Reflect","ReflectApply","receiver","ownKeys","NumberIsNaN","EventEmitter","emitter","errorListener","removeListener","eventTargetAgnosticAddListener","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","setMaxListeners","getMaxListeners","doError","listeners","addListener","prependListener","prependOnceListener","originalListener","spliceOne","off","removeAllListeners","rawListeners","eventNames","equal","$$typeof","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","isLE","mLen","eLen","eMax","eBias","nBits","rt","LN2","URLWithLegacySupport","defaultBase","relative","urlParsed","protocolMap","defaultProtocol","startsWith","origin","searchParams","createObjectURL","revokeObjectURL","userPass","WINDOW","root","JS_SHA256_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA256_NO_NODE_JS","versions","COMMON_JS","JS_SHA256_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA256_NO_ARRAY_BUFFER","HEX_CHARS","EXTRA","SHIFT","OUTPUT_TYPES","blocks","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","is224","Sha256","createMethod","nodeWrap","eval","nodeMethod","createHash","digest","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","h0","h1","h2","h3","h4","h5","h6","h7","hBytes","finalized","hashed","oKeyPad","iKeyPad","inner","notString","lastByteIndex","ab","da","cd","bc","dataView","sha256","json_stringify","json_parse","suspectProtoRx","suspectConstructorRx","_options","strict","storeAsString","alwaysParseAsBig","useNativeBigInt","protoAction","constructorAction","at","escapee","uffff","startAt","white","reviver","walk","holder","gap","escapable","quote","lastIndex","partial","mind","space","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectToString","nativeMax","nativeMin","isObjectLike","isBinary","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","clearTimeout","flush","FUNC_ERROR_TEXT","debounce","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","extendPrototype","sources","destination","sourcePrototype","getDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","element","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","postMessage","_workerSelf","setupWorker","Worker","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","ks","checkVersion","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","charData","ip","op","st","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","contentTypeHeader","getResponseHeader","errorCallback","completeData","animation","onComplete","onError","createProcess","loadAnimation","processId","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","markerParser","parsePayloadLines","lines","keysCount","_markers","markers","_marker","markerData","tm","cm","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","renderer","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","wrapper","container","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","trigger","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getAssetData","show","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","getElementsByTagName","innerText","unfreeze","getRegisteredAnimations","animations","BezierFactory","beziers","bezEasing","BezierEasing","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","u0","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","slerp","createQuaternion","c1","cos","c2","c3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","skew","skewFromAxis","scale","sz","setTransform","translate","tx","a2","e2","j2","l2","m2","n2","o2","_identityCalculated","a1","e1","j1","l1","m1","o1","isIdentity","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","getFontProperties","fontData","styles","fStyle","fWeight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","currentV","currentI","currentO","closerV","distance","newPosPerc","FontManager","emptyChar","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","parentNode","fontFamily","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","helper","engine","fontProps","tHelper","fFamily","fClass","tCanvasHelper","OffscreenCanvas","measureText","getComputedTextLength","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","isZeroWidthJoiner","isCombinedCharacter","_char3","fontPrototype","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","RenderableElement","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","MaskManagerInterface","MaskInterface","_mask","maskManager","_masksInterfaces","viewData","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","property","getVelocityAtTime","numKeys","valueProp","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","opacity","_px","_py","_pz","_transformFactory","LayerExpressionInterface","getMatrix","toWorldMat","_elem","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","hierarchy","fromComp","sampleImage","transformInterface","_thisLayerFunction","shapeInterface","effect","textInterface","toComp","anchorPointDescriptor","layerInterface","anchor_point","active","startTime","inPoint","outPoint","_name","registerMaskInterface","registerEffectsInterface","effects","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","EffectsExpressionInterface","createGroupInterface","groupInterface","ef","mn","effectElements","_propertyGroup","createValueInterface","numProperties","np","enabled","expressionProperty","setGroupProperty","createEffectsInterface","effectsManager","effectsData","CompExpressionInterface","layer","pixelAspect","compSize","frameDuration","displayStartTime","numLayers","ShapePathInterface","propertyIndex","ShapeExpressionInterface","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dataProps","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","TextExpressionInterface","_prevValue","_sourceText","sourceText","textProperty","stringValue","currentData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectItem","GroupEffect","BaseElement","FrameElement","_typeof$2","eff","checkMasks","effectsInterface","shapesData","itemsData","setBlendMode","blendModeValue","bm","baseElement","layerElement","initBaseData","layerId","prepareProperties","isVisible","_isParent","FootageInterface","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","getFootageData","searchProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","FootageElement","imageLoader","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","TransformElement","MaskElement","maskElement","solidPath","rect","expansor","feMorph","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","getBaseElement","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","setAsParent","setHierarchy","addPendingElement","pendingElements","pathValue","setupGlobalData","fontsContainer","animationItem","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","registeredEffects","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","gg","layerElementParent","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","lj","ml","of","ost","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","dist","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","sm","getMult","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","rot","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","titleElement","titleId","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVEffects","CVMaskElement","hasMasks","CVBaseElement","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","CVShapeElement","CVTextElement","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","appendElementInPos","nextElement","insertBefore","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","sequence","processSequence","processSequences","getNewKey","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","createElements","blendMode","globalCompositeOperation","hideElement","showElement","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","wi","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","drawImage","cProps","trProps","globalAlpha","actionFlag","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","clearRect","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","yMax","bottom","tempBoundingBox","p3","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","box","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","center","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","svg","cWidth","cHeight","floatingContainer","_createBaseContainerElements","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","_typeof$1","seedRandom","startdenom","significance","ARC4","keylen","me","flatten","depth","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","SHAPE","ExpressionManager","frames","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","executeExpression","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","speed","delta","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","SVGTintFilter","matrixFilter","feMerge","createMergeNode","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","resultId","ins","feMergeNode","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","aa","ba","Set","ca","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","construct","Qa","Ra","_context","_payload","_init","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","bb","ownerDocument","eb","Children","db","selected","defaultSelected","disabled","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","firstChild","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","rb","sb","tb","setProperty","ub","menuitem","area","embed","keygen","link","param","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","dc","ec","gc","hc","jc","kc","mc","nc","oc","pc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","hydrate","containerInfo","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","unstable_UserBlockingPriority","ed","fd","gd","uc","jd","kd","ld","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Rd","repeat","which","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","datetime","tel","week","oe","qe","re","se","te","ue","ve","we","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","capture","passive","Nb","ff","parentWindow","hf","J","je","ke","jf","lf","mf","autoFocus","nf","__html","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","I","Cf","N","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","yg","zg","eventTime","Ag","Bg","Cg","Dg","Eg","Fg","Component","refs","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","updater","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","tagName","ih","memoizedProps","revealOrder","jh","kh","mh","nh","oh","pendingProps","ph","qh","rh","th","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","useState","getSnapshot","useEffect","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","ii","ji","ki","li","mi","baseLanes","oi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","yi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","createTextNode","V","Hi","Ii","Ji","Li","Mi","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","focus","aj","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","ck","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","setStart","setEnd","scrollLeft","scrollTop","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","uk","hk","_calculateChangedBits","unstable_observedBits","unmount","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","_createClass","_react","_react2","_propTypes2","InfiniteScroll","_Component","_classCallCheck","_this","_possibleConstructorReturn","scrollListener","eventListenerOptions","mousewheelListener","_inherits","pageLoaded","pageStart","attachScrollListener","isReverse","loadMore","parentElement","getParentElement","scrollComponent","scrollHeight","beforeScrollHeight","beforeScrollTop","detachScrollListener","detachMousewheelListener","testOptions","useCapture","isPassiveSupported","loader","defaultLoader","scrollEl","useWindow","scrollParent","getScrollParent","hasMore","initialLoad","doc","pageYOffset","calculateOffset","clientHeight","offsetParent","calculateTopPosition","innerHeight","offsetTop","_this2","renderProps","filterProps","_objectWithoutProperties","childrenArray","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","_extends3","_getPrototypeOf2","_classCallCheck3","_createClass3","_possibleConstructorReturn3","_inherits3","_lottieWeb2","Lottie","_React$Component","_temp","_ret","_len","handleClickToPause","_props","eventListeners","registerEvents","nextProps","deRegisterEvents","isStopped","eventListener","_this3","_this4","_props2","ariaRole","isClickToPauseDisabled","getSize","initial","lottieStyles","outline","onClickHandler","role","tabIndex","actions","defaultRenderer","emptyRenderer","defaultColumn","Cell","minWidth","maxWidth","mergeProps","propList","makePropGetter","hooks","userProps","prev","handlePropGetter","prevProps","reduceHooks","allowUndefined","loopHooks","hook","ensurePluginOrder","befores","pluginName","afters","before","functionalUpdate","useGetLatest","safeUseLayoutEffect","useMountedLayoutEffect","mountedRef","makeRenderer","column","Comp","flexRender","isClassComponent","isExoticComponent","linkColumnStructure","assignColumnAccessor","flattenColumns","flattenBy","accessor","Header","accessorPath","row","cacheKey","pathObj","pathObjCache","flattenDeep","newArr","reOpenBracket","reCloseBracket","makePathArray","cursor","pathPart","getBy","decorateColumn","userDefaultColumn","Footer","originalWidth","makeHeaderGroups","allColumns","additionalHeaderProperties","headerGroups","scanColumns","getUID","headerGroup","parentColumns","hasParents","some","newParent","latestParentColumn","originalId","placeholderOf","getFirstDefined","flat","recurse","expandRows","rows","manualExpandedKey","expanded","expandSubRows","expandedRows","handleRow","addToExpandedRows","isExpanded","original","canExpand","subRows","getFilterMethod","userFilterTypes","filterTypes","shouldAutoRemoveFilter","autoRemove","unpreparedAccessWarning","passiveSupported","defaultGetTableProps","defaultGetTableBodyProps","defaultGetHeaderProps","colSpan","totalVisibleHeaderCount","defaultGetFooterProps","defaultGetHeaderGroupProps","defaultGetFooterGroupProps","defaultGetRowProps","defaultGetCellProps","cell","makeDefaultPluginHooks","useOptions","stateReducers","useControlledState","columnsDeps","allColumnsDeps","accessValue","materializedColumns","materializedColumnsDeps","useInstanceAfterData","visibleColumns","visibleColumnsDeps","headerGroupsDeps","useInstanceBeforeDimensions","useInstance","prepareRow","getTableProps","getTableBodyProps","getHeaderGroupProps","getFooterGroupProps","getHeaderProps","getFooterProps","getRowProps","getCellProps","useFinalInstance","resetHiddenColumns","toggleHideColumn","setHiddenColumns","toggleHideAllColumns","useColumnVisibility","getToggleHiddenProps","defaultGetToggleHiddenProps","getToggleHideAllColumnsProps","defaultGetToggleHideAllColumnsProps","reducer","hiddenColumns","onChange","toggleHidden","allColumnsHidden","indeterminate","previousState","initialState","columnId","subHeader","handleColumn","parentVisible","subColumn","flatHeaders","getHooks","autoResetHiddenColumns","getInstance","getAutoResetHiddenColumns","defaultInitialState","defaultColumnInstance","defaultReducer","prevState","defaultGetSubRows","defaultGetRowId","defaultUseControlledState","applyDefaults","getSubRows","getRowId","stateReducer","calculateHeaderWidths","sumTotalMinWidth","sumTotalWidth","sumTotalMaxWidth","sumTotalFlexWidth","subHeaders","totalLeft","totalMinWidth","totalWidth","totalMaxWidth","totalFlexWidth","accessRowsForColumn","flatRows","rowsById","accessValueHooks","originalRow","rowIndex","accessRow","parentRows","originalSubRows","cells","resetExpanded","toggleRowExpanded","toggleAllRowsExpanded","useExpanded","getToggleAllRowsExpandedProps","defaultGetToggleAllRowsExpandedProps","getToggleRowExpandedProps","defaultGetToggleRowExpandedProps","isAllRowsExpanded","rowId","setExpanded","exists","shouldExist","paginateExpandedRows","autoResetExpanded","getAutoResetExpanded","Boolean","expandedDepth","maxDepth","splitId","findExpandedDepth","preExpandedRows","ids","filterValue","rowValue","exactText","exactTextCase","includesAll","includesSome","includesValue","between","resetFilters","setFilter","setAllFilters","useFilters","filterMethod","previousfilter","newFilter","manualFilters","defaultCanFilter","disableFilters","autoResetFilters","columnDefaultCanFilter","columnDisableFilters","canFilter","filteredFlatRows","filteredRowsById","filterRows","filteredRows","filteredSoFar","preFilteredRows","getAutoResetFilters","preFilteredFlatRows","preFilteredRowsById","resetGlobalFilter","setGlobalFilter","useGlobalFilter","globalFilter","manualGlobalFilter","globalFilterValue","autoResetGlobalFilter","disableGlobalFilter","columnDisableGlobalFilter","filterableColumns","globalFilteredRows","globalFilteredFlatRows","globalFilteredRowsById","getAutoResetGlobalFilter","preGlobalFilteredRows","preGlobalFilteredFlatRows","preGlobalFilteredRowsById","aggregatedValues","mid","nums","unique","emptyArray","emptyObject","resetGroupBy","setGroupBy","toggleGroupBy","useGroupBy","getGroupByToggleProps","defaultGetGroupByToggleProps","groupBy","canGroupBy","resolvedGroupBy","groupByColumns","nonGroupByColumns","isGrouped","groupedIndex","defaultUserAggregations","groupByFn","defaultGroupByFn","manualGroupBy","aggregations","userAggregations","autoResetGroupBy","disableGroupBy","defaultCanGroupBy","defaultColumnGroupBy","defaultGroupBy","columnDisableGroupBy","Aggregated","existingGroupBy","groupedFlatRows","groupedRowsById","onlyGroupedFlatRows","onlyGroupedRowsById","nonGroupedFlatRows","nonGroupedRowsById","groupedRows","groupUpRecursively","parentId","rowGroupsMap","groupByVal","leafRows","aggregateFn","aggregate","groupedValues","leafValues","columnValue","aggregateValue","aggregateValueFn","aggregateRowsToValues","groupByID","subRow","getAutoResetGroupBy","preGroupedRows","preGroupedFlatRow","preGroupedRowsById","allCells","isPlaceholder","isAggregated","_row$subRows","resKey","reSplitAlphaNumeric","compareBasic","getRowValuesByColumnID","row1","row2","alphanumeric","rowA","rowB","bn","combo","alower","blower","replaceNonNumeric","resetSortBy","setSortBy","toggleSortBy","clearSortBy","sortType","sortDescFirst","useSortBy","getSortByToggleProps","defaultGetSortByToggleProps","isMultiSortEvent","canSort","disableMultiSort","sortBy","sortAction","multi","disableSortRemove","disableMultiRemove","maxMultiSortColCount","existingSortBy","existingIndex","hasDescDefined","newSortBy","orderByFn","defaultOrderByFn","userSortTypes","sortTypes","manualSortBy","defaultCanSort","disableSortBy","autoResetSortBy","defaultColumnCanSort","columnDisableSortBy","columnSort","isSorted","sortedIndex","isSortedDesc","sortedFlatRows","availableSortBy","sortData","sortedData","sortMethod","sortInverted","sortedRows","getAutoResetSortBy","preSortedRows","preSortedFlatRows","funcs","dirs","sortFn","sortInt","resetPage","gotoPage","setPageSize","usePagination","pageSize","pageIndex","pageCount","newPageIndex","canNavigate","topRowIndex","autoResetPage","userPageCount","manualPagination","getAutoResetPage","pageOptions","pageEnd","canPreviousPage","canNextPage","previousPage","nextPage","resetPivot","togglePivot","_UNSTABLE_usePivotColumns","getPivotToggleProps","defaultGetPivotToggleProps","defaultPivotColumns","canPivot","pivotColumns","setPivot","resolvedPivot","isPivotSource","uniqueValues","materialized","sourceColumns","newMaterialized","buildPivotColumns","pivotFilters","pivotColumn","uniqueValue","columnGroup","PivotHeader","isPivotGroup","pivotValue","sourceColumn","isPivoted","autoResetPivot","manaulPivot","disablePivot","defaultCanPivot","defaultColumnPivot","defaultPivot","columnDisablePivot","getAutoResetPivot","resetSelectedRows","toggleAllRowsSelected","toggleRowSelected","toggleAllPageRowsSelected","useRowSelect","getToggleRowSelectedProps","defaultGetToggleRowSelectedProps","getToggleAllRowsSelectedProps","defaultGetToggleAllRowsSelectedProps","getToggleAllPageRowsSelectedProps","defaultGetToggleAllPageRowsSelectedProps","manualRowSelectedKey","isSelected","isSomeSelected","isAllRowsSelected","selectedRowIds","isAllPageRowsSelected","setSelected","selectAll","selectSubRows","newSelectedRowIds","handleRowById","autoResetSelectedRows","selectedFlatRows","getRowIsSelected","allChildrenSelected","someSelected","getAutoResetSelectedRows","defaultInitialRowStateAccessor","defaultInitialCellStateAccessor","setRowState","setCellState","resetRowState","useRowState","initialRowStateAccessor","initialCellStateAccessor","rowState","oldRowState","oldCellState","cellState","_rowsById$_rowId","_rowsById$_rowId$cell","autoResetRowState","getAutoResetRowState","setState","resetColumnOrder","setColumnOrder","useColumnOrder","columnOrder","columnOrderCopy","columnsCopy","columnsInOrder","targetColumnId","columnStartResizing","columnResizing","columnDoneResizing","resetResize","useResizeColumns","getResizerProps","defaultGetResizerProps","onResizeStart","isTouchEvent","raf","mostRecentClientX","headerIdWidths","leafHeaders","recurseHeader","getLeafHeaders","dispatchEnd","cancelAnimationFrame","dispatchMove","scheduleDispatchMoveOnNextAnimationFrame","clientXPos","handlersAndEvents","mouse","moveEvent","moveHandler","upEvent","upHandler","touch","passiveIfSupported","supported","passiveEventSupported","columnWidth","onMouseDown","onTouchStart","draggable","columnWidths","startX","isResizingColumn","percentageDeltaX","newColumnWidths","headerId","headerWidth","disableResizing","isResizing","autoResetResize","getAutoResetResize","resetResizing","cellStyles","useAbsoluteLayout","getRowStyles","totalColumnsWidth","boxSizing","useBlockLayout","useFlexLayout","totalColumnsMinWidth","useGridLayout","gridTemplateColumns","gridLayout","_instance$state$colum","startWidths","getElementWidth","minWidths","maxWidths","headerIdGridWidths","getElementById","_document$getElementB","defaultFn","defaultWait","debounceRef","getDefaultFn","getDefaultWait","userColumns","getStateReducer","reducerState","allColumnsQueue","initialRows","visibleColumnsDep","totalColumnsMaxWidth","footerGroups","__self","__source","jsx","jsxs","forceUpdate","_status","_result","IsSomeRendererActing","toArray","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","createFactory","createRef","forwardRef","isValidElement","lazy","memo","performance","MessageChannel","unstable_forceFrameRate","port2","port1","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","__export","BufferClasses","JsonDefaultCborEncoder","_serializer","_stable","undefined_","doubleFloat","null_","serializeValue","ToCborEncoder","CborSerializer","stable","removeEncoder","_encoders","getEncoderFor","chosenEncoder","_concat","newBuffer","_serializeValue","major","minor","_serializeNumber","_serializeString","utf8","charcode","uSmall","u8","radix","u16","u64","iSmall","i8","i32","i64","newI64","reduceRight","true_","false_","keyA","keyB","localeCompare","single","ranges","getRangeAt","blur","SVGPathSeg","typeAsLetter","owningPathSegList","pathSegType","pathSegTypeAsLetter","_owningPathSegList","classname","PATHSEG_UNKNOWN","PATHSEG_CLOSEPATH","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_REL","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","_segmentChanged","segmentChanged","SVGPathSegClosePath","_asPathString","SVGPathSegMovetoAbs","_x","_y","SVGPathSegMovetoRel","SVGPathSegLinetoAbs","SVGPathSegLinetoRel","SVGPathSegCurvetoCubicAbs","_x1","_y1","_x2","_y2","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegArcAbs","r1","largeArcFlag","sweepFlag","_r1","_r2","_angle","_largeArcFlag","_sweepFlag","SVGPathSegArcRel","SVGPathSegLinetoHorizontalAbs","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathElement","createSVGPathSegClosePath","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoRel","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","getPathSegAtLength","measurementElement","getAttribute","lastPathSegment","pathSegList","numberOfItems","removeItem","SVGPathSegList","_pathElement","_list","_parsePath","_mutationObserverConfig","attributeFilter","_pathElementMutationObserver","MutationObserver","_updateListFromPathMutations","observe","_checkPathSynchronizedToList","_pathSegList","takeRecords","mutationRecords","hasPathMutations","_writeListToPath","disconnect","_pathSegArrayAsString","pathSeg","clear","newItem","_checkValidIndex","getItem","insertItemBefore","replaceItem","appendItem","pathSegArray","Builder","appendSegment","Source","_string","_currentIndex","_endIndex","_previousCommand","_skipOptionalSpaces","_isCurrentSpace","character","_skipOptionalSpacesOrDelimiter","hasMoreData","peekSegmentType","lookahead","_pathSegTypeFromChar","_nextCommandHelper","previousCommand","initialCommandIsMoveTo","command","_parseNumber","exponent","integer","frac","expsign","startIndex","startIntPartIndex","scanIntPartIndex","multiplier","_parseArcFlag","flagChar","parseSegment","arcAngle","arcLarge","arcSweep","builder","_regeneratorRuntime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","async","iter","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","leafPrototypes","ns","definition","chunkId","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","charset","onScriptComplete","doneFns","head","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal","_defineProperties","_assertThisInitialized","_setPrototypeOf","_getPrototypeOf","_arrayWithHoles","_arrayLikeToArray","_unsupportedIterableToArray","minLen","_nonIterableRest","_toArray","enumerableOnly","_objectSpread","getOwnPropertyDescriptors","consoleLogger","Logger","concreteLogger","logger","forward","_len2","_key2","_len3","_key3","_len4","_key4","debugOnly","moduleName","baseLogger","observers","observer","_cloned","defer","rej","makeString","getLastOfPath","cleanKey","canNotTraverseDeeper","_getLastOfPath","_getLastOfPath3","getPathWithDefaults","deepExtend","overwrite","regexEscape","_entityMap","isIE10","userAgentData","ownKeys$1","_objectSpread$1","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","_isNativeReflectConstruct","Super","NewTarget","deepFind","keySeparator","mix","joinedPath","ResourceStore","_EventEmitter","_super","defaultNS","ignoreJSONStructure","lng","silent","addNamespaces","resources","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","processor","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","services","language","interpolation","resolved","nsSeparator","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","defaultVariables","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","interpolate","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","extracted","fallbackNS","needsZeroSuffixLookup","shouldUseIntlApi","needsContextHandling","codes","hasLoadedNamespace","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","option","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","sets","nr","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","one","two","few","many","createRules","rules","numbers","plurals","PluralResolver","compatibilityJSON","PluralRules","_unused","rule","getRule","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","select","getSuffixRetroCompatible","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","todo","matchedVar","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","formatters","doReduce","ownKeys$4","_objectSpread$4","Formatter","NumberFormat","currency","relativetime","RelativeTimeFormat","ListFormat","_format","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","_opt$split2","parseFormatStr","formatted","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","backend","waitingReads","maxParallelReads","readingCalls","languages","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","errors","addResourceBundle","_getLastOfPath2","pushPath","removePending","loadedKeys","fcName","tried","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","initImmediate","preload","partialBundledLanguages","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","noop","bindMemberFunctions","inst","I18n","modules","external","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","initializedStoreOnce","changeLanguage","usedCallback","resolvedLanguage","setResolvedLanguage","lngInLngs","hasLanguageSomeTranslations","isLanguageChangingTo","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","keyPrefix","fixedT","rest","resultKey","_this$translator","_this$translator2","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","reloadResources","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","getI18n","initReactI18next","setDefaults","react","setI18n","ReactReduxContext","batch","getBatch","nullListeners","notify","createSubscription","parentSub","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","isSubscribed","createListenerCollection","notifyNestedSubs","tryUnsubscribe","getListeners","useIsomorphicLayoutEffect","contextValue","getState","useReduxContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","useDispatch","refEquality","createSelectorHook","selector","equalityFn","_useReduxContext","selectedState","contextSub","latestSubscriptionCallbackError","latestSelector","latestStoreState","latestSelectedState","storeState","newSelectedState","checkForUpdates","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","newBatch","useSelector","NavigationContext","LocationContext","RouteContext","outlet","invariant","cond","matchRoutes","routes","locationArg","basename","stripBasename","parsePath","branches","flattenRoutes","score","siblings","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","parentsMeta","parentPath","route","relativePath","caseSensitive","joinPaths","computeScore","paramRe","isSplat","initialScore","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","pattern","matcher","paramNames","regexpSource","paramName","compilePath","captureGroups","splatValue","safelyDecodeURIComponent","resolveTo","toArg","routePathnames","locationPathname","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","nextChar","useHref","useInRouterContext","useResolvedPath","joinedPathname","getToPathname","endsWithSlash","createHref","useLocation","useNavigate","routePathnamesJson","activeRef","navigate","go","useParams","routeMatch","_renderMatches","parentMatches","React.createElement","Route","Router","_ref3","basenameProp","locationProp","navigationType","NavigationType","static","staticProp","navigationContext","trailingPathname","Routes","_ref4","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","_parsedLocationArg$pa","useRoutes","createRoutesFromChildren","BrowserRouter","historyRef","createBrowserHistory","history","listen","Link","reloadDocument","internalOnClick","replaceProp","isModifiedEvent","useLinkClickHandler","gridGap","columnGap","gridColumnGap","rowGap","gridRowGap","inset","insetBlock","insetBlockEnd","insetBlockStart","insetInline","insetInlineEnd","insetInlineStart","marginTop","marginRight","marginBottom","marginLeft","marginBlock","marginBlockEnd","marginBlockStart","marginInline","marginInlineEnd","marginInlineStart","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingBlock","paddingBlockEnd","paddingBlockStart","paddingInline","paddingInlineEnd","paddingInlineStart","scrollMargin","scrollMarginTop","scrollMarginRight","scrollMarginBottom","scrollMarginLeft","scrollMarginX","scrollMarginY","scrollMarginBlock","scrollMarginBlockEnd","scrollMarginBlockStart","scrollMarginInline","scrollMarginInlineEnd","scrollMarginInlineStart","scrollPadding","scrollPaddingTop","scrollPaddingRight","scrollPaddingBottom","scrollPaddingLeft","scrollPaddingX","scrollPaddingY","scrollPaddingBlock","scrollPaddingBlockEnd","scrollPaddingBlockStart","scrollPaddingInline","scrollPaddingInlineEnd","scrollPaddingInlineStart","background","backgroundImage","borderImage","border","borderBlock","borderBlockEnd","borderBlockStart","borderBottom","borderBottomColor","borderColor","borderInline","borderInlineEnd","borderInlineStart","borderLeft","borderLeftColor","borderRight","borderRightColor","borderTop","borderTopColor","caretColor","columnRuleColor","outlineColor","textDecorationColor","minBlockSize","maxBlockSize","inlineSize","minInlineSize","maxInlineSize","minHeight","maxHeight","flexBasis","gridTemplateRows","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","boxShadow","textShadow","appearance","WebkitAppearance","WebkitBackfaceVisibility","backdropFilter","WebkitBackdropFilter","backgroundClip","WebkitBackgroundClip","boxDecorationBreak","WebkitBoxDecorationBreak","clipPath","WebkitClipPath","hyphens","WebkitHyphens","maskImage","WebkitMaskImage","maskSize","WebkitMaskSize","MozTabSize","textSizeAdjust","WebkitTextSizeAdjust","WebkitUserSelect","maxSize","minSize","media","themeMap","animationDelay","animationDuration","backgroundSize","borderBlockEndWidth","borderBlockStartWidth","borderBlockWidth","borderEndEndRadius","borderEndStartRadius","borderInlineEndWidth","borderInlineStartWidth","borderInlineWidth","borderSpacing","borderStartEndRadius","borderStartStartRadius","columnRule","columnRuleWidth","containIntrinsicSize","gridAutoColumns","gridAutoRows","offsetDistance","offsetRotate","outlineOffset","outlineWidth","overflowClipMargin","shapeMargin","textDecoration","textDecorationThickness","textIndent","textUnderlineOffset","transitionDelay","transitionDuration","verticalAlign","wordSpacing","cssRules","sheet","cssText","deleteRule","styleSheets","insertRule","import","composers","variants","compoundVariants","defaultVariants","css","styled","resonevar","onevar","allvar","inline","deferredInjector","themed","computedValue","theme","globalCss","createTheme","getCssText","as","createStitches","colors","navBackgroundColor","buttonBackgroundColor","mainTextColor","tabActive","buttonsBorderColor","nftCardName","nftCardId","nftCardSubSection","tableBackgroundColor","tableTextColor","tableNftActivityTextColor","tableLinkTextColor","tableRowHoverColor","openAccordion","closeAccordion","accordionHeadingTextColor","accordionContentBackgroundColor","chipsTextColor","chipsBackgroundColor","chipsNftBackgroundColor","modalOverlay","skeletonBackground","checkboxSelectedFiltersText","greyMid","primary","modalText","toastBackground","iconGrey","lightYellow","paleYellow","regentGrey","defaultBackgroundColour","defaultTxtColour","shadows","large","darkTheme","Wrapper","true","Button","alignItems","justifyContent","secondary","pointerEvents","danger","small","wide","light","LinkButtonStyles","textBtn","IconButtonStyles","ActionButton","onKeyDown","LinkButton","handleClick","IconActionButton","_slicedToArray","_e","_n","_d","_console","alreadyWarned","warnOnce","i18n","oldI18nextHasLoadedNamespace","isNewerI18next","usePrevious","ignore","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","retNotReady","ready","i18nOptions","addUsedNamespaces","getT","nsMode","_useState","_useState2","setT","joinedNS","previousJoinedNS","boundReset","isInitial","die","isDraft","DRAFT_STATE","isDraftable","Ctor","objectCtorString","DRAFTABLE","isMap","isSet","each","getArchtype","type_","propOrOldValue","hasMap","hasSet","latest","copy_","base_","shallowCopy","descriptors","isFrozen","dontMutateFrozenCollections","getPlugin","pluginKey","loadPlugin","getCurrentScope","currentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","baseDraft","isReplaced","useProxies_","willFinalizeES5_","modified_","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","childValue","finalizeProperty","scope_","finalized_","draft_","generatePatches_","parentState","targetObject","rootPath","assigned_","autoFreeze_","peek","getDescriptorFromProto","markChanged","prepareCopy","createProxy","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","revocable","revoke","proxy","createProxyProxy","createES5Proxy_","copyHelper","archType","enableES5","proxyProperty","markChangesSweep","drafts","hasArrayChanges","hasObjectChanges","baseValue","baseIsDraft","createES5Draft","markChangesRecursively","hasChanges_","hasSymbol","hasProxies","_desc$get","readPropFromProto","currentState","deleteProperty","Immer","recipe","produce","hasError","arg1","arg2","produceWithPatches","patches","inversePatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","currentImpl","finishDraft","applyPatches","patch","applyPatchesImpl","applyPatches_","_objectSpread2","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","preloadedState","enhancer","_ref2","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","compose","applyMiddleware","middlewares","_dispatch","middlewareAPI","middleware","createThunkMiddleware","extraArgument","thunk","withExtraArgument","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","__REDUX_DEVTOOLS_EXTENSION__","baseProto","MiddlewareArray","__extends","species","freezeDraftable","createNextState","curryGetDefaultMiddleware","middlewareArray","isBoolean","thunkMiddleware","getDefaultMiddleware","createAction","prepareAction","actionCreator","prepared","__spreadValues","executeReducerBuilderCallback","builderCallback","defaultCaseReducer","actionsMap","actionMatchers","addCase","typeOrActionCreator","addMatcher","addDefaultCase","createSlice","_reducer","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","buildReducer","extraReducers","_f","finalCaseReducers","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","isStateFunction","frozenInitialState_1","caseReducers","reducer2","caseReducer","isDraft2","isDraftable2","createNextState2","createReducer","reducerName","prepareCallback","maybeReducerWithPrepare","prepare","nanoid","commonProperties","miniSerializeError","simpleError","createAsyncThunk","typePrefix","payloadCreator","__spreadProps","requestStatus","serializeError","rejectedWithValue","AC","AbortController","dispatchEvent","throwIfAborted","class_1","abortReason","idGenerator","abortController","abortedPromise","started","conditionResult","getPendingMeta","race","rejectWithValue","RejectWithValue","fulfillWithValue","FulfillWithMeta","finalAction","err_1","dispatchConditionRejection","unwrapResult","alm","PlugStatusCodes","FilterConstants","OperationTypes","plugSlice","isConnected","connectionStatus","walletsWICPBalance","loadingWICPBalance","icnsName","setIsConnected","Connected","FailedToConnect","setPrincipalId","setICNSName","setConnectionStatus","setWalletsWICPBalance","setLoadingWICPBalance","plugActions","selectPlugState","useAppDispatch","useAppSelector","usePlugStore","NftError","logo","custodians","UnauthorizedOperator","SelfTransfer","TokenNotFound","UnauthorizedOwner","TxNotFound","SelfApprove","OperatorNotFound","ExistedNFT","OwnerNotFound","Other","Ok","ManualReply","created_at","upgraded_at","Nat64Content","Nat32Content","BoolContent","Nat8Content","Int64Content","IntContent","NatContent","Nat16Content","Int32Content","Int8Content","FloatContent","Int16Content","BlobContent","NestedContent","TextContent","GenericValue","ManualReply_1","TokenMetadata","transferred_at","transferred_by","approved_at","approved_by","is_burned","token_identifier","burned_at","burned_by","minted_at","minted_by","ManualReply_2","Stats","cycles","total_transactions","total_unique_holders","total_supply","SupportedInterface","Mint","Approval","TransactionHistory","ManualReply_3","TxEvent","ManualReply_4","mint","operatorOf","operatorTokenIdentifiers","operatorTokenMetadata","ownerOf","ownerTokenIdentifiers","ownerTokenMetadata","setCustodians","setLogo","setSymbol","stats","supportedInterfaces","tokenMetadata","totalSupply","totalTransactions","totalUniqueHolders","TxError","InsufficientAllowance","InsufficientBalance","ErrorOperationStyle","Unauthorized","LedgerTrap","ErrorTo","BlockUsed","AmountTooSmall","fee","holderNumber","deployTime","historySize","feeTo","getAllowanceSize","getBlockUsed","getHolders","getMetadata","getTokenInfo","getUserApprovals","isBlockUsed","mintFor","setFee","setFeeTo","setGenesis","MPApiError","TransferFromFungibleError","NonExistentCollection","NoDeposit","InvalidListingStatus","InsufficientFungibleBalance","InvalidListing","TransferFromNonFungibleError","TransferNonFungibleError","InsufficientFungibleAllowance","TransferFungibleError","InvalidOffer","InvalidOwner","InsufficientNonFungibleBalance","InvalidOfferStatus","InvalidOperator","CAPInsertionError","NFTStandard","EXT","DIP721v2","FungibleStandard","DIP20","OfferStatus","Bought","Uninitialized","Denied","Cancelled","Created","Offer","created","token_id","token_owner","buyer","price","nft_canister_id","collection_fee","creation_time","nft_canister_standard","collection_name","fungible_volume","fungible_canister_standard","fungible_canister_id","ListingStatus","Selling","Listing","seller","acceptOffer","addCollection","cancelListing","cancelOffer","denyOffer","dfxInfo","directBuy","getAllBalances","getBuyerOffers","getCollections","getFloor","getProtocolFee","getTokenListing","getTokenOffers","gitCommitHash","makeListing","makeOffer","rustToolchainInfo","setProtocolFee","withdrawFungible","stopped","stopping","running","DefiniteCanisterSettings","freezing_threshold","controllers","CanisterStatusResponse","memory_size","module_hash","bucket_status","custom_upgrade_root_bucket","git_commit_hash","root_buckets_to_upgrade","env","production","kyasshuMarketplaceAPI","icScan","nftCollectionId","marketplaceCanisterId","wICPCanisterId","capRouterId","staging","development","REACT_APP_CROWNS_ID","REACT_APP_MARKETPLACE_ID","REACT_APP_WICP_ID","REACT_APP_CAP_ID","AppLog","IDENTIFIER","actorInstanceHandler","thunkAPI","serviceName","plugIsConnected","currentAgent","currentAgentPrincipal","plugAgent","plugAgentPrincipal","asPlugInstance","newActor","crownsIdlFactory","wicpIdlFactory","capIdlFactory","marketplaceIdlFactory","setActor","useTheme","useThemeStore","currentThemeObject","defaultTheme","themeGlobals","portalZIndexGlobals","E8S_PER_ICP","NFTActionStatuses","ThemeRootElement","formatAddress","address","floorDiffPercentageCalculator","currentPrice","floorDifferencePrice","formatPriceValue","parseAmountToE8S","computedAmount","parseE8SAmountToWICP","parseAmountToE8SAsNum","useTraitsPayload","traits","useFilterStore","trait","usePriceValues","defaultFilters","filterCategory","filterName","isNFTOwner","KyasshuUrl","bucketId","NSKyasshuUrl","useNFTSFetcher","currentAbortController","setCurrentAbortController","isMyNfts","traitsPayload","priceValues","shouldTrigger","setShouldTrigger","useUpdateEffect","nftsActions","notificationSlice","messages","setErrorMessage","removeMessage","setSuccessMessage","notificationActions","selectNotificationState","notification","getFilterTraits","filterActions","setIsFilterTraitsLoading","responseData","smallGem","bigGem","rim","parsedTraits","getAllFilters","setIsAlreadyFetched","COINGECKO_ICP_ID","api","getICPPrice","vs_currencies","totalPriceCalculator","feesInPercent","deductions","SortOptions","getSearchResults","sortingDetails","orderBy","PriceLowToHigh","PriceHighToLow","CurrentPrice","priceInUSD","icpPriceResponse","usd","nft","wicpPrice","preview","filterSlice","loadedFiltersList","loadingFilterList","searchResults","isAlreadyFetched","loadingSearch","applyFilter","updateFilter","filterIndex","appliedFilter","applytraits","traitsFilterIndex","traitName","defaultFiltersIndex","setMyNfts","removeFilter","removedFilter","removePriceFilter","removedPriceFilter","removeTraitsFilter","removedTraitsFilter","filteredTraitsValues","removedDefaultFilter","filteredNames","defaultFilter","clearAllFilters","setSortingFilter","setStatusFilter","setSearchResults","setLoadingSearch","selectFilterState","getTheme","localStorage","themeSlice","setTheme","setItem","themeActions","selectThemeState","findLastAction","lastSalePrice","lastSale","lastModified","Sold","lastOfferPrice","OfferReceived","ForSale","isTokenId","parsedId","roundOffDecimalValue","decimalPlace","isOperatorMarketplace","userRelevantDirectContractOps","isEmptyObject","ResponseStatus","getNFTs","axiosParams","pages","actionPayload","loadedNFTList","lastOffer","occurance","rarity","biggem","smallgem","lastActionTaken","totalPages","collectionPayload","itemsCount","ownersCount","Canceled","getNFTDetails","nftDetails","thumbnail","rendered","toErrorMessage","errorKey","extractErrorKey","parseError","otherErrorParser","errorMessageHandler","onSuccess","onFailure","nonFungibleContractAddress","userOwnedTokenId","userListForPrice","CROWNS_APPROVE_MARKETPLACE","idl","onFail","MKP_MAKE_LISTING","getCAPJellySync","batchTransactions","defaultErrorMessage","marketplace","sumOfUserAllowance","allowanceAmountInWICP","allowanceAmount","WICP_APPROVE","MKP_DIRECT_BUY","marketplaceActions","setFailedTransactions","MKP_CANCEL_LISTING","MKP_CANCEL_OFFER","mkpContractAddress","crownsContractAddress","userOfferInPrice","WICP_APPROVE_MARKETPLACE","MKP_MAKE_OFFER_WICP","buyerPrincipalId","offerPrice","buyerAddress","MKP_ACCEPT_OFFER","timezone","dayjs","USER_TIMEZONE","getNow","dateRelative","timestamp","formatTimestamp","formattedTimestamp","timestampInMilliseconds","sortTransactionsByTime","transactions","parseGetTokenOffersResponse","currencyMarketPrice","accParent","currParent","parsedTokenOffers","accChild","currChild","paymentAddress","fromDetails","formattedAddress","computedCurrencyPrice","floorDifference","sortedOffersByPrice","offerAPrice","getOperationType","operationType","tablePrincipalHandler","parseTablePrincipal","parsedArr","parseTokenTransactions","fromEntries","isDirectContractEvent","checkIfDirectContractEvent","sellerPrincipalAs","sellerPrincipal","buyerPrincipalAs","tokenIdFieldAs","parsedTokenId","replaceAll","actorInstance","marketplaceSlice","userPrincipalId","userPrincipalAddress","floorDifferenceResponse","parsedOffersMade","offerDetails","parseOffersMadeResponse","setOffersLoaded","getFloorPrice","floorPriceinWICP","floorResponse","floorPrice","collectionsResponse","parsedCollections","collectionName","fungibleVolume","settingsSlice","collapsed","displayPriceApplyButton","showAlerts","assetsToWithdraw","setFilterCollapsed","setPriceApplyButton","setAlerts","settingsActions","selectSettingsState","useSettingsStore","getAssetsToWithdraw","balanceResponse","fungibleStandard","principalAddress","withdrawResponse","recentlyListedForSale","recentlyCancelledItems","recentlyCancelledOffers","recentlyAcceptedOffers","tokenListing","tokenOffers","recentlyMadeOffers","recentlyPurchasedTokens","recentlyWithdrawnAssets","recentlyFailedTransactions","offersLoaded","setSumOfUserAllowance","getCollectionData","owners","collections","crownsCollection","findNFTIndex","nftList","idToFind","nftsSlice","loadingNFTs","loadedNFTS","failedToLoadNFTS","failedToLoadNFTSMessage","hasMoreNFTs","nextPageNo","loadingCollectionData","totalNFTSCount","totalOwnersCount","setIsNFTSLoading","setLoadedNFTS","clearLoadedNFTS","setFailedToLoadNFTS","setLoadedNFTDetails","setNFTForSale","isListed","cancelNFTFromListing","acceptNFTOffer","buyerId","setCollectionDataLoading","setCollectionData","selectNFTSState","nfts","useNFTSStore","getCAPActivity","tableActions","setIsTableDataLoading","Items","Count","pageNo","capData","loadedCapActivityTableData","tableData","list_price","callerDfinityExplorerUrl","currentPage","setCapActivityTable","getTokenMetadata","getTokenTransactions","getUserActivity","plugPrincipal","userAddress","capRoot","activities","sortActivitiesByTime","activity","loadedUserActivityData","setUserActivityTable","loadedCapActivityData","loadedTableMetaData","loadingTableData","failedToLoadTableData","tokenTransactions","loadingTokenTransactions","tokenMetadataById","loadingUserTableData","hasMoreUserActivities","nextUserActivityPageNo","tableSlice","setIsUserTableDataLoading","setFailedToLoadTableData","selectTableState","useTableStore","getOwnerTokenIdentifiers","crownsSlice","crownsActions","getTokenContractRootBucket","capSlice","setLoading","loading","setBucketId","capActions","selectCapState","cap","wicpSlice","rootReducer","curriedGetDefaultMiddleware","devTools","_g","_h","enhancers","finalMiddleware","middlewareEnhancer","finalCompose","compose2","trace","storeEnhancers","configureStore","plugReducer","filterReducer","themeReducer","nftsReducer","notificationReducer","settingsReducer","marketplaceReducer","crowns","crownsReducer","wicp","tableReducer","capReducer","serializableCheck","useReactId","useId","deterministicId","setId","reactId","useFocusGuards","edgeGuards","insertAdjacentElement","_edgeGuards$","createFocusGuard","_edgeGuards$2","useCallbackRef","callbackRef","_callbackRef$current","useControllableState","defaultProp","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","composeRefs","setRef","useComposedRefs","Slot","forwardedRef","slotProps","isSlottable","$d34e8c328cb3dd19ab7a2f6eafa6ad$var$SlotClone","_babelRuntimeHelpersEsmExtends","SlotClone","Slottable","childProps","slotPropValue","childPropValue","Primitive","primitive","asChild","primitiveProps","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createScope","scopeContexts","defaultContext","contexts","rootComponentName","BaseContext","consumerName","composeContextScopes","scopes","baseScope","scopeHooks","useScope","overrideScopes","nextScopes","createCollection","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","collectionRef","itemMap","COLLECTION_SLOT_NAME","CollectionSlot","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","ItemSlot","collectionNode","orderedNodes","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","EVENT_OPTIONS","useCollection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","$aa7392b6d04813384a511e60e09$var$Collection","__scopeRovingFocusGroup","$aa7392b6d04813384a511e60e09$var$RovingFocusGroupImpl","RovingFocusGroupImpl","currentTabStopId","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","groupProps","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","getItems","isClickFocusRef","$aa7392b6d04813384a511e60e09$var$RovingFocusProvider","onItemFocus","tabStopId","onItemShiftTab","onFocus","isKeyboardFocus","entryFocusEvent","focusFirst","onBlur","RovingFocusGroupItem","itemProps","isCurrentTabStop","focusIntent","getDirectionAwareKey","MAP_KEY_TO_FOCUS_INTENT","getFocusIntent","candidateNodes","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","PageUp","Home","PageDown","End","candidates","PREVIOUSLY_FOCUSED_ELEMENT","candidate","Root","Item","containerRef","portalProps","hostElement","_containerRef$current","_globalThis$document","ReactDOM","UnstablePortal","_globalThis$document2","Arrow","arrowProps","viewBox","useSize","setSize","resizeObserver","ResizeObserver","borderSizeEntry","borderBoxSize","borderSize","getBoundingClientRect","unobserve","rafId","observedElements","runLoop","changedRectsData","newRect","rect1","rect2","useRect","measurable","setRect","elementToObserve","observedData","observeElementRect","getPopperSlotsForAxis","anchorRect","popperSize","axis","anchorStart","dimension","anchorDimension","popperDimension","after","getPlacementStylesForPoint","willChange","scrollX","scrollY","getTransformOrigin","side","align","arrowOffset","arrowSize","isHorizontalSide","arrowBaseLength","sideOffset","alignOffset","UNMEASURED_POPPER_STYLES","UNMEASURED_ARROW_STYLES","getPopperArrowStyles","popperCenterX","popperCenterY","arrowMaxDimension","getArrowCssDirection","getOppositeSide","getCollisions","collisionBoundariesRect","createPopperContext","createPopperScope","PopperProvider","usePopperContext","PopperAnchor","__scopePopper","virtualRef","anchorProps","onAnchorChange","PopperContentProvider","useContentContext","PopperContent","collisionTolerance","avoidCollisions","contentProps","setArrowOffset","setContent","contentSize","arrow","setArrow","windowSize","setWindowSize","debounceTimerId","updateWindowSize","innerWidth","handleResize","useWindowSize","DOMRect","fromRect","popperStyles","arrowStyles","placedSide","placedAlign","shouldAvoidCollisions","allPlacementPoints","arrowBaseToTipLength","topY","bottomY","leftX","rightX","getAllPlacementPoints","popperPoint","popperRect","collisionBoundariesRectWithTolerance","popperCollisions","oppositeSidePopperPoint","collisions","oppositeSideCollisions","oppositeSide","getSideAccountingForCollisions","anchorSize","startBound","endBound","isAnchorBigger","getAlignAccountingForCollisions","getPlacementData","isPlaced","$d4fb2a15a6483a4f85af0f96fd68687d$var$PopperContentProvider","onArrowChange","onArrowOffsetChange","PopperArrow","_radixUiReactArrow","setAnchor","$d4fb2a15a6483a4f85af0f96fd68687d$var$PopperProvider","Anchor","Content","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","machine","$d88c0747af12355025ed3195fb48c68a$export$useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","wasPresent","prevAnimationName","isAnimating","handleAnimationEnd","isCurrentAnimation","handleAnimationStart","isPresent","getComputedStyle","usePresence","FocusScope","trapped","onMountAutoFocus","onMountAutoFocusProp","onUnmountAutoFocus","onUnmountAutoFocusProp","scopeProps","setContainer","lastFocusedElementRef","focusScope","paused","handleFocusIn","handleFocusOut","focusScopesStack","previouslyFocusedElement","mountEvent","getTabbableCandidates","unmountEvent","handleKeyDown","isTabKey","focusedElement","findVisible","getTabbableEdges","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","FILTER_SKIP","FILTER_ACCEPT","nextNode","currentNode","isHidden","upTo","visibility","preventScroll","HTMLInputElement","isSelectableInput","activeFocusScope","arrayRemove","_stack$","createFocusScopesStack","updatedArray","useEscapeKeydown","onEscapeKeyDownProp","onEscapeKeyDown","originalBodyPointerEvents","changeCount","DismissableLayerContext","layersWithOutsidePointerEventsDisabled","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","force","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","handlePointerDownOutside","isPointerDownOnBranch","isPointerInsideReactTreeRef","handlePointerDown","dispatchCustomEvent","originalEvent","onPointerDownCapture","usePointerDownOutside","focusOutside","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","onFocusCapture","onBlurCapture","useFocusOutside","isTouchOrPenPressedRef","resetPointerEvents","handlePointerUp","useBodyPointerEvents","dispatchUpdate","handleUpdate","CustomEvent","Branch","counterMap","uncontrolledNodes","markerMap","lockCount","hideOthers","originalTarget","getDefaultParent","targets","markerCounter","hiddenNodes","elementsToKeep","keep","alreadyHidden","counterValue","markerValue","zeroRightClassName","fullWidthClassName","useMergeRefs","facade","assignRef","ItoI","innerCreateMedium","assigned","medium","useMedium","assignSyncMedium","cbs","assignMedium","pendingQueue","executeQueue","cycle","effectCar","ssr","createSidecarMedium","nothing","RemoveScroll","parentRef","onScrollCapture","onWheelCapture","onTouchMoveCapture","setCallbacks","forwardProps","removeScrollBar","shards","sideCar","noIsolation","inert","allowPinchZoom","Container","SideCar","containerProps","lockRef","classNames","fullWidth","zeroRight","currentNonce","Target","isSideCarExport","makeStyleTag","__webpack_nonce__","stylesheetSingleton","stylesheet","styleSheet","injectStyles","styleSingleton","useStyle","isDynamic","styleHookSingleton","dynamic","zeroGap","getGapWidth","gapMode","offsets","cs","getOffset","documentWidth","clientWidth","windowWidth","Style","getStyles","allowRelative","important","RemoveScrollBar","noRelative","noImportant","nonPassive","elementCanBeScrolled","overflowY","overflowX","alwaysContainsScroll","locationCouldBeScrolled","ShadowRoot","elementCouldBeScrolled","getScrollVariables","elementCouldBeVScrolled","elementCouldBeHScrolled","scrollWidth","getHScrollVariables","getTouchXY","getDeltaXY","extractRef","generateStyle","idCounter","lockStack","exported","shouldPreventQueue","touchStartRef","activeAxis","lastProps","classList","allow_1","__spreadArray","shouldCancelEvent","currentAxis","touchStart","moveDirection","canBeScrolledInMainDirection","cancelingAxis","endTarget","sourceDelta","noOverscroll","directionFactor","getDirectionFactor","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","elementScroll","handleScroll","shouldPrevent","_event","sourceEvent","deltaCompare","should","shardNodes","shouldCancel","scrollTouchStart","scrollWheel","scrollTouchMove","ReactRemoveScroll","SELECTION_KEYS","LAST_KEYS","FIRST_LAST_KEYS","SUB_CLOSE_KEYS","ltr","rtl","createMenuContext","createMenuScope","usePopperScope","useRovingFocusGroupScope","MenuProvider","useMenuContext","MenuAnchor","__scopeMenu","popperScope","_radixUiReactPopper","MenuContentProvider","useMenuContentContext","MenuContent","forceMount","$e9e2cf92950df0b951e7bac95d18$var$Collection","isSubmenu","$e9e2cf92950df0b951e7bac95d18$var$MenuSubContent","$e9e2cf92950df0b951e7bac95d18$var$MenuRootContent","MenuRootContent","modal","$e9e2cf92950df0b951e7bac95d18$var$MenuRootContentModal","$e9e2cf92950df0b951e7bac95d18$var$MenuRootContentNonModal","MenuRootContentModal","$e9e2cf92950df0b951e7bac95d18$var$MenuContentImpl","trapFocus","disableOutsideScroll","onOpenChange","MenuRootContentNonModal","MenuSubContent","contentId","triggerId","portalled","onOpenAutoFocus","isUsingKeyboardRef","_ref$current","onCloseAutoFocus","onRootClose","isKeyDownInside","isCloseKey","_context$trigger","MenuContentImpl","rovingFocusGroupScope","currentItemId","setCurrentItemId","contentRef","onContentChange","timerRef","searchRef","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","PortalWrapper","ScrollLockWrapper","scrollLockWrapperProps","isPointerMovingToSubmenu","_pointerGraceIntentRe","polygon","inside","isPointInPolygon","isPointerInGraceArea","_pointerGraceIntentRe2","$e9e2cf92950df0b951e7bac95d18$var$MenuContentProvider","onItemEnter","onItemLeave","_contentRef$current","onTriggerLeave","onPointerGraceIntentChange","intent","_contentRef$current2","_radixUiReactRovingFocus","getOpenState","isModifierKey","isCharacterKey","currentItem","currentMatch","_items$find","textValue","nextMatch","normalizedSearch","currentMatchIndex","wrappedValues","getNextMatch","_items$find2","updateSearch","handleTypeaheadSearch","onPointerMove","whenMouse","pointerXHasChanged","newDir","MenuGroup","MenuItem","onSelect","contentContext","isPointerDownRef","$e9e2cf92950df0b951e7bac95d18$var$MenuItemImpl","menuItem","itemSelectEvent","onPointerDown","_props$onPointerDown","onPointerUp","_event$currentTarget","click","isTypingAhead","MenuItemImpl","setTextContent","_menuItem$textContent","onPointerLeave","RadioGroupProvider","useRadioGroupContext","onValueChange","MenuRadioGroup","handleValueChange","$e9e2cf92950df0b951e7bac95d18$var$RadioGroupProvider","MenuRadioItem","radioItemProps","$e9e2cf92950df0b951e7bac95d18$var$ItemIndicatorProvider","getCheckedState","_context$onValueChang","ItemIndicatorProvider","useItemIndicatorContext","handleOpenChange","computedDirection","directionProp","computedStyle","setComputedStyle","rAFRef","getDirection","useDirection","handlePointer","$e9e2cf92950df0b951e7bac95d18$var$MenuProvider","Sub","parentMenuContext","setTrigger","onTriggerChange","Group","RadioGroup","RadioItem","createDropdownMenuContext","createDropdownMenuScope","useMenuScope","DropdownMenuProvider","useDropdownMenuContext","DropdownMenuRoot","__scopeDropdownMenu","onOpenToggle","menuScope","triggerRef","$c7ff2201b6eec7866a95d2679b05981$var$DropdownMenuProvider","isRootMenu","_radixUiReactMenu","DropdownMenuTrigger","triggerProps","ContentProvider","isInsideContent","DropdownMenuContent","commonProps","$c7ff2201b6eec7866a95d2679b05981$var$ContentProvider","$c7ff2201b6eec7866a95d2679b05981$var$DropdownMenuRootContent","DropdownMenuRootContent","hasInteractedOutsideRef","_context$triggerRef$c","ctrlLeftClick","isRightClick","DropdownMenuGroup","DropdownMenuItem","DropdownMenuRadioGroup","radioGroupProps","DropdownMenuRadioItem","openProp","defaultOpen","setOpen","handleOpenToggle","prevOpen","$c7ff2201b6eec7866a95d2679b05981$var$DropdownMenuRoot","Trigger","Circle","SpinnerIcon","cx","cy","begin","keyTimes","dur","repeatCount","IconWrapper","Icon","icon","extraIconProps","spanProps","IconElement","Icons","warningOutline","IoWarningOutline","FiActivity","grid","FiGrid","moon","FaMoon","sun","FaSun","FaDiscord","FaTwitter","share","FaShare","FaArrowLeft","FaArrowCircleLeft","FaSignOutAlt","offer","FaTag","FaChevronDown","FaChevronUp","ellipsis","FaEllipsisH","FaRegClone","FaCheck","RiCloseLine","RiCloseCircleLine","FaExclamationCircle","FaSeedling","FaExchangeAlt","sale","FaMoneyBillWave","FaList","FaInfoCircle","FaSearch","GoVerified","FaRegHandPaper","spinner","FiUpload","download","FiDownload","myNfts","AiFillPicture","dark","fillRule","clipRule","gradientUnits","stopColor","DropdownRoot","DropdownMenu","DropdownStyle","DropdownButtonContainer","DropdownContent","animationTimingFunction","DropdownRadioGroup","DropdownGroup","DropdownRadioMenuItem","EllipsisIcon","SortByFilterDropdown","selectedValue","setSelectedValue","themeObject","isOpen","setIsOpen","sortOptions","LastModified","LastSale","LastSalePrice","LastOfferPrice","sortValue","sortItem","translated","CardOptionsDropdown","copyToClipboard","handleCopy","searchInput","filterInput","modalInput","Input","SearchIcon","AmountTypeContainer","AmountTypeTitle","AmountTypeIcon","SearchInput","placeholder","handleSearch","InputValidator","inputProps","changeValidation","useValidatorCallback","FilterInput","inputValue","ModalInput","wicpLogo","alt","CountContainer","CountLabel","CountInNumbers","CountLogo","TraitChipContainer","filtered","TraitSpecsContainer","flexDirection","TraitName","TraitRim","TraitLabel","Traitvalue","TraitActionContainer","FilteredCountChip","showLogo","wicpImage","FilteredTraitsChip","appliedFilterValue","wicpIcon","NFTTraitsChip","rimValue","createCollapsibleContext","createCollapsibleScope","CollapsibleProvider","useCollapsibleContext","Collapsible","__scopeCollapsible","collapsibleProps","$a5c9ff236b90360c7963e374990ad39$var$CollapsibleProvider","CollapsibleTrigger","CollapsibleContent","$a5c9ff236b90360c7963e374990ad39$var$CollapsibleContentImpl","CollapsibleContentImpl","setIsPresent","heightRef","widthRef","isMountAnimationPreventedRef","originalStylesRef","rAF","animationFillMode","ACCORDION_KEYS","createAccordionContext","createAccordionScope","useCollapsibleScope","Accordion","accordionProps","singleProps","multipleProps","$c2edcd6d640daf5939a1552e1f81c4$var$Collection","__scopeAccordion","$c2edcd6d640daf5939a1552e1f81c4$var$AccordionImplMultiple","$c2edcd6d640daf5939a1552e1f81c4$var$AccordionImplSingle","AccordionValueProvider","useAccordionValueContext","AccordionCollapsibleProvider","useAccordionCollapsibleContext","collapsible","AccordionImplSingle","accordionSingleProps","$c2edcd6d640daf5939a1552e1f81c4$var$AccordionValueProvider","onItemOpen","onItemClose","$c2edcd6d640daf5939a1552e1f81c4$var$AccordionCollapsibleProvider","$c2edcd6d640daf5939a1552e1f81c4$var$AccordionImpl","AccordionImplMultiple","accordionMultipleProps","handleItemOpen","itemValue","prevValue","handleItemClose","AccordionImplProvider","useAccordionContext","AccordionImpl","triggerCollection","_item$ref$current","triggerIndex","triggerCount","nextIndex","_triggerCollection$cl","$c2edcd6d640daf5939a1552e1f81c4$var$AccordionImplProvider","AccordionItemProvider","useAccordionItemContext","AccordionItem","accordionItemProps","accordionContext","valueContext","collapsibleScope","$c2edcd6d640daf5939a1552e1f81c4$var$AccordionItemProvider","_radixUiReactCollapsible","AccordionTrigger","itemContext","collapsibleContext","AccordionContent","RarityValue","textAlign","Checkbox","occurence","filterValueExists","handleSelectedFilters","htmlFor","readOnly","SkeletonBox","transitionTimingFunction","slideDown","slideUp","AccordionStyle","notopen","AccordionHead","flexWrap","AccordionHeadContent","flexProperties","MetaDataDetails","MetaDataTitle","alignitems","MetaDataDescription","PriceWrapper","CurrentPriceWrapper","OfferLabel","OfferPrice","MarketPrice","LogoWrapper","backgroundPosition","backgroundRepeat","none","borderSet","msOverflowStyle","scrollbarWidth","Form","Description","Flex","Subtext","ButtonWrapper","PlugButtonWrapper","UndefinedPrice","ButtonListWrapper","ButtonDetailsWrapper","CheckboxSkeletonWrapper","ItemCount","CheckboxFilterAccordion","checkboxData","isAccordionOpen","setIsAccordionOpen","traitsValue","checkboxKey","traitsCount","reverseNameActor","ICNSReverseController","getICNSName","plugPrincipalId","getReverseName","formatICNSName","AboutAccordion","ownerAddress","setOwnerAddress","loadingOwnerAddress","setLoadingOwnerAddress","isOwner","AccordionContentMetaData","formattedOwnerAddress","formatUserAddress","subheading","image","plugIcon","TableWrapper","thead","tbody","offers","nftActivity","dontShowTableRows","InfiniteScrollWrapper","TableSkeletonsWrapper","EmptyStateContainer","EmptyStateMessage","smallTable","mediumTable","largeTable","ItemDetail","TypeDetail","TableStrings","hideColumns","loaderDetails","showItemDetails","showTypeDetails","infiniteLoader","TableLayout","tableType","columnsToHide","emptyMessage","useTable","isTableDataEmpty","rnds8","rng","uuid","REGEX","byteToHex","rnds","getICAccountLink","ActivityTable","capLoading","tableSkeletonId","loadMoreData","isTableLoading","ItemDetailsCell","TypeDetailsCell","PriceDetailsCell","principalText","short","TextLinkCell","TextCell","NFTActivityTable","recentCountOfNFTUpdates","loadingTableRows","createDialogContext","createDialogScope","DialogProvider","useDialogContext","DialogTrigger","__scopeDialog","composedTriggerRef","DialogOverlay","overlayProps","$da81f3af863821fb8a193d321c41d$var$DialogOverlayImpl","DialogOverlayImpl","DialogContent","$da81f3af863821fb8a193d321c41d$var$DialogContentModal","$da81f3af863821fb8a193d321c41d$var$DialogContentNonModal","DialogContentModal","$da81f3af863821fb8a193d321c41d$var$DialogContentImpl","DialogContentNonModal","_context$triggerRef$c2","_props$onCloseAutoFoc","_props$onInteractOuts","_context$triggerRef$c3","DialogContentImpl","descriptionId","DialogTitle","titleProps","DialogDescription","descriptionProps","WarningProvider","useWarningContext","contentName","titleName","docsSlug","$da81f3af863821fb8a193d321c41d$var$DialogProvider","Overlay","Title","overlayShow","contentShow","SellModalTrigger","ChangePriceModalTrigger","BuyNowModalTrigger","MakeOfferModalTrigger","CancelListingModalTrigger","CancelOfferModalTrigger","largeButton","AcceptOfferModalTrigger","WithdrawModalTrigger","ModalOverlayContainer","DialogPrimitive","ModalContent","SellModalPreviewWrapper","SellModalPreviewContainer","NFTCardPreview","NFTPreviewText","ModalHeader","ModalTitle","ModalDescription","SaleContentWrapper","FeeContainer","FeeDetails","FeeLabelContainer","FeeLabel","InfoIcon","FeePercent","ItemDetailsWrapper","ItemDetails","ItemLogo","withoutBorderRadius","ItemName","PriceDetails","WICPContainer","WICPText","WICPLogo","PriceText","ModalButtonsList","ModalButtonWrapper","ActionTextWrapper","ActionText","PlugButtonContainer","ListingStatusCodes","_EventDispatcher_listeners","__classPrivateFieldSet","__classPrivateFieldGet","EventDispatcher","hasEventListener","removeAllEventListeners","Vector","xOrCoords","updateFromAngle","getLengthSq","addTo","distanceTo","distanceToSq","divTo","manhattanDistanceTo","multTo","setTo","subFrom","comp1","comp2","weight1","weight2","randomInRange","getRangeMax","getRangeMin","getRangeValue","setRangeValue","enable","minimumValue","getDistances","pointA","pointB","dx","dy","getDistance","collisionVelocity","calcEasing","calcPositionFromSize","calcPositionOrRandomFromSize","calcPositionOrRandomFromSizeRanged","calcExactPositionOrRandomFromSize","rectSideBounce","pSide","pOtherSide","rectSide","rectOtherSide","bounced","checkSelector","selectors","isSsr","isInArray","loadFont","arrayRandomIndex","itemFromArray","useIndex","fixedIndex","isPointInside","areBoundsInside","calculateBounds","sourceIsArray","destDict","isDivModeEnabled","divs","divModeExecute","divMode","singleDivModeExecute","circleBounceDataFromParticle","getPosition","getRadius","mass","getMass","bounce","horizontal","vertical","circleBounce","xVelocityDiff","yVelocityDiff","pos1","pos2","xDist","yDist","vFinal1","vFinal2","rectBounce","particle","divBounds","resH","resV","generatedAttribute","randomColorValue","touchEndEvent","mouseMoveEvent","mouseLeaveEvent","noPolygonDataLoaded","stringToRgba","parseFloat","hsla","rgbResult","hslaToRgba","hsva","hsvToRgb","shorthandRegex","hexFixed","rangeColorToRgb","colorToRgb","rgbColor","rgb","hslColor","hsl","hsvColor","getRandomRgbColor","stringToRgb","rangeColorToHsl","hslPercent","hsvPercent","tempRgb","fixedMin","getStyleFromRgb","getStyleFromHsl","colorMix","size1","size2","rgb1","rgb2","getLinkColor","linkColor","sourceColor","getFillColor","getStrokeColor","destColor","getLinkRandomColor","optColor","blink","consent","getHslFromAnimation","getHslAnimationFromHsl","animationOptions","reduceFactor","resColor","setColorAnimation","colorAnimation","decay","sync","drawLine","_Canvas_context","setTransformValue","newFactor","Canvas","generatedCanvas","actualOptions","trail","particles","move","backgroundMask","paint","trailFillColor","paintBase","draw","resetOriginalStyle","drawParticle","spawning","pfColor","psColor","fColor","sColor","getPluginParticleColors","zIndexOptions","zOpacityFactor","zIndexFactor","opacityRate","bubble","zOpacity","zStrokeOpacity","colorStyles","zSizeFactor","sizeRate","updaters","beforeDraw","getColorStyles","getTransformValues","updaterTransform","composite","shadow","_l","_m","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","drawer","drawers","retina","pixelRatio","drawShape","afterEffect","drawShapeAfterEffect","afterDraw","drawParticlePlugin","drawPlugin","initStyle","initCover","initTrail","initBackground","elementStyle","loadCanvas","dataset","originalStyle","cover","coverColorStyle","pxRatio","newSize","oldSize","resizeFactor","needsRefresh","updateActualOptions","setDensity","refresh","particleFillColor","particleStrokeColor","coverRgb","coverColor","fullScreen","fillColor","baseColor","manageListener","addOptions","removeOptions","EventListeners","canPush","mouseMoveHandler","mouseTouchMove","touchStartHandler","touchMoveHandler","touchEndHandler","mouseTouchFinish","mouseLeaveHandler","touchCancelHandler","touchEndClickHandler","mouseTouchClick","mouseUpHandler","mouseDownHandler","mouseDown","visibilityChangeHandler","handleVisibilityChange","themeChangeHandler","handleThemeChange","oldThemeChangeHandler","resizeHandler","handleWindowResize","addListeners","manageListeners","removeListeners","doMouseTouchClick","mousePos","interactivity","clickPosition","clickTime","handleClickMode","themeName","defaultDarkTheme","defaultLightTheme","themes","auto","loadTheme","pauseOnBlur","pageHidden","getAnimationStatus","resizeTimeout","windowResize","detectType","detectsOn","mouseLeaveTmpEvent","canvasEl","mediaMatch","matchMedia","interactivityEl","html","onHover","clicking","downPosition","handled","mousePosition","clickPositionValid","mouseEvent","clientRect","targetRect","canvasRect","offsetX","offsetY","touchEvent","lastTouch","FrameManager","lastFrameTime","fpsLimit","deltaValue","lifeTime","OptionsColor","Background","BackgroundMaskCover","BackgroundMask","FullScreen","ClickEvent","DivEvent","elementId","Parallax","HoverEvent","parallax","onDiv","ondiv","onhover","Attract","easing","maxSpeed","Bounce","BubbleBase","BubbleDiv","Bubble","ConnectLinks","Connect","links","lineLinked","line_linked","GrabLinks","Grab","LightGradient","LightArea","gradient","LightShadow","Light","Push","groups","quantity","particles_nb","Remove","RepulseBase","RepulseDiv","Repulse","Slow","Trail","pauseOnStop","Modes","attract","connect","grab","repulse","slow","Interactivity","modes","detect_on","ManualParticle","MotionReduce","Motion","disable","Responsive","ThemeDefault","Theme","ColorAnimation","HslAnimation","AnimatableColor","GradientColorOpacityAnimation","startValue","GradientColorOpacity","AnimatableGradientColor","GradientAngleAnimation","GradientAngle","AnimatableGradient","CollisionsOverlap","retries","Random","ValueWithRandom","ParticlesBounceFactor","ParticlesBounce","Collisions","overlap","SplitFactor","SplitRate","Split","sizeOffset","Destroy","LinksShadow","LinksTriangle","frequency","Links","triangles","warp","MoveAngle","MoveAttract","MoveGravity","acceleration","inverse","MovePathDelay","MovePath","MoveTrail","OutModes","Spin","Move","drift","gravity","outModes","spin","straight","vibrate","noise","outMode","out_mode","AnimationOptions","OpacityAnimation","opacity_min","Opacity","ParticlesDensity","value_area","ParticlesNumber","density","ParticlesRepulse","RotateAnimation","Rotate","Shadow","Shape","custom","loadShape","mainKey","altOverride","SizeAnimation","size_min","Size","Stroke","ZIndex","velocityRate","_ParticlesOptions_container","_ParticlesOptions_engine","ParticlesOptions","reduceDuplicates","strokeToLoad","gradientToLoad","loadOptions","sourceOptionsArr","sourceOptions","loadParticlesOptions","_Options_instances","_Options_container","_Options_engine","_Options_findDefaultTheme","Options","autoPlay","detectRetina","manualParticles","motion","pauseOnOutsideViewport","responsive","zLayers","backgroundMode","fps_limit","retina_detect","preset","importPreset","optResponsive","optTheme","setResponsive","responsiveOptions","availWidth","chosenTheme","clientDarkMode","getPreset","_InteractionManager_engine","InteractionManager","externalInteractors","particleInteractors","interactor","isEnabled","interact","interactors","getInteractors","Vector3d","v3d","_Particle_engine","fixOutMode","checkModes","coord","maxCoord","setCb","Particle","overrideOptions","lastPathTime","unbreakable","splitCount","misplaced","maxDistance","outType","ignoresResizeRatio","mainOptions","particlesOptions","shapeType","overrideShapeType","shapeOptions","loadShapeData","pathDelay","zIndexValue","initParticle","sizeOptions","sizeRange","sizeAnimation","loops","maxLoops","sizeAnimationSpeed","inRange","calcPosition","initialPosition","canvasSize","moveCenterPerc","moveCenter","getParticleDirectionAngle","initialVelocity","calculateVelocity","moveDecay","needsSort","lastZIndex","sides","getShapeDrawer","sideCountFunc","getSidesCount","mover","movers","particleInit","particleCreated","override","particleDestroyed","roll","backColor","alter","backFactor","backSum","alterHsl","strokeColor","isInsideCanvas","tryCount","pluginPos","particlePosition","exactPosition","fixHorizontal","fixVertical","checkOverlap","baseVelocity","getParticleBaseVelocity","moveOptions","radOffset","collisionsOptions","overlapOptions","overlaps","splitOptions","particlesSplitOptions","addSplitParticle","Point","Range","intersects","circle","Rectangle","w2","CircleWarp","posNE","posSE","posSW","newPos","biggerCircle","rectSW","QuadTree","rectangle","capacity","divided","subdivide","northEast","northWest","southEast","southWest","queryCircle","queryCircleWarp","containerOrSize","queryRectangle","_Particles_engine","Particles","nextId","zArray","freqs","interactionManager","quadTree","getMovers","getUpdaters","addManualParticles","addParticle","countToRemove","removeQuantity","pushParticle","splitParticlesOptions","getLinkFrequency","getTriangleFrequency","id1","id2","id3","particlesInitialization","groupOptions","pathGenerator","pushing","removeAt","deleted","zIdx","applyDensity","particlesToDelete","particleUpdate","externalInteract","particlesInteract","manualCount","numberOptions","densityFactor","initDensityFactor","optParticlesNumber","optParticlesLimit","particlesNumber","particlesCount","densityOptions","initializer","canAdd","Retina","motionOptions","mediaQuery","handleMotionChange","catch","ratio","attractDistance","linksDistance","linksWidth","connectModeDistance","connectModeRadius","grabModeDistance","repulseModeDistance","bounceModeDistance","attractModeDistance","slowModeRadius","bubbleModeDistance","bubbleModeSize","moveDistance","moveDrift","moveSpeed","_Container_engine","loadContainerOptions","firstStart","_sourceOptions","_initialSourceOptions","generate","IntersectionObserver","intersectionObserver","intersectionManager","addClickHandler","clickOrTouchHandler","posRetina","touched","touchMoved","radiusX","radiusY","refreshTime","drawAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","nextFrame","exportConfiguration","exportImage","quality","toBlob","exportImg","getSupportedShapes","availablePlugins","getAvailablePlugins","initAsync","pathOptions","getPathGenerator","particlesSetup","currentTheme","webkitCancelRequestAnimationFrame","mozCancelRequestAnimationFrame","oCancelRequestAnimationFrame","msCancelRequestAnimationFrame","needsUpdate","setNoise","noiseOrGenerator","pathOrGenerator","oldGenerator","HTMLElement","startAsync","grabLineColor","newMaxWidth","responsiveMaxWidth","isIntersecting","_Loader_engine","getDataFromUrl","jsonUrl","statusCode","Loader","tagId","remote","loadRemoteOptions","domContainer","querySelector","currentOptions","dom","oldIndex","domItem","existingCanvases","newId","newIndex","_Plugins_engine","Plugins","interactorsInitializers","moversInitializers","updatersInitializers","presets","pathGenerators","addInteractor","initInteractor","addParticleMover","initMover","addParticleUpdater","initUpdater","addPathGenerator","addPlugin","addPreset","presetKey","addShapeDrawer","needsPlugin","_Engine_initialized","_Engine_loader","ExternalInteractorBase","ParticlesInteractorBase","tsParticles","domArray","eventDispatcher","interactorInitializer","moverInitializer","updaterInitializer","customDrawer","pathConfigJson","loadJSON","setJSON","setOnClickHandler","defaultId","library","loadParticles","canvasClassName","AbsorberSizeLimit","AbsorberSize","Absorber","orbits","AbsorberInstance","absorbers","dragging","sizeFactor","absorberOrbit","needsNewPosition","updateParticlePosition","arc","newPosition","absorberOrbitDirection","orbitRadius","orbitAngle","orbitDirection","updateFunc","addV","Absorbers","interactivityAbsorbers","getAbsorber","idxOrName","addAbsorber","absorber","absorberOptions","modeAbsorbers","absorbersModeOptions","absorbersOptions","aPosition","removeAbsorber","AbsorbersPlugin","optionsCast","CircleShape","randomPosition","randomTheta","theta","generateTheta","maxRadius","randomRadius","EmitterLife","EmitterRate","EmitterSize","Emitter","life","startCount","domId","spawnColor","_EmitterInstance_engine","_EmitterInstance_firstSpawn","_EmitterInstance_startParticlesAdded","EmitterInstance","emitters","currentDuration","currentEmitDelay","currentSpawnDelay","spawnDelay","emitterShapeManager","getShape","lifeCount","immortal","externalPause","externalPlay","elRect","emitDelay","prepareToDie","emitParticles","removeEmitter","singleParticlesOptions","hslAnimation","pPosition","initValue","maxValue","colorOffset","emitFactor","_Emitters_engine","Emitters","interactivityEmitters","getEmitter","addEmitter","playEmitter","pauseEmitter","emitterOptions","modeEmitters","emittersModeOptions","usedIndexes","emittersOptions","ePosition","emitterMode","_ShapeManager_engine","ShapeManager","randomSquareCoordinate","SquareShape","halfW","halfH","_EmittersPlugin_engine","EmittersPlugin","TrailMaker","trailOptions","optDelay","canEmit","lastPosition","PolygonMaskDrawStroke","stringToAlpha","PolygonMaskDraw","lineColor","PolygonMaskInline","arrangement","PolygonMaskLocalSvg","PolygonMaskMove","PolygonMask","inlineArrangement","drawPolygonMask","rawData","drawPolygonMaskPath","calcClosestPtOnSegment","dxx","dyy","isOnSegment","segmentBounce","wallAngle","wallNormal","_PolygonMaskInstance_engine","PolygonMaskInstance","path2DSupported","Path2D","polygonMaskMoveRadius","checkInsidePolygon","polygonDraw","path2d","path2dSupported","polygonMaskOptions","initRawData","particleBounce","polygonBounce","randomPoint","drawPoints","redrawTimeout","createPath2D","createSVGMatrix","finalPath","addPath","svgUrl","forceDownload","parseSvgPath","getEquidistantPointByIndex","pathDistance","getPointAtLength","getPointByIndex","coords","getRandomPoint","getRandomPointByLength","downloadSvgPath","xml","DOMParser","parseFromString","svgPaths","svgPathSeg","absSeg","relSeg","parsePaths","_delta","closest","_PolygonMaskPlugin_engine","PolygonMaskPlugin","polygonOptions","RollLight","Roll","darken","enlighten","RollUpdater","rollHorizontal","rollVertical","rollOpt","alterType","updateRoll","AngleUpdater","rotateOptions","rotateDirection","rotateAnimation","updateAngle","BaseMover","gravityOptions","spinOptions","spinPos","spinCenter","spinAcceleration","particleOptions","slowFactor","getProximitySpeedFactor","baseSpeed","applyPath","gravityFactor","zVelocityFactor","maxCanvasSize","dxFixed","dyFixed","hDistance","vDistance","applyDistance","CircleDrawer","updateColorValue","valueAnimation","decrease","ColorUpdater","updateColor","Attractor","mouseMoveStatus","hoverEnabled","hoverMode","clickEnabled","clickMode","hoverAttract","clickAttract","attractRadius","processAttract","attractOptions","attractFactor","normVec","Bouncer","processMouseBounce","singleSelectorBounce","processBounce","tolerance","offsetLeft","calculateBubbleValue","particleValue","modeValue","optionsValue","Bubbler","hoverBubble","clickBubble","singleSelectorHover","divBubble","mouseClickPos","durationEnd","distMouse","timeSpent","sizeData","bubbleObj","optValue","particlesObj","opacityData","hoverBubbleColor","pointDistance","hoverBubbleSize","hoverBubbleOpacity","bubbleOptions","finalColor","modeColor","bubbleColor","pColor","modeOpacity","optOpacity","modeSize","optSize","bubbleParam","bubbleDuration","bubbleDistance","particlesParam","pObjBubble","pObj","repulseRadius","lineStyle","gradStop","sourcePos","destPos","midRgb","grad","drawConnection","drawConnectLine","distMax","xDiff","yDiff","drawGrab","beginPos","colorLine","drawGrabLine","Grabber","grabLineOptions","lineOpacity","opacityLine","linksOptions","Pauser","Pusher","pushNb","Remover","removeNb","Repulser","hoverRepulse","clickRepulse","singleSelectorRepulse","divRepulse","repulseDistance","vect","processRepulse","repulseOptions","repulseFactor","currentColorRegex","loadImage","downloadSvgImage","svgData","replaceImageColor","imageData","svgColoredData","imageShape","colorStyle","preFillIndex","replaceColorSvg","domUrl","webkitURL","imageRes","replaceColor","replace_color","pImage","img2","_ImageDrawer_images","ImageDrawer","addImage","containerImages","getImages","loadImageShape","imageFunc","LifeDelay","LifeDuration","Life","LifeUpdater","lifeOptions","delayTime","justSpawned","widthRange","heightRange","LineDrawer","OpacityUpdater","opacityOptions","opacityAnimation","opacityRange","minValue","checkDestroy","updateOpacity","BounceOutMode","newVelocity","minPos","bounceHorizontal","bounceVertical","DestroyOutMode","vx","vy","NoneOutMode","pRadius","OutOutMode","circVec","newDx","newDy","sizeValue","nextBounds","OutOfCanvasUpdater","updateOutMode","ParallaxMover","parallaxForce","canvasCenter","parallaxSmooth","centerDistance","p1Factor","p2Factor","resolveCollision","absorb","Collider","radius1","radius2","getLinkDistance","optDistance","Linker","linkContainer","linksColors","linkOpt1","linkOpt2","setColor","linksColor","LinkInstance","linkParticle","pOptions","p1Links","vertex","drawLinkTriangle","drawLinkLine","twinkle","twinkleFreq","twinkleRgb","drawn","pi1","pi2","d3","link1","link2","triangleOptions","opacityTriangle","pos3","colorTriangle","drawTriangle","LinksPlugin","loadParticlesLinksInteraction","loadInteraction","PolygonDrawerBase","getCenter","getSidesData","sideCount","numerator","denominator","decimalSides","interiorAngleDegrees","interiorAngle","nb_sides","PolygonDrawer","TriangleDrawer","loadPolygonShape","loadGenericPolygonShape","loadTriangleShape","SizeUpdater","sizeVelocity","updateSize","fixFactor","SquareDrawer","StarDrawer","star","StrokeColorUpdater","strokeHslColor","updateStrokeColor","validTypes","TextDrawer","textParticle","randomIndexData","fillText","strokeText","charShape","allSettled","loadSlim","addMover","loadBaseMover","loadParallaxMover","loadExternalAttractInteraction","loadExternalBounceInteraction","loadExternalBubbleInteraction","loadExternalConnectInteraction","loadExternalGrabInteraction","loadExternalPauseInteraction","loadExternalPushInteraction","loadExternalRemoveInteraction","loadExternalRepulseInteraction","loadParticlesAttractInteraction","loadParticlesCollisionsInteraction","loadCircleShape","imageDrawer","loadLineShape","loadSquareShape","loadStarShape","loadTextShape","loadLifeUpdater","loadOpacityUpdater","loadSizeUpdater","loadAngleUpdater","loadColorUpdater","loadStrokeColorUpdater","loadOutModesUpdater","particlesJS","pJSDom","initPjs","TiltAnimation","Tilt","TiltUpdater","tilt","cosDirection","sinDirection","tiltOptions","tiltDirection","tiltAnimation","updateTilt","TwinkleValues","Twinkle","TwinkleUpdater","twinkleOptions","twinkling","twinklingOpacity","twinkleStyle","needsTwinkle","WobbleSpeed","Wobble","rangeSpeed","WobbleUpdater","wobbleOpt","wobble","angleSpeed","wobbleDistance","updateWobble","loadFull","loadRollUpdater","loadTiltUpdater","loadTwinkleUpdater","loadWobbleUpdater","loadExternalTrailInteraction","loadAbsorbersPlugin","addEmitterShape","loadEmittersPlugin","loadPolygonMaskPlugin","ConfettiOptions","ParticlesClass","ConfettiParticles","ModalOverlay","enableParticles","SellModal","onClose","actionText","nftTokenId","isTriggerVisible","modalOpened","setModalOpened","modalStep","setModalStep","ListingInfo","setAmount","tid","notConfirmed","Confirmed","Pending","NftCard","owned","previewCardAmount","previewCard","Completed","CancelListingModal","CancelList","DirectBuyStatusCodes","Urls","openSonicURL","routeToSonic","onCancel","isBalanceInsufficient","amountRequired","BuyNowModal","actionTextId","isNFTOperatedByMKP","handleModalOpen","handleDirectBuy","CancelOfferModal","largeTriggerButton","CancelOffer","ChangePriceModal","nftPrice","tokenPrice","modalOpenedStatus","isConfirmed","MakeOfferModal","isOfferEditing","isNFTListed","Submitted","AcceptOfferModal","formattedPrice","offerFrom","actionButtonProp","OfferInfo","isAccepted","Accepted","totalEarningsInWICP","totalEarningsInDollars","createPopoverContext","createPopoverScope","PopoverProvider","usePopoverContext","PopoverTrigger","__scopePopover","hasCustomAnchor","PopoverContent","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentModal","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentNonModal","PopoverContentModal","contentModalProps","isRightClickOutsideRef","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentImpl","PopoverContentNonModal","contentNonModalProps","PopoverContentImpl","setHasCustomAnchor","$f4ab2d44b661a498b6a640a78746e78$var$PopoverProvider","onCustomAnchorAdd","onCustomAnchorRemove","createPlugAgent","disconnectPlug","getPlugButtonText","loadingText","PlugButtonText","Popover","ConnectToPlugButton","ListItem","PlugIconStyled","PlugArrowDownIcon","PlugWICPBalance","plugWicpBalance","setPlugWicpBalance","allPlugBalance","requestBalance","getPlugWalletBalance","wicpWalletBalance","balance","PlugButton","handleConnect","userPrincipal","openDropdown","setOpenDropdown","disconnectHandler","myOffersHandler","myActivityHandler","portalElement","scrollEvent","onMouseLeave","Plug","hasPlug","isPlugInstalled","isVerifying","Verifying","isConnecting","Connecting","NotInstalled","connected","checkIsConnected","hasPlugAgent","verifyPlugConnection","icnsInfo","getICNSInfo","reverseResolvedName","getPrincipalId","onConnectionUpdate","requestConnect","requestConnectToPlug","ConnectToPlugModal","WithdrawAssetsModal","WithdrawInfo","handleModalClose","asset","OfferTypeStatusCodes","OffersTableHeaders","MyOffersTable","offersType","connectedPlugUser","setColumnsToHide","tableDetails","setTableDetails","loadedOffers","isConnectedOwner","scrollTo","OffersReceived","OffersMade","newColumns","OffersMadeAction","OffersReceivedAction","oldColumns","NFTOffersTable","setHideColumn","newColumnsToHide","UserActivityTable","OnConnected","showNFTActionButtons","loadingOffers","setLoadingOffers","userMadeOffer","showNonOwnerButtons","OnDisconnected","OfferAccordion","marketPrice","setMarketPrice","topOffer","currentMakeListingPrice","computed","getCurrentMarketPrice","isListedWithPrice","ThumbnailSkeleton","TypeDetails","TypeName","textTransform","TextDetails","activityTime","nftActivityDate","TextLinkDetails","hasThumbnail","tokendId","getTokenMetadataThumbnail","EventIcon","icnsNameLoadingStatus","setICNSNameLoadingStatus","NftActionBarWrapper","NftActionBar","goBack","useHistoryBack","partyPopperLottie","ImageCache","garbageCollect","hasCachedImage","cacheKeys","ImagePreloadStyles","ImagePreload","setLoaded","onLoad","VisuallyHidden","wordWrap","createTooltipContext","createTooltipScope","DEFAULT_DELAY_DURATION","TooltipProviderContextProvider","useTooltipProviderContext","isOpenDelayed","delayDuration","onOpen","TooltipContextProvider","useTooltipContext","TooltipTrigger","__scopeTooltip","isMouseDownRef","handleMouseUp","stateAttribute","onMouseEnter","onTriggerEnter","TooltipContent","$badf5d6f88b7e9fa4e0bb85d71c0396a$var$TooltipContentImpl","TooltipContentImpl","$badf5d6f88b7e9fa4e0bb85d71c0396a$var$CheckTriggerMoved","_radixUiReactVisuallyHidden","TooltipArrow","CheckTriggerMoved","triggerRect","triggerLeft","previousTriggerLeft","triggerTop","previousTriggerTop","handleClose","delayDurationProp","openTimerRef","wasOpenDelayedRef","handleOpen","handleDelayedOpen","$badf5d6f88b7e9fa4e0bb85d71c0396a$var$TooltipContextProvider","NumberTooltipTrigger","Tooltip","NumberTooltipContent","NumberTooltip","triggerText","contentText","fixedAmount","formatAmountDecimals","formatAmountAbbreviation","VideoCache","hasCachedVideo","video","VideoPreloadContainer","VideoPreloadStyles","VideoPreloadSpinner","VideoPreload","setVideo","videoElement","videoEl","poster","overlaySpinner","CardContainer","CardWrapper","MediaWrapper","PreviewDetails","PreviewImage","objectFit","PreviewCardVideo","OwnedCardText","NftDataText","NftDataHeader","ActionDetails","NFTCardOptions","PriceInActionSheet","RouterLink","Media","videoLoadDelay","previewTriggered","setPreviewTriggered","startedHovering","setStartedHovering","triggerTimeout","resetTimeout","hoverInCallback","hoverOutCallback","muted","isForSale","showBuyerOptions","showSellOptions","LastActionTakenDetails","SkeletonLarge","SkeletonSmall","NftSkeleton","slideUpAndFade","slideRightAndFade","StyledContent","TooltipPrimitive","StyledArrow","ButtonType","EmptyStateWrapper","EmptyState","buttonType","buttonText","Align","getVal","itemCount","ssrItemCount","itemSize","resetScroll","overscanCount","useIsScrolling","stickyIndices","scrollDuration","scrollEasingFunction","loadMoreCount","isItemLoaded","onScroll","onResize","measureRef","getInitState","isMountedRef","isScrollingRef","isScrollToItemRef","hasDynamicSizeRef","rosRef","scrollOffsetRef","prevItemIdxRef","prevVStopRef","outerRef","innerRef","outerRectRef","msDataRef","userScrollRef","scrollToRafRef","stickyIndicesRef","useLatest","durationRef","easingFnRef","isItemLoadedRef","loadMoreRef","itemSizeRef","useIsScrollingRef","onScrollRef","onResizeRef","sizeKey","marginKey","scrollKey","getItemSize","getMeasure","_msDataRef$current","measureItems","useCache","getCalcData","scrollOffset","msData","lastIdx","vStart","findNearestBinarySearch","vStop","currStart","oStart","oStop","innerMargin","innerSize","isScrolling","scrollToOffset","prevOffset","scroll","scrollToIndex","isSync","totalSize","outerSize","scrollToItem","startItem","rafRef","cbRef","tick","useDebounce","resetIsScrolling","cancelResetIsScrolling","uxScrolling","stopIndex","loadIndex","userScroll","calcData","stickies","isSticky","ro","measuredSize","prevEnd","_msData","_loop","stickyIdx","shouldUpdate","scrollForward","overscanStartIndex","overscanStopIndex","visibleStartIndex","visibleStopIndex","useIsoLayoutEffect","contentRect","useResizeEffect","isSameWidth","isSameSize","msDataLen","prevTotalSize","_msDataRef$current2","_msDataRef$current3","outer","scrollHandler","ros","CardListContainer","DefaultProps","headerOffset","scrollThreshold","rowSpacing","throttlingInterval","VirtualizedGrid","ItemRenderer","loadingMore","Skeleton","wrapperRef","colItems","setColItems","spacingCoefficient","setSpacingCoefficient","useVirtual","wrapperReference","resizeListener","wrapperWidth","newColItems","getSpacingCoefficient","newSpacingCoefficient","resizeListenerThrottled","scrollerReference","innerReference","topFullDistance","updateListener","windowRelativeScroll","scrollCoefficient","currentWindowRelativeScroll","scrollerY","topThreshold","realOffset","maximalOffset","offsetInWrapper","updateListenerThrottled","getItemIndex","colIndex","rowItem","colItem","NftList","NftListData","NftSkeletonList","FilteredContainer","ContentWrapper","withMargin","ContentFlex","SkeletonListWrapper","gridAutoFlow","ClearButton","CollectionItems","appliedFilters","appliedFiltersCount","handleRemoveFilter","displayClearButton","createTabsContext","createTabsScope","TabsProvider","useTabsContext","Tabs","__scopeTabs","activationMode","tabsProps","$b40a02b2d3d1d21ebd9ba3d555116441$var$TabsProvider","baseId","TabsList","listProps","TabsTrigger","makeTriggerId","makeContentId","isAutomaticActivation","TabsContent","List","TabsRoot","fontweight","inactive","TabsContentWrapper","triggerWindowResizeEvent","closeArrowBounce","openArrowBounce","CloseFilterContainer","opened","FiltersContainer","FiltersWrapper","spaceBetween","FilterSection","FilterGroup","Heading","rightAndLeft","topAndBottom","Subheadings","CheckboxFilters","FilterButtonWrapper","CollapseIcon","false","FilterHeader","Filters","statusFilter","priceFilterValue","setPriceFilterValue","filterExists","filterCategoryExists","filterNameExists","applyPriceFilter","isMax","CollectionTabs","selectedTab","itemsStatus","activityStatus","tab","CollectionMetadataWrapper","VerifiedIcon","NFTMetaData","NftMetadataWrapper","NftMetadataBackground","NftMetadataContent","NftMetadataContentWrapper","NftProfilePictureWrapper","ButtonsWrapper","HeaderWrapper","CollectionOverview","showLoading","crown","SearchModalTrigger","SearchContainer","ItemsEmptyContainer","ItemsListContainer","SubText","LoadingWrapper","GlobalSearch","searchText","setSearchText","debouncedSearchHandler","closeDropDown","LogoContainer","LogoIcon","ActionButtonsContainer","NavBar","isLightTheme","changeThemeHandler","useBuyerOffers","jelly","jellyDark","centered","PreviewContainer","Video","NFTTraitsContainer","DetailsContainer","TraitsListLoaderSkeletonWrapper","NFTTraitsChipSkeleton","PreviewImageSkeleton","AccordionSkeletion","NftDetails","setShowNFTActionButtons","extractedTraitData","traitNames","nftName","extractedTraitDataValue","traitData","traitDataValues","extractTraitData","controls","createToastContext","createToastScope","ToastProviderProvider","useToastProviderContext","VIEWPORT_DEFAULT_HOTKEY","ToastViewport","__scopeToast","hotkey","viewportProps","onViewportChange","hotkeyLabel","viewport","handlePause","pauseEvent","isClosePausedRef","handleResume","resumeEvent","moved","mutations","childListMutation","addedNodes","childList","_radixUiReactDismissableLayer","toastCount","ol","Toast","toastProps","$c1d0a83a445da99c0aa921e25823690$var$ToastImpl","onSwipeStart","onSwipeMove","onSwipeCancel","removeProperty","onSwipeEnd","ToastInteractiveProvider","useToastInteractiveContext","isInteractive","ToastImpl","durationProp","pointerStartRef","swipeDeltaRef","closeTimerStartTimeRef","closeTimerRemainingTimeRef","closeTimerRef","onToastAdd","onToastRemove","_ref$current2","_context$viewport","startTimer","$c1d0a83a445da99c0aa921e25823690$var$ToastAnnounce","$c1d0a83a445da99c0aa921e25823690$var$ToastInteractiveProvider","isFocusedToastEscapeKeyDownRef","swipeDirection","touchAction","hasSwipeMoveStarted","isHorizontalSwipe","clampedX","clampedY","moveStartBuffer","eventDetail","isDeltaInDirection","setPointerCapture","releasePointerCapture","toast","swipeThreshold","ToastAnnounce","announceProps","renderChildren","setRenderChildren","isAnnounced","setIsAnnounced","raf1","raf2","useNextFrame","timer","ToastDescription","ToastAction","altText","actionProps","ToastClose","closeProps","interactiveContext","isDeltaX","setViewport","setToastCount","$c1d0a83a445da99c0aa921e25823690$var$ToastProviderProvider","prevCount","Viewport","slideIn","swipeOut","ToastProvider","ToastPrimitive","listStyle","ToastDescriptionText","ToastIcons","ToastHandler","AlertsContainer","AlertsWrapper","MessageContainer","Alerts","useAssetsToWithdraw","CollectionWrapper","NFTDetailsWrapper","TitleWrapper","StyledIcons","setOffersType","selectedTheme","previousTheme","setPreviousTheme","useThemeGlobals","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","localesConfig","reportWebVitals"],"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() overriden 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\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 isPlainObject(action) &&\r\n typeof (action as any).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\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