{"version":3,"file":"static/js/main.5a1054bd.js","mappings":"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WACA,iCACA,gBACA,WACA,sBAYIsN,EAAwC,IAAQwyD,GAAA,CACpD,eACA,cACA,uBACA,oBACA,oBACA,oBACA,yBACA,2BACA,2BACA,iCACA,0IACA,eACA,uBACA,oGACA,iFACA,yBACA,gBACA,kCACA,eACA,iBACA,YACA,eACA,gEACA,8FACA,6BACA,wBACA,+BACA,oBACA,mBACA,kFACA,iBACA,eACA,wEAYIj/D,EAAuC,IAAQi/D,GAAA,CACnD,cACA,gBACA,uBACA,oBACA,qBACA,qBACA,0BACA,2BACA,2BACA,iCACA,8HACA,cACA,yBACA,8FACA,iFACA,wBACA,gBACA,sBACA,aACA,eACA,aACA,kBACA,sEACA,gEACA,oBACA,qBACA,yBACA,sBACA,kBACA,sEACA,uBACA,kBACA,sDAYItc,EAA4C,IAAQsc,GAAA,CACxD,yBACA,wCACA,8CACA,2CACA,mCACA,0CACA,gDACA,6CACA,6CACA,mDACA,+LACA,0CACA,oCACA,8HACA,2KACA,sCACA,wCACA,yCACA,2BACA,sCACA,iCACA,8BACA,oIACA,6HACA,wDACA,6DACA,qDACA,6CACA,0CACA,2JACA,yCACA,6BACA,0HAiBEtyD,GAAA,EAgCJ,SAAS+lB,IACP/lB,GAAA,CACF,CAsBA,SAAgBsE,EAA0BrD,GACxC,OAAOnB,EAAyBqlB,IAAIlkB,EACtC,CAQA,SAAgBD,EAAyBC,GACvC,OAAO5N,EAAwB8xB,IAAIlkB,EACrC,CAQA,SAAgBsD,EAA8BtD,GAC5C,OAAO+0C,EAA6B7wB,IAAIlkB,EAC1C,CASA,SAASwN,EAAwBxN,GAC/B,IAAI2kB,EAGGxwB,EADLwwB,EADoB,uBAAlB3kB,EAAM+3B,QACD,uBAEyC,QAAzC5jC,EAAAk6B,EAA0B7pB,IAAIxE,EAAM/S,aAAA,IAAKkH,EAAAA,EAAI6L,EAAM/S,KAE5D/E,OAAO0J,eAAeoO,EAAO,OAAQ,CACnC1U,MAAOq5B,GAEX,CAqLA,SAAgB1kB,EAA4B0kB,EAA0BxwB,GACpE,IAAMk6B,EAAkC1J,EAAYg1D,iBACpD,GAA2B,IAAvBtrD,E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","sources":["../node_modules/lodash.throttle/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-device-detect/dist/lib.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-scroll/modules/components/Button.js","../node_modules/react-scroll/modules/components/Element.js","../node_modules/react-scroll/modules/components/Link.js","../node_modules/react-scroll/modules/index.js","../node_modules/react-scroll/modules/mixins/Helpers.js","../node_modules/react-scroll/modules/mixins/animate-scroll.js","../node_modules/react-scroll/modules/mixins/cancel-events.js","../node_modules/react-scroll/modules/mixins/passive-event-listeners.js","../node_modules/react-scroll/modules/mixins/scroll-element.js","../node_modules/react-scroll/modules/mixins/scroll-events.js","../node_modules/react-scroll/modules/mixins/scroll-hash.js","../node_modules/react-scroll/modules/mixins/scroll-link.js","../node_modules/react-scroll/modules/mixins/scroll-spy.js","../node_modules/react-scroll/modules/mixins/scroller.js","../node_modules/react-scroll/modules/mixins/smooth.js","../node_modules/react-scroll/modules/mixins/utils.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/scandit-sdk/node_modules/core-js/library/modules/_to-integer.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_defined.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_string-at.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_global.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_core.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_a-function.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_ctx.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_is-object.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_an-object.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_fails.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_descriptors.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_dom-create.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_to-primitive.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-dp.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_property-desc.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_hide.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_has.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_export.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_redefine.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_iterators.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_cof.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_iobject.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_to-iobject.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_to-length.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_array-includes.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_shared.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_uid.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_shared-key.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-keys.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-dps.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_html.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-create.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_wks.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_iter-create.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_to-object.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-gpo.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_iter-define.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_iter-step.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_classof.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_an-instance.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_iter-call.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_is-array-iter.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/core.get-iterator-method.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_for-of.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_species-constructor.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_task.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_invoke.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_microtask.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_new-promise-capability.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_perform.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_user-agent.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_promise-resolve.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_redefine-all.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_set-species.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_iter-detect.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.promise.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.promise.finally.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.promise.try.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/promise.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/promise.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/asyncToGenerator.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_meta.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_wks-ext.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_wks-define.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-gops.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-pie.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_enum-keys.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_is-array.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-gopn.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-gopd.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.symbol.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/symbol.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/symbol/index.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/typeof.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/object/define-property.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/object/define-property.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.object.create.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/object/create.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-sap.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/object/create.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/object/get-prototype-of.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_set-proto.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/regeneratorRuntime.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/regenerator/index.js","../node_modules/scandit-sdk/node_modules/objectFitPolyfill/dist/objectFitPolyfill.min.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_bind.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.reflect.construct.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/reflect/construct.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/typeof.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/symbol/to-primitive.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/symbol/to-primitive.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/toPropertyKey.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/toPrimitive.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/defineProperty.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/createClass.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/setPrototypeOf.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/inherits.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_create-property.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.array.from.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/array/from.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/array/from.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_validate-collection.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_collection-strong.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_array-methods.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_array-species-constructor.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_collection.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.set.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_array-from-iterable.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_collection-to-json.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.set.to-json.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_set-collection-of.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.set.of.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_set-collection-from.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.set.from.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/set.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/set.js","../node_modules/scandit-sdk/node_modules/eventemitter3/index.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.map.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.map.to-json.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.map.of.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.map.from.js","../node_modules/scandit-sdk/src/lib/barcode.ts","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/map.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/map.js","../node_modules/scandit-sdk/node_modules/js-cookie/dist/js.cookie.mjs","../node_modules/scandit-sdk/node_modules/ua-parser-js/src/ua-parser.js","../node_modules/scandit-sdk/src/lib/browserCompatibility.ts","../node_modules/scandit-sdk/src/lib/browserHelper.ts","../node_modules/scandit-sdk/src/lib/workers/dataCaptureWorker.ts","../node_modules/scandit-sdk/src/lib/dataCaptureLoader.ts","../node_modules/scandit-sdk/src/lib/logger.ts","../node_modules/scandit-sdk/src/lib/blurryRecognitionPreloader.ts","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/isNativeReflectConstruct.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/construct.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/wrapNativeSuper.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/isNativeFunction.js","../node_modules/scandit-sdk/src/lib/customError.ts","../node_modules/scandit-sdk/src/lib/camera.ts","../node_modules/scandit-sdk/src/lib/unsupportedBrowserError.ts","../node_modules/scandit-sdk/node_modules/howler/dist/howler.core.min.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.array.is-array.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/array/is-array.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/arrayLikeToArray.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithoutHoles.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArray.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/unsupportedIterableToArray.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableSpread.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/json/stringify.js","../node_modules/scandit-sdk/src/lib/imageSettings.ts","../node_modules/scandit-sdk/src/lib/parser.ts","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/json/stringify.js","../node_modules/scandit-sdk/src/lib/recognizedText.ts","../node_modules/scandit-sdk/src/lib/scanResult.ts","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-to-array.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.object.values.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/object/values.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/object/values.js","../node_modules/scandit-sdk/src/lib/symbologySettings.ts","../node_modules/scandit-sdk/src/lib/textRecognitionSettings.ts","../node_modules/scandit-sdk/src/lib/scanSettings.ts","../node_modules/scandit-sdk/src/lib/scanner.ts","../node_modules/scandit-sdk/src/lib/singleImageModeSettings.ts","../node_modules/scandit-sdk/src/lib/assets/base64assets.ts","../node_modules/scandit-sdk/node_modules/core-js/library/fn/object/get-own-property-symbols.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_own-keys.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/object/get-own-property-descriptors.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_string-ws.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_string-trim.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_parse-int.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.parse-int.js","../node_modules/scandit-sdk/src/lib/cameraSettings.ts","../node_modules/scandit-sdk/src/lib/barcodePicker/cameraManager.ts","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/parse-int.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/parse-int.js","../node_modules/scandit-sdk/src/lib/cameraAccess.ts","../node_modules/scandit-sdk/src/lib/barcodePicker/dummyCameraManager.ts","../node_modules/scandit-sdk/node_modules/core-js/library/modules/_object-assign.js","../node_modules/scandit-sdk/node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/scandit-sdk/node_modules/core-js/library/fn/object/assign.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/scandit-sdk/node_modules/@babel/runtime-corejs2/core-js/object/assign.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/scandit-sdk/src/lib/barcodePicker/barcodePicker.ts","../node_modules/scandit-sdk/src/webComponent/schema.ts","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/scandit-sdk/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../node_modules/scandit-sdk/src/lib/barcodePicker/gui.ts","../node_modules/scandit-sdk/src/webComponent/tsHelper.ts","../node_modules/scandit-sdk/src/webComponent/attributeConverter.ts","../node_modules/scandit-sdk/src/webComponent/lazyAttributeConverter.ts","../node_modules/scandit-sdk/src/webComponent/validator.ts","../node_modules/scandit-sdk/src/webComponent/controller.ts","../node_modules/scandit-sdk/src/webComponent/propertyConverter.ts","../node_modules/scandit-sdk/src/webComponent/index.ts","../node_modules/scandit-sdk/src/index.ts","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/ua-parser-js/dist/ua-parser.min.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/index.tsx","assets/icons/logo-header.svg","helpers/scrollMeTo.js","components/NavBar/index.tsx","components/UseExpertsServices/index.tsx","assets/icons/howItWork/step1.svg","assets/icons/howItWork/step2.svg","assets/icons/howItWork/step5.svg","components/HowItWorks/index.tsx","assets/icons/logo-footer.svg","components/Footer/index.tsx","components/Collapsible/index.tsx","components/QandA/index.tsx","components/Header/index.tsx","components/SelectorList/index.tsx","providers/QrCodeDataProvider.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","api/index.ts","components/Loader/index.tsx","components/Selector/index.tsx","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/useController.ts","../node_modules/react-hook-form/src/useWatch.ts","../node_modules/react-hook-form/src/useFormState.ts","../node_modules/react-hook-form/src/controller.tsx","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/focusFieldBy.ts","../node_modules/react-hook-form/src/logic/generateId.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","components/Textfield/index.tsx","../node_modules/src/index.tsx","components/PricingForm/index.tsx","../node_modules/react-hook-form/src/useForm.ts","assets/icons/lock.svg","components/RequestInformation/index.tsx","helpers/blockScroll.js","components/QRscanner/index.tsx","components/OrderPricingButtons/index.tsx","pages/MainPage/index.tsx","pages/Page404/index.tsx","App.tsx","index.tsx"],"sourcesContent":["/**\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","/**\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","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _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}\n\nfunction _extends() {\n _extends = Object.assign || 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\n return _extends.apply(this, arguments);\n}\n\nfunction _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 if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _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}\n\nfunction _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}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _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}\n\nfunction _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}\n\nfunction _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++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _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}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","/**\n * @license React\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\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(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 z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(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){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(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(ra,\nsa);z[b]=new v(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(ra,sa);z[b]=new v(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(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(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 ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction 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 A({},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 ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(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\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(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 cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!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,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({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 ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(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}}var wb=null;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(p(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;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;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=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){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 Ne(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)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=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&&Ne(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&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;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}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)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=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(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&128))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 Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"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[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,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=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports.default = Events;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n activeStyle: _propTypes2.default.object,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\n\nexports.default = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var style = {};\n\n if (this.state && this.state.active) {\n style = _extends({}, this.props.style, this.props.activeStyle);\n } else {\n style = _extends({}, this.props.style);\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.style = style;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.indexOf(spyHandler) > -1 && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length && scrollSpy.spySetState.indexOf(stateHandler) > -1) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports.default = scrollSpy;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports.default = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(history.state, \"\", urlToPush) : history.replaceState(history.state, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\n\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n\n return { offsetTop: offsetTop, offsetParent: currentOffsetParent };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n\n return offsetTop;\n }\n\n return t.offsetTop;\n }\n\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\n\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};","/**\n * @license React\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';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.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:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\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=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 0 ? floor : ceil)(it);\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","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","// 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 core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\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","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\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","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\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 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","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","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 hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\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 = require('./_hide');\n","module.exports = {};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\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","// 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","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","// 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 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 id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\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 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","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\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","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 document = require('./_global').document;\nmodule.exports = document && document.documentElement;\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 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","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","'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","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\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","'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","'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","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\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","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","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var hide = require('./_hide');\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];\n else hide(target, key, src[key]);\n } return target;\n};\n","'use strict';\nvar global = require('./_global');\nvar core = require('./_core');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","module.exports = require(\"core-js/library/fn/promise\");","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n","import _Promise from \"@babel/runtime-corejs2/core-js/promise\";\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n _Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new _Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\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","exports.f = require('./_wks');\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 = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\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","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\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","// 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","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","'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","module.exports = require(\"core-js/library/fn/symbol\");","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","module.exports = require(\"core-js/library/fn/symbol/iterator\");","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","var _Symbol = require(\"@babel/runtime-corejs2/core-js/symbol\");\nvar _Symbol$iterator = require(\"@babel/runtime-corejs2/core-js/symbol/iterator\");\nfunction _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}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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","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","module.exports = require(\"core-js/library/fn/object/define-property\");","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","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","// 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 = require(\"core-js/library/fn/object/create\");","// 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","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","module.exports = require(\"core-js/library/fn/object/get-prototype-of\");","// 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","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","module.exports = require(\"core-js/library/fn/object/set-prototype-of\");","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar _Object$defineProperty = require(\"@babel/runtime-corejs2/core-js/object/define-property\");\nvar _Symbol = require(\"@babel/runtime-corejs2/core-js/symbol\");\nvar _Object$create = require(\"@babel/runtime-corejs2/core-js/object/create\");\nvar _Object$getPrototypeOf = require(\"@babel/runtime-corejs2/core-js/object/get-prototype-of\");\nvar _Object$setPrototypeOf = require(\"@babel/runtime-corejs2/core-js/object/set-prototype-of\");\nvar _Promise = require(\"@babel/runtime-corejs2/core-js/promise\");\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\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 defineProperty = _Object$defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof _Symbol ? _Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\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 try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\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 defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\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 exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\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 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 function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\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 reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\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 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 \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\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 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 function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\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 if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), 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 (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\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 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) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\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 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 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 if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\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 if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\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 if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\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}\nmodule.exports = _regeneratorRuntime, 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","!function(){\"use strict\";if(\"undefined\"!=typeof window){var t=window.navigator.userAgent.match(/Edge\\/(\\d{2})\\./),e=t?parseInt(t[1],10):null,n=!!e&&(16<=e&&e<=18);if(!(\"objectFit\"in document.documentElement.style!=!1)||n){var o=function(t,e,i){var n,o,l,a,d;if((i=i.split(\" \")).length<2&&(i[1]=i[0]),\"x\"===t)n=i[0],o=i[1],l=\"left\",a=\"right\",d=e.clientWidth;else{if(\"y\"!==t)return;n=i[1],o=i[0],l=\"top\",a=\"bottom\",d=e.clientHeight}if(n!==l&&o!==l){if(n!==a&&o!==a)return\"center\"===n||\"50%\"===n?(e.style[l]=\"50%\",void(e.style[\"margin-\"+l]=d/-2+\"px\")):void(0<=n.indexOf(\"%\")?(n=parseInt(n,10))<50?(e.style[l]=n+\"%\",e.style[\"margin-\"+l]=d*(n/-100)+\"px\"):(n=100-n,e.style[a]=n+\"%\",e.style[\"margin-\"+a]=d*(n/-100)+\"px\"):e.style[l]=n);e.style[a]=\"0\"}else e.style[l]=\"0\"},l=function(t){var e=t.dataset?t.dataset.objectFit:t.getAttribute(\"data-object-fit\"),i=t.dataset?t.dataset.objectPosition:t.getAttribute(\"data-object-position\");e=e||\"cover\",i=i||\"50% 50%\";var n=t.parentNode;return function(t){var e=window.getComputedStyle(t,null),i=e.getPropertyValue(\"position\"),n=e.getPropertyValue(\"overflow\"),o=e.getPropertyValue(\"display\");i&&\"static\"!==i||(t.style.position=\"relative\"),\"hidden\"!==n&&(t.style.overflow=\"hidden\"),o&&\"inline\"!==o||(t.style.display=\"block\"),0===t.clientHeight&&(t.style.height=\"100%\"),-1===t.className.indexOf(\"object-fit-polyfill\")&&(t.className=t.className+\" object-fit-polyfill\")}(n),function(t){var e=window.getComputedStyle(t,null),i={\"max-width\":\"none\",\"max-height\":\"none\",\"min-width\":\"0px\",\"min-height\":\"0px\",top:\"auto\",right:\"auto\",bottom:\"auto\",left:\"auto\",\"margin-top\":\"0px\",\"margin-right\":\"0px\",\"margin-bottom\":\"0px\",\"margin-left\":\"0px\"};for(var n in i)e.getPropertyValue(n)!==i[n]&&(t.style[n]=i[n])}(t),t.style.position=\"absolute\",t.style.width=\"auto\",t.style.height=\"auto\",\"scale-down\"===e&&(e=t.clientWidthn.clientWidth||\"contain\"===e&&t.clientWidth 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","module.exports = require(\"core-js/library/fn/array/from\");","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar meta = require('./_meta');\nvar fails = require('./_fails');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar setToStringTag = require('./_set-to-string-tag');\nvar dP = require('./_object-dp').f;\nvar each = require('./_array-methods')(0);\nvar DESCRIPTORS = require('./_descriptors');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME, '_c');\n target._c = new Base();\n if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);\n });\n each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {\n anInstance(this, C, KEY);\n if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n IS_WEAK || dP(C.prototype, 'size', {\n get: function () {\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n return function toJSON() {\n if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Set', { toJSON: require('./_collection-to-json')('Set') });\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\nrequire('./_set-collection-of')('Set');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\nrequire('./_set-collection-from')('Set');\n","module.exports = require(\"core-js/library/fn/set\");","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.set');\nrequire('../modules/es7.set.to-json');\nrequire('../modules/es7.set.of');\nrequire('../modules/es7.set.from');\nmodule.exports = require('../modules/_core').Set;\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Map', { toJSON: require('./_collection-to-json')('Map') });\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\nrequire('./_set-collection-of')('Map');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\nrequire('./_set-collection-from')('Map');\n","import { BarcodeEncodingRange } from \"./barcodeEncodingRange\";\nimport { Quadrilateral } from \"./quadrilateral\";\n\n/**\n * A barcode result.\n */\nexport interface Barcode {\n /**\n * The symbology type.\n */\n readonly symbology: Barcode.Symbology;\n /**\n * The data encoded in the barcode interpreted as a UTF-8 string.\n * If the raw data is not a valid UTF-8 string, this field will be an empty string; information from [[rawData]]\n * and [[encodingArray]] can be used to reconstruct a string.\n */\n readonly data: string;\n /**\n * The raw data encoded in the barcode, given as an array of bytes.\n * To interpret this correctly you may have to use the information contained in [[encodingArray]].\n */\n readonly rawData: Uint8Array;\n /**\n * The location of the barcode.\n */\n readonly location: Quadrilateral;\n /**\n * Whether the barcode is part of a composite code.\n */\n readonly compositeFlag: Barcode.CompositeFlag;\n /**\n * Whether the barcode is a GS1 data carrier.\n */\n readonly isGs1DataCarrier: boolean;\n /**\n * The data encoding of the data in the barcode, given as an array of encoding ranges.\n */\n readonly encodingArray: BarcodeEncodingRange[];\n}\n\n/**\n * @hidden\n */\nexport type BarcodeWASMResult = {\n readonly symbology: Barcode.Symbology;\n readonly rawData: number[];\n readonly location: number[][];\n readonly compositeFlag: Barcode.CompositeFlag;\n readonly isGs1DataCarrier: boolean;\n readonly encodingArray: BarcodeEncodingRange[];\n readonly isRecognized: boolean;\n};\n\nexport namespace Barcode {\n // Deprecated but useful function for easy UTF-8 handling\n /**\n * @hidden\n */\n declare function escape(s: string): string;\n\n /**\n * @hidden\n *\n * Create a [[Barcode]] object from a partial object returned by the external Scandit Data Capture library.\n * The *rawData* and *data* fields are computed and stored.\n *\n * @param result The barcode result coming from the external Scandit Data Capture library.\n * @returns The generated [[Barcode]] object.\n */\n export function createFromWASMResult(result: BarcodeWASMResult): Barcode {\n let decodedData: string;\n try {\n decodedData = decodeURIComponent(escape(String.fromCharCode.apply(null, result.rawData)));\n } catch {\n decodedData = \"\";\n }\n\n return {\n symbology: result.symbology,\n data: decodedData,\n rawData: new Uint8Array(result.rawData),\n location: {\n topLeft: { x: result.location[0][0], y: result.location[0][1] },\n topRight: { x: result.location[1][0], y: result.location[1][1] },\n bottomRight: { x: result.location[2][0], y: result.location[2][1] },\n bottomLeft: { x: result.location[3][0], y: result.location[3][1] },\n },\n compositeFlag: result.compositeFlag,\n isGs1DataCarrier: result.isGs1DataCarrier,\n encodingArray: result.encodingArray,\n };\n }\n\n /**\n * Barcode symbology type.\n */\n export enum Symbology {\n AZTEC = \"aztec\",\n CODABAR = \"codabar\",\n CODE11 = \"code11\",\n CODE128 = \"code128\",\n CODE25 = \"code25\",\n CODE32 = \"code32\",\n CODE39 = \"code39\",\n CODE93 = \"code93\",\n DATA_MATRIX = \"data-matrix\",\n DOTCODE = \"dotcode\",\n EAN13 = \"ean13\",\n EAN8 = \"ean8\",\n FIVE_DIGIT_ADD_ON = \"five-digit-add-on\",\n GS1_DATABAR = \"databar\",\n GS1_DATABAR_EXPANDED = \"databar-expanded\",\n GS1_DATABAR_LIMITED = \"databar-limited\",\n IATA_2_OF_5 = \"iata2of5\",\n INTERLEAVED_2_OF_5 = \"itf\",\n KIX = \"kix\",\n LAPA4SC = \"lapa4sc\",\n MATRIX_2_OF_5 = \"matrix2of5\",\n MAXICODE = \"maxicode\",\n MICRO_PDF417 = \"micropdf417\",\n MICRO_QR = \"microqr\",\n MSI_PLESSEY = \"msi-plessey\",\n PDF417 = \"pdf417\",\n QR = \"qr\",\n RM4SCC = \"rm4scc\",\n TWO_DIGIT_ADD_ON = \"two-digit-add-on\",\n UPCA = \"upca\",\n UPCE = \"upce\",\n USPS_INTELLIGENT_MAIL = \"usps-intelligent-mail\",\n }\n\n /**\n * Flags to hint that two codes form a composite code.\n */\n export enum CompositeFlag {\n /**\n * Code is not part of a composite code.\n */\n NONE = 0x0,\n /**\n * Code could be part of a composite code. This flag is set by linear (1D) symbologies that have\n * no composite flag support but can be part of a composite code like the EAN/UPC symbology family.\n */\n UNKNOWN = 0x1,\n /**\n * Code is the linear component of a composite code. This flag can be set by GS1 DataBar or GS1-128 (Code 128).\n */\n LINKED = 0x2,\n /**\n * Code is a GS1 Composite Code Type A (CC - A).This flag can be set by MicroPDF417 codes.\n */\n GS1_A = 0x4,\n /**\n * Code is a GS1 Composite Code Type B (CC-B). This flag can be set by MicroPDF417 codes.\n */\n GS1_B = 0x8,\n /**\n * Code is a GS1 Composite Code Type C (CC-C). This flag can be set by PDF417 codes.\n */\n GS1_C = 0x10,\n }\n\n // istanbul ignore next\n export namespace Symbology {\n /**\n * @hidden\n */\n // tslint:disable:no-unnecessary-qualifier\n const humanizedSymbologyNames: Map = new Map([\n [Symbology.AZTEC, \"Aztec\"],\n [Symbology.CODABAR, \"Codabar\"],\n [Symbology.CODE11, \"Code 11\"],\n [Symbology.CODE128, \"Code 128\"],\n [Symbology.CODE25, \"Code 25\"],\n [Symbology.CODE32, \"Code 32\"],\n [Symbology.CODE39, \"Code 39\"],\n [Symbology.CODE93, \"Code 93\"],\n [Symbology.DATA_MATRIX, \"Data Matrix\"],\n [Symbology.DOTCODE, \"DotCode\"],\n [Symbology.EAN13, \"EAN-13\"],\n [Symbology.EAN8, \"EAN-8\"],\n [Symbology.FIVE_DIGIT_ADD_ON, \"Five-Digit Add-On\"],\n [Symbology.GS1_DATABAR_EXPANDED, \"GS1 DataBar Expanded\"],\n [Symbology.GS1_DATABAR_LIMITED, \"GS1 DataBar Limited\"],\n [Symbology.GS1_DATABAR, \"GS1 DataBar 14\"],\n [Symbology.IATA_2_OF_5, \"IATA 2 of 5\"],\n [Symbology.INTERLEAVED_2_OF_5, \"Interleaved 2 of 5\"],\n [Symbology.KIX, \"KIX\"],\n [Symbology.LAPA4SC, \"LAPA4SC\"],\n [Symbology.MATRIX_2_OF_5, \"Matrix 2 of 5\"],\n [Symbology.MAXICODE, \"MaxiCode\"],\n [Symbology.MICRO_PDF417, \"MicroPDF417\"],\n [Symbology.MICRO_QR, \"Micro QR\"],\n [Symbology.MSI_PLESSEY, \"MSI-Plessey\"],\n [Symbology.PDF417, \"PDF417\"],\n [Symbology.QR, \"QR\"],\n [Symbology.RM4SCC, \"RM4SCC\"],\n [Symbology.TWO_DIGIT_ADD_ON, \"Two-Digit Add-On\"],\n [Symbology.UPCA, \"UPC-A\"],\n [Symbology.UPCE, \"UPC-E\"],\n [Symbology.USPS_INTELLIGENT_MAIL, \"USPS Intelligent Mail\"],\n ]);\n\n /**\n * @hidden\n */\n const jsonSymbologyNames: Map = new Map([\n [Symbology.AZTEC, \"aztec\"],\n [Symbology.CODABAR, \"codabar\"],\n [Symbology.CODE11, \"code11\"],\n [Symbology.CODE128, \"code128\"],\n [Symbology.CODE25, \"code25\"],\n [Symbology.CODE32, \"code32\"],\n [Symbology.CODE39, \"code39\"],\n [Symbology.CODE93, \"code93\"],\n [Symbology.DATA_MATRIX, \"data-matrix\"],\n [Symbology.DOTCODE, \"dotcode\"],\n [Symbology.EAN13, \"ean13\"],\n [Symbology.EAN8, \"ean8\"],\n [Symbology.FIVE_DIGIT_ADD_ON, \"five-digit-add-on\"],\n [Symbology.GS1_DATABAR_EXPANDED, \"databar-expanded\"],\n [Symbology.GS1_DATABAR_LIMITED, \"databar-limited\"],\n [Symbology.GS1_DATABAR, \"databar\"],\n [Symbology.IATA_2_OF_5, \"iata2of5\"],\n [Symbology.INTERLEAVED_2_OF_5, \"itf\"],\n [Symbology.KIX, \"kix\"],\n [Symbology.LAPA4SC, \"lapa4sc\"],\n [Symbology.MATRIX_2_OF_5, \"matrix2of5\"],\n [Symbology.MAXICODE, \"maxicode\"],\n [Symbology.MICRO_PDF417, \"micropdf417\"],\n [Symbology.MICRO_QR, \"microqr\"],\n [Symbology.MSI_PLESSEY, \"msi-plessey\"],\n [Symbology.PDF417, \"pdf417\"],\n [Symbology.QR, \"qr\"],\n [Symbology.RM4SCC, \"rm4scc\"],\n [Symbology.TWO_DIGIT_ADD_ON, \"two-digit-add-on\"],\n [Symbology.UPCA, \"upca\"],\n [Symbology.UPCE, \"upce\"],\n [Symbology.USPS_INTELLIGENT_MAIL, \"usps-intelligent-mail\"],\n ]);\n // tslint:enable:no-unnecessary-qualifier\n\n /**\n * Get the humanized name of a symbology.\n *\n * @param symbology The symbology for which to retrieve the name.\n * @returns The humanized name of the symbology.\n */\n export function toHumanizedName(symbology: Symbology): string {\n return humanizedSymbologyNames.get(symbology.toLowerCase()) ?? \"Unknown\";\n }\n\n /**\n * Get the JSON key name of a symbology, used for JSON-formatted ScanSettings and the external Scandit Data Capture\n * library.\n *\n * @param symbology The symbology for which to retrieve the name.\n * @returns The json key name of the symbology.\n */\n export function toJSONName(symbology: Symbology): string {\n return jsonSymbologyNames.get(symbology.toLowerCase()) ?? \"unknown\";\n }\n }\n}\n","module.exports = require(\"core-js/library/fn/map\");","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.map');\nrequire('../modules/es7.map.to-json');\nrequire('../modules/es7.map.of');\nrequire('../modules/es7.map.from');\nmodule.exports = require('../modules/_core').Map;\n","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.33\n Copyright © 2012-2021 Faisal Salman \n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.33',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 350;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i, // Baidu Browser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i\n ], [VERSION, [NAME, 'WeChat(Win) Desktop']], [\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /yabrowser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360 '+BROWSER]], [\n /(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1 '+BROWSER], VERSION], [ // Oculus/Samsung/Sailfish/Huawei Browser\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/Baidu App/2345 Browser\n ], [NAME, VERSION], [\n /(metasr)[\\/ ]?([\\w\\.]+)/i, // SouGouBrowser\n /(lbbrowser)/i, // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(chromium|instagram)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, VERSION], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n // Ordered by popularity\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /\\((ip(?:hone|od)[\\w ]*);/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+)(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[12]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi)( bui|\\))/i, // Kindle Fire without Silk\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w ]*; *(\\w[^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n /(quest( 2)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i // iCab\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows) nt 6\\.2; (arm)/i, // Windows RT\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i, // Windows Phone\n /(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[NAME, 'Windows'], [VERSION, strMapper, windowsVersionMap]], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, 'Mac OS'], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+ ([\\w\\.]+\\w)/i // Chromium OS\n ], [[NAME, 'Chromium OS'], VERSION],[\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _ua = ua || ((typeof window !== UNDEF_TYPE && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser.major = majorize(_browser.version);\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n","/**\n * An object containing details about the support level of the used OS/browser combination regarding\n * the features needed by this library.\n */\nexport interface BrowserCompatibility {\n /**\n * Whether the full set of features required to have continuous camera video streaming are supported.\n */\n readonly fullSupport: boolean;\n /**\n * Whether the set of features required to use a [[Scanner]] to perform scans (Single Image Mode) are supported.\n */\n readonly scannerSupport: boolean;\n /**\n * The list of features that are missing.\n */\n readonly missingFeatures: BrowserCompatibility.Feature[];\n}\n\nexport namespace BrowserCompatibility {\n /**\n * Browser feature.\n */\n export enum Feature {\n /**\n * [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) -\n * [current support?](https://caniuse.com/#feat=blobbuilder)\n */\n BLOB = \"blob\",\n /**\n * [MediaDevices/getUserMedia](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia) -\n * [current support?](https://caniuse.com/#feat=stream)\n */\n MEDIA_DEVICES = \"mediaDevices\",\n /**\n * [OffscreenCanvas](https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas) -\n * [current support?](https://caniuse.com/#feat=offscreencanvas)\n */\n OFFSCREEN_CANVAS = \"offscreenCanvas\",\n // tslint:disable: max-line-length\n /**\n * [Http/Https protocol](https://wiki.developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web#Scheme_or_protocol)\n */\n HTTP_PROTOCOL = \"httpProtocol\",\n /**\n * [Secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts)\n */\n SECURE_CONTEXT = \"secureContext\",\n /**\n * [URL/createObjectURL](https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL) -\n * [current support?](https://caniuse.com/#feat=bloburls)\n */\n URL_OBJECT = \"urlObject\",\n /**\n * [Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API) -\n * [current support?](https://caniuse.com/#feat=webworkers)\n */\n WEB_WORKERS = \"webWorkers\",\n /**\n * [WebAssembly](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/WebAssembly) -\n * [current support?](https://caniuse.com/#feat=wasm)\n */\n WEB_ASSEMBLY = \"webAssembly\",\n /**\n * WebAssembly without memory corruption (specific iOS version 11.2.2/11.2.5/11.2.6 bug)\n */\n WEB_ASSEMBLY_ERROR_FREE = \"webAssemblyErrorFree\",\n /**\n * [WebGL](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) -\n * [current support?](https://caniuse.com/#feat=webgl)\n */\n WEBGL = \"webgl\",\n }\n}\n","import Cookies from \"js-cookie\";\nimport UAParser from \"ua-parser-js\";\nexport { UAParser };\n\nimport { BrowserCompatibility } from \"./browserCompatibility\";\n\nexport namespace BrowserHelper {\n /**\n * @hidden\n */\n interface Browser {\n name?: string;\n version?: string;\n }\n\n /**\n * @hidden\n */\n interface CPU {\n architecture?: string;\n }\n\n /**\n * @hidden\n */\n interface Device {\n model?: string;\n vendor?: string;\n // tslint:disable-next-line:no-reserved-keywords\n type?: string;\n }\n\n /**\n * @hidden\n */\n interface Engine {\n name?: string;\n version?: string;\n }\n\n /**\n * @hidden\n */\n interface OS {\n name?: string;\n version?: string;\n }\n\n /**\n * @hidden\n */\n export const userAgentInfo: {\n getBrowser(): Browser;\n getOS(): OS;\n getEngine(): Engine;\n getDevice(): Device;\n getCPU(): CPU;\n getUA(): string;\n setUA(uastring: string): void;\n } = new UAParser(navigator.userAgent);\n\n /**\n * @hidden\n */\n export const canvas: HTMLCanvasElement = document.createElement(\"canvas\"); // For some reason, export is needed!\n\n /**\n * @hidden\n *\n * @returns Whether the device is a desktop/laptop for sure.\n */\n export function isDesktopDevice(): boolean {\n if (\"orientation\" in window) {\n // Only mobile browsers have this (deprecated but still available) property\n return false;\n } else {\n // Query for no \"coarse\" pointing device available (finger, touchscreen)\n const query: string = \"(any-pointer: coarse)\"; // Spaces matter!\n const mediaQueryList: MediaQueryList | undefined = (window).matchMedia?.(query);\n // If the device doesn't have a touchscreen, it's a computer\n if (navigator.maxTouchPoints === 0 || (mediaQueryList?.media === query && mediaQueryList?.matches === false)) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n /**\n * @hidden\n *\n * @returns Whether the device is an iPhone 14 Pro / iPhone 14 Pro Max device, which requires a custom workaround\n * altering how the camera preview is displayed in order to improve usability.\n * altering how the Wide (main) back camera preview is shown if the UltraWide one can't be prioritized to be selected.\n */\n export function isBrokenIPhoneCameraDevice(): boolean {\n // 1179 x 2556 or 1290 x 2796\n // OS: iOS\n // Resolution: 3x pixel ratio with 1179 x 2556 or 1290 x 2796\n return (\n userAgentInfo.getOS().name === \"iOS\" &&\n ((window.screen.width === 1179 / 3 && window.screen.height === 2556 / 3) ||\n (window.screen.width === 1290 / 3 && window.screen.height === 2796 / 3)) &&\n window.devicePixelRatio === 3\n );\n }\n\n /**\n * @hidden\n *\n * @returns Whether the device is a iOS device running a recent-enough OS version allowing any browser to access all\n * available cameras (including the UltraWide one).\n */\n export function isIOSDeviceWithExtendedCameraAccess(): boolean {\n // OS: iOS version 16.3+\n const os: OS = userAgentInfo.getOS();\n\n return (\n os.name === \"iOS\" && os.version != null && os.version.localeCompare(\"16.3\", undefined, { numeric: true }) >= 0\n );\n }\n\n /**\n * @returns The built [[BrowserCompatibility]] object representing the current OS/Browser's support for features.\n */\n export function checkBrowserCompatibility(): BrowserCompatibility {\n function objectHasPropertyWithType(object: object, propertyNames: string[], propertyType: string): boolean {\n // tslint:disable-next-line:no-any\n const objectProperty: any = (object)[propertyNames[0]];\n if (objectProperty == null) {\n return false;\n }\n if (propertyNames.length === 1) {\n return typeof objectProperty === propertyType;\n } else {\n return (\n (typeof objectProperty === \"function\" || typeof objectProperty === \"object\") &&\n objectHasPropertyWithType(objectProperty, propertyNames.slice(1), propertyType)\n );\n }\n }\n\n function isBrokenWebAssemblyOS(os: OS): boolean {\n return os.name === \"iOS\" && os.version != null && [\"11.2.2\", \"11.2.5\", \"11.2.6\"].includes(os.version);\n }\n\n let fullSupport: boolean = true;\n let scannerSupport: boolean = true;\n const missingFeatures: BrowserCompatibility.Feature[] = [];\n\n if (!location.protocol.startsWith(\"http\")) {\n missingFeatures.push(BrowserCompatibility.Feature.HTTP_PROTOCOL);\n fullSupport = scannerSupport = false;\n }\n\n if (objectHasPropertyWithType(window, [\"isSecureContext\"], \"boolean\") && window.isSecureContext === false) {\n missingFeatures.push(BrowserCompatibility.Feature.SECURE_CONTEXT);\n // Don't disable full support in case browser is set to allow camera video streaming access in insecure contexts\n }\n\n if (\n !objectHasPropertyWithType(navigator, [\"mediaDevices\", \"getUserMedia\"], \"function\") &&\n !objectHasPropertyWithType(navigator, [\"enumerateDevices\"], \"function\") &&\n !objectHasPropertyWithType(window, [\"MediaStreamTrack\", \"getSources\"], \"function\")\n ) {\n missingFeatures.push(BrowserCompatibility.Feature.MEDIA_DEVICES);\n fullSupport = false;\n }\n\n if (!objectHasPropertyWithType(window, [\"Worker\"], \"function\")) {\n missingFeatures.push(BrowserCompatibility.Feature.WEB_WORKERS);\n fullSupport = scannerSupport = false;\n }\n\n if (!objectHasPropertyWithType(window, [\"WebAssembly\"], \"object\")) {\n missingFeatures.push(BrowserCompatibility.Feature.WEB_ASSEMBLY);\n fullSupport = scannerSupport = false;\n }\n\n if (!objectHasPropertyWithType(window, [\"Blob\"], \"function\")) {\n missingFeatures.push(BrowserCompatibility.Feature.BLOB);\n fullSupport = scannerSupport = false;\n }\n\n if (!objectHasPropertyWithType(window, [\"URL\", \"createObjectURL\"], \"function\")) {\n missingFeatures.push(BrowserCompatibility.Feature.URL_OBJECT);\n fullSupport = scannerSupport = false;\n }\n\n if (!objectHasPropertyWithType(window, [\"OffscreenCanvas\"], \"function\")) {\n missingFeatures.push(BrowserCompatibility.Feature.OFFSCREEN_CANVAS);\n }\n\n try {\n if (\n !objectHasPropertyWithType(window, [\"WebGLRenderingContext\"], \"function\") ||\n (canvas.getContext(\"webgl\") == null && canvas.getContext(\"experimental-webgl\") == null)\n ) {\n throw new Error();\n }\n } catch {\n missingFeatures.push(BrowserCompatibility.Feature.WEBGL);\n }\n\n const userAgentOS: OS = userAgentInfo.getOS();\n if (isBrokenWebAssemblyOS(userAgentOS)) {\n missingFeatures.push(BrowserCompatibility.Feature.WEB_ASSEMBLY_ERROR_FREE);\n fullSupport = scannerSupport = false;\n }\n\n return {\n fullSupport,\n scannerSupport,\n missingFeatures,\n };\n }\n\n /**\n * @hidden\n *\n * Get a device id for the current browser.\n *\n * When available it's retrieved from localStorage, as fallback from cookies (used by older library versions),\n * when not available it's randomly generated and stored in localStorage to be retrieved by later calls and returned.\n *\n * @returns The device id for the current browser.\n */\n export function getDeviceId(): string {\n const devideIdKey: string = \"scandit-device-id\";\n let deviceId: string | undefined | null = localStorage.getItem(devideIdKey);\n if (deviceId != null && deviceId !== \"\") {\n return deviceId;\n }\n\n deviceId = Cookies.get(devideIdKey);\n if (deviceId != null && deviceId !== \"\") {\n localStorage.setItem(devideIdKey, deviceId);\n\n return deviceId;\n }\n\n const randomDeviceIdBytes: Uint8Array = new Uint8Array(20);\n crypto.getRandomValues(randomDeviceIdBytes);\n deviceId = Array.from(randomDeviceIdBytes)\n .map((byteNumber) => {\n const byteHex: string = byteNumber.toString(16);\n\n return byteHex.length === 1 ? /* istanbul ignore next */ `0${byteHex}` : byteHex;\n })\n .join(\"\");\n\n localStorage.setItem(devideIdKey, deviceId);\n\n return deviceId;\n }\n\n /**\n * @hidden\n *\n * Check if a given object is a valid HTMLElement\n *\n * @param object The object to check.\n * @returns Whether the given object is a valid HTMLElement.\n */\n // tslint:disable-next-line:no-any\n export function isValidHTMLElement(object: any): boolean {\n return (\n object instanceof HTMLElement ||\n (object != null && typeof object === \"object\" && typeof object.tagName === \"string\")\n );\n }\n}\n","import { Barcode, BarcodeWASMResult } from \"../barcode\";\nimport { Camera } from \"../camera\";\nimport { ImageSettings } from \"../imageSettings\";\nimport { Logger } from \"../logger\";\nimport { Parser } from \"../parser\";\nimport { ScanSettings } from \"../scanSettings\";\n\n// WARNING\n// ==========\n// The \"dataCapture\" function is extracted and executed in isolation as a WebWorker in the browser.\n// We currently cannot use too advanced language features here as the code will not get transformed/polyfilled correctly\n// by Rollup and Babel as it might refer to other externally defined variables/functions.\n// This means we also cannot import and use variables from the rest of the project.\n// The used language features should be compatible with (supported by) the browsers mentioned in the documentation.\n// See rollup.config.js and .browserslistrc.worker for more details.\n// TODO: This should be fixed...\n\n// tslint:disable:no-any\n\ndeclare const self: any;\ndeclare const importScripts: (...urls: string[]) => Promise | undefined; // Promise is used only during testing\ndeclare const postMessage: (message: DataCaptureSentMessageData, transfer?: Transferable[]) => void;\n// Defined here as we cannot use too recent typescript type definitions\ndeclare namespace WebAssembly {\n interface Instance {\n readonly exports: any;\n }\n\n interface WebAssemblyInstantiatedSource {\n instance: Instance;\n // tslint:disable-next-line:no-reserved-keywords\n module: {};\n }\n}\n\n// tslint:enable:no-any\n\ninterface Module extends EmscriptenModule {\n callMain(): void;\n _create_context(\n licenseKeyPointer: number,\n writableDataPathPointer: number,\n delayedRegistration: boolean,\n highEndBlurryRecognition: boolean,\n resourceFilesDataPathPointer: number,\n debug: boolean\n ): void;\n _scanner_settings_new_from_json(\n barcodeJsonSettingsPointer: number,\n textJsonSettingsPointer: number,\n barcodeCaptureEnabled: boolean,\n textCaptureEnabled: boolean,\n blurryRecognitionEnabled: boolean,\n matrixScanEnabled: boolean,\n highQualitySingleFrameMode: boolean,\n gpuEnabled: boolean\n ): number;\n _scanner_image_settings_new(width: number, height: number, channels: number): void;\n _scanner_session_clear(): void;\n _can_hide_logo(): number;\n _scanner_scan(imageDataPointer: number): number;\n _parser_parse_string(\n parserType: number,\n stringDataPointer: number,\n stringDataLength: number,\n optionsPointer: number\n ): number;\n _create_blurry_table(symbologyPointer: number): void;\n _report_camera_properties(frontFacingDirection: boolean, adjustsFocus: boolean): void;\n _set_device_name(deviceNamePointer: number): void;\n}\n\ndeclare let Module: Module;\n\ndeclare type ScanWorkUnit = {\n requestId: number;\n data: Uint8Array;\n highQualitySingleFrameMode: boolean;\n};\n\ndeclare type ParseWorkUnit = {\n requestId: number;\n dataFormat: Parser.DataFormat;\n data: string | Uint8Array;\n options: string;\n};\n\n// tslint:disable:no-reserved-keywords\n/**\n * @hidden\n */\nexport declare type DataCaptureReceivedMessageData =\n | {\n type: \"load-library\";\n deviceId: string;\n libraryLocation: string;\n path: string;\n preload: boolean;\n delayedRegistration: boolean;\n highEndBlurryRecognition: boolean;\n textRecognition: boolean;\n licenseKey?: string;\n deviceModelName?: string;\n writableDataPathOverride?: string;\n }\n | {\n type: \"scan-settings\";\n settings: string;\n blurryRecognitionAvailable: boolean;\n blurryRecognitionRequiresUpdate: boolean;\n }\n | { type: \"image-settings\"; imageSettings: ImageSettings }\n | {\n type: \"scan-image\";\n requestId: number;\n data: Uint8Array;\n highQualitySingleFrameMode: boolean;\n }\n | { type: \"parse\"; requestId: number; dataFormat: Parser.DataFormat; data: string | Uint8Array; options: string }\n | { type: \"clear-session\" }\n | { type: \"create-blurry-table\"; symbology: Barcode.Symbology }\n | { type: \"camera-properties\"; cameraType: Camera.Type; autofocus: boolean }\n | { type: \"device-name\"; deviceName: string }\n | { type: \"reset\" };\n// tslint:enable:no-reserved-keywords\n/**\n * @hidden\n */\nexport declare type DataCaptureSentMessageData =\n // tslint:disable-next-line: no-any\n | [\"log\", { level: Exclude; data: any[] }]\n | [\"library-loaded\"]\n | [\"context-created\", object]\n | [\"work-result\", { requestId: number; result: { barcodes: BarcodeWASMResult[]; texts: string[] } }, Uint8Array]\n | [\"work-error\", { requestId: number; error: { errorCode: number; errorMessage: string } }, Uint8Array]\n | [\"parse-result\", { requestId: number; result: string }]\n | [\"parse-error\", { requestId: number; error: { errorCode: number; errorMessage: string } }]\n | [\"create-blurry-table-result\", Barcode.Symbology]\n | [\"reset\"];\n\n/**\n * @hidden\n */\nexport interface DataCaptureWorker extends Worker {\n onmessage: ((this: Worker, ev: MessageEvent & { data: DataCaptureSentMessageData }) => void) | null;\n postMessage(message: DataCaptureReceivedMessageData, transfer: Transferable[]): void;\n postMessage(\n message: DataCaptureReceivedMessageData,\n options?: {\n // tslint:disable-next-line: no-any\n transfer?: any[];\n } // Use custom object instead of PostMessageOptions to support TypeScript < 3.5\n ): void;\n}\n\n/**\n * @hidden\n */\nexport declare type DataCapture = {\n loadLibrary(\n deviceId: string,\n libraryLocation: string,\n locationPath: string,\n preload: boolean,\n delayedRegistration: boolean,\n highEndBlurryRecognition: boolean,\n textRecognition: boolean,\n licenseKey?: string,\n deviceModelName?: string,\n writableDataPathOverride?: string\n ): Promise;\n setScanSettings(\n newScanSettings: string,\n blurryRecognitionAvailable: boolean,\n blurryRecognitionRequiresUpdate: boolean\n ): void;\n setImageSettings(imageSettings: ImageSettings): void;\n workOnScanQueue(): void;\n workOnParseQueue(): void;\n addScanWorkUnit(scanWorkUnit: ScanWorkUnit): void;\n addParseWorkUnit(parseWorkUnit: ParseWorkUnit): void;\n clearSession(): void;\n createBlurryTable(symbology: Barcode.Symbology): void;\n setCameraProperties(cameraType: Camera.Type, autofocus: boolean): void;\n setDeviceName(deviceName: string): void;\n reset(): void;\n};\n\n/**\n * @hidden\n *\n * @returns DataCapture\n */\n// tslint:disable-next-line:max-func-body-length\nexport function dataCapture(): DataCapture {\n const writableDataPathPreload: string = \"/scandit_sync_folder_preload\";\n const writableDataPathStandard: string = \"/scandit_sync_folder\";\n const resourceFilesSubfolder: string = \"resources\";\n const scanQueue: ScanWorkUnit[] = [];\n const parseQueue: ParseWorkUnit[] = [];\n const gpuAccelerationAvailable: boolean = typeof self.OffscreenCanvas === \"function\";\n\n let originalFSSyncfs: typeof FS.syncfs | undefined;\n let imageBufferPointer: number | undefined;\n let imageBufferSize: number | undefined;\n let preloading: boolean;\n let writableDataPath: string;\n let resourceFilesDataPath: string;\n let delayedRegistration: boolean | undefined;\n let highEndBlurryRecognition: boolean;\n let licenseKey: string | undefined;\n let scanSettings: string | undefined;\n let imageSettings: ImageSettings | undefined;\n let recognitionMode: ScanSettings.RecognitionMode | undefined;\n let cameraProperties: { cameraType: Camera.Type; autofocus: boolean } | undefined;\n let deviceName: string | undefined;\n let blurryRecognitionAvailable: boolean = false;\n let workSubmitted: boolean = false;\n let loadingInProgress: boolean = false;\n let fileSystemSynced: boolean = false;\n let runtimeLoaded: boolean = false;\n let wasmReady: boolean = false;\n let scannerSettingsReady: boolean = false;\n let scannerImageSettingsReady: boolean = false;\n let contextAvailable: boolean = false;\n let fsSyncPromise: Promise = Promise.resolve();\n let fsSyncInProgress: boolean = false;\n let fsSyncScheduled: boolean = false;\n\n // Public\n\n // Promise result is used only during testing\n // tslint:disable-next-line: parameters-max-number\n function loadLibrary(\n deviceId: string,\n libraryLocation: string,\n locationPath: string,\n preload: boolean,\n newDelayedRegistration: boolean,\n newHighEndBlurryRecognition: boolean,\n textRecognition: boolean,\n newLicenseKey?: string,\n deviceModelName?: string,\n writableDataPathOverride?: string\n ): Promise {\n function reportLoadSuccess(): void {\n postMessage([\"library-loaded\"]);\n createContext(newDelayedRegistration, newHighEndBlurryRecognition, newLicenseKey);\n }\n\n function start(): void {\n if (!wasmReady && fileSystemSynced && runtimeLoaded) {\n loadingInProgress = false;\n Module.callMain();\n wasmReady = true;\n reportLoadSuccess();\n if (!newDelayedRegistration) {\n workOnScanQueue();\n workOnParseQueue();\n }\n }\n }\n\n if (loadingInProgress) {\n return Promise.resolve();\n }\n\n if (wasmReady) {\n reportLoadSuccess();\n\n return Promise.resolve();\n }\n\n loadingInProgress = true;\n\n // Sample WebAssembly WAT SIMD Program, containing i8x16.popcnt as part of one of the latest SIMD opcodes\n // (module\n // (func (result v128)\n // i32.const 1\n // i8x16.splat\n // i8x16.popcnt\n // )\n // )\n const simdSupport: boolean = WebAssembly.validate(\n new Uint8Array([\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 10, 1, 8, 0, 65, 1, 253, 15, 253, 98, 11,\n ])\n );\n\n const { jsURI, wasmURI } = getLibraryLocationURIs(libraryLocation, textRecognition, simdSupport);\n preloading = preload;\n if (preload) {\n writableDataPath = writableDataPathPreload;\n } else {\n if (writableDataPathOverride != null) {\n log(\n \"debug\",\n `IndexedDB database name override in use to recover from blocked standard database: ${writableDataPathOverride}`\n );\n writableDataPath = writableDataPathOverride;\n } else {\n writableDataPath = writableDataPathStandard;\n }\n }\n resourceFilesDataPath = `${libraryLocation}${resourceFilesSubfolder}/`;\n highEndBlurryRecognition = newHighEndBlurryRecognition;\n self.window = self.document = self; // Fix some Emscripten quirks\n self.path = locationPath; // Used by the Scandit Data Capture library\n self.deviceModelName = deviceModelName; // Used by the Scandit Data Capture library\n Module = ({\n arguments: [deviceId],\n canvas: gpuAccelerationAvailable\n ? new self.OffscreenCanvas(32, 32)\n : /* istanbul ignore next */ {\n getContext: () => {\n return null;\n },\n },\n instantiateWasm: (importObject: object, successCallback: (instance: WebAssembly.Instance) => void) => {\n // wasmJSVersion is globally defined inside scandit-engine-sdk.min.js\n const wasmJSVersion: string = self.wasmJSVersion ?? \"undefined\";\n // istanbul ignore if\n if (wasmJSVersion !== \"%VERSION%\") {\n log(\n \"error\",\n `The Scandit Data Capture library JS file found at ${jsURI} seems invalid: ` +\n `expected version doesn't match (received: ${wasmJSVersion}, expected: ${\"%VERSION%\"}). ` +\n `Please ensure the correct Scandit Data Capture file (with correct version) is retrieved.`\n );\n }\n\n if (typeof self.WebAssembly.instantiateStreaming === \"function\") {\n instantiateWebAssemblyStreaming(importObject, wasmURI, textRecognition, simdSupport, successCallback);\n } else {\n instantiateWebAssembly(importObject, wasmURI, textRecognition, simdSupport, successCallback);\n }\n\n return {};\n },\n noInitialRun: true,\n preRun: [\n () => {\n return setupFS()\n .catch((error) => {\n log(\"debug\", \"No IndexedDB support, some data will not be persisted:\", error);\n })\n .then(() => {\n fileSystemSynced = true;\n start();\n });\n },\n ],\n onRuntimeInitialized: () => {\n runtimeLoaded = true;\n start();\n },\n // tslint:disable-next-line: no-any\n print: (...data: any[]) => {\n log(\"info\", ...data);\n },\n // tslint:disable-next-line: no-any\n printErr: (...data: any[]) => {\n log(\"error\", ...data);\n },\n });\n\n function tryImportScripts(): Promise {\n try {\n return importScripts(jsURI) ?? Promise.resolve();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n return retryWithExponentialBackoff(tryImportScripts, 250, 4000, (error) => {\n log(\"warn\", error);\n log(\"warn\", `Couldn't retrieve Scandit Data Capture library at ${jsURI}, retrying...`);\n }).catch((error) => {\n log(\"error\", error);\n log(\n \"error\",\n `Couldn't retrieve Scandit Data Capture library at ${jsURI}, did you configure the path for it correctly?`\n );\n\n return Promise.resolve(error); // Promise is used only during testing\n });\n }\n\n function createContext(\n // tslint:disable-next-line: bool-param-default\n newDelayedRegistration?: boolean,\n // tslint:disable-next-line: bool-param-default\n newHighEndBlurryRecognition?: boolean,\n newLicenseKey?: string\n ): void {\n function completeCreateContext(): void {\n postMessage([\n \"context-created\",\n {\n hiddenScanditLogoAllowed: Module._can_hide_logo() === 1,\n },\n ]);\n }\n\n if (contextAvailable) {\n return completeCreateContext();\n }\n\n if (newDelayedRegistration != null) {\n delayedRegistration = newDelayedRegistration;\n }\n if (newHighEndBlurryRecognition != null) {\n highEndBlurryRecognition = newHighEndBlurryRecognition;\n }\n if (newLicenseKey != null) {\n licenseKey = newLicenseKey;\n }\n if (\n !wasmReady ||\n delayedRegistration == null ||\n highEndBlurryRecognition == null ||\n (!workSubmitted && !delayedRegistration) ||\n licenseKey == null\n ) {\n return;\n }\n\n const licenseKeyLength: number = lengthBytesUTF8(licenseKey) + 1;\n const licenseKeyPointer: number = Module._malloc(licenseKeyLength);\n stringToUTF8(licenseKey, licenseKeyPointer, licenseKeyLength);\n const writableDataPathLength: number = lengthBytesUTF8(writableDataPath) + 1;\n const writableDataPathPointer: number = Module._malloc(writableDataPathLength);\n stringToUTF8(writableDataPath, writableDataPathPointer, writableDataPathLength);\n const resourceFilesDataPathLength: number = lengthBytesUTF8(resourceFilesDataPath) + 1;\n const resourceFilesDataPathPointer: number = Module._malloc(resourceFilesDataPathLength);\n stringToUTF8(resourceFilesDataPath, resourceFilesDataPathPointer, resourceFilesDataPathLength);\n Module._create_context(\n licenseKeyPointer,\n writableDataPathPointer,\n delayedRegistration,\n highEndBlurryRecognition,\n resourceFilesDataPathPointer,\n false\n );\n Module._free(licenseKeyPointer);\n Module._free(writableDataPathPointer);\n Module._free(resourceFilesDataPathPointer);\n\n contextAvailable = true;\n\n reportCameraProperties();\n reportDeviceName();\n completeCreateContext();\n }\n\n function setScanSettings(\n newScanSettings: string,\n newBlurryRecognitionAvailable: boolean,\n blurryRecognitionRequiresUpdate: boolean\n ): void {\n function completeSetScanSettings(): void {\n scanSettings = newScanSettings;\n blurryRecognitionAvailable = newBlurryRecognitionAvailable;\n applyScanSettings();\n workOnScanQueue();\n }\n\n scanSettings = undefined;\n scannerSettingsReady = false;\n\n if (newBlurryRecognitionAvailable && blurryRecognitionRequiresUpdate) {\n syncFS(true, false, true).then(completeSetScanSettings).catch(completeSetScanSettings);\n } else {\n completeSetScanSettings();\n }\n }\n\n function setImageSettings(newImageSettings: ImageSettings): void {\n imageSettings = newImageSettings;\n applyImageSettings();\n workOnScanQueue();\n }\n\n function augmentErrorInformation(error: { errorCode: number; errorMessage: string }): void {\n if (error.errorCode === 260) {\n let hostname: string;\n // istanbul ignore if\n if (location.href?.indexOf(\"blob:null/\") === 0) {\n hostname = \"localhost\";\n } else {\n hostname = new URL(\n location.pathname != null && location.pathname !== \"\" && !location.pathname.startsWith(\"/\")\n ? /* istanbul ignore next */ location.pathname\n : location.origin\n ).hostname;\n }\n // istanbul ignore next\n if (hostname.startsWith(\"[\") && hostname.endsWith(\"]\")) {\n hostname = hostname.slice(1, -1);\n }\n error.errorMessage = error.errorMessage.replace(\"domain name\", `domain name (${hostname})`);\n }\n\n // License Key related error codes from 6 to 25 and 260\n if (\n [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 260].includes(error.errorCode) &&\n licenseKey != null &&\n licenseKey.length > 0\n ) {\n error.errorMessage += ` License Key: ${licenseKey.slice(0, 15)}...`;\n }\n }\n\n function processScanWorkUnit(scanWorkUnit: ScanWorkUnit): void {\n if (scanWorkUnit.highQualitySingleFrameMode) {\n applyScanSettings(true);\n }\n const resultData: string = scanImage(scanWorkUnit.data);\n if (scanWorkUnit.highQualitySingleFrameMode) {\n applyScanSettings(false);\n }\n const result: {\n barcodeResult?: BarcodeWASMResult[];\n textResult?: string[];\n error?: { errorCode: number; errorMessage: string };\n } = JSON.parse(resultData);\n if (result.error != null) {\n augmentErrorInformation(result.error);\n postMessage(\n [\n \"work-error\",\n {\n requestId: scanWorkUnit.requestId,\n error: result.error,\n },\n scanWorkUnit.data,\n ],\n [scanWorkUnit.data.buffer]\n );\n } else {\n // istanbul ignore else\n if (result.barcodeResult != null && result.textResult != null) {\n postMessage(\n [\n \"work-result\",\n {\n requestId: scanWorkUnit.requestId,\n result: {\n barcodes: result.barcodeResult,\n texts: result.textResult,\n },\n },\n scanWorkUnit.data,\n ],\n [scanWorkUnit.data.buffer]\n );\n }\n }\n }\n\n function workOnScanQueue(): void {\n if (!wasmReady || scanQueue.length === 0) {\n return;\n }\n\n // Initialization for first submitted work unit\n if (!contextAvailable) {\n createContext();\n }\n if (!scannerSettingsReady) {\n applyScanSettings();\n }\n if (!scannerImageSettingsReady) {\n applyImageSettings();\n }\n\n if (!contextAvailable || !scannerSettingsReady || !scannerImageSettingsReady) {\n return;\n }\n\n while (scanQueue.length !== 0) {\n if (\n scanQueue[0].highQualitySingleFrameMode &&\n // TODO: For now it's not possible to use imported variables as the worker doesn't have access at runtime\n recognitionMode?.includes(\"code\") === true &&\n !blurryRecognitionAvailable\n ) {\n break;\n }\n processScanWorkUnit(scanQueue.shift());\n }\n }\n\n function processParseWorkUnit(parseWorkUnit: ParseWorkUnit): void {\n const resultData: string = parse(parseWorkUnit.dataFormat, parseWorkUnit.data, parseWorkUnit.options);\n const result: { result?: string; error?: { errorCode: number; errorMessage: string } } = JSON.parse(resultData);\n if (result.error != null) {\n augmentErrorInformation(result.error);\n postMessage([\n \"parse-error\",\n {\n requestId: parseWorkUnit.requestId,\n error: result.error,\n },\n ]);\n } else {\n // istanbul ignore else\n if (result.result != null) {\n postMessage([\n \"parse-result\",\n {\n requestId: parseWorkUnit.requestId,\n result: result.result,\n },\n ]);\n }\n }\n }\n\n function workOnParseQueue(): void {\n if (!wasmReady || parseQueue.length === 0) {\n return;\n }\n\n // Initialization for first submitted work unit\n if (!contextAvailable) {\n createContext();\n if (!contextAvailable) {\n return;\n }\n }\n\n while (parseQueue.length !== 0) {\n processParseWorkUnit(parseQueue.shift());\n }\n }\n\n function addScanWorkUnit(scanWorkUnit: ScanWorkUnit): void {\n workSubmitted = true;\n scanQueue.push(scanWorkUnit);\n workOnScanQueue();\n }\n\n function addParseWorkUnit(parseWorkUnit: ParseWorkUnit): void {\n workSubmitted = true;\n parseQueue.push(parseWorkUnit);\n workOnParseQueue();\n }\n\n function clearSession(): void {\n if (scannerSettingsReady) {\n Module._scanner_session_clear();\n }\n }\n\n function createBlurryTable(symbology: Barcode.Symbology): void {\n function reportResult(): void {\n postMessage([\"create-blurry-table-result\", symbology]);\n }\n\n if (!wasmReady || !contextAvailable) {\n return;\n }\n\n const symbologyLength: number = lengthBytesUTF8(symbology) + 1;\n const symbologyPointer: number = Module._malloc(symbologyLength);\n stringToUTF8(symbology, symbologyPointer, symbologyLength);\n Module._create_blurry_table(symbologyPointer);\n Module._free(symbologyPointer);\n\n // FS.syncfs is called by data capture if needed: the current promise is the one to wait for\n fsSyncPromise.then(reportResult).catch(\n // istanbul ignore next\n reportResult\n );\n }\n\n function setCameraProperties(cameraType: Camera.Type, autofocus: boolean): void {\n cameraProperties = {\n cameraType,\n autofocus,\n };\n reportCameraProperties();\n }\n\n function setDeviceName(newDeviceName: string): void {\n if (deviceName !== newDeviceName) {\n deviceName = newDeviceName;\n reportDeviceName();\n }\n }\n\n function reset(): void {\n clearSession();\n scanQueue.length = 0;\n parseQueue.length = 0;\n scanSettings = undefined;\n imageSettings = undefined;\n workSubmitted = false;\n scannerSettingsReady = false;\n scannerImageSettingsReady = false;\n }\n\n // Private\n\n // TODO: For now it's not possible to use imported variables as the worker doesn't have access at runtime\n // tslint:disable-next-line: no-any\n function log(level: \"debug\" | \"info\" | \"warn\" | \"error\", ...data: any[]): void {\n data.forEach((dataArgument, index) => {\n if (dataArgument instanceof Error) {\n const errorObject: Error = {\n name: dataArgument.name,\n message: dataArgument.message,\n stack: dataArgument.stack,\n };\n data[index] = errorObject;\n }\n });\n postMessage([\n \"log\",\n {\n level: >level,\n data,\n },\n ]);\n }\n\n function retryWithExponentialBackoff(\n handler: () => Promise,\n backoffMs: number,\n maxBackoffMs: number,\n singleTryRejectionCallback: (error: Error) => void\n ): Promise {\n return new Promise((resolve, reject) => {\n handler()\n .then(resolve)\n .catch((error) => {\n const newBackoffMs: number = backoffMs * 2;\n if (newBackoffMs > maxBackoffMs) {\n return reject(error);\n }\n singleTryRejectionCallback(error);\n setTimeout(() => {\n retryWithExponentialBackoff(handler, newBackoffMs, maxBackoffMs, singleTryRejectionCallback)\n .then(resolve)\n .catch(reject);\n }, backoffMs);\n });\n });\n }\n\n function getLibraryLocationURIs(\n libraryLocation: string,\n textRecognition: boolean,\n simdSupport: boolean\n ): { jsURI: string; wasmURI: string } {\n let cdnURI: boolean = false;\n\n if (/^https?:\\/\\/([^\\/.]*\\.)*cdn.jsdelivr.net\\//.test(libraryLocation)) {\n libraryLocation = \"https://cdn.jsdelivr.net/npm/scandit-sdk@%VERSION%/build/\";\n cdnURI = true;\n } else if (/^https?:\\/\\/([^\\/.]*\\.)*unpkg.com\\//.test(libraryLocation)) {\n libraryLocation = \"https://unpkg.com/scandit-sdk@%VERSION%/build/\";\n cdnURI = true;\n }\n\n let fileExtension: string = \"\";\n if (textRecognition) {\n fileExtension += \"-ocr\";\n if (simdSupport) {\n fileExtension += \"-simd\";\n }\n }\n\n if (cdnURI) {\n return {\n jsURI: `${libraryLocation}scandit-engine-sdk${fileExtension}.min.js`,\n wasmURI: `${libraryLocation}scandit-engine-sdk${fileExtension}.wasm`,\n };\n }\n\n return {\n jsURI: `${libraryLocation}scandit-engine-sdk${fileExtension}.min.js?v=%VERSION%`,\n wasmURI: `${libraryLocation}scandit-engine-sdk${fileExtension}.wasm?v=%VERSION%`,\n };\n }\n\n function arrayBufferToHexString(arrayBuffer: ArrayBuffer): string {\n return Array.from(new Uint8Array(arrayBuffer))\n .map((byteNumber) => {\n const byteHex: string = byteNumber.toString(16);\n\n return byteHex.length === 1 ? /* istanbul ignore next */ `0${byteHex}` : byteHex;\n })\n .join(\"\");\n }\n\n function applyScanSettings(highQualitySingleFrameMode: boolean = false): void {\n if (!wasmReady || !contextAvailable || !workSubmitted || scanSettings == null) {\n return;\n }\n\n scannerSettingsReady = false;\n\n const parsedSettings: {\n recognitionMode?: ScanSettings.RecognitionMode;\n textRecognitionSettings?: string;\n matrixScanEnabled?: boolean;\n gpuAcceleration?: boolean;\n blurryRecognition?: boolean;\n } = JSON.parse(scanSettings);\n recognitionMode = parsedSettings.recognitionMode;\n parsedSettings.textRecognitionSettings ??= JSON.stringify({});\n const scanSettingsLength: number = lengthBytesUTF8(scanSettings) + 1;\n const scanSettingsPointer: number = Module._malloc(scanSettingsLength);\n stringToUTF8(scanSettings, scanSettingsPointer, scanSettingsLength);\n const textRecognitionSettingsLength: number = lengthBytesUTF8(parsedSettings.textRecognitionSettings) + 1;\n const textRecognitionSettingsPointer: number = Module._malloc(textRecognitionSettingsLength);\n stringToUTF8(parsedSettings.textRecognitionSettings, textRecognitionSettingsPointer, textRecognitionSettingsLength);\n const resultPointer: number = Module._scanner_settings_new_from_json(\n scanSettingsPointer,\n textRecognitionSettingsPointer,\n // TODO: For now it's not possible to use imported variables as the worker doesn't have access at runtime\n recognitionMode?.includes(\"code\") === true,\n recognitionMode?.includes(\"text\") === true,\n parsedSettings.blurryRecognition === true && blurryRecognitionAvailable,\n parsedSettings.matrixScanEnabled ?? false,\n highQualitySingleFrameMode,\n parsedSettings.gpuAcceleration === true && gpuAccelerationAvailable\n );\n Module._free(scanSettingsPointer);\n\n const result: string = UTF8ToString(resultPointer);\n if (result !== \"\") {\n scannerSettingsReady = true;\n log(\"debug\", \"External Scandit Data Capture scan settings:\", JSON.parse(result));\n }\n }\n\n function applyImageSettings(): void {\n if (!wasmReady || !contextAvailable || !workSubmitted || imageSettings == null) {\n return;\n }\n\n scannerImageSettingsReady = false;\n\n let channels: number;\n // TODO: For now it's not possible to use imported variables as the worker doesn't have access at runtime\n if (imageSettings.format.valueOf() === 1) {\n // RGB_8U\n channels = 3;\n } else if (imageSettings.format.valueOf() === 2) {\n // RGBA_8U\n channels = 4;\n } else {\n // GRAY_8U\n channels = 1;\n }\n Module._scanner_image_settings_new(imageSettings.width, imageSettings.height, channels);\n if (imageBufferPointer != null) {\n Module._free(imageBufferPointer);\n }\n imageBufferSize = imageSettings.width * imageSettings.height * channels;\n imageBufferPointer = Module._malloc(imageBufferSize);\n\n scannerImageSettingsReady = true;\n }\n\n function reportCameraProperties(): void {\n if (!wasmReady || !contextAvailable || cameraProperties == null) {\n return;\n }\n // TODO: For now it's not possible to use imported variables as the worker doesn't have access at runtime\n Module._report_camera_properties(cameraProperties.cameraType === \"front\", cameraProperties.autofocus);\n }\n\n function reportDeviceName(): void {\n if (!wasmReady || !contextAvailable || deviceName == null) {\n return;\n }\n const deviceNameLength: number = lengthBytesUTF8(deviceName) + 1;\n const deviceNamePointer: number = Module._malloc(deviceNameLength);\n stringToUTF8(deviceName, deviceNamePointer, deviceNameLength);\n Module._set_device_name(deviceNamePointer);\n Module._free(deviceNamePointer);\n }\n\n function scanImage(imageData: Uint8Array): string {\n if (imageData.byteLength !== imageBufferSize) {\n // This could happen in unexpected situations and should be temporary\n return JSON.stringify({ barcodeResult: [], textResult: [] });\n }\n\n Module.HEAPU8.set(imageData, imageBufferPointer);\n\n return UTF8ToString(Module._scanner_scan(imageBufferPointer));\n }\n\n function parse(dataFormat: Parser.DataFormat, data: string | Uint8Array, options: string): string {\n const dataLength: number = typeof data === \"string\" ? lengthBytesUTF8(data) + 1 : data.byteLength;\n const dataPointer: number = Module._malloc(dataLength);\n if (typeof data === \"string\") {\n stringToUTF8(data, dataPointer, dataLength);\n } else {\n Module.HEAPU8.set(data, dataPointer);\n }\n const optionsLength: number = lengthBytesUTF8(options) + 1;\n const optionsPointer: number = Module._malloc(optionsLength);\n stringToUTF8(options, optionsPointer, optionsLength);\n const resultPointer: number = Module._parser_parse_string(\n dataFormat.valueOf(),\n dataPointer,\n dataLength - 1,\n optionsPointer\n );\n Module._free(dataPointer);\n Module._free(optionsPointer);\n\n return UTF8ToString(resultPointer);\n }\n\n function verifiedWasmFetch(\n wasmURI: string,\n textRecognition: boolean,\n simdSupport: boolean,\n awaitFullResponse: boolean\n ): Promise {\n function verifyResponseData(responseData: ArrayBuffer): void {\n // istanbul ignore else\n if (typeof crypto?.subtle?.digest === \"function\") {\n crypto.subtle\n .digest(\"SHA-256\", responseData)\n .then((hash) => {\n const hashString: string = arrayBufferToHexString(hash);\n let expectedHashString: string = \"%SDC_WASM_HASH%\";\n if (textRecognition) {\n expectedHashString = simdSupport ? \"%SDC_OCR_SIMD_WASM_HASH%\" : \"%SDC_OCR_WASM_HASH%\";\n }\n\n // istanbul ignore if\n if (hashString !== expectedHashString) {\n log(\n \"error\",\n `The Scandit Data Capture library WASM file found at ${wasmURI} seems invalid: ` +\n `expected file hash doesn't match (received: ${hashString}, ` +\n `expected: ${expectedHashString}). ` +\n `Please ensure the correct Scandit Data Capture file (with correct version) is retrieved.`\n );\n }\n })\n .catch(\n /* istanbul ignore next */ () => {\n // Ignored\n }\n );\n } else {\n log(\n \"warn\",\n \"Insecure context (see https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts): \" +\n `The hash of the Scandit Data Capture library WASM file found at ${wasmURI} could not be verified`\n );\n }\n }\n\n function tryFetch(): Promise {\n return new Promise((resolve, reject) => {\n fetch(wasmURI)\n .then((response) => {\n // istanbul ignore else\n if (response.ok) {\n response\n .clone()\n .arrayBuffer()\n .then((responseData) => {\n if (awaitFullResponse) {\n resolve(response);\n }\n verifyResponseData(responseData);\n })\n .catch(\n // istanbul ignore next\n (error) => {\n if (awaitFullResponse) {\n reject(error);\n }\n }\n );\n\n if (!awaitFullResponse) {\n resolve(response);\n }\n } else {\n reject(new Error(\"HTTP status code is not ok\"));\n }\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n\n return retryWithExponentialBackoff(tryFetch, 250, 4000, (error) => {\n log(\"warn\", error);\n log(\"warn\", `Couldn't retrieve Scandit Data Capture library at ${wasmURI}, retrying...`);\n }).catch((error) => {\n log(\"error\", error);\n log(\n \"error\",\n `Couldn't retrieve/instantiate Scandit Data Capture library at ${wasmURI}, ` +\n \"did you configure the path for it correctly?\"\n );\n\n return Promise.reject(error);\n });\n }\n\n function instantiateWebAssembly(\n importObject: object,\n wasmURI: string,\n textRecognition: boolean,\n simdSupport: boolean,\n successCallback: (instance: WebAssembly.Instance) => void,\n existingResponse?: Response\n ): void {\n (existingResponse != null\n ? Promise.resolve(existingResponse)\n : verifiedWasmFetch(wasmURI, textRecognition, simdSupport, true)\n )\n .then((response) => {\n return response.arrayBuffer();\n })\n .then((bytes) => {\n return self.WebAssembly.instantiate(bytes, importObject)\n .then((results: WebAssembly.WebAssemblyInstantiatedSource) => {\n successCallback(results.instance);\n })\n .catch((error: Error) => {\n log(\"error\", error);\n log(\n \"error\",\n `Couldn't instantiate Scandit Data Capture library at ${wasmURI}, ` +\n \"did you configure the path for it correctly?\"\n );\n });\n })\n .catch(\n /* istanbul ignore next */ () => {\n // Ignored\n }\n );\n }\n\n function instantiateWebAssemblyStreaming(\n importObject: object,\n wasmURI: string,\n textRecognition: boolean,\n simdSupport: boolean,\n successCallback: (instance: WebAssembly.Instance) => void\n ): void {\n verifiedWasmFetch(wasmURI, textRecognition, simdSupport, false)\n .then((response) => {\n self.WebAssembly.instantiateStreaming(response, importObject)\n .then((results: WebAssembly.WebAssemblyInstantiatedSource) => {\n successCallback(results.instance);\n })\n .catch((error: Error) => {\n log(\"warn\", error);\n log(\n \"warn\",\n \"WebAssembly streaming compile failed. \" +\n \"Falling back to ArrayBuffer instantiation (this will make things slower)\"\n );\n instantiateWebAssembly(importObject, wasmURI, textRecognition, simdSupport, successCallback, response);\n });\n })\n .catch(\n /* istanbul ignore next */ () => {\n // Ignored\n }\n );\n }\n\n // tslint:disable-next-line: max-func-body-length\n function syncFSMergePreloadedData(): Promise {\n // Note that this function is only executed by the non-preload WebWorker\n // (i.e.the one not created to only generate blurry tables)\n // This means that writableDataPath will always be defined to be writableDataPathStandard or its override\n const fsObjectStoreName: string = \"FILE_DATA\";\n let resolveCallback: (value: number | PromiseLike) => void;\n let openDbSourceRequest: IDBOpenDBRequest;\n let openDbTargetRequest: IDBOpenDBRequest;\n let targetTransactionCompleteTimeout: number;\n\n function handleError(this: IDBOpenDBRequest | IDBTransaction | IDBRequest | { error: Error }): void {\n clearTimeout(targetTransactionCompleteTimeout);\n openDbSourceRequest?.result?.close();\n openDbTargetRequest?.result?.close();\n // this.error\n resolveCallback(0);\n }\n\n function performMerge(): void {\n try {\n const objects: { value: object; primaryKey: IDBValidKey }[] = [];\n const sourceTransaction: IDBTransaction = openDbSourceRequest.result.transaction(fsObjectStoreName, \"readonly\");\n sourceTransaction.onerror = sourceTransaction.onabort = handleError;\n const cursorRequest: IDBRequest = sourceTransaction\n .objectStore(fsObjectStoreName)\n .openCursor();\n cursorRequest.onsuccess = () => {\n const cursor: IDBCursorWithValue | null = cursorRequest.result;\n if (cursor == null) {\n try {\n let mergedObjectsCount: number = 0;\n const targetTransaction: IDBTransaction = openDbTargetRequest.result.transaction(\n fsObjectStoreName,\n \"readwrite\"\n );\n const targetObjectStore: IDBObjectStore = targetTransaction.objectStore(fsObjectStoreName);\n targetTransaction.onerror = targetTransaction.onabort = handleError;\n targetTransaction.oncomplete = () => {\n clearTimeout(targetTransactionCompleteTimeout);\n openDbSourceRequest.result.close();\n openDbTargetRequest.result.close();\n\n return resolveCallback(mergedObjectsCount);\n };\n for (const object of objects) {\n const countRequest: IDBRequest = targetObjectStore.count(object.primaryKey);\n countRequest.onsuccess = () => {\n if (countRequest.result === 0) {\n ++mergedObjectsCount;\n targetObjectStore.add(object.value, object.primaryKey);\n }\n };\n // Due to Safari browser bugs, it can rarely happen that the transaction is never marked as complete,\n // when that happens the database is unfortunately completely stuck and can also not be deleted.\n // We then reset the library and use a completely new database with a new randomly generated name.\n clearTimeout(targetTransactionCompleteTimeout);\n targetTransactionCompleteTimeout = self.setTimeout(() => {\n log(\"warn\", \"IndexedDB database is blocked! Resetting Scandit Data Capture library...\");\n postMessage([\"reset\"]);\n }, 500);\n }\n } catch (error) {\n // istanbul ignore next\n handleError.call({ error });\n }\n } else {\n objects.push({\n value: cursor.value,\n primaryKey: cursor.primaryKey.toString().replace(`${writableDataPathPreload}/`, `${writableDataPath}/`),\n });\n cursor.continue();\n }\n };\n cursorRequest.onerror = handleError;\n } catch (error) {\n // istanbul ignore next\n handleError.call({ error });\n }\n }\n\n return new Promise((resolve) => {\n resolveCallback = resolve;\n openDbSourceRequest = indexedDB.open(writableDataPathPreload);\n openDbSourceRequest.onupgradeneeded = () => {\n try {\n openDbSourceRequest.result.createObjectStore(fsObjectStoreName);\n } catch (error) {\n // Ignored\n }\n };\n openDbSourceRequest.onsuccess = () => {\n if (!Array.from(openDbSourceRequest.result.objectStoreNames).includes(fsObjectStoreName)) {\n return resolve(0);\n }\n\n openDbTargetRequest = indexedDB.open(writableDataPath);\n openDbTargetRequest.onupgradeneeded = () => {\n try {\n openDbTargetRequest.result.createObjectStore(fsObjectStoreName);\n } catch (error) {\n // Ignored\n }\n };\n openDbTargetRequest.onsuccess = () => {\n performMerge();\n };\n openDbTargetRequest.onblocked = openDbTargetRequest.onerror = handleError;\n };\n openDbSourceRequest.onblocked = openDbSourceRequest.onerror = handleError;\n });\n }\n\n function syncFSPromisified(populate: boolean, initialPopulation: boolean): Promise {\n // istanbul ignore if\n if (originalFSSyncfs == null) {\n return Promise.resolve();\n }\n fsSyncInProgress = true;\n\n return new Promise((resolve, reject) => {\n // Merge with data coming from preloading workers if needed\n (!preloading && populate ? syncFSMergePreloadedData() : Promise.resolve(0))\n .then((mergedObjects) => {\n if (!preloading && populate && !initialPopulation && mergedObjects === 0) {\n fsSyncInProgress = false;\n\n return resolve();\n }\n // tslint:disable-next-line: no-non-null-assertion\n originalFSSyncfs!(populate, (error) => {\n fsSyncInProgress = false;\n // istanbul ignore if\n if (error != null) {\n return reject(error);\n }\n resolve();\n });\n })\n .catch(reject);\n });\n }\n\n function syncFS(\n populate: boolean,\n initialPopulation: boolean = false,\n forceScheduling: boolean = false\n ): Promise {\n if (!fsSyncScheduled || forceScheduling) {\n if (fsSyncInProgress) {\n fsSyncScheduled = true;\n fsSyncPromise = fsSyncPromise.then(() => {\n fsSyncScheduled = false;\n\n return syncFSPromisified(populate, initialPopulation);\n });\n } else {\n fsSyncPromise = syncFSPromisified(populate, initialPopulation);\n }\n }\n\n return fsSyncPromise;\n }\n\n function setupFS(): Promise {\n // FS.syncfs is also called by data capture on file storage, ensure everything is coordinated nicely\n originalFSSyncfs = FS.syncfs;\n FS.syncfs = ((populate: boolean, callback: (e: Error | void) => void) => {\n const originalCallback: typeof callback = callback;\n callback = (error) => {\n originalCallback(error);\n };\n syncFS(populate).then(callback).catch(callback);\n });\n\n try {\n FS.mkdir(writableDataPath);\n } catch (error) {\n // istanbul ignore next\n if (error.code !== \"EEXIST\") {\n originalFSSyncfs = undefined;\n\n return Promise.reject(error);\n }\n }\n FS.mount(IDBFS, {}, writableDataPath);\n\n return syncFS(true, true);\n }\n\n return {\n loadLibrary,\n setScanSettings,\n setImageSettings,\n workOnScanQueue,\n workOnParseQueue,\n addScanWorkUnit,\n addParseWorkUnit,\n clearSession,\n createBlurryTable,\n setCameraProperties,\n setDeviceName,\n reset,\n };\n}\n\n// istanbul ignore next\nfunction edataCaptureWorkerFunction(): void {\n const dataCaptureInstance: DataCapture = dataCapture();\n\n onmessage = (e) => {\n // Creating context triggers license key verification and activation: delay until first frame processed\n const data: DataCaptureReceivedMessageData = e.data;\n switch (data.type) {\n case \"load-library\":\n // tslint:disable-next-line: no-floating-promises\n dataCaptureInstance.loadLibrary(\n data.deviceId,\n data.libraryLocation,\n data.path,\n data.preload,\n data.delayedRegistration,\n data.highEndBlurryRecognition,\n data.textRecognition,\n data.licenseKey,\n data.deviceModelName,\n data.writableDataPathOverride\n );\n break;\n case \"scan-settings\":\n dataCaptureInstance.setScanSettings(\n data.settings,\n data.blurryRecognitionAvailable,\n data.blurryRecognitionRequiresUpdate\n );\n break;\n case \"image-settings\":\n dataCaptureInstance.setImageSettings(data.imageSettings);\n break;\n case \"scan-image\":\n dataCaptureInstance.addScanWorkUnit({\n requestId: data.requestId,\n data: data.data,\n highQualitySingleFrameMode: data.highQualitySingleFrameMode,\n });\n break;\n case \"parse\":\n dataCaptureInstance.addParseWorkUnit({\n requestId: data.requestId,\n dataFormat: data.dataFormat,\n data: data.data,\n options: data.options,\n });\n break;\n case \"clear-session\":\n dataCaptureInstance.clearSession();\n break;\n case \"create-blurry-table\":\n dataCaptureInstance.createBlurryTable(data.symbology);\n break;\n case \"camera-properties\":\n dataCaptureInstance.setCameraProperties(data.cameraType, data.autofocus);\n break;\n case \"device-name\":\n dataCaptureInstance.setDeviceName(data.deviceName);\n break;\n case \"reset\":\n dataCaptureInstance.reset();\n break;\n default:\n break;\n }\n };\n}\n\n/**\n * @hidden\n */\nexport const dataCaptureWorkerBlob: Blob = new Blob(\n [`var Module;${dataCapture.toString()}(${edataCaptureWorkerFunction.toString()})()`],\n {\n type: \"text/javascript\",\n }\n);\n","import {\n deviceId,\n highEndBlurryRecognition,\n scanditDataCaptureLocation,\n textRecognition,\n userLicenseKey,\n} from \"../index\";\nimport { BrowserHelper } from \"./browserHelper\";\nimport { DataCaptureWorker, dataCaptureWorkerBlob } from \"./workers/dataCaptureWorker\";\n\nexport class DataCaptureLoader {\n private preloadedDataCaptureWorker?: DataCaptureWorker;\n private preloadedDataCaptureWorkerAvailable: boolean;\n\n constructor(preload: boolean) {\n if (preload) {\n this.preloadedDataCaptureWorker = new Worker(URL.createObjectURL(dataCaptureWorkerBlob));\n DataCaptureLoader.load(this.preloadedDataCaptureWorker);\n }\n this.preloadedDataCaptureWorkerAvailable = preload;\n }\n\n public static load(\n dataCaptureWorker: DataCaptureWorker,\n preload: boolean = false,\n delayedRegistration: boolean = false\n ): void {\n dataCaptureWorker.postMessage({\n type: \"load-library\",\n deviceId,\n libraryLocation: scanditDataCaptureLocation,\n path: window.location.pathname,\n preload,\n delayedRegistration,\n highEndBlurryRecognition,\n textRecognition,\n licenseKey: userLicenseKey,\n deviceModelName: BrowserHelper.userAgentInfo.getDevice().model,\n writableDataPathOverride: localStorage.getItem(\"scanditWritableDataPathOverride\") ?? undefined,\n });\n }\n\n public getDataCaptureWorker(): DataCaptureWorker {\n if (this.preloadedDataCaptureWorkerAvailable && this.preloadedDataCaptureWorker != null) {\n this.preloadedDataCaptureWorkerAvailable = false;\n\n return this.preloadedDataCaptureWorker;\n } else {\n return new Worker(URL.createObjectURL(dataCaptureWorkerBlob));\n }\n }\n\n public returnDataCaptureWorker(dataCaptureWorker: DataCaptureWorker): void {\n if (this.preloadedDataCaptureWorker == null) {\n this.preloadedDataCaptureWorker = dataCaptureWorker;\n }\n if (this.preloadedDataCaptureWorker === dataCaptureWorker) {\n this.preloadedDataCaptureWorker.onmessage = null;\n this.preloadedDataCaptureWorker.postMessage({\n type: \"reset\",\n });\n this.preloadedDataCaptureWorkerAvailable = true;\n } else {\n dataCaptureWorker.terminate();\n }\n }\n}\n","/* tslint:disable:no-console */\nexport namespace Logger {\n /**\n * Log level.\n */\n export enum Level {\n DEBUG = \"debug\",\n INFO = \"info\",\n WARN = \"warn\",\n ERROR = \"error\",\n QUIET = \"quiet\",\n }\n\n const levelToNumber: Map = new Map([\n [Level.DEBUG, 1],\n [Level.INFO, 2],\n [Level.WARN, 3],\n [Level.ERROR, 4],\n [Level.QUIET, 5],\n ]);\n\n let currentLevel: Level = Level.DEBUG;\n\n /**\n * @hidden\n *\n * @param level The log level.\n */\n export function setLevel(level: Level): void {\n currentLevel = level;\n }\n\n /**\n * @hidden\n *\n * @param level The log level.\n * @param data The log contents.\n */\n // tslint:disable-next-line: no-any\n export function log(level: Exclude, ...data: any[]): void {\n // tslint:disable-next-line: no-non-null-assertion\n if (levelToNumber.get(currentLevel)! > levelToNumber.get(level)!) {\n return;\n }\n switch (level) {\n case Level.DEBUG:\n console.debug(...data);\n break;\n case Level.INFO:\n console.log(...data);\n break;\n case Level.WARN:\n console.warn(...data);\n break;\n case Level.ERROR:\n console.error(...data);\n break;\n default:\n break;\n }\n }\n}\n","import { EventEmitter } from \"eventemitter3\";\n\nimport { highEndBlurryRecognition } from \"..\";\nimport { Barcode } from \"./barcode\";\nimport { BrowserHelper } from \"./browserHelper\";\nimport { DataCaptureLoader } from \"./dataCaptureLoader\";\nimport { Logger } from \"./logger\";\nimport { ScanSettings } from \"./scanSettings\";\nimport { DataCaptureSentMessageData, DataCaptureWorker, dataCaptureWorkerBlob } from \"./workers/dataCaptureWorker\";\n\ntype EventName = \"blurryTablesUpdate\";\n\nclass BlurryRecognitionPreloaderEventEmitter extends EventEmitter {}\n\nexport class BlurryRecognitionPreloader {\n private static readonly writableDataPath: string = \"/scandit_sync_folder_preload\";\n private static readonly fsObjectStoreName: string = \"FILE_DATA\";\n // From AndroidLowEnd\n private static readonly defaultBlurryTableFiles: string[] = [\n \"/20919bc5228479679a264521447f9c87.scandit\", // codabar\n \"/855b1fdf70718074e40e97328ea23039.scandit\", // codabar\n \"/92038ea8367cfcdfebed31e0ad1c5c6d.scandit\", // codabar\n \"/1c02d3aa478da28ebf5756c342565017.scandit\", // code32, code39\n \"/ce00c525c9f8160b0cd12b09fa739fbf.scandit\", // code32, code39\n \"/e5e60e4cc82ecb0f1b7f7bfaabfe7a8c.scandit\", // code32, code39\n \"/3a63262b342a4f603b3626a98565e174.scandit\", // code93\n \"/e9bb1a0e5ec3ddd037a91497c09d8daa.scandit\", // code93\n \"/f6f53a0c00683f6b349f29ff76107662.scandit\", // code93\n \"/41db165d92b2369b4e7c841e29ced06a.scandit\", // code128\n \"/4571aa251af4c3d3bd63f47a0b54d30d.scandit\", // code128\n \"/94c3ff79d8c922c01f048c1deac9d89b.scandit\", // code128\n \"/7a1d15cb731e1a8fd146427bb7920922.scandit\", // ean13, ean8, upca, upce\n \"/b874f8f9aa42b909b68c8cb59db5b2aa.scandit\", // ean13, ean8, upca, upce\n \"/f867458021a0bd9b2bd2448958e98d9b.scandit\", // ean13, ean8, upca, upce\n \"/828281aceea050a47657fab7fc470b2c.scandit\", // itf\n \"/9e06fc65990c496de0da6c71376758b3.scandit\", // itf\n \"/ef939d962bc030919393e822be1ba6f7.scandit\", // itf\n \"/04c912268484e863833dcf31c8ad7898.scandit\", // msi-plessey\n \"/401b20aa6d4551f9d001c20581ece64e.scandit\", // msi-plessey\n \"/b8f73417d6947f4c4fc205329703804c.scandit\", // msi-plessey\n ].map((path) => {\n return `${BlurryRecognitionPreloader.writableDataPath}${path}`;\n });\n // From AndroidGeneric\n private static readonly highEndBlurryTableFiles: string[] = [\n \"/9acb7e350bb910f2a1309b31214f9a4e.scandit\", // codabar\n \"/b2dc1168d2bb679c233068f078944e41.scandit\", // codabar\n \"/4b93e8f2d0a529874f5737e04b9784c1.scandit\", // codabar\n \"/4e9821a5898a46445b8beed46626581f.scandit\", // codabar\n \"/260b8a8fdf8e5fbf2526e138c7c0bbb5.scandit\", // codabar\n \"/8c561caef1b9c4b852811f5c2374bb8e.scandit\", // codabar\n \"/f63809050de2702c9527eb1891b337e5.scandit\", // code32, code39\n \"/576639d5aa0b5f5d19bfe3864eab749a.scandit\", // code32, code39\n \"/e645b5549783972888fc1cf69163de27.scandit\", // code32, code39\n \"/9dd619e2ae39d75ecbc1cb9391b04aad.scandit\", // code32, code39\n \"/0fa0b08a89e9ce63edc91beab6206461.scandit\", // code32, code39\n \"/c0a273dbcef08a1e4a9cc387752b4c0e.scandit\", // code32, code39\n \"/00caaf030fbdfcec26df3f8d3a400f2e.scandit\", // code93\n \"/b53f643fcc542977ffe8ce30d1f8beb0.scandit\", // code93\n \"/825a85c14ca9e19e2bc211c8e82c1e53.scandit\", // code93\n \"/23b2c91f549629488800b671406ed399.scandit\", // code93\n \"/7c43295d738875ce8265ecf037fa1b12.scandit\", // code93\n \"/3f9b28270bc4a077fde6b547574d5780.scandit\", // code93\n \"/814cf529041339e4f6598e6b69b7c608.scandit\", // code128\n \"/ddc7990e91e2293216c98e6bb1ac024a.scandit\", // code128\n \"/75e3eaabf7987fdb433be1d1fe92032a.scandit\", // code128\n \"/497112cbe8674c21c4c8bd7f0e957b71.scandit\", // code128\n \"/94ae9b357c6061d489c10d7ac73e3139.scandit\", // code128\n \"/df4383c06c7a85a8e8c2a1d86b61e6bc.scandit\", // code128\n \"/5aee7e2ea252b3b05145493721caa9b1.scandit\", // ean13, ean8, upca, upce\n \"/aeb733f6d7a86c4115826b2c89df2720.scandit\", // ean13, ean8, upca, upce\n \"/c22f49a08f466b877208c4a31569bd9d.scandit\", // ean13, ean8, upca, upce\n \"/1524b7b4fa54aee57369c54b86bd65f4.scandit\", // ean13, ean8, upca, upce\n \"/cf3110c18bec369705b94e50aae077ab.scandit\", // ean13, ean8, upca, upce\n \"/bb7b0c63371cfa0787a90b19c3650587.scandit\", // ean13, ean8, upca, upce\n \"/6e4454c7a20910115e6653b1cd607e12.scandit\", // itf\n \"/492339332477a5c9efa2cb6701f754d3.scandit\", // itf\n \"/50919ffed0c9a78f19ff465bdfd4f2b8.scandit\", // itf\n \"/c0795f18a2ebfd0b6835be5ad787a040.scandit\", // itf\n \"/1e0a5fb89be9e843b96174b0c182727b.scandit\", // itf\n \"/14126c0d924e0128f6caca76ecdceb6d.scandit\", // itf\n \"/5f43256a6a2032966dd44c6a3eef53eb.scandit\", // msi-plessey\n \"/83bb18bb71dead54a013fe2cc85ad4f7.scandit\", // msi-plessey\n \"/6ee5a2338030d3282516040607182b26.scandit\", // msi-plessey\n \"/7a341c4ba35f02335fd3200ec02ff205.scandit\", // msi-plessey\n \"/6ebdbff2f3739b35ba8f68517451eb37.scandit\", // msi-plessey\n \"/a5ba033b43d4a2c80dab49eaa2d90162.scandit\", // msi-plessey\n ].map((path) => {\n return `${BlurryRecognitionPreloader.writableDataPath}${path}`;\n });\n // Roughly ordered by priority\n private static readonly availableBlurryRecognitionSymbologies: Set = new Set([\n Barcode.Symbology.EAN13, // Shared with EAN8, UPCA, UPCE\n Barcode.Symbology.EAN8, // Shared with EAN13, UPCA, UPCE\n Barcode.Symbology.CODE32, // Shared with CODE39\n Barcode.Symbology.CODE39, // Shared with CODE32\n Barcode.Symbology.CODE128,\n Barcode.Symbology.CODE93,\n Barcode.Symbology.INTERLEAVED_2_OF_5,\n Barcode.Symbology.MSI_PLESSEY,\n Barcode.Symbology.CODABAR,\n Barcode.Symbology.UPCA, // Shared with EAN8, EAN13, UPCE\n Barcode.Symbology.UPCE, // Shared with EAN8, EAN13, UPCA\n ]);\n\n private readonly eventEmitter: BlurryRecognitionPreloaderEventEmitter = new EventEmitter();\n private readonly preload: boolean;\n\n private queuedBlurryRecognitionSymbologies: Barcode.Symbology[] = Array.from(\n BlurryRecognitionPreloader.availableBlurryRecognitionSymbologies.values()\n );\n private readyBlurryRecognitionSymbologies: Set = new Set();\n private dataCaptureWorker: DataCaptureWorker;\n\n private constructor(preload: boolean) {\n this.preload = preload;\n }\n\n public static async create(preload: boolean): Promise {\n if (preload) {\n // Edge <= 18 doesn't support IndexedDB in blob Web Workers so data wouldn't be persisted,\n // hence it would be useless to preload barcode blurry recognition as data couldn't be saved.\n // Verify support for IndexedDB in blob Web Workers.\n const browserName: string | undefined = BrowserHelper.userAgentInfo.getBrowser().name;\n if (browserName != null && browserName.includes(\"Edge\")) {\n const worker: Worker = new Worker(\n URL.createObjectURL(\n new Blob([`(${BlurryRecognitionPreloader.workerIndexedDBSupportTestFunction.toString()})()`], {\n type: \"text/javascript\",\n })\n )\n );\n\n return new Promise((resolve) => {\n worker.onmessage = (message) => {\n worker.terminate();\n resolve(new BlurryRecognitionPreloader(message.data));\n };\n });\n }\n }\n\n return new BlurryRecognitionPreloader(preload);\n }\n\n // istanbul ignore next\n private static workerIndexedDBSupportTestFunction(): void {\n try {\n indexedDB.deleteDatabase(\"scandit_indexeddb_support_test\");\n // @ts-ignore\n postMessage(true);\n } catch (error) {\n // @ts-ignore\n postMessage(false);\n }\n }\n\n public async prepareBlurryTables(): Promise {\n let alreadyAvailable: boolean = true;\n if (this.preload) {\n try {\n alreadyAvailable = await this.checkBlurryTablesAlreadyAvailable();\n } catch (error) {\n // istanbul ignore next\n Logger.log(Logger.Level.ERROR, error);\n }\n }\n if (alreadyAvailable) {\n this.queuedBlurryRecognitionSymbologies = [];\n this.readyBlurryRecognitionSymbologies = new Set(\n BlurryRecognitionPreloader.availableBlurryRecognitionSymbologies\n );\n this.eventEmitter.emit(\"blurryTablesUpdate\", new Set(this.readyBlurryRecognitionSymbologies));\n } else {\n this.dataCaptureWorker = new Worker(URL.createObjectURL(dataCaptureWorkerBlob));\n this.dataCaptureWorker.onmessage = this.dataCaptureWorkerOnMessage.bind(this);\n DataCaptureLoader.load(this.dataCaptureWorker, true, true);\n }\n }\n\n public on(eventName: EventName, listener: EventEmitter.ListenerFn): void {\n // istanbul ignore else\n if (eventName === \"blurryTablesUpdate\") {\n if (\n this.readyBlurryRecognitionSymbologies.size ===\n BlurryRecognitionPreloader.availableBlurryRecognitionSymbologies.size\n ) {\n listener(this.readyBlurryRecognitionSymbologies);\n } else {\n this.eventEmitter.on(eventName, listener);\n }\n }\n }\n\n public updateBlurryRecognitionPriority(scanSettings: ScanSettings): void {\n const newQueuedBlurryRecognitionSymbologies: Barcode.Symbology[] = this.queuedBlurryRecognitionSymbologies.slice();\n this.getEnabledSymbologies(scanSettings).forEach((symbology) => {\n const symbologyQueuePosition: number = newQueuedBlurryRecognitionSymbologies.indexOf(symbology);\n if (symbologyQueuePosition !== -1) {\n newQueuedBlurryRecognitionSymbologies.unshift(\n newQueuedBlurryRecognitionSymbologies.splice(symbologyQueuePosition, 1)[0]\n );\n }\n });\n this.queuedBlurryRecognitionSymbologies = newQueuedBlurryRecognitionSymbologies;\n }\n\n public isBlurryRecognitionAvailable(scanSettings: ScanSettings): boolean {\n const enabledBlurryRecognitionSymbologies: Barcode.Symbology[] = this.getEnabledSymbologies(scanSettings);\n\n return enabledBlurryRecognitionSymbologies.every((symbology) => {\n return this.readyBlurryRecognitionSymbologies.has(symbology);\n });\n }\n\n public getEnabledSymbologies(scanSettings: ScanSettings): Barcode.Symbology[] {\n return Array.from(BlurryRecognitionPreloader.availableBlurryRecognitionSymbologies.values()).filter((symbology) => {\n return scanSettings.isSymbologyEnabled(symbology);\n });\n }\n\n private createNextBlurryTableSymbology(): void {\n let symbology: Barcode.Symbology | undefined;\n do {\n symbology = this.queuedBlurryRecognitionSymbologies.shift();\n } while (symbology != null && this.readyBlurryRecognitionSymbologies.has(symbology));\n // istanbul ignore else\n if (symbology != null) {\n this.dataCaptureWorker.postMessage({\n type: \"create-blurry-table\",\n symbology,\n });\n }\n }\n\n private checkBlurryTablesAlreadyAvailable(): Promise {\n return new Promise((resolve) => {\n const openDbRequest: IDBOpenDBRequest = indexedDB.open(BlurryRecognitionPreloader.writableDataPath);\n function handleErrorOrNew(this: IDBOpenDBRequest | IDBTransaction | IDBRequest | { error: Error }): void {\n openDbRequest?.result?.close();\n // this.error\n resolve(false);\n }\n\n openDbRequest.onupgradeneeded = () => {\n try {\n openDbRequest.result.createObjectStore(BlurryRecognitionPreloader.fsObjectStoreName);\n } catch (error) {\n // Ignored\n }\n };\n openDbRequest.onsuccess = () => {\n try {\n const transaction: IDBTransaction = openDbRequest.result.transaction(\n BlurryRecognitionPreloader.fsObjectStoreName,\n \"readonly\"\n );\n transaction.onerror = handleErrorOrNew;\n const storeKeysRequest: IDBRequest = transaction\n .objectStore(BlurryRecognitionPreloader.fsObjectStoreName)\n .getAllKeys();\n storeKeysRequest.onsuccess = () => {\n openDbRequest.result.close();\n if (\n (highEndBlurryRecognition\n ? BlurryRecognitionPreloader.highEndBlurryTableFiles\n : BlurryRecognitionPreloader.defaultBlurryTableFiles\n ).every((file) => {\n return storeKeysRequest.result.indexOf(file) !== -1;\n })\n ) {\n return resolve(true);\n } else {\n return resolve(false);\n }\n };\n storeKeysRequest.onerror = handleErrorOrNew;\n } catch (error) {\n handleErrorOrNew.call({ error });\n }\n };\n openDbRequest.onblocked = openDbRequest.onerror = handleErrorOrNew;\n });\n }\n\n private dataCaptureWorkerOnMessage(ev: MessageEvent): void {\n const data: DataCaptureSentMessageData = ev.data;\n\n // istanbul ignore else\n if (data[1] != null) {\n switch (data[0]) {\n case \"context-created\":\n this.createNextBlurryTableSymbology();\n break;\n case \"create-blurry-table-result\":\n this.readyBlurryRecognitionSymbologies.add(data[1]);\n if (\n [Barcode.Symbology.EAN8, Barcode.Symbology.EAN13, Barcode.Symbology.UPCA, Barcode.Symbology.UPCE].includes(\n data[1]\n )\n ) {\n this.readyBlurryRecognitionSymbologies.add(Barcode.Symbology.EAN13);\n this.readyBlurryRecognitionSymbologies.add(Barcode.Symbology.EAN8);\n this.readyBlurryRecognitionSymbologies.add(Barcode.Symbology.UPCA);\n this.readyBlurryRecognitionSymbologies.add(Barcode.Symbology.UPCE);\n } else if ([Barcode.Symbology.CODE32, Barcode.Symbology.CODE39].includes(data[1])) {\n this.readyBlurryRecognitionSymbologies.add(Barcode.Symbology.CODE32);\n this.readyBlurryRecognitionSymbologies.add(Barcode.Symbology.CODE39);\n }\n this.eventEmitter.emit(\"blurryTablesUpdate\", new Set(this.readyBlurryRecognitionSymbologies));\n if (\n this.readyBlurryRecognitionSymbologies.size ===\n BlurryRecognitionPreloader.availableBlurryRecognitionSymbologies.size\n ) {\n // Avoid data not being persisted if IndexedDB operations in WebWorker are slow\n setTimeout(() => {\n this.dataCaptureWorker.terminate();\n }, 250);\n } else {\n this.createNextBlurryTableSymbology();\n }\n break;\n // istanbul ignore next\n default:\n break;\n }\n }\n }\n}\n","import _Reflect$construct from \"@babel/runtime-corejs2/core-js/reflect/construct\";\nexport default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false;\n if (_Reflect$construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import _Reflect$construct from \"@babel/runtime-corejs2/core-js/reflect/construct\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = _Reflect$construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import _Map from \"@babel/runtime-corejs2/core-js/map\";\nimport _Object$create from \"@babel/runtime-corejs2/core-js/object/create\";\nimport getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof _Map === \"function\" ? new _Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = _Object$create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * @hidden\n */\nexport class CustomError extends Error {\n // istanbul ignore next\n constructor({\n name = \"\",\n message = \"\",\n }: {\n name?: string;\n message?: string;\n } = {}) {\n super(message);\n Object.setPrototypeOf(this, CustomError.prototype);\n this.name = name;\n }\n}\n","/**\n * A camera for video input available to be used on the device.\n */\nexport interface Camera {\n /**\n * The unique identifier for the device, can change between page loads.\n */\n readonly deviceId: string;\n /**\n * The label describing the device.\n */\n readonly label: string;\n /**\n * The type (facing mode/direction) of camera: back (environment) or front (user).\n *\n * Not guaranteed to be correct: depending on device, browser and camera it could not correspond to the camera's real\n * type.\n */\n readonly cameraType: Camera.Type;\n /**\n * The current video resolution if and when the camera is in use, given as width and height in pixels.\n */\n currentResolution?: { width: number; height: number };\n}\n\nexport namespace Camera {\n /**\n * Camera type (facing mode/direction).\n *\n * Not guaranteed to be correct: depending on device, browser and camera it could not correspond to the camera's real\n * type.\n */\n export enum Type {\n /**\n * Front (user) facing camera.\n */\n FRONT = \"front\",\n /**\n * Back (environment) facing camera.\n */\n BACK = \"back\",\n }\n}\n","import { BrowserCompatibility } from \"./browserCompatibility\";\nimport { CustomError } from \"./customError\";\n\nexport class UnsupportedBrowserError extends CustomError {\n public readonly data?: BrowserCompatibility;\n\n // istanbul ignore next\n constructor(browserCompatibility: BrowserCompatibility) {\n super({\n name: \"UnsupportedBrowserError\",\n message: `This OS / browser has one or more missing features preventing it from working correctly (${browserCompatibility.missingFeatures.join(\n \", \"\n )})`,\n });\n this.data = browserCompatibility;\n }\n}\n","/*! howler.js v2.2.3 | (c) 2013-2020, James Simpson of GoldFire Studios | MIT License | howlerjs.com */\n!function(){\"use strict\";var e=function(){this.init()};e.prototype={init:function(){var e=this||n;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent=\"canplaythrough\",e._navigator=\"undefined\"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var o=this||n;if(e=parseFloat(e),o.ctx||_(),void 0!==e&&e>=0&&e<=1){if(o._volume=e,o._muted)return o;o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e,n.ctx.currentTime);for(var t=0;t=0;o--)e._howls[o].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,_()),e},codecs:function(e){return(this||n)._codecs[e.replace(/^x-/,\"\")]},_setup:function(){var e=this||n;if(e.state=e.ctx?e.ctx.state||\"suspended\":\"suspended\",e._autoSuspend(),!e.usingWebAudio)if(\"undefined\"!=typeof Audio)try{var o=new Audio;void 0===o.oncanplaythrough&&(e._canPlayEvent=\"canplay\")}catch(n){e.noAudio=!0}else e.noAudio=!0;try{var o=new Audio;o.muted&&(e.noAudio=!0)}catch(e){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||n,o=null;try{o=\"undefined\"!=typeof Audio?new Audio:null}catch(n){return e}if(!o||\"function\"!=typeof o.canPlayType)return e;var t=o.canPlayType(\"audio/mpeg;\").replace(/^no$/,\"\"),r=e._navigator?e._navigator.userAgent:\"\",a=r.match(/OPR\\/([0-6].)/g),u=a&&parseInt(a[0].split(\"/\")[1],10)<33,d=-1!==r.indexOf(\"Safari\")&&-1===r.indexOf(\"Chrome\"),i=r.match(/Version\\/(.*?) /),_=d&&i&&parseInt(i[1],10)<15;return e._codecs={mp3:!(u||!t&&!o.canPlayType(\"audio/mp3;\").replace(/^no$/,\"\")),mpeg:!!t,opus:!!o.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/,\"\"),ogg:!!o.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/,\"\"),oga:!!o.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/,\"\"),wav:!!(o.canPlayType('audio/wav; codecs=\"1\"')||o.canPlayType(\"audio/wav\")).replace(/^no$/,\"\"),aac:!!o.canPlayType(\"audio/aac;\").replace(/^no$/,\"\"),caf:!!o.canPlayType(\"audio/x-caf;\").replace(/^no$/,\"\"),m4a:!!(o.canPlayType(\"audio/x-m4a;\")||o.canPlayType(\"audio/m4a;\")||o.canPlayType(\"audio/aac;\")).replace(/^no$/,\"\"),m4b:!!(o.canPlayType(\"audio/x-m4b;\")||o.canPlayType(\"audio/m4b;\")||o.canPlayType(\"audio/aac;\")).replace(/^no$/,\"\"),mp4:!!(o.canPlayType(\"audio/x-mp4;\")||o.canPlayType(\"audio/mp4;\")||o.canPlayType(\"audio/aac;\")).replace(/^no$/,\"\"),weba:!(_||!o.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/,\"\")),webm:!(_||!o.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/,\"\")),dolby:!!o.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/,\"\"),flac:!!(o.canPlayType(\"audio/x-flac;\")||o.canPlayType(\"audio/flac;\")).replace(/^no$/,\"\")},e},_unlockAudio:function(){var e=this||n;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var o=function(n){for(;e._html5AudioPool.length0?d._seek:t._sprite[e][0]/1e3),s=Math.max(0,(t._sprite[e][0]+t._sprite[e][1])/1e3-_),l=1e3*s/Math.abs(d._rate),c=t._sprite[e][0]/1e3,f=(t._sprite[e][0]+t._sprite[e][1])/1e3;d._sprite=e,d._ended=!1;var p=function(){d._paused=!1,d._seek=_,d._start=c,d._stop=f,d._loop=!(!d._loop&&!t._sprite[e][2])};if(_>=f)return void t._ended(d);var m=d._node;if(t._webAudio){var v=function(){t._playLock=!1,p(),t._refreshBuffer(d);var e=d._muted||t._muted?0:d._volume;m.gain.setValueAtTime(e,n.ctx.currentTime),d._playStart=n.ctx.currentTime,void 0===m.bufferSource.start?d._loop?m.bufferSource.noteGrainOn(0,_,86400):m.bufferSource.noteGrainOn(0,_,s):d._loop?m.bufferSource.start(0,_,86400):m.bufferSource.start(0,_,s),l!==1/0&&(t._endTimers[d._id]=setTimeout(t._ended.bind(t,d),l)),o||setTimeout(function(){t._emit(\"play\",d._id),t._loadQueue()},0)};\"running\"===n.state&&\"interrupted\"!==n.ctx.state?v():(t._playLock=!0,t.once(\"resume\",v),t._clearTimer(d._id))}else{var h=function(){m.currentTime=_,m.muted=d._muted||t._muted||n._muted||m.muted,m.volume=d._volume*n.volume(),m.playbackRate=d._rate;try{var r=m.play();if(r&&\"undefined\"!=typeof Promise&&(r instanceof Promise||\"function\"==typeof r.then)?(t._playLock=!0,p(),r.then(function(){t._playLock=!1,m._unlocked=!0,o?t._loadQueue():t._emit(\"play\",d._id)}).catch(function(){t._playLock=!1,t._emit(\"playerror\",d._id,\"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.\"),d._ended=!0,d._paused=!0})):o||(t._playLock=!1,p(),t._emit(\"play\",d._id)),m.playbackRate=d._rate,m.paused)return void t._emit(\"playerror\",d._id,\"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.\");\"__default\"!==e||d._loop?t._endTimers[d._id]=setTimeout(t._ended.bind(t,d),l):(t._endTimers[d._id]=function(){t._ended(d),m.removeEventListener(\"ended\",t._endTimers[d._id],!1)},m.addEventListener(\"ended\",t._endTimers[d._id],!1))}catch(e){t._emit(\"playerror\",d._id,e)}};\"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA\"===m.src&&(m.src=t._src,m.load());var y=window&&window.ejecta||!m.readyState&&n._navigator.isCocoonJS;if(m.readyState>=3||y)h();else{t._playLock=!0,t._state=\"loading\";var g=function(){t._state=\"loaded\",h(),m.removeEventListener(n._canPlayEvent,g,!1)};m.addEventListener(n._canPlayEvent,g,!1),t._clearTimer(d._id)}}return d._id},pause:function(e){var n=this;if(\"loaded\"!==n._state||n._playLock)return n._queue.push({event:\"pause\",action:function(){n.pause(e)}}),n;for(var o=n._getSoundIds(e),t=0;t=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else r.length>=2&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var a;if(!(void 0!==e&&e>=0&&e<=1))return a=o?t._soundById(o):t._sounds[0],a?a._volume:0;if(\"loaded\"!==t._state||t._playLock)return t._queue.push({event:\"volume\",action:function(){t.volume.apply(t,r)}}),t;void 0===o&&(t._volume=e),o=t._getSoundIds(o);for(var u=0;u0?t/_:t),l=Date.now();e._fadeTo=o,e._interval=setInterval(function(){var r=(Date.now()-l)/t;l=Date.now(),d+=i*r,d=Math.round(100*d)/100,d=i<0?Math.max(o,d):Math.min(o,d),u._webAudio?e._volume=d:u.volume(d,e._id,!0),a&&(u._volume=d),(on&&d>=o)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,u.volume(o,e._id),u._emit(\"fade\",e._id))},s)},_stopFade:function(e){var o=this,t=o._soundById(e);return t&&t._interval&&(o._webAudio&&t._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(t._interval),t._interval=null,o.volume(t._fadeTo,e),t._fadeTo=null,o._emit(\"fade\",e)),o},loop:function(){var e,n,o,t=this,r=arguments;if(0===r.length)return t._loop;if(1===r.length){if(\"boolean\"!=typeof r[0])return!!(o=t._soundById(parseInt(r[0],10)))&&o._loop;e=r[0],t._loop=e}else 2===r.length&&(e=r[0],n=parseInt(r[1],10));for(var a=t._getSoundIds(n),u=0;u=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var d;if(\"number\"!=typeof e)return d=t._soundById(o),d?d._rate:t._rate;if(\"loaded\"!==t._state||t._playLock)return t._queue.push({event:\"rate\",action:function(){t.rate.apply(t,r)}}),t;void 0===o&&(t._rate=e),o=t._getSoundIds(o);for(var i=0;i=0?o=parseInt(r[0],10):t._sounds.length&&(o=t._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));if(void 0===o)return 0;if(\"number\"==typeof e&&(\"loaded\"!==t._state||t._playLock))return t._queue.push({event:\"seek\",action:function(){t.seek.apply(t,r)}}),t;var d=t._soundById(o);if(d){if(!(\"number\"==typeof e&&e>=0)){if(t._webAudio){var i=t.playing(o)?n.ctx.currentTime-d._playStart:0,_=d._rateSeek?d._rateSeek-d._seek:0;return d._seek+(_+i*Math.abs(d._rate))}return d._node.currentTime}var s=t.playing(o);s&&t.pause(o,!0),d._seek=e,d._ended=!1,t._clearTimer(o),t._webAudio||!d._node||isNaN(d._node.duration)||(d._node.currentTime=e);var l=function(){s&&t.play(o,!0),t._emit(\"seek\",o)};if(s&&!t._webAudio){var c=function(){t._playLock?setTimeout(c,0):l()};setTimeout(c,0)}else l()}return t},playing:function(e){var n=this;if(\"number\"==typeof e){var o=n._soundById(e);return!!o&&!o._paused}for(var t=0;t=0&&n._howls.splice(a,1);var u=!0;for(t=0;t=0){u=!1;break}return r&&u&&delete r[e._src],n.noAudio=!1,e._state=\"unloaded\",e._sounds=[],e=null,null},on:function(e,n,o,t){var r=this,a=r[\"_on\"+e];return\"function\"==typeof n&&a.push(t?{id:o,fn:n,once:t}:{id:o,fn:n}),r},off:function(e,n,o){var t=this,r=t[\"_on\"+e],a=0;if(\"number\"==typeof n&&(o=n,n=null),n||o)for(a=0;a=0;a--)r[a].id&&r[a].id!==n&&\"load\"!==e||(setTimeout(function(e){e.call(this,n,o)}.bind(t,r[a].fn),0),r[a].once&&t.off(e,r[a].fn,r[a].id));return t._loadQueue(e),t},_loadQueue:function(e){var n=this;if(n._queue.length>0){var o=n._queue[0];o.event===e&&(n._queue.shift(),n._loadQueue()),e||o.action()}return n},_ended:function(e){var o=this,t=e._sprite;if(!o._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;t--){if(o<=n)return;e._sounds[t]._ended&&(e._webAudio&&e._sounds[t]._node&&e._sounds[t]._node.disconnect(0),e._sounds.splice(t,1),o--)}}},_getSoundIds:function(e){var n=this;if(void 0===e){for(var o=[],t=0;t=0;if(n._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=n._scratchBuffer}catch(e){}return e.bufferSource=null,o},_clearSound:function(e){/MSIE |Trident\\//.test(n._navigator&&n._navigator.userAgent)||(e.src=\"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA\")}};var t=function(e){this._parent=e,this.init()};t.prototype={init:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite=\"__default\",e._id=++n._counter,o._sounds.push(e),e.create(),e},create:function(){var e=this,o=e._parent,t=n._muted||e._muted||e._parent._muted?0:e._volume;return o._webAudio?(e._node=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),e._node.gain.setValueAtTime(t,n.ctx.currentTime),e._node.paused=!0,e._node.connect(n.masterGain)):n.noAudio||(e._node=n._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener(\"error\",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(n._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener(\"ended\",e._endFn,!1),e._node.src=o._src,e._node.preload=!0===o._preload?\"auto\":o._preload,e._node.volume=t*n.volume(),e._node.load()),e},reset:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite=\"__default\",e._id=++n._counter,e},_errorListener:function(){var e=this;e._parent._emit(\"loaderror\",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener(\"error\",e._errorFn,!1)},_loadListener:function(){var e=this,o=e._parent;o._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(o._sprite).length&&(o._sprite={__default:[0,1e3*o._duration]}),\"loaded\"!==o._state&&(o._state=\"loaded\",o._emit(\"load\"),o._loadQueue()),e._node.removeEventListener(n._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,n=e._parent;n._duration===1/0&&(n._duration=Math.ceil(10*e._node.duration)/10,n._sprite.__default[1]===1/0&&(n._sprite.__default[1]=1e3*n._duration),n._ended(e)),e._node.removeEventListener(\"ended\",e._endFn,!1)}};var r={},a=function(e){var n=e._src;if(r[n])return e._duration=r[n].duration,void i(e);if(/^data:[^;]+;base64,/.test(n)){for(var o=atob(n.split(\",\")[1]),t=new Uint8Array(o.length),a=0;a0?(r[o._src]=e,i(o,e)):t()};\"undefined\"!=typeof Promise&&1===n.ctx.decodeAudioData.length?n.ctx.decodeAudioData(e).then(a).catch(t):n.ctx.decodeAudioData(e,a,t)},i=function(e,n){n&&!e._duration&&(e._duration=n.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),\"loaded\"!==e._state&&(e._state=\"loaded\",e._emit(\"load\"),e._loadQueue())},_=function(){if(n.usingWebAudio){try{\"undefined\"!=typeof AudioContext?n.ctx=new AudioContext:\"undefined\"!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch(e){n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),o=n._navigator&&n._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/),t=o?parseInt(o[1],10):null;if(e&&t&&t<9){var r=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!r&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};\"function\"==typeof define&&define.amd&&define([],function(){return{Howler:n,Howl:o}}),\"undefined\"!=typeof exports&&(exports.Howler=n,exports.Howl=o),\"undefined\"!=typeof global?(global.HowlerGlobal=e,global.Howler=n,global.Howl=o,global.Sound=t):\"undefined\"!=typeof window&&(window.HowlerGlobal=e,window.Howler=n,window.Howl=o,window.Sound=t)}();","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","require('../../modules/es6.array.is-array');\nmodule.exports = require('../../modules/_core').Array.isArray;\n","module.exports = require(\"core-js/library/fn/array/is-array\");","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import _Array$isArray from \"@babel/runtime-corejs2/core-js/array/is-array\";\nimport arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (_Array$isArray(arr)) return arrayLikeToArray(arr);\n}","import _Symbol from \"@babel/runtime-corejs2/core-js/symbol\";\nimport _Symbol$iterator from \"@babel/runtime-corejs2/core-js/symbol/iterator\";\nimport _Array$from from \"@babel/runtime-corejs2/core-js/array/from\";\nexport default function _iterableToArray(iter) {\n if (typeof _Symbol !== \"undefined\" && iter[_Symbol$iterator] != null || iter[\"@@iterator\"] != null) return _Array$from(iter);\n}","import _Array$from from \"@babel/runtime-corejs2/core-js/array/from\";\nimport 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 _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var core = require('../../modules/_core');\nvar $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });\nmodule.exports = function stringify(it) { // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};\n","/**\n * A configuration object to define the properties of an image to be scanned.\n */\nexport interface ImageSettings {\n /**\n * The width of the image (columns of pixels).\n */\n readonly width: number;\n /**\n * The height of the image (rows of pixels).\n */\n readonly height: number;\n /**\n * The format of the pixel data, meaning the mapping of array bytes to image pixels.\n */\n readonly format: ImageSettings.Format;\n}\n\nexport namespace ImageSettings {\n // Warning: the values of Format are important as the data capture web worker relies on them without type checking.\n /**\n * Image bytes format/layout.\n */\n export enum Format {\n /**\n * Single-channel 8-bit gray scale image.\n */\n GRAY_8U = 0,\n /**\n * RGB image with 8 bits per color channel.\n */\n RGB_8U = 1,\n /**\n * RGBA image with 8 bits per color channel.\n */\n RGBA_8U = 2,\n }\n}\n","import { ParserResult } from \"./parserResult\";\nimport { Scanner } from \"./scanner\";\n\n// Deprecated but useful function for easy UTF-8 handling\n/**\n * @hidden\n */\ndeclare function escape(s: string): string;\n\n/**\n * A data string parser.\n *\n * Parsers are capable of parsing one particular data format, which is passed to them during construction.\n *\n * The parser is created through [[BarcodePicker.createParserForFormat]] or [[Scanner.createParserForFormat]].\n *\n * Note that you need to have a valid license key with the parsing feature enabled to use the parser functionalities.\n *\n * For documentation on the available formats, check the official parser library documentation here:\n * https://docs.scandit.com/parser/formats.html.\n */\nexport class Parser {\n private options?: object;\n\n /**\n * @hidden\n *\n * @param scanner The [[Scanner]] object used to interact with the external Scandit library.\n * @param dataFormat The data format for this parser.\n */\n constructor(private readonly scanner: Scanner, private readonly dataFormat: Parser.DataFormat) {}\n\n /**\n * Apply the option map to the parser, allowing the user to fine-tune the behaviour of the parser.\n * Available options depend on the data format and are specified in the respective documentation.\n *\n * @param options The new options to be applied (replacing previous ones, if any).\n */\n public setOptions(options?: object): void {\n this.options = options;\n }\n\n /**\n * Process the given raw (byte array) data with the parser, retrieving the result as a [[ParserResult]] object.\n *\n * Multiple requests done without waiting for previous results will be queued and handled in order.\n *\n * If parsing of the data fails the returned promise is rejected with a `ScanditEngineError` error.\n *\n * @param rawData The raw (byte array) data to be parsed.\n * @returns A promise resolving to the [[ParserResult]] object.\n */\n public parseRawData(rawData: Uint8Array): Promise {\n return this.scanner.parse(this.dataFormat, rawData, this.options);\n }\n\n /**\n * Process the given string data with the parser, retrieving the result as a [[ParserResult]] object.\n *\n * Multiple requests done without waiting for previous results will be queued and handled in order.\n *\n * If parsing of the data fails the returned promise is rejected with a `ScanditEngineError` error.\n *\n * Note that you should use [[parseRawData]] whenever possible: some codes, such as those found on driving licenses,\n * might have non-printable characters and will need to use [[Barcode.rawData]] information to be parsed correctly.\n *\n * @param data The string data to be parsed.\n * @returns A promise resolving to the [[ParserResult]] object.\n */\n public parseString(data: string): Promise {\n return this.scanner.parse(this.dataFormat, data, this.options);\n }\n}\n\n// istanbul ignore next\nexport namespace Parser {\n /**\n * Data format of a string to be parsed into a set of key-value mappings by the Scandit Parser Library.\n *\n * See https://docs.scandit.com/parser/formats.html for more details.\n */\n export enum DataFormat {\n /**\n * GS1 Application Identifier (AI).\n *\n * See: http://www.gs1.org/docs/barcodes/GS1_General_Specifications.pdf.\n */\n GS1_AI = 1,\n /**\n * Health Industry Bar Code (HIBC).\n *\n * See: http://www.hibcc.org.\n */\n HIBC = 2,\n /**\n * AAMVA Driver License/Identification (DL/ID).\n *\n * See: http://www.aamva.org.\n */\n DLID = 3,\n /**\n * ICAO Machine Readable Travel Document (MRTD).\n *\n * See: https://www.icao.int.\n */\n MRTD = 4,\n /**\n * Swiss QR ISO 20022.\n *\n * See: https://www.paymentstandards.ch.\n */\n SWISSQR = 5,\n /**\n * Vehicle Identification Number (VIN).\n *\n * See: https://www.iso.org/standard/52200.html.\n */\n VIN = 6,\n /**\n * US Uniformed Services ID.\n *\n * See: https://www.cac.mil.\n */\n US_USID = 7,\n }\n}\n","module.exports = require(\"core-js/library/fn/json/stringify\");","import { Quadrilateral } from \"./quadrilateral\";\n\n/**\n * A text result.\n */\nexport interface RecognizedText {\n /**\n * The location of the text.\n */\n readonly location: Quadrilateral;\n /**\n * The value of the text.\n */\n readonly value: string;\n}\n\n/**\n * @hidden\n */\nexport type RecognizedTextWASMResult = {\n readonly location: number[][];\n readonly value: string;\n};\n\nexport namespace RecognizedText {\n /**\n * @hidden\n *\n * Create a [[RecognizedText]] object from a partial object returned by the external Scandit Data Capture library.\n *\n * @param result The text result coming from the external Scandit Data Capture library.\n * @returns The generated [[RecognizedText]] object.\n */\n export function createFromWASMResult(result: RecognizedTextWASMResult): RecognizedText {\n return {\n location: {\n topLeft: { x: result.location[0][0], y: result.location[0][1] },\n topRight: { x: result.location[1][0], y: result.location[1][1] },\n bottomRight: { x: result.location[2][0], y: result.location[2][1] },\n bottomLeft: { x: result.location[3][0], y: result.location[3][1] },\n },\n value: result.value,\n };\n }\n}\n","import { Barcode, BarcodeWASMResult } from \"./barcode\";\nimport { ImageSettings } from \"./imageSettings\";\nimport { RecognizedText, RecognizedTextWASMResult } from \"./recognizedText\";\n\n/**\n * A result of a scanning operation on an image.\n */\nexport class ScanResult {\n /**\n * The list of barcodes found in the image (can be empty).\n */\n public readonly barcodes: Barcode[];\n /**\n * The list of texts found in the image (can be empty).\n */\n public readonly texts: RecognizedText[];\n /**\n * The image data given as a byte array, formatted accordingly to the set settings ([[imageSettings]]).\n */\n public readonly imageData: Uint8Array;\n\n /**\n * The configuration object defining the properties of the processed image ([[imageData]]).\n */\n public readonly imageSettings: ImageSettings;\n\n /**\n * @hidden\n *\n * The list of manually rejected barcodes.\n */\n public readonly rejectedCodes: Set;\n\n /**\n * @hidden\n *\n * The list of manually rejected texts.\n */\n public readonly rejectedTexts: Set;\n\n /**\n * @hidden\n *\n * Create a ScanResult instance.\n *\n * @param barcodes The list of barcodes found in the image.\n * @param texts The list of texts found in the image.\n * @param imageData The image data given as a byte array, formatted accordingly to the set settings.\n * @param imageSettings The configuration object defining the properties of the processed image.\n */\n constructor(\n barcodes: BarcodeWASMResult[],\n texts: RecognizedTextWASMResult[],\n imageData: Uint8Array,\n imageSettings: ImageSettings\n ) {\n this.barcodes = [];\n barcodes.forEach((barcode) => {\n this.barcodes.push(Barcode.createFromWASMResult(barcode));\n });\n this.texts = [];\n texts.forEach((text) => {\n this.texts.push(RecognizedText.createFromWASMResult(text));\n });\n this.imageData = imageData;\n this.imageSettings = imageSettings;\n this.rejectedCodes = new Set();\n this.rejectedTexts = new Set();\n }\n\n /**\n * Prevent playing a sound, vibrating or flashing the GUI for a particular code.\n * If all codes and texts in the result are rejected (or no barcode/text is present), sound, vibration and GUI\n * flashing will be suppressed.\n *\n * Rejected codes will still be part of the [[ScanResult.barcodes]] property like all other codes.\n *\n * @param barcode The barcode to be rejected.\n */\n public rejectCode(barcode: Barcode): void {\n this.rejectedCodes.add(barcode);\n }\n\n /**\n * Prevent playing a sound, vibrating or flashing the GUI for a particular text.\n * If all codes and texts in the result are rejected (or no barcode/text is present), sound, vibration and GUI\n * flashing will be suppressed.\n *\n * Rejected texts will still be part of the [[ScanResult.texts]] property like all other texts.\n *\n * @param text The text to be rejected.\n */\n public rejectText(text: RecognizedText): void {\n this.rejectedTexts.add(text);\n }\n}\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","require('../../modules/es7.object.values');\nmodule.exports = require('../../modules/_core').Object.values;\n","module.exports = require(\"core-js/library/fn/object/values\");","import { Barcode } from \"./barcode\";\n\n/**\n * A symbology-specific configuration object.\n *\n * See https://docs.scandit.com/stable/c_api/symbologies.html for more details.\n *\n * Note that modified [[ScanSettings]] (due to [[SymbologySettings]] changes) need to be applied to a scanner via\n * [[BarcodePicker.applyScanSettings]] or [[Scanner.applyScanSettings]] to take effect.\n */\nexport class SymbologySettings {\n private readonly symbology: Barcode.Symbology;\n private enabled: boolean;\n private colorInvertedEnabled: boolean;\n private activeSymbolCounts: number[];\n private extensions: Set;\n private checksums: Set;\n\n /**\n * @hidden\n *\n * Create a SymbologySettings instance.\n *\n * @param symbology The symbology for which to create the settings.\n * @param enabled
Default = false
\n * Whether the symbology is enabled for recognition.\n */\n constructor(symbology: Barcode.Symbology, enabled: boolean = false) {\n this.symbology = symbology;\n this.enabled = enabled;\n this.colorInvertedEnabled = false;\n this.activeSymbolCounts = SymbologySettings.defaultActiveSymbolCounts[symbology] ?? [];\n this.extensions = new Set(SymbologySettings.defaultExtensions[symbology] ?? []);\n this.checksums = new Set(SymbologySettings.defaultChecksums[symbology] ?? []);\n }\n\n /**\n * @returns Whether the symbology enabled for recognition.\n */\n public isEnabled(): boolean {\n return this.enabled;\n }\n\n /**\n * Enable or disable recognition of the symbology.\n *\n * @param enabled Whether the symbology is enabled for recognition.\n * @returns The updated [[SymbologySettings]] object.\n */\n public setEnabled(enabled: boolean): SymbologySettings {\n this.enabled = enabled;\n\n return this;\n }\n\n /**\n * @returns Whether color inverted recognition is enabled.\n */\n public isColorInvertedEnabled(): boolean {\n return this.colorInvertedEnabled;\n }\n\n /**\n * Enable or disable recognition of inverted-color symbology (in addition to normal colors).\n *\n * @param enabled Whether color inverted recognition is enabled.\n * @returns The updated [[SymbologySettings]] object.\n */\n public setColorInvertedEnabled(enabled: boolean): SymbologySettings {\n this.colorInvertedEnabled = enabled;\n\n return this;\n }\n\n /**\n * Get the current list of active symbol counts.\n *\n * @returns The list of active symbol counts.\n */\n public getActiveSymbolCounts(): number[] {\n return this.activeSymbolCounts;\n }\n\n /**\n * Set the list of active symbol counts.\n *\n * If an empty or invalid symbol count range is given, the range will be set to its default value.\n *\n * @param activeSymbolCounts The list of active symbol counts.\n * @returns The updated [[SymbologySettings]] object.\n */\n public setActiveSymbolCounts(activeSymbolCounts: number[]): SymbologySettings {\n this.activeSymbolCounts = activeSymbolCounts;\n if (this.activeSymbolCounts.length === 0) {\n this.activeSymbolCounts = SymbologySettings.defaultActiveSymbolCounts[this.symbology] ?? [];\n }\n\n return this;\n }\n\n /**\n * Set the (inclusive) range of active symbol counts.\n *\n * If an empty or invalid symbol count range is given, the range will be set to its default value.\n *\n * @param minCount The minimum accepted number of symbols.\n * @param maxCount The maximum accepted number of symbols.\n * @returns The updated [[SymbologySettings]] object.\n */\n public setActiveSymbolCountsRange(minCount: number, maxCount: number): SymbologySettings {\n this.activeSymbolCounts = SymbologySettings.getNumberRange(minCount, maxCount);\n if (this.activeSymbolCounts.length === 0) {\n this.activeSymbolCounts = SymbologySettings.defaultActiveSymbolCounts[this.symbology] ?? [];\n }\n\n return this;\n }\n\n /**\n * Get the current set of enabled optional extensions.\n *\n * Note that the external Scandit Data Capture library will also use any applicable mandatory extension for the\n * symbology.\n *\n * @returns The set of enabled extensions.\n */\n public getEnabledExtensions(): Set {\n return this.extensions;\n }\n\n /**\n * Enable an optional extension or list/set of optional extensions\n *\n * @param extension The single extension or list/set of extensions to enable.\n * @returns The updated [[SymbologySettings]] object.\n */\n public enableExtensions(\n extension: SymbologySettings.Extension | SymbologySettings.Extension[] | Set\n ): SymbologySettings {\n if (typeof extension === \"object\") {\n this.extensions = new Set([\n ...this.extensions,\n ...Array.from(extension).filter((e) => {\n return this.isValidExtension(e);\n }),\n ]);\n } else if (this.isValidExtension(extension)) {\n this.extensions.add(extension);\n }\n\n return this;\n }\n\n /**\n * Disable an optional extension or list/set of optional extensions.\n *\n * @param extension The single extension or list/set of extensions to disable.\n * @returns The updated [[SymbologySettings]] object.\n */\n public disableExtensions(\n extension: SymbologySettings.Extension | SymbologySettings.Extension[] | Set\n ): SymbologySettings {\n if (typeof extension === \"object\") {\n this.extensions = new Set(\n [...this.extensions].filter((x) => {\n return extension instanceof Array ? !extension.includes(x) : !extension.has(x);\n })\n );\n } else if (this.isValidExtension(extension)) {\n this.extensions.delete(extension);\n }\n\n return this;\n }\n\n /**\n * Get the current set of enabled optional checksums.\n *\n * Note that the external Scandit Data Capture library will also use any applicable mandatory checksum for the\n * symbology.\n *\n * @returns The set of enabled checksums.\n */\n public getEnabledChecksums(): Set {\n return this.checksums;\n }\n\n /**\n * Enable an optional checksum or list/set of optional checksums.\n *\n * @param checksum The single checksum or list/set of checksums to enable.\n * @returns The updated [[SymbologySettings]] object.\n */\n public enableChecksums(\n checksum: SymbologySettings.Checksum | SymbologySettings.Checksum[] | Set\n ): SymbologySettings {\n if (typeof checksum === \"object\") {\n this.checksums = new Set([\n ...this.checksums,\n ...Array.from(checksum).filter((c) => {\n return this.isValidChecksum(c);\n }),\n ]);\n } else if (this.isValidChecksum(checksum)) {\n this.checksums.add(checksum);\n }\n\n return this;\n }\n\n /**\n * Disable an optional checksum or list/set of optional checksums.\n *\n * @param checksum The single checksum or list/set of checksums to disable.\n * @returns The updated [[SymbologySettings]] object.\n */\n public disableChecksums(\n checksum: SymbologySettings.Checksum | SymbologySettings.Checksum[] | Set\n ): SymbologySettings {\n if (typeof checksum === \"object\") {\n this.checksums = new Set(\n [...this.checksums].filter((x) => {\n return checksum instanceof Array ? !checksum.includes(x) : !checksum.has(x);\n })\n );\n } else if (this.isValidChecksum(checksum)) {\n this.checksums.delete(checksum);\n }\n\n return this;\n }\n\n protected toJSON(): object {\n return {\n enabled: this.enabled,\n colorInvertedEnabled: this.colorInvertedEnabled,\n activeSymbolCounts: this.activeSymbolCounts.length === 0 ? undefined : this.activeSymbolCounts,\n extensions: Array.from(this.extensions),\n checksums: Array.from(this.checksums),\n };\n }\n\n private isValidExtension(extension: string | SymbologySettings.Extension): boolean {\n return (\n extension in SymbologySettings.Extension ||\n (Object.values(SymbologySettings.Extension)).includes(extension.toLowerCase())\n );\n }\n\n private isValidChecksum(checksum: string | SymbologySettings.Checksum): boolean {\n return (\n checksum in SymbologySettings.Checksum ||\n (Object.values(SymbologySettings.Checksum)).includes(checksum.toLowerCase())\n );\n }\n}\n\n// istanbul ignore next\nexport namespace SymbologySettings {\n /**\n * @hidden\n *\n * Get a range of numbers.\n *\n * @param from The range start (inclusive).\n * @param to The range end (inclusive).\n * @returns The range of numbers.\n */\n export function getNumberRange(from: number, to: number): number[] {\n return Array.from({ length: to - from + 1 }, (_, k) => {\n return k + from;\n });\n }\n\n /**\n * Symbology extensions for particular functionalities, only applicable to specific barcodes.\n * See: https://docs.scandit.com/stable/c_api/symbologies.html.\n */\n export enum Extension {\n /**\n * Improve scan performance when reading direct part marked (DPM) Data Matrix codes.\n * Enabling this extension comes at the cost of increased frame processing times.\n */\n DIRECT_PART_MARKING_MODE = \"direct_part_marking_mode\",\n /**\n * Interpret the Code 39 / Code 93 code data using two symbols per output character to encode all ASCII characters.\n */\n FULL_ASCII = \"full_ascii\",\n /**\n * Enable scanning codes that have quiet zones (white area before and after the code) significantly smaller\n * than what's allowed by the symbology specification.\n */\n RELAXED_SHARP_QUIET_ZONE_CHECK = \"relaxed_sharp_quiet_zone_check\",\n /**\n * Remove the leading zero digit from the result.\n */\n REMOVE_LEADING_ZERO = \"remove_leading_zero\",\n /**\n * Remove the leading zero digit from the result if the UPC-A representation extension \"RETURN_AS_UPCA\" is enabled.\n */\n REMOVE_LEADING_UPCA_ZERO = \"remove_leading_upca_zero\",\n /**\n * Transform the UPC-E result into its UPC-A representation.\n */\n RETURN_AS_UPCA = \"return_as_upca\",\n /**\n * Enforce strict standard adherence to eliminate false positives in blurry, irregular or damaged barcodes at the\n * cost of reduced scan performance.\n */\n STRICT = \"strict\",\n /**\n * Remove the leading FNC1 character that indicates a GS1 code.\n */\n STRIP_LEADING_FNC1 = \"strip_leading_fnc1\",\n /**\n * @hidden\n */\n DEBUG_CONTROL_CHARACTERS = \"debug_control_characters\",\n /**\n * @hidden\n */\n GUESS_ENCODING = \"guess_encoding\",\n /**\n * @hidden\n */\n MIRRORED = \"mirrored\",\n /**\n * @hidden\n */\n NO_BLURRY_DECODING = \"no_blurry_decoding\",\n /**\n * @hidden\n */\n USE_UTF8_AS_DEFAULT_ENCODING = \"use_utf8_as_default_encoding\",\n }\n\n /**\n * Checksum algorithms, only applicable to specific barcodes.\n * See: https://docs.scandit.com/stable/c_api/symbologies.html.\n */\n export enum Checksum {\n /**\n * Modulo 10 checksum.\n */\n MOD_10 = \"mod10\",\n /**\n * Modulo 11 checksum.\n */\n MOD_11 = \"mod11\",\n /**\n * Modulo 16 checksum.\n */\n MOD_16 = \"mod16\",\n /**\n * Modulo 43 checksum.\n */\n MOD_43 = \"mod43\",\n /**\n * Modulo 47 checksum.\n */\n MOD_47 = \"mod47\",\n /**\n * Modulo 103 checksum.\n */\n MOD_103 = \"mod103\",\n /**\n * Two modulo 10 checksums.\n */\n MOD_1010 = \"mod1010\",\n /**\n * Modulo 11 and modulo 10 checksum.\n */\n MOD_1110 = \"mod1110\",\n }\n\n /**\n * @hidden\n */\n export const defaultActiveSymbolCounts: Partial> = {\n [Barcode.Symbology.CODABAR]: getNumberRange(7, 20),\n [Barcode.Symbology.CODE11]: getNumberRange(7, 20),\n [Barcode.Symbology.CODE128]: getNumberRange(6, 40),\n [Barcode.Symbology.CODE25]: getNumberRange(7, 20),\n [Barcode.Symbology.CODE32]: [8],\n [Barcode.Symbology.CODE39]: getNumberRange(6, 40),\n [Barcode.Symbology.CODE93]: getNumberRange(6, 40),\n [Barcode.Symbology.EAN13]: [12],\n [Barcode.Symbology.EAN8]: [8],\n [Barcode.Symbology.FIVE_DIGIT_ADD_ON]: [5],\n [Barcode.Symbology.GS1_DATABAR_EXPANDED]: getNumberRange(1, 11),\n [Barcode.Symbology.GS1_DATABAR_LIMITED]: [1],\n [Barcode.Symbology.GS1_DATABAR]: [2],\n [Barcode.Symbology.IATA_2_OF_5]: getNumberRange(7, 20),\n [Barcode.Symbology.INTERLEAVED_2_OF_5]: getNumberRange(6, 40),\n [Barcode.Symbology.KIX]: getNumberRange(7, 24),\n [Barcode.Symbology.LAPA4SC]: [16],\n [Barcode.Symbology.MSI_PLESSEY]: getNumberRange(6, 32),\n [Barcode.Symbology.RM4SCC]: getNumberRange(7, 24),\n [Barcode.Symbology.TWO_DIGIT_ADD_ON]: [2],\n [Barcode.Symbology.UPCA]: [12],\n [Barcode.Symbology.UPCE]: [6],\n };\n\n /**\n * @hidden\n */\n export const defaultExtensions: Partial> = {\n [Barcode.Symbology.CODE128]: [Extension.STRIP_LEADING_FNC1],\n [Barcode.Symbology.DATA_MATRIX]: [Extension.STRIP_LEADING_FNC1],\n };\n\n /**\n * @hidden\n */\n export const defaultChecksums: Partial> = {\n [Barcode.Symbology.MSI_PLESSEY]: [Checksum.MOD_10],\n [Barcode.Symbology.CODE11]: [Checksum.MOD_11],\n };\n}\n","/**\n * A configuration object for text recognition options.\n *\n * Text recognition settings need to be assigned (once) to scanning options via\n * [[ScanSettings.setTextRecognitionSettings]] and said modified [[ScanSettings]] (due to [[TextRecognitionSettings]]\n * changes) need to be applied to a scanner via [[BarcodePicker.applyScanSettings]] or [[Scanner.applyScanSettings]] to\n * take effect.\n */\nexport class TextRecognitionSettings {\n private readonly properties: Map;\n private readonly recognizer: string;\n\n private regex?: string;\n private characterWhitelist?: string;\n private textDuplicateFilter: number;\n\n /**\n * @hidden\n *\n * @param recognizer
Default = \"mrzFullScreen\"
\n * The text recognition backend.\n */\n\n /**\n * @hidden Not functional for MRZ OCR\n *\n * @param characterWhitelist
Default = undefined
\n * The whitelist of recognizable characters. If the whitelist is defined and not empty, a recognition result will\n * never contain characters that are not included in the list.\n */\n\n /**\n * Create a TextRecognitionSettings instance.\n *\n * @param regex
Default = undefined
\n * The regular expression for filtering the recognized characters. Text that does not match the regular expression is\n * ignored. You must set a regex in order for text recognition to work.\n * @param textDuplicateFilter
Default = 0
\n * The duplicate filter specifying how often a text can be scanned.\n * When the filter is set to -1, each unique text is only scanned once. When set to 0,\n * duplicate filtering is disabled. Otherwise the duplicate filter specifies an interval in milliseconds.\n * When the same text is scanned within the specified interval it is filtered out as a duplicate.\n */\n constructor({\n /**\n * @hidden\n */\n recognizer = \"mrzFullScreen\",\n regex,\n /**\n * @hidden\n */\n characterWhitelist,\n textDuplicateFilter = 0,\n }: {\n /**\n * @hidden\n */\n recognizer?: string;\n regex?: string | RegExp;\n /**\n * @hidden\n */\n characterWhitelist?: string;\n textDuplicateFilter?: number;\n } = {}) {\n this.recognizer = recognizer;\n this.regex = regex instanceof RegExp ? regex.source : regex;\n this.characterWhitelist = characterWhitelist;\n this.textDuplicateFilter = textDuplicateFilter;\n this.properties = new Map();\n }\n\n /**\n * @returns The configuration object as a JSON string.\n */\n public toJSONString(): string {\n const properties: { [key: string]: number } = {};\n this.properties.forEach((value, key) => {\n properties[key] = value;\n });\n\n return JSON.stringify({\n recognizer: this.recognizer,\n regex: this.regex,\n characterWhitelist: this.characterWhitelist,\n duplicateFilter: this.textDuplicateFilter,\n properties,\n });\n }\n\n /**\n * Get the regular expression for filtering the recognized characters.\n *\n * By default, no regex is set. You must set a regex in order for text recognition to work.\n *\n * @returns The regular expression.\n */\n public getRegex(): string | undefined {\n return this.regex;\n }\n\n /**\n * Set the regular expression for filtering the recognized characters.\n *\n * Text that does not match the regular expression is ignored.\n *\n * Using a regex with a capture group will make results contain only the text matching the capture group. To return\n * the full text matching the regex, use a non-capturing group.\n *\n * By default, no regex is set. You must set a regex in order for text recognition to work.\n *\n * @param regex The new regular expression.\n * @returns The updated [[TextRecognitionSettings]] object.\n */\n public setRegex(regex?: string | RegExp): TextRecognitionSettings {\n this.regex = regex instanceof RegExp ? regex.source : regex;\n\n return this;\n }\n\n /**\n * @hidden Not functional for MRZ OCR\n *\n * Get the whitelist of recognizable characters.\n *\n * By default there is no whitelist and all characters will be recognized.\n *\n * @returns The character whitelist.\n */\n public getCharacterWhitelist(): string | undefined {\n return this.characterWhitelist;\n }\n\n /**\n * @hidden Not functional for MRZ OCR\n *\n * Set the whitelist of recognizable characters.\n *\n * If the whitelist is defined and not empty, a recognition result will never contain characters that are not included\n * in the list.\n *\n * By default there is no whitelist and all characters will be recognized.\n *\n * @param characterWhitelist The new character whitelist.\n * @returns The updated [[TextRecognitionSettings]] object.\n */\n public setCharacterWhitelist(characterWhitelist?: string): TextRecognitionSettings {\n this.characterWhitelist = characterWhitelist;\n\n return this;\n }\n\n /**\n * Get the text duplicate filter value.\n *\n * By default duplicate filtering is disabled.\n *\n * @returns The text duplicate filter value.\n */\n public getTextDuplicateFilter(): number {\n return this.textDuplicateFilter;\n }\n\n /**\n * Set the text duplicate filter value.\n *\n * When the filter is set to -1, each unique text is only scanned once. When set to 0,\n * duplicate filtering is disabled. Otherwise the duplicate filter specifies an interval in milliseconds.\n *\n * By default duplicate filtering is disabled.\n *\n * @param durationMilliseconds The new value (-1, 0, or positive integer).\n * @returns The updated [[TextRecognitionSettings]] object.\n */\n public setTextDuplicateFilter(durationMilliseconds: number): TextRecognitionSettings {\n this.textDuplicateFilter = durationMilliseconds;\n\n return this;\n }\n\n /**\n * Get a Scandit Data Capture library text recognition property.\n *\n * This function is for internal use only and any functionality that can be accessed through it can and will vanish\n * without public notice from one version to the next. Do not call this function unless you specifically have to.\n *\n * @param key The property name.\n * @returns The property value. For properties not previously set, -1 is returned.\n */\n public getProperty(key: string): number {\n if (this.properties.has(key)) {\n return this.properties.get(key);\n }\n\n return -1;\n }\n\n /**\n * Set a Scandit Data Capture library text recognition property.\n *\n * This function is for internal use only and any functionality that can be accessed through it can and will vanish\n * without public notice from one version to the next. Do not call this function unless you specifically have to.\n *\n * @param key The property name.\n * @param value The property value.\n * @returns The updated [[TextRecognitionSettings]] object.\n */\n public setProperty(key: string, value: number): TextRecognitionSettings {\n this.properties.set(key, value);\n\n return this;\n }\n}\n","import { textRecognition } from \"..\";\nimport { Barcode } from \"./barcode\";\nimport { Logger } from \"./logger\";\nimport { SearchArea } from \"./searchArea\";\nimport { SymbologySettings } from \"./symbologySettings\";\nimport { TextRecognitionSettings } from \"./textRecognitionSettings\";\n\n/**\n * @hidden\n */\ntype SymbologyParameter = Barcode.Symbology | Barcode.Symbology[] | Set;\n\n/**\n * A configuration object for scanning options.\n *\n * Modified [[ScanSettings]] need to be applied to a scanner via\n * [[BarcodePicker.applyScanSettings]] or [[Scanner.applyScanSettings]] to take effect.\n */\nexport class ScanSettings {\n private readonly symbologySettings: Map;\n private readonly properties: Map;\n\n private textRecognitionSettings: TextRecognitionSettings;\n private recognitionMode: ScanSettings.RecognitionMode;\n private codeDuplicateFilter: number;\n private maxNumberOfCodesPerFrame: number;\n private baseSearchArea: SearchArea;\n private searchArea: SearchArea;\n private gpuAcceleration: boolean;\n private blurryRecognition: boolean;\n private codeDirectionHint: ScanSettings.CodeDirection;\n private deviceName?: string;\n\n /**\n * Create a ScanSettings instance.\n *\n * @param textRecognitionSettings
Default = new TextRecognitionSettings()
\n * The configuration object for text recognition options (text recognition disabled by default).\n * @param recognitionMode
Default = RecognitionMode.CODE
\n * The recognition mode deciding whether codes and/or text are recognized.\n * @param enabledSymbologies
Default = []
\n * The single symbology or list/set of symbologies that should be initialized as enabled for recognition.\n * @param codeDuplicateFilter
Default = 0
\n * The duplicate filter specifying how often a code can be scanned.\n * When the filter is set to -1, each unique code is only scanned once. When set to 0,\n * duplicate filtering is disabled. Otherwise the duplicate filter specifies an interval in milliseconds.\n * When the same code (data/symbology) is scanned within the specified interval it is filtered out as a duplicate.\n * @param maxNumberOfCodesPerFrame
Default = 1
\n * The maximum number of barcodes to be recognized every frame.\n * @param searchArea
Default = { x: 0, y: 0, width: 1.0, height: 1.0 }
\n * The area of the image in which barcodes/texts are searched.\n * @param gpuAcceleration
Default = true
\n * Whether to enable/disable GPU support via WebGL, to provide faster and more accurate barcode localization.\n * The GPU can and will be used only if the browser also supports the needed technologies\n * ([WebGL](https://caniuse.com/#feat=webgl) and [OffscreenCanvas](https://caniuse.com/#feat=offscreencanvas)).\n * @param blurryRecognition
Default = true
\n * Whether to enable/disable barcode blurry recognition, to allow accurate scanning capabilities for out-of-focus (1D)\n * codes. If enabled, more advanced algorithms are executed (and more resources/time is spent) every frame in order\n * to successfully locate/scan difficult codes.\n * @param codeDirectionHint
Default = CodeDirection.LEFT_TO_RIGHT
\n * The code direction hint telling in what direction 1D codes are most likely orientated.\n * More advanced algorithms are executed (and more resources/time is spent) every frame in order to successfully\n * locate/scan difficult codes for each of the possible directions resulting by the direction hint. Note that this\n * results in slow performance for `none` hints, average performance for `horizontal` and `vertical` hints and fast\n * performance for the remaining hints.\n * @param deviceName
Default = undefined
\n * The descriptive device name to identify the current device when looking at analytics tools.\n */\n constructor({\n textRecognitionSettings = new TextRecognitionSettings(),\n recognitionMode = ScanSettings.RecognitionMode.CODE,\n enabledSymbologies = [],\n codeDuplicateFilter = 0,\n maxNumberOfCodesPerFrame = 1,\n searchArea = { x: 0, y: 0, width: 1.0, height: 1.0 },\n gpuAcceleration = true,\n blurryRecognition = true,\n codeDirectionHint = ScanSettings.CodeDirection.LEFT_TO_RIGHT,\n deviceName,\n }: {\n textRecognitionSettings?: TextRecognitionSettings;\n recognitionMode?: ScanSettings.RecognitionMode;\n enabledSymbologies?: SymbologyParameter;\n codeDuplicateFilter?: number;\n maxNumberOfCodesPerFrame?: number;\n searchArea?: SearchArea;\n gpuAcceleration?: boolean;\n blurryRecognition?: boolean;\n codeDirectionHint?: ScanSettings.CodeDirection;\n deviceName?: string;\n } = {}) {\n this.symbologySettings = new Map();\n this.textRecognitionSettings = textRecognitionSettings;\n this.setRecognitionMode(recognitionMode);\n this.enableSymbologies(enabledSymbologies);\n this.codeDuplicateFilter = codeDuplicateFilter;\n this.maxNumberOfCodesPerFrame = maxNumberOfCodesPerFrame;\n this.baseSearchArea = { x: 0, y: 0, width: 1.0, height: 1.0 };\n this.searchArea = searchArea;\n this.gpuAcceleration = gpuAcceleration;\n this.blurryRecognition = blurryRecognition;\n this.codeDirectionHint = codeDirectionHint;\n this.deviceName = deviceName;\n this.properties = new Map([[\"advanced_localization\", 0]]);\n }\n\n /**\n * @returns The configuration object as a JSON string.\n */\n public toJSONString(): string {\n const symbologies: { [jsonSymbologyName: string]: SymbologySettings } = {};\n this.symbologySettings.forEach((symbologySettings, symbology) => {\n symbologies[Barcode.Symbology.toJSONName(symbology)] = symbologySettings;\n });\n const properties: { [key: string]: number } = {};\n this.properties.forEach((value, key) => {\n properties[key] = value;\n });\n\n const combinedSearchArea: SearchArea = {\n x: Math.max(0, Math.min(1, this.baseSearchArea.x + this.searchArea.x * this.baseSearchArea.width)),\n y: Math.max(0, Math.min(1, this.baseSearchArea.y + this.searchArea.y * this.baseSearchArea.height)),\n width: Math.max(0, Math.min(1, this.baseSearchArea.width * this.searchArea.width)),\n height: Math.max(0, Math.min(1, this.baseSearchArea.height * this.searchArea.height)),\n };\n\n const isFullSearchArea: boolean =\n Math.round(combinedSearchArea.x * 100) === 0 &&\n Math.round(combinedSearchArea.y * 100) === 0 &&\n Math.round(combinedSearchArea.width * 100) === 100 &&\n Math.round(combinedSearchArea.height * 100) === 100;\n\n return JSON.stringify({\n textRecognitionSettings: this.textRecognitionSettings.toJSONString(),\n recognitionMode: this.recognitionMode,\n symbologies,\n codeDuplicateFilter: this.codeDuplicateFilter,\n maxNumberOfCodesPerFrame: this.maxNumberOfCodesPerFrame,\n searchArea: combinedSearchArea,\n codeLocation1d: isFullSearchArea\n ? undefined\n : {\n area: {\n x: combinedSearchArea.x,\n y: combinedSearchArea.y + (combinedSearchArea.height * 0.75) / 2,\n width: combinedSearchArea.width,\n height: combinedSearchArea.height * 0.25,\n },\n },\n codeLocation2d: isFullSearchArea\n ? undefined\n : {\n area: combinedSearchArea,\n },\n gpuAcceleration: this.gpuAcceleration,\n blurryRecognition: this.blurryRecognition,\n codeDirectionHint: this.codeDirectionHint,\n properties,\n });\n }\n\n /**\n * Get the current text recognition settings.\n *\n * @returns The text recognition settings.\n */\n public getTextRecognitionSettings(): TextRecognitionSettings {\n return this.textRecognitionSettings;\n }\n\n /**\n * Set the text recognition settings.\n *\n * Note that modified [[ScanSettings]] (due to [[TextRecognitionSettings]] changes) need to be applied to a scanner\n * via [[BarcodePicker.applyScanSettings]] or [[Scanner.applyScanSettings]] to take effect.\n *\n * @param textRecognitionSettings The new text recognition settings.\n * @returns The updated [[ScanSettings]] object.\n */\n public setTextRecognitionSettings(textRecognitionSettings: TextRecognitionSettings): ScanSettings {\n this.textRecognitionSettings = textRecognitionSettings;\n\n return this;\n }\n\n /**\n * Get the recognition mode deciding whether codes and/or text are recognized.\n *\n * @returns The recognition mode.\n */\n public getRecognitionMode(): ScanSettings.RecognitionMode {\n return this.recognitionMode;\n }\n\n /**\n * Set the recognition mode deciding whether codes and/or text are recognized.\n *\n * @param recognitionMode The new recognition mode.\n * @returns The updated [[ScanSettings]] object.\n */\n public setRecognitionMode(recognitionMode: ScanSettings.RecognitionMode): ScanSettings {\n this.recognitionMode = recognitionMode;\n if (recognitionMode.includes(\"text\") && !textRecognition) {\n Logger.log(\n Logger.Level.WARN,\n \"The library has not been configured to load text recognition (ScanditSDK.configure() - loadTextRecognition option): ScanSettings' recognition mode for text will be ignored\"\n );\n }\n\n return this;\n }\n\n /**\n * Get the configuration object for a symbology (which can then be modified).\n *\n * @param symbology The symbology for which to retrieve the configuration.\n * @returns The symbology configuration object for the specified symbology.\n */\n public getSymbologySettings(symbology: Barcode.Symbology): SymbologySettings {\n if (this.symbologySettings.has(symbology)) {\n return this.symbologySettings.get(symbology);\n } else {\n if (symbology in Barcode.Symbology || Object.values(Barcode.Symbology).includes(symbology)) {\n this.symbologySettings.set(symbology, new SymbologySettings(symbology));\n\n return this.symbologySettings.get(symbology);\n } else {\n throw new TypeError(`Invalid symbology \"${symbology}\"`);\n }\n }\n }\n\n /**\n * Get the recognition enabled status for a symbology.\n *\n * By default no symbologies are enabled.\n *\n * @param symbology The symbology for which to retrieve the recognition enabled status.\n * @returns Whether the symbology enabled for recognition.\n */\n public isSymbologyEnabled(symbology: Barcode.Symbology): boolean {\n return (\n this.symbologySettings.has(symbology) && (this.symbologySettings.get(symbology)).isEnabled()\n );\n }\n\n /**\n * Enable recognition of a symbology or list/set of symbologies.\n *\n * By default no symbologies are enabled.\n *\n * @param symbology The single symbology or list/set of symbologies to enable.\n * @returns The updated [[ScanSettings]] object.\n */\n public enableSymbologies(symbology: SymbologyParameter): ScanSettings {\n return this.setSymbologiesEnabled(symbology, true);\n }\n\n /**\n * Disable recognition of a symbology or list/set of symbologies.\n *\n * By default no symbologies are enabled.\n *\n * @param symbology The single symbology or list/set of symbologies to disable.\n * @returns The updated [[ScanSettings]] object.\n */\n public disableSymbologies(symbology: SymbologyParameter): ScanSettings {\n return this.setSymbologiesEnabled(symbology, false);\n }\n\n /**\n * Get the code duplicate filter value.\n *\n * By default duplicate filtering is disabled.\n *\n * @returns The code duplicate filter value.\n */\n public getCodeDuplicateFilter(): number {\n return this.codeDuplicateFilter;\n }\n\n /**\n * Set the code duplicate filter value.\n *\n * When the filter is set to -1, each unique code is only scanned once. When set to 0,\n * duplicate filtering is disabled. Otherwise the duplicate filter specifies an interval in milliseconds.\n *\n * By default duplicate filtering is disabled.\n *\n * @param durationMilliseconds The new value (-1, 0, or positive integer).\n * @returns The updated [[ScanSettings]] object.\n */\n public setCodeDuplicateFilter(durationMilliseconds: number): ScanSettings {\n this.codeDuplicateFilter = durationMilliseconds;\n\n return this;\n }\n\n /**\n * Get the maximum number of barcodes to be recognized every frame.\n *\n * By default the maximum number of barcodes per frame is 1.\n *\n * @returns The maximum number of barcodes per frame.\n */\n public getMaxNumberOfCodesPerFrame(): number {\n return this.maxNumberOfCodesPerFrame;\n }\n\n /**\n * Set the maximum number of barcodes to be recognized every frame.\n *\n * By default the maximum number of barcodes per frame is 1.\n *\n * @param limit The new maximum number of barcodes per frame alue (non-zero positive integer).\n * @returns The updated [[ScanSettings]] object.\n */\n public setMaxNumberOfCodesPerFrame(limit: number): ScanSettings {\n this.maxNumberOfCodesPerFrame = limit;\n\n return this;\n }\n\n /**\n * Get the area of the image in which barcodes/texts are searched.\n *\n * By default the whole area is searched.\n *\n * @returns The search area.\n */\n public getSearchArea(): SearchArea {\n return this.searchArea;\n }\n\n /**\n * Set the area of the image in which barcodes/texts are searched.\n *\n * By default the whole area is searched.\n *\n * @param searchArea The new search area.\n * @returns The updated [[ScanSettings]] object.\n */\n public setSearchArea(searchArea: SearchArea): ScanSettings {\n this.searchArea = searchArea;\n\n return this;\n }\n\n /**\n * @hidden\n *\n * @returns The base area of the image in which barcodes/texts are searched.\n */\n public getBaseSearchArea(): SearchArea {\n return this.baseSearchArea;\n }\n\n /**\n * @hidden\n *\n * Set the base area of the image in which barcodes/texts are searched, this is set automatically by a\n * [[BarcodePicker]] and is combined with the searchArea to obtain the final combined search area.\n *\n * @param baseSearchArea The new base search area.\n * @returns The updated [[ScanSettings]] object.\n */\n public setBaseSearchArea(baseSearchArea: SearchArea): ScanSettings {\n this.baseSearchArea = baseSearchArea;\n\n return this;\n }\n\n /**\n * Get the GPU acceleration enabled status.\n *\n * By default GPU acceleration is enabled.\n *\n * @returns Whether GPU acceleration is configured to be enabled ot not.\n */\n public isGpuAccelerationEnabled(): boolean {\n return this.gpuAcceleration;\n }\n\n /**\n * Enable or disable GPU acceleration.\n *\n * By default GPU acceleration is enabled.\n *\n * Provide faster and more accurate barcode localization.\n * The GPU will in any case be used only if the browser also supports the needed technologies\n * ([WebGL](https://caniuse.com/#feat=webgl) and [OffscreenCanvas](https://caniuse.com/#feat=offscreencanvas)).\n *\n * @param enabled Whether to enable or disable GPU acceleration.\n * @returns The updated [[ScanSettings]] object.\n */\n public setGpuAccelerationEnabled(enabled: boolean): ScanSettings {\n this.gpuAcceleration = enabled;\n\n return this;\n }\n\n /**\n * Get the barcode blurry recognition enabled status.\n *\n * By default barcode blurry recognition is enabled.\n *\n * @returns Whether barcode blurry recognition is configured to be enabled ot not.\n */\n public isBlurryRecognitionEnabled(): boolean {\n return this.blurryRecognition;\n }\n\n /**\n * Enable or disable barcode blurry recognition.\n *\n * Allow accurate scanning capabilities for out-of-focus (1D) codes.\n * If enabled, more advanced algorithms are executed (and more resources/time is spent) every frame in order\n * to successfully locate/scan difficult codes.\n *\n * By default barcode blurry recognition is enabled.\n *\n * @param enabled Whether to enable or disable barcode blurry recognition.\n * @returns The updated [[ScanSettings]] object.\n */\n public setBlurryRecognitionEnabled(enabled: boolean): ScanSettings {\n this.blurryRecognition = enabled;\n\n return this;\n }\n\n /**\n * Get the code direction hint telling in what direction 1D codes are most likely orientated.\n *\n * By default `left-to-right` is used.\n *\n * @returns The code direction hint.\n */\n public getCodeDirectionHint(): ScanSettings.CodeDirection {\n return this.codeDirectionHint;\n }\n\n /**\n * Set the code direction hint telling in what direction 1D codes are most likely orientated.\n *\n * More advanced algorithms are executed (and more resources/time is spent) every frame in order to successfully\n * locate/scan difficult codes for each of the possible directions resulting by the direction hint. Note that this\n * results in slow performance for `none` hints, average performance for `horizontal` and `vertical` hints and fast\n * performance for the remaining hints.\n *\n * By default `left-to-right` is used.\n *\n * @param codeDirectionHint The new code direction hint.\n * @returns The updated [[ScanSettings]] object.\n */\n public setCodeDirectionHint(codeDirectionHint: ScanSettings.CodeDirection): ScanSettings {\n this.codeDirectionHint = codeDirectionHint;\n\n return this;\n }\n\n /**\n * Get the descriptive device name to identify the current device when looking at analytics tools.\n *\n * By default no name is used (the device is identified by its unique ID only).\n *\n * @returns The device name.\n */\n public getDeviceName(): string | undefined {\n return this.deviceName;\n }\n\n /**\n * Set the descriptive device name to identify the current device when looking at analytics tools.\n *\n * By default no name is used (the device is identified by its unique ID only).\n *\n * @param deviceName The new device name.\n * @returns The updated [[ScanSettings]] object.\n */\n public setDeviceName(deviceName: string | undefined): ScanSettings {\n this.deviceName = deviceName;\n\n return this;\n }\n\n /**\n * Get a Scandit Data Capture library scanning property.\n *\n * This function is for internal use only and any functionality that can be accessed through it can and will vanish\n * without public notice from one version to the next. Do not call this function unless you specifically have to.\n *\n * @param key The property name.\n * @returns The property value. For properties not previously set, -1 is returned.\n */\n public getProperty(key: string): number {\n if (this.properties.has(key)) {\n return this.properties.get(key);\n }\n\n return -1;\n }\n\n /**\n * Set a Scandit Data Capture library scanning property.\n *\n * This function is for internal use only and any functionality that can be accessed through it can and will vanish\n * without public notice from one version to the next. Do not call this function unless you specifically have to.\n *\n * @param key The property name.\n * @param value The property value.\n * @returns The updated [[ScanSettings]] object.\n */\n public setProperty(key: string, value: number): ScanSettings {\n this.properties.set(key, value);\n\n return this;\n }\n\n private setSingleSymbologyEnabled(symbology: Barcode.Symbology, enabled: boolean): void {\n if (symbology in Barcode.Symbology || Object.values(Barcode.Symbology).includes(symbology)) {\n if (this.symbologySettings.has(symbology)) {\n (this.symbologySettings.get(symbology)).setEnabled(enabled);\n } else {\n this.symbologySettings.set(symbology, new SymbologySettings(symbology, enabled));\n }\n } else {\n throw new TypeError(`Invalid symbology \"${symbology}\"`);\n }\n }\n\n private setMultipleSymbologiesEnabled(\n symbology: Barcode.Symbology[] | Set,\n enabled: boolean\n ): void {\n for (const s of symbology) {\n if (!(s in Barcode.Symbology || Object.values(Barcode.Symbology).includes(s))) {\n throw new TypeError(`Invalid symbology \"${s}\"`);\n }\n }\n for (const s of symbology) {\n if (this.symbologySettings.has(s)) {\n (this.symbologySettings.get(s)).setEnabled(enabled);\n } else {\n this.symbologySettings.set(s, new SymbologySettings(s, enabled));\n }\n }\n }\n\n private setSymbologiesEnabled(symbology: SymbologyParameter, enabled: boolean): ScanSettings {\n if (typeof symbology === \"object\") {\n this.setMultipleSymbologiesEnabled(symbology, enabled);\n } else {\n this.setSingleSymbologyEnabled(symbology, enabled);\n }\n\n return this;\n }\n}\n\n// istanbul ignore next\nexport namespace ScanSettings {\n /**\n * Scanning recognition mode.\n */\n export enum RecognitionMode {\n /**\n * Codes only.\n */\n CODE = \"code\",\n /**\n * Text only.\n */\n TEXT = \"text\",\n /**\n * Codes and text at the same time.\n */\n CODE_AND_TEXT = \"code-and-text\",\n }\n /**\n * Code direction used to hint 1D codes' orientation.\n */\n export enum CodeDirection {\n /**\n * Left to right.\n */\n LEFT_TO_RIGHT = \"left-to-right\",\n /**\n * Right to left.\n */\n RIGHT_TO_LEFT = \"right-to-left\",\n /**\n * Bottom to top.\n */\n BOTTOM_TO_TOP = \"bottom-to-top\",\n /**\n * Top to bottom.\n */\n TOP_TO_BOTTOM = \"top-to-bottom\",\n /**\n * Left to right or right to left.\n */\n HORIZONTAL = \"horizontal\",\n /**\n * Bottom to top or top to bottom.\n */\n VERTICAL = \"vertical\",\n /**\n * Unknown.\n */\n NONE = \"none\",\n }\n}\n","import { EventEmitter } from \"eventemitter3\";\n\nimport { DataCaptureSentMessageData, DataCaptureWorker } from \"./workers/dataCaptureWorker\";\n\nimport { blurryRecognitionPreloader, configurePhase, dataCaptureLoader } from \"../index\";\nimport { Barcode, BarcodeWASMResult } from \"./barcode\";\nimport { BrowserCompatibility } from \"./browserCompatibility\";\nimport { BrowserHelper } from \"./browserHelper\";\nimport { Camera } from \"./camera\";\nimport { CustomError } from \"./customError\";\nimport { DataCaptureLoader } from \"./dataCaptureLoader\";\nimport { ImageSettings } from \"./imageSettings\";\nimport { Logger } from \"./logger\";\nimport { Parser } from \"./parser\";\nimport { ParserField } from \"./parserField\";\nimport { ParserResult } from \"./parserResult\";\nimport { RecognizedTextWASMResult } from \"./recognizedText\";\nimport { ScanResult } from \"./scanResult\";\nimport { ScanSettings } from \"./scanSettings\";\nimport { UnsupportedBrowserError } from \"./unsupportedBrowserError\";\n\n/**\n * @hidden\n */\ntype EventName = \"ready\" | \"contextCreated\" | \"newScanSettings\";\n\n/**\n * @hidden\n */\nclass ScannerEventEmitter extends EventEmitter {}\n\n/**\n * A low-level scanner interacting with the external Scandit Data Capture library.\n * Used to set up scan / image settings and to process single image frames.\n *\n * The loading of the external Scandit Data Capture library can take some time, the [[on]] method targeting the\n * [[ready]] event can be used to set up a listener function to be called when the library is loaded and the [[isReady]]\n * method can return the current status. The scanner will be ready to start scanning when the library is fully loaded.\n *\n * By default the external Scandit Data Capture library is preloaded in order to reduce the initialization time as much\n * as possible.\n *\n * In the special case where a single [[Scanner]] instance is shared between multiple active [[BarcodePicker]]\n * instances, the fairness in resource allocation for processing images between the different pickers is not guaranteed.\n */\nexport class Scanner {\n private static workerScanRequestId: number = 0;\n\n private readonly eventEmitter: ScannerEventEmitter;\n\n private dataCaptureWorker: DataCaptureWorker;\n private scanSettings: ScanSettings;\n private imageSettings?: ImageSettings;\n private workerParseRequestId: number;\n private workerScanQueueLength: number;\n private isReadyToWork: boolean;\n private licenseKeyFeatures?: object;\n private imageDataConversionContext?: CanvasRenderingContext2D;\n private activeBlurryRecognitionSymbologies: Set;\n private blurryRecognitionAvailable: boolean;\n\n /**\n * Create a Scanner instance.\n *\n * It is required to having configured the library via [[configure]] before this object can be created.\n *\n * Before processing an image the relative settings must also have been set.\n *\n * Depending on library configuration, browser features and user permissions for camera access, any of the following\n * errors could be thrown:\n * - `LibraryNotConfiguredError`\n * - `UnsupportedBrowserError`\n *\n * @param scanSettings
Default = new ScanSettings()
\n * The configuration object for scanning options (all symbologies disabled by default).\n * @param imageSettings
Default = undefined
\n * The configuration object to define the properties of an image to be scanned.\n */\n constructor({\n scanSettings = new ScanSettings(),\n imageSettings,\n }: {\n scanSettings?: ScanSettings;\n imageSettings?: ImageSettings;\n } = {}) {\n const browserCompatibility: BrowserCompatibility = BrowserHelper.checkBrowserCompatibility();\n if (!browserCompatibility.scannerSupport) {\n throw new UnsupportedBrowserError(browserCompatibility);\n }\n if (configurePhase !== \"done\") {\n throw new CustomError({\n name: \"LibraryNotConfiguredError\",\n message:\n configurePhase === \"started\"\n ? `The library has not completed its configuration yet, please call 'configure' and wait for the returned\n promise's resolution`\n : `The library was not configured yet, 'configure' must be called with valid parameters before instantiating\n the Scanner`,\n });\n }\n\n this.eventEmitter = new EventEmitter();\n this.isReadyToWork = false;\n this.workerScanQueueLength = 0;\n this.workerParseRequestId = 0;\n\n this.activeBlurryRecognitionSymbologies = new Set();\n this.blurryRecognitionAvailable = false;\n\n this.initializeWorker(scanSettings, imageSettings);\n\n blurryRecognitionPreloader.on(\"blurryTablesUpdate\", this.handleBlurryTablesUpdate.bind(this));\n }\n\n /**\n * Fired when the external Scandit Data Capture library has been loaded and the scanner can thus start to scan\n * barcodes/texts.\n *\n * @event\n */\n // istanbul ignore next\n public static ready(): void {\n // Ignored\n }\n\n /**\n * Stop/reset the internal WebWorker and destroy the scanner itself; ensuring complete cleanup.\n *\n * This method should be called after you don't plan to use the scanner anymore,\n * before the object is automatically cleaned up by JavaScript.\n * The scanner must not be used in any way after this call.\n */\n public destroy(): void {\n if (this.dataCaptureWorker != null) {\n dataCaptureLoader.returnDataCaptureWorker(this.dataCaptureWorker);\n }\n this.eventEmitter.removeAllListeners();\n }\n\n /**\n * Apply a new set of scan settings to the scanner (replacing old settings).\n *\n * @param scanSettings The scan configuration object to be applied to the scanner.\n * @returns The updated [[Scanner]] object.\n */\n public applyScanSettings(scanSettings: ScanSettings): Scanner {\n this.scanSettings = scanSettings;\n blurryRecognitionPreloader.updateBlurryRecognitionPriority(this.scanSettings);\n const activeBlurryRecognitionSymbologies: Barcode.Symbology[] = blurryRecognitionPreloader.getEnabledSymbologies(\n this.scanSettings\n );\n this.blurryRecognitionAvailable = blurryRecognitionPreloader.isBlurryRecognitionAvailable(this.scanSettings);\n this.dataCaptureWorker.postMessage({\n type: \"scan-settings\",\n settings: this.scanSettings.toJSONString(),\n blurryRecognitionAvailable: this.blurryRecognitionAvailable,\n blurryRecognitionRequiresUpdate: activeBlurryRecognitionSymbologies.some((symbology) => {\n return !this.activeBlurryRecognitionSymbologies.has(symbology);\n }),\n });\n const deviceName: string | undefined = this.scanSettings.getDeviceName();\n if (deviceName != null) {\n this.dataCaptureWorker.postMessage({\n type: \"device-name\",\n deviceName,\n });\n }\n if (this.blurryRecognitionAvailable) {\n this.activeBlurryRecognitionSymbologies = new Set([\n ...this.activeBlurryRecognitionSymbologies,\n ...activeBlurryRecognitionSymbologies,\n ]);\n }\n this.eventEmitter.emit(\"newScanSettings\", this.scanSettings);\n\n return this;\n }\n\n /**\n * Apply a new set of image settings to the scanner (replacing old settings).\n *\n * @param imageSettings The image configuration object to be applied to the scanner.\n * @returns The updated [[Scanner]] object.\n */\n public applyImageSettings(imageSettings: ImageSettings): Scanner {\n this.imageSettings = imageSettings;\n this.dataCaptureWorker.postMessage({\n type: \"image-settings\",\n imageSettings,\n });\n\n return this;\n }\n\n /**\n * Clear the scanner session.\n *\n * This removes all recognized barcodes/texts from the scanner session and allows them to be scanned again in case a\n * custom *codeDuplicateFilter* and/or *textDuplicateFilter* option was set in the [[ScanSettings]].\n *\n * @returns The updated [[Scanner]] object.\n */\n public clearSession(): Scanner {\n this.dataCaptureWorker.postMessage({\n type: \"clear-session\",\n });\n\n return this;\n }\n\n /**\n * Process a given image using the previously set scanner and image settings,\n * recognizing codes/texts and retrieving the result as a list of barcodes/texts (if any).\n *\n * Multiple requests done without waiting for previous results will be queued and handled in order.\n *\n * If *highQualitySingleFrameMode* is enabled the image will be processed with really accurate barcode internal\n * settings, resulting in much slower but more precise scanning results. This should be used only for single images\n * not part of a continuous video stream.\n *\n * Passing image data as a *Uint8Array* is the fastest option, passing a *HTMLImageElement*\n * will incur in additional operations.\n *\n * Data passed to this function is \"detached\"/\"neutered\" becoming unusable as it's being passed to the external\n * Scandit Data Capture library. You can access the same data once it's returned in the [[ScanResult.imageData]]\n * property.\n *\n * Depending on the current image settings, given *imageData* and scanning execution, any of the following errors\n * could be the rejected result of the returned promise:\n * - `NoImageSettings`\n * - `ImageSettingsDataMismatch`\n * - `ScanditEngineError`\n *\n * @param imageData The image data given as byte array or image element, complying with the previously set\n * image settings.\n * @param highQualitySingleFrameMode Whether to process the image as a high quality single frame.\n * @returns A promise resolving to the [[ScanResult]] object.\n */\n public async processImage(\n imageData: Uint8Array | HTMLImageElement,\n highQualitySingleFrameMode: boolean = false\n ): Promise {\n if (this.imageSettings == null) {\n throw new CustomError({ name: \"NoImageSettings\", message: \"No image settings set up in the scanner\" });\n }\n\n if (imageData instanceof HTMLImageElement) {\n if (this.imageDataConversionContext == null) {\n this.imageDataConversionContext = document.createElement(\"canvas\").getContext(\"2d\");\n }\n this.imageDataConversionContext.canvas.width = imageData.naturalWidth;\n this.imageDataConversionContext.canvas.height = imageData.naturalHeight;\n this.imageDataConversionContext.drawImage(imageData, 0, 0, imageData.naturalWidth, imageData.naturalHeight);\n imageData = new Uint8Array(\n this.imageDataConversionContext.getImageData(0, 0, imageData.naturalWidth, imageData.naturalHeight).data.buffer\n );\n }\n\n let channels: number;\n switch (this.imageSettings.format.valueOf()) {\n case ImageSettings.Format.GRAY_8U:\n channels = 1;\n break;\n case ImageSettings.Format.RGB_8U:\n channels = 3;\n break;\n case ImageSettings.Format.RGBA_8U:\n channels = 4;\n break;\n default:\n channels = 1;\n break;\n }\n\n if (this.imageSettings.width * this.imageSettings.height * channels !== imageData.length) {\n throw new CustomError({\n name: \"ImageSettingsDataMismatch\",\n message: \"The provided image data doesn't match the previously set image settings\",\n });\n }\n\n Scanner.workerScanRequestId++;\n this.workerScanQueueLength++;\n\n return new Promise((resolve, reject) => {\n const workResultEvent: string = `workResult-${Scanner.workerScanRequestId}`;\n const workErrorEvent: string = `workError-${Scanner.workerScanRequestId}`;\n this.eventEmitter.once(\n workResultEvent,\n (\n workResult: { barcodes: BarcodeWASMResult[]; texts: RecognizedTextWASMResult[] },\n returnedImageData: Uint8Array\n ) => {\n this.eventEmitter.removeAllListeners(workErrorEvent);\n this.workerScanQueueLength--;\n resolve(\n new ScanResult(workResult.barcodes, workResult.texts, returnedImageData, this.imageSettings)\n );\n }\n );\n this.eventEmitter.once(workErrorEvent, (error: { errorCode: number; errorMessage: string }, _: Uint8Array) => {\n Logger.log(Logger.Level.ERROR, `Scandit Data Capture error (${error.errorCode}):`, error.errorMessage);\n this.eventEmitter.removeAllListeners(workResultEvent);\n this.workerScanQueueLength--;\n const errorObject: Error = new CustomError({\n name: \"ScanditEngineError\",\n message: `${error.errorMessage} (${error.errorCode})`,\n });\n reject(errorObject);\n });\n this.dataCaptureWorker.postMessage(\n {\n type: \"scan-image\",\n requestId: Scanner.workerScanRequestId,\n data: imageData,\n highQualitySingleFrameMode,\n },\n [(imageData).buffer]\n );\n });\n }\n\n /**\n * @returns Whether the scanner is currently busy processing an image.\n */\n public isBusyProcessing(): boolean {\n return this.workerScanQueueLength !== 0;\n }\n\n /**\n * @returns Whether the scanner has loaded the external Scandit Data Capture library and is ready to scan.\n */\n public isReady(): boolean {\n return this.isReadyToWork;\n }\n\n /**\n * Add the listener function to the listeners array for an event.\n *\n * No checks are made to see if the listener has already been added.\n * Multiple calls passing the same listener will result in the listener being added, and called, multiple times.\n *\n * @param eventName The name of the event to listen to.\n * @param listener The listener function.\n * @returns The updated [[Scanner]] object.\n */\n // tslint:disable-next-line:bool-param-default\n public on(eventName: EventName, listener: EventEmitter.ListenerFn): Scanner;\n /**\n * Add the listener function to the listeners array for the [[ready]] event, fired only once when the external\n * Scandit Data Capture library has been loaded and the scanner can thus start to scan barcodes/texts.\n * If the external Scandit Data Capture library has already been loaded the listener is called immediately.\n *\n * No checks are made to see if the listener has already been added.\n * Multiple calls passing the same listener will result in the listener being added, and called, multiple times.\n *\n * @param eventName The name of the event to listen to.\n * @param listener The listener function.\n * @returns The updated [[Scanner]] object.\n */\n public on(eventName: \"ready\", listener: () => void): Scanner;\n public on(eventName: EventName, listener: EventEmitter.ListenerFn): Scanner {\n if (eventName === \"ready\") {\n if (this.isReadyToWork) {\n listener();\n } else {\n this.eventEmitter.once(eventName, listener, this);\n }\n } else if (eventName === \"contextCreated\") {\n if (this.licenseKeyFeatures != null) {\n listener(this.licenseKeyFeatures);\n } else {\n this.eventEmitter.once(eventName, listener, this);\n }\n } else {\n this.eventEmitter.on(eventName, listener, this);\n }\n\n return this;\n }\n\n /**\n * *See the [[on]] method.*\n *\n * @param eventName The name of the event to listen to.\n * @param listener The listener function.\n * @returns The updated [[Scanner]] object.\n */\n public addListener(eventName: EventName, listener: EventEmitter.ListenerFn): Scanner {\n return this.on(eventName, listener);\n }\n\n /**\n * Create a new parser object.\n *\n * @param dataFormat The format of the input data for the parser.\n * @returns The newly created parser.\n */\n public createParserForFormat(dataFormat: Parser.DataFormat): Parser {\n return new Parser(this, dataFormat);\n }\n\n /**\n * Return the current image settings.\n *\n * Note that modifying this object won't directly apply these settings: the [[applyImageSettings]] method must be\n * called with the updated object.\n *\n * @returns The current image settings.\n */\n public getImageSettings(): ImageSettings | undefined {\n return this.imageSettings;\n }\n\n /**\n * Return the current scan settings.\n *\n * Note that modifying this object won't directly apply these settings: the [[applyScanSettings]] method must be\n * called with the updated object.\n *\n * @returns The current scan settings.\n */\n public getScanSettings(): ScanSettings {\n return this.scanSettings;\n }\n\n /**\n * @hidden\n *\n * Process a given string or byte array using the Scandit Parser library,\n * parsing the data in the given format and retrieving the result as a [[ParserResult]] object.\n *\n * Multiple requests done without waiting for previous results will be queued and handled in order.\n *\n * If parsing of the data fails the returned promise is rejected with a `ScanditEngineError` error.\n *\n * @param dataFormat The format of the given data.\n * @param data The string or byte array containing the data to be parsed.\n * @param options Options for the specific data format parser.\n * @returns A promise resolving to the [[ParserResult]] object.\n */\n public async parse(\n dataFormat: Parser.DataFormat,\n data: string | Uint8Array,\n options?: object\n ): Promise {\n this.workerParseRequestId++;\n\n return new Promise((resolve, reject) => {\n const parseResultEvent: string = `parseResult-${this.workerParseRequestId}`;\n const parseErrorEvent: string = `parseError-${this.workerParseRequestId}`;\n this.eventEmitter.once(parseResultEvent, (result: string) => {\n this.eventEmitter.removeAllListeners(parseErrorEvent);\n const parserResult: ParserResult = {\n jsonString: result,\n fields: [],\n fieldsByName: {},\n };\n (JSON.parse(result)).forEach((parserField) => {\n parserResult.fields.push(parserField);\n parserResult.fieldsByName[parserField.name] = parserField;\n });\n resolve(parserResult);\n });\n this.eventEmitter.once(parseErrorEvent, (error: { errorCode: number; errorMessage: string }) => {\n Logger.log(Logger.Level.ERROR, `Scandit Data Capture error (${error.errorCode}):`, error.errorMessage);\n this.eventEmitter.removeAllListeners(parseResultEvent);\n const errorObject: Error = new CustomError({\n name: \"ScanditEngineError\",\n message: `${error.errorMessage} (${error.errorCode})`,\n });\n reject(errorObject);\n });\n this.dataCaptureWorker.postMessage({\n type: \"parse\",\n requestId: this.workerParseRequestId,\n dataFormat,\n data,\n options: options == null ? \"{}\" : JSON.stringify(options),\n });\n });\n }\n\n /**\n * @hidden\n *\n * Report new camera properties.\n *\n * This ensures optimal settings usage and detailed analytics information.\n *\n * @param cameraType The camera type (facing mode/direction).\n * @param autofocus Whether the camera supports autofocus, by default it's assumed it does.\n * @returns The updated [[Scanner]] object.\n */\n public reportCameraProperties(cameraType: Camera.Type, autofocus: boolean = true): Scanner {\n this.dataCaptureWorker.postMessage({\n type: \"camera-properties\",\n cameraType,\n autofocus,\n });\n\n return this;\n }\n\n /**\n * Remove the specified listener from the given event's listener array.\n *\n * @param eventName The name of the event from which to remove the listener.\n * @param listener The listener function to be removed.\n * @returns The updated [[Scanner]] object.\n */\n public removeListener(eventName: string, listener: EventEmitter.ListenerFn): Scanner {\n this.eventEmitter.removeListener(eventName, listener);\n\n return this;\n }\n\n /**\n * Remove all listeners from the given event's listener array.\n *\n * @param eventName The name of the event from which to remove all listeners.\n * @returns The updated [[Scanner]] object.\n */\n public removeAllListeners(eventName: EventName): Scanner {\n this.eventEmitter.removeAllListeners(eventName);\n\n return this;\n }\n\n private initializeWorker(scanSettings: ScanSettings, imageSettings?: ImageSettings): void {\n this.dataCaptureWorker = dataCaptureLoader.getDataCaptureWorker();\n this.dataCaptureWorker.onmessage = this.dataCaptureWorkerOnMessage.bind(this);\n DataCaptureLoader.load(this.dataCaptureWorker);\n\n this.applyScanSettings(scanSettings);\n if (imageSettings != null) {\n this.applyImageSettings(imageSettings);\n }\n }\n\n private handleBlurryTablesUpdate(): void {\n if (this.blurryRecognitionAvailable) {\n return;\n }\n this.blurryRecognitionAvailable = blurryRecognitionPreloader.isBlurryRecognitionAvailable(this.scanSettings);\n if (this.blurryRecognitionAvailable) {\n this.activeBlurryRecognitionSymbologies = new Set([\n ...this.activeBlurryRecognitionSymbologies,\n ...blurryRecognitionPreloader.getEnabledSymbologies(this.scanSettings),\n ]);\n this.dataCaptureWorker.postMessage({\n type: \"scan-settings\",\n settings: this.scanSettings.toJSONString(),\n blurryRecognitionAvailable: true,\n blurryRecognitionRequiresUpdate: true,\n });\n }\n }\n\n private dataCaptureWorkerOnMessage(ev: MessageEvent): void {\n const data: DataCaptureSentMessageData = ev.data;\n\n if (data[0] === \"log\") {\n data[1].data.forEach((dataArgument, index) => {\n if (dataArgument.name != null && dataArgument.message != null) {\n const error: Error = new CustomError({ name: dataArgument.name, message: dataArgument.message });\n error.stack = dataArgument.stack;\n data[1].data[index] = error;\n }\n });\n Logger.log(data[1].level, ...data[1].data);\n\n return;\n }\n\n if (data[0] === \"library-loaded\") {\n this.isReadyToWork = true;\n this.eventEmitter.emit(\"ready\");\n\n return;\n }\n\n if (data[0] === \"reset\") {\n // Intentionally terminate WebWorker and don't return it to dataCaptureLoader\n this.dataCaptureWorker.terminate();\n\n // Generate a new random database name by generating and appending 64 bits of letters/numbers and store it to be\n // used for all future loads\n localStorage.setItem(\n \"scanditWritableDataPathOverride\",\n `/scandit_sync_folder_${[...crypto.getRandomValues(new Uint32Array(2))]\n .map((value) => {\n return value.toString(32);\n })\n .join(\"\")}`\n );\n\n this.initializeWorker(this.scanSettings, this.imageSettings);\n\n return;\n }\n\n if (data[1] != null) {\n switch (data[0]) {\n case \"context-created\":\n this.licenseKeyFeatures = data[1];\n this.eventEmitter.emit(\"contextCreated\", this.licenseKeyFeatures);\n break;\n case \"work-result\":\n this.eventEmitter.emit(`workResult-${data[1].requestId}`, data[1].result, data[2]);\n break;\n case \"work-error\":\n this.eventEmitter.emit(`workError-${data[1].requestId}`, data[1].error, data[2]);\n break;\n case \"parse-result\":\n this.eventEmitter.emit(`parseResult-${data[1].requestId}`, data[1].result);\n break;\n case \"parse-error\":\n this.eventEmitter.emit(`parseError-${data[1].requestId}`, data[1].error);\n break;\n // istanbul ignore next\n default:\n break;\n }\n }\n }\n}\n","import * as CSS from \"csstype\";\n\nimport { cameraImage, folderImage } from \"./assets/base64assets\";\n\n/**\n * A configuration object for Single Image Mode options for multiple platforms.\n */\n\nexport interface SingleImageModeSettings {\n /**\n * Settings to be applied when the device is a desktop/laptop.\n * On these devices the user will be requested to pick an image from the filesystem (see\n * [https://w3c.github.io/html-media-capture/](https://w3c.github.io/html-media-capture/).\n */\n desktop?: SingleImageModePlatformSettings;\n /**\n * Settings to be applied when the device is a smartphone/tablet.\n * On these devices the user will be requested to take a picture directly via the camera (see\n * [https://w3c.github.io/html-media-capture/](https://w3c.github.io/html-media-capture/).\n */\n mobile?: SingleImageModePlatformSettings;\n}\n\n/**\n * A configuration object for Single Image Mode options for a specific platform.\n *\n * The Single Image Mode screen is composed of information at the top and a button at the bottom.\n */\nexport interface SingleImageModePlatformSettings {\n /**\n *
Default = [[UsageStrategy.FALLBACK]]
\n *\n * Execution strategy (when to run).\n *\n * By default use only if the OS/browser doesn't support continuous camera video stream scanning.\n */\n usageStrategy?: SingleImageModeSettings.UsageStrategy;\n /**\n *
Default = <HTMLElement>
\n *\n * HTML element to override information contents.\n */\n informationElement?: HTMLElement;\n /**\n *
Default = <SVGElement>
\n *\n * HTML/SVG element to override button contents (SVG recommended).\n */\n buttonElement?: HTMLElement | SVGElement;\n /**\n *
Default = { backgroundColor: \"#333333\" }
\n *\n * [CSS properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Properties_Reference) to override\n * the surrounding container's [style](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style).\n */\n containerStyle?: CSS.Properties;\n /**\n *
Default = { color: \"#FFFFFF\" }
\n *\n * [CSS properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Properties_Reference) to override\n * the information text's [style](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style).\n */\n informationStyle?: CSS.Properties;\n /**\n *
Default = { borderColor: \"#FFFFFF\", color: \"#FFFFFF\", fill: \"#FFFFFF\" }\n *
\n *\n * [CSS properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Properties_Reference) to override\n * the button's [style](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style).\n *\n * Note: *borderColor* is used for the border, *color* for the flash animation, *fill* for the SVG icon.\n */\n buttonStyle?: CSS.Properties;\n}\n\nexport namespace SingleImageModeSettings {\n /**\n * @hidden\n *\n * Create a default [[SingleImageModePlatformSettings]] object.\n *\n * @param text The text to display at the top.\n * @param base64image The image to display at the bottom as a button.\n * @returns The generated [[SingleImageModePlatformSettings]] object.\n */\n function getDefaultSingleImageModeSettings(text: string, base64image: string): SingleImageModePlatformSettings {\n return {\n informationElement: document.createRange().createContextualFragment(text).firstElementChild,\n buttonElement: document.createRange().createContextualFragment(atob(base64image)).firstElementChild,\n containerStyle: { backgroundColor: \"#333333\" },\n informationStyle: { color: \"#FFFFFF\" },\n buttonStyle: { borderColor: \"#FFFFFF\", color: \"#FFFFFF\", fill: \"#FFFFFF\" },\n };\n }\n /**\n * Single Image Mode usage strategy.\n */\n export enum UsageStrategy {\n /**\n * Never use Single Image Mode (an error is thrown on [[BarcodePicker]] creation if the OS/browser doesn't support\n * continuous camera video stream scanning).\n */\n NEVER = \"never\",\n /**\n * Use Single Image Mode as fallback: only if the OS/browser doesn't support continuous camera video stream\n * scanning.\n */\n FALLBACK = \"fallback\",\n /**\n * Force Single Image Mode over continuous camera video stream scanning in all situations.\n */\n ALWAYS = \"always\",\n }\n\n /**\n * @hidden\n */\n export const defaultDesktop: SingleImageModePlatformSettings = getDefaultSingleImageModeSettings(\n \"

To scan:
1. Click on the folder icon
2. Select the picture to scan

\",\n folderImage\n );\n /**\n * @hidden\n */\n export const defaultMobile: SingleImageModePlatformSettings = getDefaultSingleImageModeSettings(\n \"

To scan:
1. Tap the camera icon
2. Take a picture of the code(s)

\",\n cameraImage\n );\n}\n","// tslint:disable:max-line-length\n// TODO: gracefully load assets from files inside build process\nexport const beepSound: string =\n \"data:audio/mp3;base64,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4LAkByw1k3LVZpl+pNlGNZem5stM2Wr6j1Z9AMMBYjily+nv/WqtU3SzFdqLW+g9ay+GvQb2oJMhV52tK+eZCvrd0BNqdIzFngHBYCQQIIaJ1PtUjVq//qP+ohdCZhgRJDlF/////zoi5C6lVAABQCoDYQD4ZCwVB9kTFKkiv9NQcExMLk3ipgtxrzPf8LZgdNYHsgYIPgbIgAEXEAwCgpAie4XVi5BaBlBUxSQfMO7yfQPFcsGReNjIgX0QvmASaIgQc3SJkgpqr+myNNNNJSSX/n1Hw/4CgwqkXN3qSMTVX//U2skkQuTq9JJEy/+ybvT6p1IjCCpfiL/+SuQupVQAAUAqA2EA+GQsFQfZExSpIr/TUHBMTC5N4qYLca8z3/C2YHTWB7IGCD4GyIABFxAMAoKQInuF1YuQWgZQVMUkHzDu8n0DxXLBkXjYyIF9EL5gEmiIEHN0iZIKaq/psjTTTSUkl/59R8P+AoMKpFzd6kjE1V//1NrJJELk6vSSRMv/sm70+qdSIwgqX4i//klMQU1FMy45OS41VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+7IAAA/wAABpBwAACAAADSDgAAEAAAGkAAAAIAAANIAAAARMQU1FMy45OS41VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjk5LjVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=\";\nexport const scanditLogoImage: string =\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUcAAAAhCAMAAAB9TZmqAAABgFBMVEVHcEyCgoL+/v6Kior///+FhYXW1tbn5+eAgIDp6en+/v6BgYH///////////+BgYH///////////+wsLCCgoL4+PiBgYH///+srKyAgID////s7OyCgoKBgYGDg4P///+BgYH6+vqBgYH////MzMz39/f///+BgYGbm5uDg4OMjIyBgYG+vr6QkJD///////+BgYGDg4P+/v7Hx8eOjo6BgYH09PT7+/v///////+MjIz9/f3////////Y2Nj6+vrPz8+BgYH9/f3///+3t7f///+Ghob///+AgICDg4P///+IiIj///////+CgoL6+vqmpqb////////t7e3////////////b29vj4+PNzc3y8vLl5eXv7+/U1NTDw8O8vLyRkZH////x8fGJiYmZmZnDw8Pf39/S0tLT09PCwsKfn5/4+PjV1dWlpaWwsLCjo6OsrKzj4+OZmZnCwsLq6uqurq7///+AgICfn5+Tk5OFhYXCwsLJycmYmJjU1NS/v79wPZvPAAAAdnRSTlMAcvoPxiTEAsby9L8p/eusNEoJBlEZ2Pb67nz25fVGOv1Eh+RW7oyC/ToXzkALzmqTe8BJHmf9Uu+n/B2Dnt7/+6MvEP2ZKrmzXHIx2dScYv6wkf3o3SL+/uDhqLbnuNrVV4u4ie7LNGlhweeUnrTsZOjkis/PjpWtfQAACfhJREFUaN7tmXlbGksWxtlMEwRUVjUgrSQqEAQccXdQQRUVVYxqoolqjGa9WW7uW25Xv/pUdxe9q2TM88zMM55/aE5V1/Lr03XeqrZYHuzBHuzB/vPmX+hzgdmcyh/sXrIx95LKPQ64/JoG5oaHHVztzya8Ssl0rV1PfO6A03YbR4xdzUBnblbgXphZm2hv+W0z9bW0+H7tjmL9d2w6VDPon7XX/CsuxR2fTcr1hervk+oWBM9KDa0bLqVys5pOn1vTrxfvG6SrCT3HpwNiS3O1Gzt/E8dN5RHVadNAsL6aXB9ch3/9zWyUdDF/Bqh8/ngm2Shpkp+QB49xEdJy3MbgW4UjaVQ42nola73ywDWt5XhKpIcWbP4h9F3CIOuOEOodiwNz4wvdDsDW/N/PMYPhb1GiGOMY82CiSeWWObYgXsI2SWo4tq7jusOco9xC7yAG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\";\nexport const laserActiveImage: string =\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAuwAAAAvCAMAAACPHW/9AAAAwFBMVEVHcExUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFUyNFVydJUyNFUyNFUyNFUyNH8/v5UyNFUyNFUyNFVydJUyNFUyNFUyNFVydJUyNFVydL3/f1YytNUyNFUyNFUyNHx+/ve9fbp+PnR8fNUyNGF2N9009q15+uW3ePD7O+l4+dv0dlv0dj///9Ujp4pAAAAP3RSTlMAiXJnBFsIARM5oA1+UKsuG5W3JEULBishQj5iAm0QkTQZ/h5MF3snWISbSHb8plMFjfjv9Oeyua3Ww9/Nn4y/IgemAAAIrElEQVR42u2da1saOxCAq8jRVuql0qOVIgcvgHhBrBbUYv//vzpzySSTZBeWqo8fOm+E9Vv3eXxnOptNJh8+vD3rhvFC3lHR73/GmmEsxdKKVY+N3ONFN3OT8O+S/GMYnmXtid0rCJAy7b3nrPDyQn5dnk3DiFnaoeJ4Ife98ZnqTnTSPHZ38R0ezWPDMF6BeY6lseK0F+Ej3Vl1MJ1EZ78rmXrmBvxWTLcCO4axU8WUEsk2nIMhJsh6Et75HnQn10l1NB093xB9F9p4UsBBKXuGsQSlIuXSScSQ/Og8Ch9097aT66I6mo6S74i1c++mn7G/v4+fQrYNYymKPWLBEvEkOtD7LhoPvmN+R93R9sR1UR1FR8n7/cqS/oejjI+G8UIyqbb9NQ4NtB6MJ99J99j2deU6q35AnrPDFew99FcY+MN8K6VpGHMpVecwQL5p/1h+dL6/Bwm+i9k92M6yY2IPrpPqaLqT2omrR7hk9l4ETvEHRuAzD8OogNNFgUpd8DeRhgYGACkPvqPuO5jc2XZM7SGxK9dRdRSdknNicIy+Ey/xyDMYDRR1dzGMaihrHKCUxweFhALpD8qj76Q71jLOdknt6y6xB9dZdRCddU4ibpSgdA606q2cWqtWq7VqfDWMUpwk8BVRd99xPHAYkP6oPPkOurPtVMlwaneyU2KHZ1NxHVVvXqDm3uXC0GuR1Nrr+J7bODyr9IGByNUwYtr+wrYEgcClJCZ0FJD6YDz5Drqz7Vi3U2oX2amKgcR+1nWuk+okelmOrmVWB6XxVi9xBHpFNHoNw0gpUkU8WsUfCYoQBLW2uA/Cj0aQ353tBydcyHAdQ8+na5TYsYg52GPXUXUwnbXW2TnC/atKbO+x47xxnrFiGBXIxEGbkoCQAHD2k/CgO2T3JtkOT6ldl9q17JtUxOz1xXXM6WC6N5qVVtm6B2ZfRmrnPo9Xxkxn3InYlWEYGudFDOjDpHEAyin7UXoQnnVn27mQodQusksVw0UMuj6CrM6mU7ZO/6ehIFNZ28uNXjudFUPNJxz8ZRgxw09eDbgEQCEdERwCSn+X+EF48B11B9uxkqFCZmNjk4t2/3xKFTsl9m9Ndh1N7zUa5eWHZO1Y7qFzW+7/GgZ+AVvXW1v0RR/DKMGZgldAFJKAcP7vDhP30fkG6I7ZnWynQoZS+9ev/ISKz6euioHEDkWMdx1UJ8Wdz+NOqEZU1vaJW9ntxBZ+5nzhYRgJJEYBKhQoAjL3wXr0nXRH20+bnNpdHQNPqCQ7VzGS2C9GXnUQncQe+nyNZcjsegZMZ1NgMp0Aj8Av5AF5Qu6RH8wdcctcBY49v42/m6CC8oN8YXnu2CSyivwi01A5dO8RJZxMp+jl8/Pzee+yXasPJLV3pWj3slMVgxV78xTyunN93KG8HWoqjKkZfKZb06A6u462P4DtTyT7Pdn+g3S/I9tvyfYrHInpJPvxbzP+79Qc//BBddEdPLm9cvmRZCfd78t0d7ZP2fbn3mq7VcfU7uqYWPYjnnekKmYAiV1cZ9W5MnGmo+jadQotSuwPvySxR64H1dl2dh1/LLMbLHyku8/sV2z6rU/tJPvTvbhO1cSjtx2E5NzeoNT++SLUMaWy1yPZOZ+L7VtTlP3ndPqFbJ9M0irmKVQxktddYpfMTrofp5ndMNlF9WNnep7ZXWIH2x+C7uT6Y5zaWfZvy8o+lPIF8/oW6z5F3Sec2UNiDxX7vS7Z7+6KqhjU3TK7kVTsKrOz7XeuaM/KGK5iojpmSmU7uT43s0c1Oz2fNs7P8elUlewzrGJwkO6+Yp/oil1ndl2ySxnjXD9OUrv9vU12pzqNUMWEZ9TwiPoUinYpYySzu0dUKmNKa3Y9G0MTj5doO0/G4BzMDAZ+fZrRXEw0FePLmHQu5l5l9rRmvzLZjeLUfhW7ns3GJM+nfj5mqlzHB9Ti2Zh8nr2l5tnjF/67qL9+PxomJYd6ziZ6bVQwz24Y5XPt2SQ7jvDGiebZr7Np9irz7Okb1IvsDeqKjNIXqJ3s/elQvWOS6Rz1psneoRrlL1D16yN+gxpeoPplBLslb1BXy9+ghrUx3cK1Mb2CtTGN4oWMWv6Ol1/nfnkvRStkeJmMrZExooUxTo4E8kjWioXFYdHSsEZj0dqYSqseLwuQNY9h0WMjW0Yz9sTrHnnFY0fu3jCcCR2vc77ocbwyztf/hmWPbtVjbf6qR1nP3o3Xs9fdevaa3yeithz5bRpxMMT6Fy1o53vlj61tN+I17JEX2Xr282SDh9/TIbs5eD37YDRvPXvpTqV6vcI+Jdou5f1XWzr0fwL5ZiW+a9uZY0T7lBpzNioFsfVOJdr9WXGnkt+DulG+B7Vk+3eyZa+m4qCdbEBVwWCbT41Ke1H1/tOgdbtoE6reg3qa7kHd1HtQo+4Ce2l3gfLeAoO4X0YSBfWstUAr7Bo3jMXtBdiatMGA7i5Qj3pshO4C4rokdtVdwPeNOYv7xnD7o6W6xnzWoTBIWsdwRFjrGGNBw5ikT4YyelDaN+ZU+sYcUp+k4r4xlTqCHc7radcsagiWBINvCGYdwYxqHcFO855g1BWMWs2VtwRTHcHQ9aOoI9jcXo/S3NEP/3tOHBSuRV4WGNbq0ajW7DFr+Mg9F2Oy5qfS6/Eg9HpUib2ki+8ed/HtL27iK91PS9ugWhtf4zW6+H7MO/lux518ky6+2vWsZ3VRf/ZqzdnD70l39m1rz268eoN2TML9/Vi90J/9ZE5/9kUnbyx77gYOfdqGHbxhvPLRGycFZ2+EkzfO+LQZOXnjZi0/Z6boTKVFJyrJLy84UcmOVDJefqhSctDYnDOVotPy3GGQ1Q7LO8JhZ+UZ731cHoqojsuT0/Ju1uYeDpmfg/pmp6DaMajGWx2EOvcc1OTg32oHXN+89HxrO+DaeNMjrqsd7M5Huxfy/Y9ZM4wlWVoyZ+mHd2LdMF7Ma5j4P+hE04Z78rHKAAAAAElFTkSuQmCC\";\nexport const laserPausedImage: string =\n \"data:image/png;base64,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\";\nexport const cameraImage: string =\n \"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MCA1MCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik0xNyA1Yy0uOCAwLTEuNC41LTEuOCAxLS40LjUtLjcgMS0xLjEgMS41cy0uNiAxLS44IDEuM2wtLjMuM0gzYy0xLjYgMC0zIDEuNC0zIDN2MjdjMCAxLjYgMS40IDMgMyAzaDQ0YzEuNiAwIDMtMS40IDMtM3YtMjdjMC0xLjYtMS40LTMtMy0zSDM3bC0uMy0uM2MtLjItLjMtLjUtLjctLjgtMS4ycy0uNi0xLTEuMS0xLjVjLS40LS41LTEtMS0xLjgtMXptMCAyaDE2Yy0uMSAwIC4xIDAgLjMuM3MuNS44LjggMS4zLjcgMSAxLjEgMS41IDEgMSAxLjggMWgxMGMuNiAwIDEgLjQgMSAxdjI3YzAgLjYtLjQgMS0xIDFIM2MtLjYgMC0xLS40LTEtMXYtMjdjMC0uNi40LTEgMS0xaDEwYy44IDAgMS40LS41IDEuOC0xcy44LTEgMS4xLTEuNS42LTEgLjgtMS4yLjQtLjMuMy0uM3ptOCA0Yy03LjIgMC0xMyA1LjgtMTMgMTNzNS44IDEzIDEzIDEzIDEzLTUuOCAxMy0xMy01LjgtMTMtMTMtMTN6bTAgMmM2LjEgMCAxMSA0LjkgMTEgMTFzLTQuOSAxMS0xMSAxMS0xMS00LjktMTEtMTEgNC45LTExIDExLTExek04IDE0Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMmgxYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMnptMTcgMWMtNSAwLTkgNC05IDlzNCA5IDkgOSA5LTQgOS05LTQtOS05LTl6bTAgMmMzLjkgMCA3IDMuMSA3IDdzLTMuMSA3LTcgNy03LTMuMS03LTcgMy4xLTcgNy03eiIvPjwvc3ZnPgo=\";\nexport const folderImage: string =\n \"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzIgMTcyIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTEwLjMgMTMuOEM0LjcgMTMuOCAwIDE4LjQgMCAyNHYxMjdjLS4yLjctLjEgMS42LjIgMi4zIDEgNC43IDUuMiA4LjMgMTAuMSA4LjNoMTM0LjJjNS4xIDAgOS4zLTMuOSAxMC04LjhsLjItLjd2LS4ybC4xLS41di0uMWwxNy05Mi4zLjItLjN2LS4zYzAtNS43LTQuNy0xMC4zLTEwLjMtMTAuM1YzNy44YzAtNS42LTQuNy0xMC4zLTEwLjMtMTAuM0g2MmE3IDcgMCAwIDEtMS0xYy0uOS0xLTEuOS0yLjUtMy00LjItMS0xLjgtMi4yLTMuNi0zLjYtNS4ycy0zLjQtMy4zLTYuMi0zLjN6bTAgNi44aDM3LjljLS4zIDAgLjIgMCAxIDEgLjkgMSAxLjkgMi42IDMgNC4zYTQxIDQxIDAgMCAwIDMuNiA1LjJjMS40IDEuNiAzLjMgMy4zIDYuMSAzLjNoODkuNWMxLjkgMCAzLjQgMS41IDMuNCAzLjR2MTAuNEgyNy41Yy01LjQgMC05LjcgNC4zLTEwIDkuNmgtLjJsLS4xLjctMTAuMyA1NS43VjI0YzAtMiAxLjUtMy41IDMuNC0zLjV6TTI3LjUgNTVoMTM0LjJjMiAwIDMuNCAxLjUgMy40IDMuNWwtMTYuOSA5MS4ydi4zbC0uMi40VjE1MWwtLjIuNnYuN2EzLjQgMy40IDAgMCAxLTMuMyAyLjRIMTAuM2MtMiAwLTMuNC0xLjUtMy40LTMuNGwxNy05Mi4zLjItLjN2LS4zYzAtMiAxLjUtMy41IDMuNC0zLjV6Ii8+PC9zdmc+Cg==\";\nexport const switchCameraImage: string =\n \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik0yNi4xNCA4YTQuOTkgNC45OSAwIDAgMC00LjE2IDIuMjI3bC0yLjIxOCAzLjMyOGExLjAwMyAxLjAwMyAwIDAgMS0uODMyLjQ0NUgxOHYtMmMwLTEuMTAyLS44OTgtMi0yLTJoLTZjLTEuMTAyIDAtMiAuODk4LTIgMnYySDVjLTEuNjUyIDAtMyAxLjM0OC0zIDN2MzZjMCAxLjY1MiAxLjM0OCAzIDMgM2g1NGMxLjY1MiAwIDMtMS4zNDggMy0zVjE3YzAtMS42NTItMS4zNDgtMy0zLTNoLTN2LTFjMC0xLjEwMi0uODk4LTItMi0yaC0yYy0xLjEwMiAwLTIgLjg5OC0yIDJ2MWgtNC45MzhhLjk5Ny45OTcgMCAwIDEtLjgyOC0uNDQxbC0yLjI1NC0zLjM1MkE1LjAwMSA1LjAwMSAwIDAgMCAzNy44MjggOHptMCAyaDExLjY4OGMxIDAgMS45MzQuNDk2IDIuNDkyIDEuMzI0bDIuMjU0IDMuMzUyQTIuOTk4IDIuOTk4IDAgMCAwIDQ1LjA2MyAxNkg1OWMuNTUgMCAxIC40NSAxIDF2MzZjMCAuNTUtLjQ1IDEtMSAxSDVjLS41NSAwLTEtLjQ1LTEtMVYxN2MwLS41NS40NS0xIDEtMWgxMy45M2MxLjAwNCAwIDEuOTM3LS41IDIuNDk2LTEuMzM2bDIuMjE5LTMuMzI4QTIuOTk4IDIuOTk4IDAgMCAxIDI2LjE0IDEwek0xMCAxMmg2djJoLTZ6bTQyIDFoMnYxaC0yem0tMjAgNWMtNS4yOSAwLTEwLjI0NiAyLjgzNi0xMi45MzQgNy4zOThhLjk5Ni45OTYgMCAwIDAgLjM1NiAxLjM2OC45OTcuOTk3IDAgMCAwIDEuMzY3LS4zNTZBMTMuMDY1IDEzLjA2NSAwIDAgMSAzMiAyMGM3LjE2OCAwIDEzIDUuODMyIDEzIDEzIDAgLjE4OC0uMDE2LjM3NS0uMDIzLjU2M2wtMi4yNy0yLjI3YTEgMSAwIDEgMC0xLjQxNCAxLjQxNGw0IDRjLjE5NS4xOTUuNDUuMjkzLjcwNy4yOTNhLjk5My45OTMgMCAwIDAgLjcwNy0uMjkzbDQtNGExIDEgMCAxIDAtMS40MTQtMS40MTRsLTIuMzIgMi4zMTZjLjAxMS0uMjAzLjAyNy0uNDA2LjAyNy0uNjA5IDAtOC4yNy02LjczLTE1LTE1LTE1ek0xOCAyOWExIDEgMCAwIDAtLjcwNy4yOTNsLTQgNGExIDEgMCAxIDAgMS40MTQgMS40MTRsMi4zMTMtMi4zMTZjLS4wMDguMjAzLS4wMi40MDYtLjAyLjYwOSAwIDguMjcgNi43MyAxNSAxNSAxNSA1LjM2NyAwIDEwLjM2LTIuODk4IDEzLjAyNy03LjU2M2EuOTk5Ljk5OSAwIDEgMC0xLjczNC0uOTkyQTEzLjA0MiAxMy4wNDIgMCAwIDEgMzIgNDZjLTcuMTY4IDAtMTMtNS44MzItMTMtMTMgMC0uMTg4LjAxMi0uMzc5LjAyLS41NjZsMi4yNzMgMi4yNzNjLjE5NS4xOTUuNDUuMjkzLjcwNy4yOTNhMSAxIDAgMCAwIC43MDctMS43MDdsLTQtNEExIDEgMCAwIDAgMTggMjl6bTkgMmMtLjU1NSAwLTEgLjQ0NS0xIDF2MmMwIC41NTUuNDQ1IDEgMSAxIC41NTUgMCAxLS40NDUgMS0xdi0yYzAtLjU1NS0uNDQ1LTEtMS0xem01IDBjLS41NTUgMC0xIC40NDUtMSAxdjJjMCAuNTU1LjQ0NSAxIDEgMSAuNTU1IDAgMS0uNDQ1IDEtMXYtMmMwLS41NTUtLjQ0NS0xLTEtMXptNSAwYy0uNTU1IDAtMSAuNDQ1LTEgMXYyYzAgLjU1NS40NDUgMSAxIDEgLjU1NSAwIDEtLjQ0NSAxLTF2LTJjMC0uNTU1LS40NDUtMS0xLTF6Ii8+PC9zdmc+Cg==\";\nexport const switchCameraFOVUltraWideImage: string =\n \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PGRlZnM+PGNsaXBQYXRoIGlkPSJiIj48cGF0aCBkPSJNMCAwaDEwMHYxMDBIMHoiLz48L2NsaXBQYXRoPjxmaWx0ZXIgaWQ9ImEiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeD0iMCUiIHk9IjAlIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIj48ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlR3JhcGhpYyIgdmFsdWVzPSIwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAxIDAiLz48L2ZpbHRlcj48bWFzayBpZD0iZCI+PGcgZmlsdGVyPSJ1cmwoI2EpIj48cGF0aCBmaWxsLW9wYWNpdHk9Ii41IiBkPSJNMCAwaDEwMHYxMDBIMHoiLz48L2c+PC9tYXNrPjxnIGlkPSJjIiBjbGlwLXBhdGg9InVybCgjYikiPjxwYXRoIGQ9Ik01MCAwYTUwIDUwIDAgMSAxIDAgMTAwQTUwIDUwIDAgMCAxIDUwIDBabTAgMCIgZmlsbD0iI2ZmZiIvPjwvZz48L2RlZnM+PHVzZSB4bGluazpocmVmPSIjYyIgbWFzaz0idXJsKCNkKSIvPjxwYXRoIGQ9Ik0yNC45NyA2NS44OGEzLjQ0IDMuNDQgMCAxIDAgMC02Ljg4IDMuNDQgMy40NCAwIDAgMCAwIDYuODhabTE5Ljk0LjQzYzcuMDMgMCAxMS45LTQuNDQgMTEuOS0xMS4wMyAwLTUuODctNC4xOS0xMC0xMC4xLTEwLTMuMTIgMC01LjYyIDEuMjUtNi45IDMuMjJoLS4xMmwuNzItOC41NmgxMi4xOGMxLjYzIDAgMi42My0xIDIuNjMtMi41NiAwLTEuNTctMS4wMy0yLjU3LTIuNjMtMi41N0gzOS4wNmMtMi41IDAtMy44NCAxLjAzLTQuMDYgMy42M2wtLjkgMTEuMzFWNTBjLS4xIDEuNzUuOTMgMy4yMiAzLjAyIDMuMjIgMS40NCAwIDIuMDctLjMxIDMuMzItMS41YTYuNDMgNi40MyAwIDAgMSA0LjQ3LTEuODRjMy4zNyAwIDUuNzUgMi4zIDUuNzUgNS41NiAwIDMuMzQtMi40MSA1Ljc1LTUuNzUgNS43NWE1Ljk3IDUuOTcgMCAwIDEtNS43Mi0zLjU2Yy0uNzItMS4xNi0xLjU2LTEuNjMtMi44MS0xLjYzLTEuNjYgMC0yLjcgMS0yLjcgMi42MyAwIC43OC4yIDEuNDMuNSAyLjEyIDEuNTcgMy4yOCA1LjgyIDUuNTYgMTAuNzMgNS41NlptMTcuMzctLjI1YzEuMTMgMCAxLjcyLS4zNCAyLjYtMS42OWw0LjQ2LTYuNjhoLjEzTDc0IDY0LjVjLjcyIDEuMDYgMS4zMSAxLjU2IDIuNTMgMS41NiAxLjY5IDAgMi45Ny0xLjA2IDIuOTctMi43NWEzLjE0IDMuMTQgMCAwIDAtLjY5LTEuOWwtNS4zMS03LjM4IDUuMjItNi45N2MuNjItLjc4Ljg0LTEuMzcuODQtMi4xOSAwLTEuNTYtMS4xOS0yLjYyLTIuOTQtMi42Mi0xLjEyIDAtMS44LjUzLTIuNjIgMS44MWwtNC4xOSA2LjRoLS4xMmwtNC4yOC02LjQzYy0uODUtMS4zNC0xLjUtMS43OC0yLjc1LTEuNzgtMS43MiAwLTMgMS4xOS0zIDIuNzUgMCAuNy4yMiAxLjM4LjY1IDEuOTRsNS4zNSA3LjI4LTUuMzggNy4xOWMtLjYuNzgtLjgxIDEuMzctLjgxIDIuMTIgMCAxLjUgMS4xNiAyLjUzIDIuODEgMi41M1ptMCAwIiBmaWxsPSIjZmZmIi8+PC9zdmc+\";\nexport const switchCameraFOVWideImage: string =\n \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+PGRlZnM+PGNsaXBQYXRoIGlkPSJiIj48cGF0aCBkPSJNMCAwaDEwMHYxMDBIMHoiLz48L2NsaXBQYXRoPjxmaWx0ZXIgaWQ9ImEiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeD0iMCUiIHk9IjAlIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIj48ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlR3JhcGhpYyIgdmFsdWVzPSIwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAxIDAiLz48L2ZpbHRlcj48bWFzayBpZD0iZCI+PGcgZmlsdGVyPSJ1cmwoI2EpIj48cGF0aCBmaWxsLW9wYWNpdHk9Ii41IiBkPSJNMCAwaDEwMHYxMDBIMHoiLz48L2c+PC9tYXNrPjxnIGlkPSJjIiBjbGlwLXBhdGg9InVybCgjYikiPjxwYXRoIGQ9Ik01MCAwYTUwIDUwIDAgMSAxIDAgMTAwQTUwIDUwIDAgMCAxIDUwIDBabTAgMCIgZmlsbD0iI2ZmZiIvPjwvZz48L2RlZnM+PHVzZSB4bGluazpocmVmPSIjYyIgbWFzaz0idXJsKCNkKSIvPjxwYXRoIGQ9Ik0zOC40IDY2LjA2YzEuODggMCAzLjItMS4yNSAzLjItMy4yMnYtMjQuOWMwLTIuMjItMS4zOC0zLjYtMy42Ni0zLjYtMS4zNSAwLTIuMzUuMi0zLjg1IDEuMmwtNi4xMiA0LjI0Yy0xIC42OS0xLjM4IDEuNDQtMS4zOCAyLjQgMCAxLjM4Ljk0IDIuMzIgMi4yNSAyLjMyLjY2IDAgMS4xMy0uMTYgMS43Mi0uNmw0LjUtMy4xMmguMTN2MjIuMDZjMCAxLjk0IDEuMzEgMy4yMiAzLjIyIDMuMjJabTE0LjQxLTIuNTZjMS4wNiAwIDEuNTYtLjQgMi40NC0xLjI1bDUuMjUtNS4yMiA1LjI1IDUuMTljLjg4Ljg3IDEuMzggMS4yNSAyLjQ0IDEuMjVBMi41IDIuNSAwIDAgMCA3MC43NSA2MWMwLS45NC0uNDctMS41Ni0xLjIyLTIuMjhsLTUuMzctNS40NCA1LjM3LTUuNDRjLjc1LS43NSAxLjIyLTEuMzcgMS4yMi0yLjNhMi41IDIuNSAwIDAgMC0yLjU2LTIuNWMtMS4wNiAwLTEuNTYuNC0yLjQ0IDEuMjdsLTUuMjUgNS4yMi01LjIyLTUuMjJjLS44Ny0uODctMS4zNy0xLjI1LTIuNDQtMS4yNWEyLjUgMi41IDAgMCAwLTIuNTYgMi40N2MwIC45Ny40NyAxLjU2IDEuMTkgMi4zMWw1LjM3IDUuNDQtNS4zNyA1LjQ0Yy0uNzUuNzItMS4xOSAxLjM0LTEuMTkgMi4yOGEyLjUgMi41IDAgMCAwIDIuNTMgMi41Wm0wIDAiIGZpbGw9IiNmZmYiLz48L3N2Zz4=\";\nexport const toggleTorchImage: string =\n \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik0zMC45MzggMWMtLjQ0Ni4wMi0xIC4yMy0xLjMxMy42NTZhMS4zMDIgMS4zMDIgMCAwIDAtLjA2My4wOTRsLTYuNzggMTIuMDYzLS4wNjMuMDkzYy0uNTU1Ljc4NS0uNzI3IDEuNzMtLjU5NCAyLjY1NmwtMjAuNSAyMi41NjMtLjAzMS4wMzFjLTEuMDcgMS4yMTktLjY2NCAzLjAxMi40NjggNC4xNTdoLjAzMmw0LjU5NCA0LjU5M2MuNTcuNTcgMS4yNjUuOTUgMiAxLjA2My43MzQuMTEzIDEuNTQ2LS4wNTUgMi4xNTYtLjU5NGguMDMxbDIyLjU2My0yMC41Yy45My4xMjkgMS44Ny0uMDQzIDIuNjU2LS41OTQuMDItLjAxNS4wNDMtLjAxNS4wNjItLjAzMWwuMDYzLS4wMzEgMTIuMDMxLTYuNzgyYy4wMzEtLjAxOS4wNjMtLjAzOS4wOTQtLjA2Mi40MjItLjMxMy42MzYtLjg2Ny42NTYtMS4zMTMuMDItLjQ0NS0uMDk4LS44NC0uMjUtMS4yNS0uMzA1LS44Mi0uODI4LTEuNjktMS41MzEtMi42ODctMS40MDctMS45OTItMy41MTYtNC4zOS01Ljc1LTYuNjI1LTIuMjM1LTIuMjM0LTQuNjAyLTQuMzEzLTYuNTk0LTUuNzE5LS45OTYtLjcwMy0xLjg2Ny0xLjIyNi0yLjY4OC0xLjUzMS0uNDEtLjE1Mi0uODA0LS4yNy0xLjI1LS4yNXptLjIxOCAyLjAzMWMuMDc4LjAxMi4xNTMuMDI0LjM0NC4wOTQuNTIuMTkxIDEuMy42MzMgMi4yMTkgMS4yODEgMS44MzYgMS4yOTcgNC4xNjggMy4zNTYgNi4zNDMgNS41MzIgMi4xNzYgMi4xNzUgNC4yMzUgNC40NzYgNS41MzIgNi4zMTIuNjQ4LjkxOCAxLjA5IDEuNzMgMS4yODEgMi4yNS4wNy4xOTEuMDgyLjI2Ni4wOTQuMzQ0TDM1LjEyNSAyNS41M2EuOTQ5Ljk0OSAwIDAgMC0uMTI1LjA5NGMtLjMxNi4yNDItLjg2LjMyOC0xLjQzOC4yMTlhMS4wNTYgMS4wNTYgMCAwIDAtLjE4Ny0uMDYzIDMuMTEzIDMuMTEzIDAgMCAxLTEuNDM4LS44MTJsLTYuOTA2LTYuOTA3Yy0uOTc2LS45ODQtMS4xMjktMi40MzctLjY1Ni0zLjA2MmEuNTMyLjUzMiAwIDAgMCAuMDk0LS4wOTR6bS04LjIxOCAxNS41OTRjLjE5OS4yOTcuNDMuNTg2LjY4Ny44NDRsNi45MDYgNi45MDZjLjI2Mi4yNjIuNTQzLjQ4OC44NDQuNjg4TDkuNTMxIDQ2LjkwNmMtLjA4Ni4wNzgtLjI1NC4xMzctLjUzMS4wOTQtLjI3Ny0uMDQzLS42MjktLjIyMy0uOTA2LS41TDMuNSA0MS45MDZjLS41NTktLjU2Ni0uNTYzLTEuMjYxLS40MDYtMS40Mzd6bS0yLjg3NSA4LjMxM2MtLjc3IDAtMS41NDMuMjkyLTIuMTI1Ljg3NWwtMi4xMjUgMi4xMjVhMy4wMjMgMy4wMjMgMCAwIDAgMCA0LjI1IDMuMDIzIDMuMDIzIDAgMCAwIDQuMjUgMGwyLjEyNS0yLjEyNmEzLjAyMyAzLjAyMyAwIDAgMCAwLTQuMjUgMy4wMDIgMy4wMDIgMCAwIDAtMi4xMjUtLjg3NXptMCAyYy4yNTMgMCAuNTE5LjA4Mi43MTguMjguMzk5LjQuMzk5IDEuMDQgMCAxLjQzOGwtMi4xMjUgMi4xMjVhMS4wMTQgMS4wMTQgMCAwIDEtMS40MzcgMCAxLjAxNCAxLjAxNCAwIDAgMSAwLTEuNDM3Yy40MjItLjQyMiAxLjY5OS0xLjY5NiAyLjEyNS0yLjEyNS4xOTktLjIuNDY1LS4yODIuNzE4LS4yODJ6Ii8+PC9zdmc+Cg==\";\nexport const transparentPixelImage: string =\n \"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\";\n","require('../../modules/es6.symbol');\nmodule.exports = require('../../modules/_core').Object.getOwnPropertySymbols;\n","module.exports = require(\"core-js/library/fn/object/get-own-property-symbols\");","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","require('../../modules/es7.object.get-own-property-descriptors');\nmodule.exports = require('../../modules/_core').Object.getOwnPropertyDescriptors;\n","module.exports = require(\"core-js/library/fn/object/get-own-property-descriptors\");","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","/**\n * A configuration object to request custom capabilities when accessing a camera.\n */\nexport interface CameraSettings {\n /**\n * The preferred video frame resolution.\n *\n * Not guaranteed to be precise: depending on device, browser and camera it could be different/lower than requested.\n *\n * Note that higher resolutions lead to slower processing times and higher memory requirements.\n */\n readonly resolutionPreference: CameraSettings.ResolutionPreference;\n}\n\nexport namespace CameraSettings {\n /**\n * Video frame resolution request.\n *\n * Not guaranteed to be precise: depending on device, browser and camera it could be different/lower than requested.\n *\n * Note that higher resolutions lead to slower processing times and higher memory requirements.\n */\n export enum ResolutionPreference {\n /**\n * Resolution of around 3840 x 2160.\n */\n ULTRA_HD = \"ultra-hd\",\n /**\n * Resolution of around 1920 x 1080.\n */\n FULL_HD = \"full-hd\",\n /**\n * Resolution of around 1280 x 720.\n */\n HD = \"hd\",\n }\n}\n","import { BrowserHelper } from \"../browserHelper\";\nimport { Camera } from \"../camera\";\nimport { CameraAccess } from \"../cameraAccess\";\nimport { CameraSettings } from \"../cameraSettings\";\nimport { CustomError } from \"../customError\";\nimport { Logger } from \"../logger\";\nimport { Scanner } from \"../scanner\";\nimport { GUI } from \"./gui\";\n\nexport enum MeteringMode {\n CONTINUOUS = \"continuous\",\n MANUAL = \"manual\",\n NONE = \"none\",\n SINGLE_SHOT = \"single-shot\",\n}\n\nexport enum CameraResolutionConstraint {\n ULTRA_HD = 0,\n FULL_HD = 1,\n HD = 2,\n SD = 3,\n NONE = 4,\n}\n\nexport interface ExtendedMediaTrackCapabilities extends MediaTrackCapabilities {\n focusMode?: MeteringMode[];\n torch?: boolean;\n zoom?: {\n max: number;\n min: number;\n step: number;\n };\n}\n\nexport interface ExtendedMediaTrackConstraintSet extends MediaTrackConstraintSet {\n focusMode?: MeteringMode;\n torch?: boolean;\n zoom?: number;\n}\n\n/**\n * A barcode picker utility class used to handle camera interaction.\n */\nexport class CameraManager {\n private static readonly cameraAccessTimeoutMs: number = 4000;\n private static readonly videoMetadataCheckTimeoutMs: number = 4000;\n private static readonly videoMetadataCheckIntervalMs: number = 50;\n private static readonly getCapabilitiesTimeoutMs: number = 500;\n private static readonly autofocusIntervalMs: number = 1500;\n private static readonly manualToAutofocusResumeTimeoutMs: number = 5000;\n private static readonly manualFocusWaitTimeoutMs: number = 400;\n private static readonly noCameraErrorParameters: { name: string; message: string } = {\n name: \"NoCameraAvailableError\",\n message: \"No camera available\",\n };\n private static readonly notReadableErrorParameters: { name: string; message: string } = {\n name: \"NotReadableError\",\n message: \"Could not initialize camera correctly\",\n };\n\n public selectedCamera?: Camera;\n public activeCamera?: Camera;\n public activeCameraSettings?: CameraSettings;\n\n private readonly scanner: Scanner;\n private readonly triggerCameraAccessError: (error: Error) => void;\n private readonly gui: GUI;\n private readonly postStreamInitializationListener: () => void = this.postStreamInitialization.bind(this);\n private readonly videoResizeListener: () => void = this.videoResizeHandle.bind(this);\n private readonly videoTrackEndedListener: () => void = this.videoTrackEndedRecovery.bind(this);\n private readonly videoTrackMuteListener: (event: Event) => void = this.videoTrackMuteRecovery.bind(this);\n private readonly triggerManualFocusListener: () => void = this.triggerManualFocus.bind(this);\n private readonly triggerZoomStartListener: () => void = this.triggerZoomStart.bind(this);\n private readonly triggerZoomMoveListener: () => void = this.triggerZoomMove.bind(this);\n private readonly checkCameraVideoStreamAccessIfVisibleListener: () => void =\n this.checkCameraVideoStreamAccessIfVisible.bind(this);\n\n private cameraType: Camera.Type;\n private selectedCameraSettings?: CameraSettings;\n private mediaStream?: MediaStream;\n private mediaTrackCapabilities?: ExtendedMediaTrackCapabilities;\n private cameraAccessTimeout: number;\n private cameraAccessRejectCallback?: (reason?: Error) => void;\n private videoMetadataCheckInterval: number;\n private getCapabilitiesTimeout: number;\n private autofocusInterval: number;\n private manualToAutofocusResumeTimeout: number;\n private manualFocusWaitTimeout: number;\n private cameraSwitcherEnabled: boolean;\n private cameraFOVSwitcherEnabled: boolean;\n private torchToggleEnabled: boolean;\n private tapToFocusEnabled: boolean;\n private pinchToZoomEnabled: boolean;\n private pinchToZoomDistance?: number;\n private pinchToZoomInitialZoom: number;\n private torchEnabled: boolean;\n private cameraInitializationPromise?: Promise;\n private abortedCameraInitializationResolveCallback?: (value: void | PromiseLike) => void;\n private cameraSetupPromise?: Promise;\n\n constructor(scanner: Scanner, triggerCameraAccessError: (error: Error) => void, gui: GUI) {\n this.scanner = scanner;\n this.triggerCameraAccessError = triggerCameraAccessError;\n this.gui = gui;\n this.cameraType = Camera.Type.BACK;\n }\n\n public setInteractionOptions(\n cameraSwitcherEnabled: boolean,\n cameraFOVSwitcherEnabled: boolean,\n torchToggleEnabled: boolean,\n tapToFocusEnabled: boolean,\n pinchToZoomEnabled: boolean\n ): void {\n this.cameraSwitcherEnabled = cameraSwitcherEnabled;\n this.cameraFOVSwitcherEnabled = cameraFOVSwitcherEnabled;\n this.torchToggleEnabled = torchToggleEnabled;\n this.tapToFocusEnabled = tapToFocusEnabled;\n this.pinchToZoomEnabled = pinchToZoomEnabled;\n }\n\n public isCameraSwitcherEnabled(): boolean {\n return this.cameraSwitcherEnabled;\n }\n\n public async setCameraSwitcherEnabled(enabled: boolean): Promise {\n this.cameraSwitcherEnabled = enabled;\n\n if (this.cameraSwitcherEnabled) {\n const cameras: Camera[] = await CameraAccess.getCameras();\n if (cameras.length > 1) {\n this.gui.setCameraSwitcherVisible(true);\n }\n } else {\n this.gui.setCameraSwitcherVisible(false);\n }\n }\n\n public isCameraFOVSwitcherEnabled(): boolean {\n return this.cameraFOVSwitcherEnabled;\n }\n\n public setCameraFOVSwitcherEnabled(enabled: boolean): void {\n this.cameraFOVSwitcherEnabled = enabled;\n\n if (this.isCameraFOVSwitcherAllowed() && this.activeCamera != null) {\n this.gui.setCameraFOVSwitcherState(CameraAccess.isIOSUltraWideBackCameraLabel(this.activeCamera.label));\n this.gui.setCameraFOVSwitcherVisible(true);\n } else {\n this.gui.setCameraFOVSwitcherVisible(false);\n }\n }\n\n public isTorchToggleEnabled(): boolean {\n return this.torchToggleEnabled;\n }\n\n public setTorchToggleEnabled(enabled: boolean): void {\n this.torchToggleEnabled = enabled;\n\n if (this.torchToggleEnabled) {\n if (this.mediaStream != null && this.mediaTrackCapabilities?.torch === true) {\n this.gui.setTorchTogglerVisible(true);\n }\n } else {\n this.gui.setTorchTogglerVisible(false);\n }\n }\n\n public isTapToFocusEnabled(): boolean {\n return this.tapToFocusEnabled;\n }\n\n public setTapToFocusEnabled(enabled: boolean): void {\n this.tapToFocusEnabled = enabled;\n\n if (this.mediaStream != null) {\n if (this.tapToFocusEnabled) {\n this.enableTapToFocusListeners();\n } else {\n this.disableTapToFocusListeners();\n }\n }\n }\n\n public isPinchToZoomEnabled(): boolean {\n return this.pinchToZoomEnabled;\n }\n\n public setPinchToZoomEnabled(enabled: boolean): void {\n this.pinchToZoomEnabled = enabled;\n\n if (this.mediaStream != null) {\n if (this.pinchToZoomEnabled) {\n this.enablePinchToZoomListeners();\n } else {\n this.disablePinchToZoomListeners();\n }\n }\n }\n\n public setInitialCameraType(cameraType: Camera.Type): void {\n this.cameraType = cameraType;\n }\n\n public async setCameraType(cameraType: Camera.Type): Promise {\n this.setInitialCameraType(cameraType);\n const mainCameraForType: Camera | undefined = CameraAccess.getMainCameraForType(\n await CameraAccess.getCameras(),\n cameraType\n );\n if (mainCameraForType != null && mainCameraForType !== this.selectedCamera) {\n return this.initializeCameraWithSettings(mainCameraForType, this.selectedCameraSettings);\n }\n }\n\n public setSelectedCamera(camera?: Camera): void {\n this.selectedCamera = camera;\n }\n\n public setSelectedCameraSettings(cameraSettings?: CameraSettings): void {\n this.selectedCameraSettings = cameraSettings;\n }\n\n public async setupCameras(): Promise {\n if (this.cameraSetupPromise != null) {\n return this.cameraSetupPromise;\n }\n this.cameraSetupPromise = this.setupCamerasAndStream();\n\n return this.cameraSetupPromise;\n }\n\n public async stopStream(cameraInitializationFailure: boolean = false): Promise {\n if (this.activeCamera != null) {\n this.activeCamera.currentResolution = undefined;\n }\n\n this.activeCamera = undefined;\n this.torchEnabled = false;\n this.gui.setTorchTogglerVisible(false);\n this.gui.setCameraFOVSwitcherVisible(false);\n\n if (this.mediaStream != null) {\n Logger.log(\n Logger.Level.DEBUG,\n `Stop camera video stream access${cameraInitializationFailure ? \" (abort access detection)\" : \"\"}:`,\n this.mediaStream\n );\n document.removeEventListener(\"visibilitychange\", this.checkCameraVideoStreamAccessIfVisibleListener);\n\n window.clearTimeout(this.cameraAccessTimeout);\n window.clearInterval(this.videoMetadataCheckInterval);\n window.clearTimeout(this.getCapabilitiesTimeout);\n window.clearTimeout(this.manualFocusWaitTimeout);\n window.clearTimeout(this.manualToAutofocusResumeTimeout);\n window.clearInterval(this.autofocusInterval);\n\n // Pause video and asynchronously stop tracks to prevent bug on some Android devices freezing the camera on Chrome\n this.gui.videoElement.pause();\n\n return new Promise((resolve) => {\n setTimeout(() => {\n this.mediaStream?.getVideoTracks().forEach((track) => {\n track.removeEventListener(\"ended\", this.videoTrackEndedListener);\n track.stop();\n });\n this.gui.videoElement.srcObject = null;\n this.mediaStream = undefined;\n this.mediaTrackCapabilities = undefined;\n if (!cameraInitializationFailure) {\n this.abortedCameraInitializationResolveCallback?.();\n }\n resolve();\n }, 0);\n });\n }\n }\n\n public async applyCameraSettings(cameraSettings?: CameraSettings): Promise {\n this.selectedCameraSettings = cameraSettings;\n\n if (this.activeCamera == null) {\n throw new CustomError(CameraManager.noCameraErrorParameters);\n }\n\n return this.initializeCameraWithSettings(this.activeCamera, cameraSettings);\n }\n\n public async reinitializeCamera(): Promise {\n if (this.activeCamera == null) {\n // If the initial camera isn't active yet, do nothing: if and when the camera is later confirmed to be the correct\n // (main with wanted type or only) one this method will be called again after the camera is set to be active\n Logger.log(Logger.Level.DEBUG, \"Camera reinitialization delayed\");\n } else {\n Logger.log(Logger.Level.DEBUG, \"Reinitialize camera:\", this.activeCamera);\n try {\n const camera: Camera = this.activeCamera;\n await this.stopStream();\n await this.initializeCameraWithSettings(camera, this.activeCameraSettings);\n } catch (error) {\n Logger.log(Logger.Level.WARN, \"Couldn't access camera:\", this.activeCamera, error);\n this.triggerCameraAccessError(error);\n throw error;\n }\n }\n }\n\n public async initializeCameraWithSettings(camera?: Camera, cameraSettings?: CameraSettings): Promise {\n if (this.cameraInitializationPromise != null) {\n await this.cameraInitializationPromise;\n }\n if (camera == null) {\n throw new CustomError(CameraManager.noCameraErrorParameters);\n }\n this.setSelectedCamera(camera);\n this.selectedCameraSettings = this.activeCameraSettings = cameraSettings;\n this.cameraInitializationPromise = this.initializeCameraAndCheckUpdatedSettings(camera);\n\n return this.cameraInitializationPromise;\n }\n\n public async setTorchEnabled(enabled: boolean): Promise {\n if (this.mediaStream != null && this.mediaTrackCapabilities?.torch === true) {\n this.torchEnabled = enabled;\n const videoTracks: MediaStreamTrack[] = this.mediaStream.getVideoTracks();\n // istanbul ignore else\n if (videoTracks.length !== 0 && typeof videoTracks[0].applyConstraints === \"function\") {\n await videoTracks[0].applyConstraints({ advanced: [{ torch: enabled }] });\n }\n }\n }\n\n public async toggleTorch(): Promise {\n this.torchEnabled = !this.torchEnabled;\n await this.setTorchEnabled(this.torchEnabled);\n }\n\n public async setZoom(zoomPercentage: number, currentZoom?: number): Promise {\n if (this.mediaStream != null && this.mediaTrackCapabilities?.zoom != null) {\n const videoTracks: MediaStreamTrack[] = this.mediaStream.getVideoTracks();\n // istanbul ignore else\n if (videoTracks.length !== 0 && typeof videoTracks[0].applyConstraints === \"function\") {\n const zoomRange: number = this.mediaTrackCapabilities.zoom.max - this.mediaTrackCapabilities.zoom.min;\n const targetZoom: number = Math.max(\n this.mediaTrackCapabilities.zoom.min,\n Math.min(\n (currentZoom ?? this.mediaTrackCapabilities.zoom.min) + zoomRange * zoomPercentage,\n this.mediaTrackCapabilities.zoom.max\n )\n );\n await videoTracks[0].applyConstraints({\n advanced: [{ zoom: targetZoom }],\n });\n }\n }\n }\n\n private isCameraFOVSwitcherAllowed(): boolean {\n return (\n this.cameraFOVSwitcherEnabled &&\n BrowserHelper.isBrokenIPhoneCameraDevice() &&\n BrowserHelper.isIOSDeviceWithExtendedCameraAccess() &&\n this.activeCamera != null &&\n (CameraAccess.isIOSWideBackCameraLabel(this.activeCamera.label) ||\n CameraAccess.isIOSUltraWideBackCameraLabel(this.activeCamera.label))\n );\n }\n\n private async recoverStreamIfNeeded(): Promise {\n // Due to non-standard behaviour, it could happen that the stream got interrupted while getting the list of\n // cameras, this isn't handled by the existing \"ended\" event listener as the active camera wasn't set until\n // before this, so manually reinitialize camera if needed\n const videoTracks: MediaStreamTrack[] | undefined = this.mediaStream?.getVideoTracks();\n if (videoTracks?.[0]?.readyState === \"ended\") {\n await this.reinitializeCamera();\n }\n }\n\n private async setupCamerasAndStream(): Promise {\n try {\n let initialCamera: Camera | undefined;\n if (this.selectedCamera == null) {\n this.gui.setVideoVisible(false);\n initialCamera = await this.accessInitialCamera();\n }\n const cameras: Camera[] = await CameraAccess.getCameras(false, true);\n\n if (this.cameraSwitcherEnabled && cameras.length > 1) {\n this.gui.setCameraSwitcherVisible(true);\n }\n\n // Get but don't save deviceId in initialCamera to differentiate it from final cameras\n const initialCameraDeviceId: string | undefined = this.mediaStream?.getVideoTracks()[0]?.getSettings?.().deviceId;\n if (this.mediaStream != null && initialCamera != null) {\n // We successfully accessed the initial camera\n const activeCamera: Camera | undefined =\n cameras.length === 1\n ? cameras[0]\n : cameras.find((camera) => {\n return (\n camera.deviceId === initialCameraDeviceId ||\n (camera.label !== \"\" && camera.label === initialCamera?.label)\n );\n });\n if (activeCamera != null) {\n CameraAccess.adjustCameraFromMediaStream(this.mediaStream, activeCamera);\n if (BrowserHelper.isDesktopDevice()) {\n // When the device is a desktop/laptop, we store the initial camera as it should be considered the main one\n // for its camera type and the currently set camera type (which might be different)\n CameraAccess.mainCameraForTypeOverridesOnDesktop.set(this.cameraType, activeCamera);\n CameraAccess.mainCameraForTypeOverridesOnDesktop.set(activeCamera.cameraType, activeCamera);\n }\n if (cameras.length === 1 || CameraAccess.getMainCameraForType(cameras, this.cameraType) === activeCamera) {\n Logger.log(\n Logger.Level.DEBUG,\n \"Initial camera access was correct (main camera), keep camera:\",\n activeCamera\n );\n this.setSelectedCamera(activeCamera);\n this.updateActiveCameraCurrentResolution(activeCamera);\n await this.recoverStreamIfNeeded();\n\n return;\n } else {\n Logger.log(Logger.Level.DEBUG, \"Initial camera access was incorrect (not main camera), change camera\", {\n ...initialCamera,\n deviceId: initialCameraDeviceId,\n });\n }\n } else {\n Logger.log(Logger.Level.DEBUG, \"Initial camera access was incorrect (unknown camera), change camera\", {\n ...initialCamera,\n deviceId: initialCameraDeviceId,\n });\n }\n }\n\n if (this.selectedCamera == null) {\n return await this.accessAutoselectedCamera(cameras);\n } else {\n return await this.initializeCameraWithSettings(this.selectedCamera, this.selectedCameraSettings);\n }\n } finally {\n this.gui.setVideoVisible(true);\n this.cameraSetupPromise = undefined;\n }\n }\n\n private getInitialCameraResolutionConstraint(): CameraResolutionConstraint {\n let cameraResolutionConstraint: CameraResolutionConstraint;\n switch (this.activeCameraSettings?.resolutionPreference) {\n case CameraSettings.ResolutionPreference.ULTRA_HD:\n cameraResolutionConstraint = CameraResolutionConstraint.ULTRA_HD;\n break;\n case CameraSettings.ResolutionPreference.FULL_HD:\n cameraResolutionConstraint = CameraResolutionConstraint.FULL_HD;\n break;\n case CameraSettings.ResolutionPreference.HD:\n default:\n cameraResolutionConstraint = CameraResolutionConstraint.HD;\n break;\n }\n\n return cameraResolutionConstraint;\n }\n\n private async accessAutoselectedCamera(cameras: Camera[]): Promise {\n cameras = CameraAccess.sortCamerasForCameraType(cameras, this.cameraType);\n\n let autoselectedCamera: Camera | undefined = cameras.shift();\n while (autoselectedCamera != null) {\n try {\n return await this.initializeCameraWithSettings(autoselectedCamera, this.selectedCameraSettings);\n } catch (error) {\n this.setSelectedCamera();\n if (cameras.length === 1) {\n this.gui.setCameraSwitcherVisible(false);\n }\n if (cameras.length >= 1) {\n Logger.log(Logger.Level.WARN, \"Couldn't access camera:\", autoselectedCamera, error);\n autoselectedCamera = cameras.shift();\n continue;\n }\n throw error;\n }\n }\n throw new CustomError(CameraManager.noCameraErrorParameters);\n }\n\n private async accessInitialCamera(): Promise {\n // Note that the initial camera's information (except deviceId) will be updated after a successful access\n const initialCamera: Camera = {\n deviceId: \"\",\n label: \"\",\n cameraType: this.cameraType,\n };\n\n try {\n await this.initializeCameraWithSettings(initialCamera, this.selectedCameraSettings);\n } catch {\n // Ignored\n } finally {\n this.setSelectedCamera();\n }\n\n return initialCamera;\n }\n\n private updateActiveCameraCurrentResolution(camera: Camera): void {\n if (this.gui.videoElement.videoWidth > 2 && this.gui.videoElement.videoHeight > 2) {\n camera.currentResolution = {\n width: this.gui.videoElement.videoWidth,\n height: this.gui.videoElement.videoHeight,\n };\n }\n // If it's the initial camera, do nothing: if and when the camera is later confirmed to be the\n // correct (main with wanted type or only) one this method will be called again with the right camera object\n if (camera.deviceId !== \"\") {\n this.activeCamera = camera;\n this.gui.setMirrorImageEnabled(this.gui.isMirrorImageEnabled(), false);\n if (this.isCameraFOVSwitcherAllowed()) {\n this.gui.setCameraFOVSwitcherState(CameraAccess.isIOSUltraWideBackCameraLabel(this.activeCamera.label));\n this.gui.setCameraFOVSwitcherVisible(true);\n }\n }\n }\n\n private postStreamInitialization(): void {\n window.clearTimeout(this.getCapabilitiesTimeout);\n this.getCapabilitiesTimeout = window.setTimeout(() => {\n this.storeStreamCapabilities();\n this.setupAutofocus();\n if (this.torchToggleEnabled && this.mediaStream != null && this.mediaTrackCapabilities?.torch === true) {\n this.gui.setTorchTogglerVisible(true);\n }\n }, CameraManager.getCapabilitiesTimeoutMs);\n }\n\n private videoResizeHandle(): void {\n if (this.activeCamera != null) {\n this.updateActiveCameraCurrentResolution(this.activeCamera);\n }\n }\n\n private checkCameraVideoStreamAccessIfVisible(): void {\n if (document.visibilityState === \"visible\") {\n Logger.log(Logger.Level.DEBUG, \"Page is visible again, waiting for camera video stream start...\");\n document.removeEventListener(\"visibilitychange\", this.checkCameraVideoStreamAccessIfVisibleListener);\n this.setCameraAccessTimeout();\n }\n }\n\n private async videoTrackEndedRecovery(): Promise {\n Logger.log(Logger.Level.DEBUG, 'Detected video track \"ended\" event, try to reinitialize camera');\n if (document.visibilityState !== \"visible\") {\n Logger.log(Logger.Level.DEBUG, \"Page is currently not visible, delay camera reinitialization until visible\");\n document.addEventListener(\"visibilitychange\", this.checkCameraVideoStreamAccessIfVisibleListener);\n } else {\n try {\n await this.reinitializeCamera();\n } catch {\n // Ignored\n }\n }\n }\n\n private async videoTrackMuteRecovery(event: Event): Promise {\n if (this.gui.videoElement.onloadeddata != null) {\n Logger.log(\n Logger.Level.DEBUG,\n `Detected video track \"${event.type}\" event, delay camera video stream access detection`\n );\n this.setCameraAccessTimeout();\n\n return;\n }\n\n const isMuteEvent: boolean = event.type === \"mute\";\n if (isMuteEvent !== this.gui.isCameraRecoveryVisible()) {\n Logger.log(\n Logger.Level.DEBUG,\n `Detected video track \"${event.type}\" event, ${isMuteEvent ? \"enable\" : \"disable\"} camera recovery`\n );\n this.gui.setCameraRecoveryVisible(isMuteEvent);\n }\n }\n\n private async triggerManualFocusForContinuous(): Promise {\n if (this.mediaStream == null) {\n return;\n }\n\n this.manualToAutofocusResumeTimeout = window.setTimeout(async () => {\n await this.triggerFocusMode(MeteringMode.CONTINUOUS);\n }, CameraManager.manualToAutofocusResumeTimeoutMs);\n\n let manualFocusResetNeeded: boolean = true;\n const videoTracks: MediaStreamTrack[] = this.mediaStream.getVideoTracks();\n // istanbul ignore else\n if (videoTracks.length !== 0 && typeof videoTracks[0].getConstraints === \"function\") {\n manualFocusResetNeeded =\n videoTracks[0].getConstraints().advanced?.some((constraint: ExtendedMediaTrackConstraintSet) => {\n return constraint.focusMode === MeteringMode.MANUAL;\n }) === true;\n }\n if (manualFocusResetNeeded) {\n await this.triggerFocusMode(MeteringMode.CONTINUOUS);\n this.manualFocusWaitTimeout = window.setTimeout(async () => {\n await this.triggerFocusMode(MeteringMode.MANUAL);\n }, CameraManager.manualFocusWaitTimeoutMs);\n } else {\n await this.triggerFocusMode(MeteringMode.MANUAL);\n }\n }\n\n private async triggerManualFocusForSingleShot(): Promise {\n window.clearInterval(this.autofocusInterval);\n\n this.manualToAutofocusResumeTimeout = window.setTimeout(() => {\n this.autofocusInterval = window.setInterval(this.triggerAutoFocus.bind(this), CameraManager.autofocusIntervalMs);\n }, CameraManager.manualToAutofocusResumeTimeoutMs);\n\n try {\n await this.triggerFocusMode(MeteringMode.SINGLE_SHOT);\n } catch {\n // istanbul ignore next\n }\n }\n\n private async triggerManualFocus(event?: MouseEvent | TouchEvent): Promise {\n if (event != null) {\n event.preventDefault();\n if (event.type === \"touchend\" && (event).touches.length !== 0) {\n return;\n }\n // Check if we were using pinch-to-zoom\n if (this.pinchToZoomDistance != null) {\n this.pinchToZoomDistance = undefined;\n\n return;\n }\n }\n window.clearTimeout(this.manualFocusWaitTimeout);\n window.clearTimeout(this.manualToAutofocusResumeTimeout);\n if (this.mediaStream != null && this.mediaTrackCapabilities != null) {\n const focusModeCapability: MeteringMode[] | undefined = this.mediaTrackCapabilities.focusMode;\n if (focusModeCapability instanceof Array) {\n if (\n focusModeCapability.includes(MeteringMode.CONTINUOUS) &&\n focusModeCapability.includes(MeteringMode.MANUAL)\n ) {\n await this.triggerManualFocusForContinuous();\n } else if (focusModeCapability.includes(MeteringMode.SINGLE_SHOT)) {\n await this.triggerManualFocusForSingleShot();\n }\n }\n }\n }\n\n private triggerZoomStart(event?: TouchEvent): void {\n if (event?.touches.length !== 2) {\n return;\n }\n event.preventDefault();\n this.pinchToZoomDistance = Math.hypot(\n (event.touches[1].screenX - event.touches[0].screenX) / screen.width,\n (event.touches[1].screenY - event.touches[0].screenY) / screen.height\n );\n if (this.mediaStream != null && this.mediaTrackCapabilities?.zoom != null) {\n const videoTracks: MediaStreamTrack[] = this.mediaStream.getVideoTracks();\n // istanbul ignore else\n if (videoTracks.length !== 0 && typeof videoTracks[0].getConstraints === \"function\") {\n this.pinchToZoomInitialZoom = this.mediaTrackCapabilities.zoom.min;\n const currentConstraints: MediaTrackConstraints = videoTracks[0].getConstraints();\n if (currentConstraints.advanced != null) {\n const currentZoomConstraint: ExtendedMediaTrackConstraintSet | undefined = currentConstraints.advanced.find(\n (constraint) => {\n return \"zoom\" in constraint;\n }\n );\n if (currentZoomConstraint?.zoom != null) {\n this.pinchToZoomInitialZoom = currentZoomConstraint.zoom;\n }\n }\n }\n }\n }\n\n private async triggerZoomMove(event?: TouchEvent): Promise {\n if (this.pinchToZoomDistance == null || event?.touches.length !== 2) {\n return;\n }\n event.preventDefault();\n await this.setZoom(\n (Math.hypot(\n (event.touches[1].screenX - event.touches[0].screenX) / screen.width,\n (event.touches[1].screenY - event.touches[0].screenY) / screen.height\n ) -\n this.pinchToZoomDistance) *\n 2,\n this.pinchToZoomInitialZoom\n );\n }\n\n private storeStreamCapabilities(): void {\n // istanbul ignore else\n if (this.mediaStream != null) {\n const videoTracks: MediaStreamTrack[] = this.mediaStream.getVideoTracks();\n // istanbul ignore else\n if (videoTracks.length !== 0 && typeof videoTracks[0].getCapabilities === \"function\") {\n this.mediaTrackCapabilities = videoTracks[0].getCapabilities();\n }\n }\n if (this.activeCamera != null) {\n this.scanner.reportCameraProperties(\n this.activeCamera.cameraType,\n this.mediaTrackCapabilities?.focusMode == null || // assume the camera supports autofocus by default\n this.mediaTrackCapabilities.focusMode.includes(MeteringMode.CONTINUOUS)\n );\n }\n }\n\n private setupAutofocus(): void {\n window.clearTimeout(this.manualFocusWaitTimeout);\n window.clearTimeout(this.manualToAutofocusResumeTimeout);\n // istanbul ignore else\n if (this.mediaStream != null && this.mediaTrackCapabilities != null) {\n const focusModeCapability: MeteringMode[] | undefined = this.mediaTrackCapabilities.focusMode;\n if (\n focusModeCapability instanceof Array &&\n !focusModeCapability.includes(MeteringMode.CONTINUOUS) &&\n focusModeCapability.includes(MeteringMode.SINGLE_SHOT)\n ) {\n window.clearInterval(this.autofocusInterval);\n this.autofocusInterval = window.setInterval(\n this.triggerAutoFocus.bind(this),\n CameraManager.autofocusIntervalMs\n );\n }\n }\n }\n\n private async triggerAutoFocus(): Promise {\n await this.triggerFocusMode(MeteringMode.SINGLE_SHOT);\n }\n\n private async triggerFocusMode(focusMode: MeteringMode): Promise {\n // istanbul ignore else\n if (this.mediaStream != null) {\n const videoTracks: MediaStreamTrack[] = this.mediaStream.getVideoTracks();\n if (videoTracks.length !== 0 && typeof videoTracks[0].applyConstraints === \"function\") {\n try {\n await videoTracks[0].applyConstraints({ advanced: ([{ focusMode }]) });\n } catch {\n // Ignored\n }\n }\n }\n }\n\n private enableTapToFocusListeners(): void {\n [\"touchend\", \"mousedown\"].forEach((eventName) => {\n this.gui.videoElement.addEventListener(eventName, this.triggerManualFocusListener);\n });\n }\n\n private enablePinchToZoomListeners(): void {\n this.gui.videoElement.addEventListener(\"touchstart\", this.triggerZoomStartListener);\n this.gui.videoElement.addEventListener(\"touchmove\", this.triggerZoomMoveListener);\n }\n\n private disableTapToFocusListeners(): void {\n [\"touchend\", \"mousedown\"].forEach((eventName) => {\n this.gui.videoElement.removeEventListener(eventName, this.triggerManualFocusListener);\n });\n }\n\n private disablePinchToZoomListeners(): void {\n this.gui.videoElement.removeEventListener(\"touchstart\", this.triggerZoomStartListener);\n this.gui.videoElement.removeEventListener(\"touchmove\", this.triggerZoomMoveListener);\n }\n\n private async initializeCameraAndCheckUpdatedSettings(camera: Camera): Promise {\n try {\n await this.initializeCameraForResolution(camera);\n // Check if due to asynchronous behaviour camera settings were changed while camera was initialized\n if (\n this.selectedCameraSettings !== this.activeCameraSettings &&\n (this.selectedCameraSettings == null ||\n this.activeCameraSettings == null ||\n (<(keyof CameraSettings)[]>Object.keys(this.selectedCameraSettings)).some((cameraSettingsProperty) => {\n return (\n (this.selectedCameraSettings)[cameraSettingsProperty] !==\n (this.activeCameraSettings)[cameraSettingsProperty]\n );\n }))\n ) {\n this.activeCameraSettings = this.selectedCameraSettings;\n\n return await this.initializeCameraAndCheckUpdatedSettings(camera);\n }\n } finally {\n this.cameraInitializationPromise = undefined;\n }\n }\n\n private async handleCameraInitializationError(\n camera: Camera,\n cameraResolutionConstraint: CameraResolutionConstraint,\n error: Error\n ): Promise {\n if (\n ![\"OverconstrainedError\", \"NotReadableError\"].includes(error.name) ||\n (error.name === \"NotReadableError\" && cameraResolutionConstraint === CameraResolutionConstraint.NONE)\n ) {\n // Camera is not accessible at all\n Logger.log(Logger.Level.DEBUG, \"Camera video stream access failure (unrecoverable error)\", camera, error);\n if (error.name !== \"NotAllowedError\") {\n CameraAccess.markCameraAsInaccessible(camera);\n }\n throw error;\n }\n if (error.name === \"OverconstrainedError\" && cameraResolutionConstraint === CameraResolutionConstraint.NONE) {\n // Camera device has changed deviceId\n // We can't rely on checking whether the constraint error property in the browsers reporting it is equal to\n // \"deviceId\" as it is used even when the error is due to a too high resolution being requested.\n // Whenever we get an OverconstrainedError or NotReadableError we keep trying until we are using no constraints\n // except for deviceId (cameraResolutionConstraint is NONE), if an error still happens we know said device doesn't\n // exist anymore (the device has changed deviceId).\n\n // If it's the initial camera, do nothing\n if (camera.deviceId === \"\") {\n Logger.log(\n Logger.Level.DEBUG,\n \"Camera video stream access failure (no camera with such type error)\",\n camera,\n error\n );\n throw error;\n }\n Logger.log(\n Logger.Level.DEBUG,\n \"Detected non-existent deviceId error, attempt to find and reaccess updated camera\",\n camera,\n error\n );\n const currentCameraDeviceId: string = camera.deviceId;\n // Refresh camera deviceId information\n await CameraAccess.getCameras(true);\n if (currentCameraDeviceId === camera.deviceId) {\n Logger.log(\n Logger.Level.DEBUG,\n \"Camera video stream access failure (updated camera not found after non-existent deviceId error)\",\n camera,\n error\n );\n CameraAccess.markCameraAsInaccessible(camera);\n\n throw error;\n } else {\n Logger.log(\n Logger.Level.DEBUG,\n \"Updated camera found (recovered from non-existent deviceId error), attempt to access it\",\n camera\n );\n\n return this.initializeCameraForResolution(camera);\n }\n }\n\n return this.initializeCameraForResolution(camera, cameraResolutionConstraint + 1);\n }\n\n private async updateStreamForResolution(\n camera: Camera,\n cameraResolutionConstraint: CameraResolutionConstraint\n ): Promise {\n if (this.mediaStream == null) {\n await this.initializeCameraForResolution(camera, cameraResolutionConstraint);\n } else {\n try {\n Logger.log(Logger.Level.DEBUG, \"Setting new resolution for active camera video stream...\");\n await this.mediaStream\n .getVideoTracks()[0]\n .applyConstraints(CameraAccess.getUserMediaVideoParams(cameraResolutionConstraint));\n await new Promise((resolve) => {\n this.gui.videoElement.addEventListener(\n \"timeupdate\",\n () => {\n resolve();\n },\n { once: true }\n );\n });\n Logger.log(Logger.Level.DEBUG, \"New active camera video stream resolution set\");\n } catch (error) {\n if (cameraResolutionConstraint === CameraResolutionConstraint.NONE) {\n throw error;\n } else {\n await this.updateStreamForResolution(camera, cameraResolutionConstraint + 1);\n }\n }\n }\n }\n\n private async initializeStreamForResolution(\n camera: Camera,\n cameraResolutionConstraint: CameraResolutionConstraint\n ): Promise {\n await this.stopStream();\n\n try {\n const stream: MediaStream = await CameraAccess.accessCameraStream(cameraResolutionConstraint, camera);\n Logger.log(Logger.Level.DEBUG, \"Camera accessed, waiting for camera video stream start...\");\n // Detect weird browser behaviour that on unsupported resolution returns a 2x2 video instead\n if (typeof stream.getVideoTracks()[0].getSettings === \"function\") {\n const mediaTrackSettings: MediaTrackSettings = stream.getVideoTracks()[0].getSettings();\n if (\n mediaTrackSettings.width != null &&\n mediaTrackSettings.height != null &&\n (mediaTrackSettings.width === 2 || mediaTrackSettings.height === 2)\n ) {\n Logger.log(Logger.Level.DEBUG, \"Camera video stream access failure (invalid video metadata):\", camera);\n if (cameraResolutionConstraint === CameraResolutionConstraint.NONE) {\n throw new CustomError(CameraManager.notReadableErrorParameters);\n } else {\n return this.initializeStreamForResolution(camera, cameraResolutionConstraint + 1);\n }\n }\n }\n this.mediaStream = stream;\n this.mediaStream.getVideoTracks().forEach((track) => {\n // Handle unexpected stream end events\n track.addEventListener(\"ended\", this.videoTrackEndedListener);\n // If the track gets muted we need to give the chance to manually reinitialize the camera to access it again\n // (this is also tried automatically if and when the page is detected to be visible again and the track in a\n // muted state).\n // This will add the listeners only once in case of multiple calls: identical listeners are ignored.\n track.addEventListener(\"mute\", this.videoTrackMuteListener);\n track.addEventListener(\"unmute\", this.videoTrackMuteListener);\n });\n\n try {\n await this.setupCameraStreamVideo(camera, stream);\n } catch (error) {\n if (cameraResolutionConstraint === CameraResolutionConstraint.NONE) {\n throw error;\n } else {\n return this.initializeStreamForResolution(camera, cameraResolutionConstraint + 1);\n }\n }\n } catch (error) {\n return this.handleCameraInitializationError(camera, cameraResolutionConstraint, error);\n }\n }\n\n private async initializeCameraForResolution(\n camera: Camera,\n cameraResolutionConstraint?: CameraResolutionConstraint\n ): Promise {\n this.gui.setCameraRecoveryVisible(false);\n\n const constraint: CameraResolutionConstraint =\n cameraResolutionConstraint ?? this.getInitialCameraResolutionConstraint();\n\n await (this.mediaStream != null && camera.deviceId !== \"\" && this.activeCamera?.deviceId === camera.deviceId\n ? this.updateStreamForResolution(camera, constraint)\n : this.initializeStreamForResolution(camera, constraint));\n }\n\n private setCameraAccessTimeout(): void {\n window.clearTimeout(this.cameraAccessTimeout);\n this.cameraAccessTimeout = window.setTimeout(async () => {\n if (document.visibilityState !== \"visible\") {\n Logger.log(Logger.Level.DEBUG, \"Page is currently not visible, delay camera video stream access detection\");\n document.addEventListener(\"visibilitychange\", this.checkCameraVideoStreamAccessIfVisibleListener);\n } else {\n await this.stopStream(true);\n this.cameraAccessRejectCallback?.(new CustomError(CameraManager.notReadableErrorParameters));\n }\n }, CameraManager.cameraAccessTimeoutMs);\n }\n\n private checkCameraAccess(camera: Camera): Promise {\n return new Promise((_, reject) => {\n this.cameraAccessRejectCallback = (reason?: Error) => {\n Logger.log(Logger.Level.DEBUG, \"Camera video stream access failure (video data load timeout):\", camera);\n this.gui.setCameraRecoveryVisible(true);\n reject(reason);\n };\n this.setCameraAccessTimeout();\n });\n }\n\n private async checkVideoMetadata(camera: Camera): Promise {\n return new Promise((resolve, reject) => {\n this.gui.videoElement.onloadeddata = () => {\n this.gui.videoElement.onloadeddata = null;\n window.clearTimeout(this.cameraAccessTimeout);\n\n // Detect weird browser behaviour that on unsupported resolution returns a 2x2 video instead\n // Also detect failed camera access with no error but also no video stream provided\n if (\n this.gui.videoElement.videoWidth > 2 &&\n this.gui.videoElement.videoHeight > 2 &&\n this.gui.videoElement.currentTime > 0\n ) {\n this.updateActiveCameraCurrentResolution(camera);\n Logger.log(Logger.Level.DEBUG, \"Camera video stream access success:\", camera);\n\n return resolve();\n }\n\n const videoMetadataCheckStartTime: number = performance.now();\n\n window.clearInterval(this.videoMetadataCheckInterval);\n this.videoMetadataCheckInterval = window.setInterval(async () => {\n // Detect weird browser behaviour that on unsupported resolution returns a 2x2 video instead\n // Also detect failed camera access with no error but also no video stream provided\n if (\n this.gui.videoElement.videoWidth <= 2 ||\n this.gui.videoElement.videoHeight <= 2 ||\n this.gui.videoElement.currentTime === 0\n ) {\n if (performance.now() - videoMetadataCheckStartTime > CameraManager.videoMetadataCheckTimeoutMs) {\n Logger.log(\n Logger.Level.DEBUG,\n \"Camera video stream access failure (valid video metadata timeout):\",\n camera\n );\n window.clearInterval(this.videoMetadataCheckInterval);\n await this.stopStream(true);\n\n return reject(new CustomError(CameraManager.notReadableErrorParameters));\n }\n\n return;\n }\n\n window.clearInterval(this.videoMetadataCheckInterval);\n this.updateActiveCameraCurrentResolution(camera);\n Logger.log(Logger.Level.DEBUG, \"Camera video stream access success:\", camera);\n\n resolve();\n }, CameraManager.videoMetadataCheckIntervalMs);\n };\n });\n }\n\n private setupCameraStreamVideo(camera: Camera, stream: MediaStream): Promise {\n // These will add the listeners only once in the case of multiple calls, identical listeners are ignored\n this.gui.videoElement.addEventListener(\"loadedmetadata\", this.postStreamInitializationListener);\n this.gui.videoElement.addEventListener(\"resize\", this.videoResizeListener);\n\n if (this.tapToFocusEnabled) {\n this.enableTapToFocusListeners();\n }\n if (this.pinchToZoomEnabled) {\n this.enablePinchToZoomListeners();\n }\n\n const cameraStreamVideoCheck: Promise = Promise.race([\n this.checkCameraAccess(camera),\n this.checkVideoMetadata(camera),\n // tslint:disable-next-line: promise-must-complete\n new Promise((resolve) => {\n this.abortedCameraInitializationResolveCallback = resolve;\n }),\n ]);\n\n this.gui.videoElement.srcObject = stream;\n this.gui.videoElement.load();\n this.gui.playVideo();\n\n // Report camera properties already now in order to have type information before autofocus information is available.\n // Even if later the initialization could fail nothing bad results from this.\n this.scanner.reportCameraProperties(camera.cameraType);\n\n return cameraStreamVideoCheck;\n }\n}\n","module.exports = require(\"core-js/library/fn/parse-int\");","require('../modules/es6.parse-int');\nmodule.exports = require('../modules/_core').parseInt;\n","import { Mutable } from \"../index\";\nimport { CameraResolutionConstraint } from \"./barcodePicker/cameraManager\";\nimport { BrowserCompatibility } from \"./browserCompatibility\";\nimport { BrowserHelper } from \"./browserHelper\";\nimport { Camera } from \"./camera\";\nimport { CustomError } from \"./customError\";\nimport { Logger } from \"./logger\";\nimport { UnsupportedBrowserError } from \"./unsupportedBrowserError\";\n\n/**\n * A helper object to interact with cameras.\n */\nexport namespace CameraAccess {\n /**\n * @hidden\n *\n * Standard error names mapping.\n */\n const standardErrorNamesMapping: Map = new Map([\n [\"DeviceCaptureError\", \"AbortError\"],\n [\"NotSupportedError\", \"AbortError\"],\n [\"ScreenCaptureError\", \"AbortError\"],\n [\"TabCaptureError\", \"AbortError\"],\n [\"TypeError\", \"AbortError\"],\n [\"InvalidStateError\", \"NotAllowedError\"],\n [\"MediaDeviceFailedDueToShutdown\", \"NotAllowedError\"],\n [\"MediaDeviceKillSwitchOn\", \"NotAllowedError\"],\n [\"PermissionDeniedError\", \"NotAllowedError\"],\n [\"PermissionDismissedError\", \"NotAllowedError\"],\n [\"DevicesNotFoundError\", \"NotFoundError\"],\n [\"SourceUnavailableError\", \"NotReadableError\"],\n [\"TrackStartError\", \"NotReadableError\"],\n [\"ConstraintNotSatisfiedError\", \"OverconstrainedError\"],\n ]);\n\n /**\n * @hidden\n *\n * Handle localized camera labels. Supported languages:\n * English, German, French, Spanish (spain), Portuguese (brasil), Portuguese (portugal), Italian,\n * Chinese (simplified), Chinese (traditional), Japanese, Russian, Turkish, Dutch, Arabic, Thai, Swedish,\n * Danish, Vietnamese, Norwegian, Polish, Finnish, Indonesian, Hebrew, Greek, Romanian, Hungarian, Czech,\n * Catalan, Slovak, Ukraininan, Croatian, Malay, Hindi.\n */\n const backCameraKeywords: string[] = [\n \"rear\",\n \"back\", // alternative\n \"rück\",\n \"arrière\",\n \"trasera\",\n \"trás\",\n \"traseira\",\n \"posteriore\",\n \"后面\",\n \"後面\",\n \"背面\",\n \"后置\", // alternative\n \"後置\", // alternative\n \"背置\", // alternative\n \"задней\",\n \"الخلفية\",\n \"후\",\n \"arka\",\n \"achterzijde\",\n \"หลัง\",\n \"baksidan\",\n \"bagside\",\n \"sau\",\n \"bak\",\n \"tylny\",\n \"takakamera\",\n \"belakang\",\n \"אחורית\",\n \"πίσω\",\n \"spate\",\n \"hátsó\",\n \"zadní\",\n \"darrere\",\n \"posterior\", // alternative\n \"zadná\",\n \"задня\",\n \"stražnja\",\n \"belakang\",\n \"बैक\",\n ];\n\n /**\n * @hidden\n *\n * Handle localized iOS Wide front (main) camera labels. Supported languages:\n * English, German, French, Spanish (spain), Portuguese (brasil), Portuguese (portugal), Italian,\n * Chinese (simplified), Chinese (traditional), Japanese, Russian, Turkish, Dutch, Arabic, Thai, Swedish,\n * Danish, Vietnamese, Norwegian, Polish, Finnish, Indonesian, Hebrew, Greek, Romanian, Hungarian, Czech,\n * Catalan, Slovak, Ukraininan, Croatian, Malay, Hindi.\n */\n const iosWideFrontCameraLabels: Set = new Set([\n \"Front Camera\",\n \"Frontkamera\",\n \"Appareil photo avant\",\n \"Cámara frontal\",\n \"Câmera Frontal\",\n \"Câmara frontal\",\n \"Fotocamera (anteriore)\",\n \"前置相机\",\n \"前置相機\",\n \"前面カメラ\",\n \"Камера на передней панели\",\n \"Ön Kamera\",\n \"Camera aan voorzijde\",\n \"الكاميرا الأمامية\",\n \"กล้องด้านหน้า\",\n \"Kamera på framsidan\",\n \"Forsidekamera\",\n \"Camera mặt trước\",\n \"Kamera foran\",\n \"Przedni aparat\",\n \"Etukamera\",\n \"Kamera Depan\",\n \"מצלמה קדמית\",\n \"Μπροστινή κάμερα\",\n \"Cameră față\",\n \"Elülső kamera\",\n \"Přední fotoaparát\",\n \"Càmera frontal\",\n \"Predná kamera\",\n \"Передня камера\",\n \"Prednja kamera\",\n \"Kamera Depan\",\n \"फ़्रंट कैमरा\",\n ]);\n\n /**\n * @hidden\n *\n * Handle localized iOS Wide back (main) camera labels. Supported languages:\n * English, German, French, Spanish (spain), Portuguese (brasil), Portuguese (portugal), Italian,\n * Chinese (simplified), Chinese (traditional), Japanese, Russian, Turkish, Dutch, Arabic, Thai, Swedish,\n * Danish, Vietnamese, Norwegian, Polish, Finnish, Indonesian, Hebrew, Greek, Romanian, Hungarian, Czech,\n * Catalan, Slovak, Ukraininan, Croatian, Malay, Hindi.\n */\n const iosWideBackCameraLabels: Set = new Set([\n \"Back Camera\",\n \"Rückkamera\",\n \"Caméra arrière\",\n \"Cámara trasera\",\n \"Câmera Traseira\",\n \"Câmara traseira\",\n \"Fotocamera (posteriore)\",\n \"后置相机\",\n \"後置相機\",\n \"背面カメラ\",\n \"Камера на задней панели\",\n \"Arka Kamera\",\n \"Camera aan achterzijde\",\n \"الكاميرا الخلفية\",\n \"กล้องด้านหลัง\",\n \"Kamera på baksidan\",\n \"Bagsidekamera\",\n \"Camera mặt sau\",\n \"Kamera bak\",\n \"Tylny aparat\",\n \"Takakamera\",\n \"Kamera Belakang\",\n \"מצלמה אחורית\",\n \"Πίσω κάμερα\",\n \"Cameră spate\",\n \"Hátsó kamera\",\n \"Zadní fotoaparát\",\n \"Càmera posterior\",\n \"Zadná kamera\",\n \"Задня камера\",\n \"Stražnja kamera\",\n \"Kamera Belakang\",\n \"बैक कैमरा\",\n ]);\n\n /**\n * @hidden\n *\n * Handle localized iOS UltraWide back camera labels. Supported languages:\n * English, German, French, Spanish (spain), Portuguese (brasil), Portuguese (portugal), Italian,\n * Chinese (simplified), Chinese (traditional), Japanese, Russian, Turkish, Dutch, Arabic, Thai, Swedish,\n * Danish, Vietnamese, Norwegian, Polish, Finnish, Indonesian, Hebrew, Greek, Romanian, Hungarian, Czech,\n * Catalan, Slovak, Ukraininan, Croatian, Malay, Hindi.\n */\n const iosUltraWideBackCameraLabels: Set = new Set([\n \"Back Ultra Wide Camera\",\n \"Rückseitige Ultra-Weitwinkelkamera\",\n \"Appareil photo ultra grand angle arrière\",\n \"Cámara trasera con ultra gran angular\",\n \"Câmera Ultra-Angular Traseira\",\n \"Câmara ultra grande angular traseira\",\n \"Fotocamera con ultra-grandangolo (posteriore)\",\n \"后置超广角相机\",\n \"後置超廣角相機\",\n \"背面超広角カメラ\",\n \"Задняя сверхширокоугольная камера\",\n \"Ultra Geniş Kamera Arka Yüzü\",\n \"Ultrabrede camera aan achterzijde\",\n \"كاميرا خلفية عريضة جدًا\",\n \"กล้องด้านหลังมุมกว้างอัลตร้า\",\n \"Ultravidvinkelkamera på baksidan\",\n \"Ultravidvinkelkameraet på bagsiden\",\n \"Camera cực rộng mặt sau\",\n \"Ultravidvinkelkamera bak\",\n \"Tylny aparat ultraszerokokątny\",\n \"Ultralaajakulmainen takakamera\",\n \"Kamera Ultra Lebar Belakang\",\n \"מצלמה אולטרה רחבה אחורית\",\n \"Πίσω υπερευρεία κάμερα\",\n \"Cameră cu obiectiv ultra‑superangular spate\",\n \"Hátsó, ultraszéles látószögű kamera\",\n \"Zadní ultra širokoúhlý fotoaparát\",\n \"Càmera posterior amb ultra gran angular\",\n \"Zadná ultraširokouhlá kamera\",\n \"Задня надширококутна камера\",\n \"Stražnja ultra široka kamera\",\n \"Kamera Ultralebar Belakang\",\n \"बैक अल्ट्रा वाइड कैमरा\",\n ]);\n\n /**\n * @hidden\n *\n * The (cached) list of available video devices, updated when [[getCameras]] is called for the first time and after\n * subsequent calls with the *refreshDevices* parameter enabled. The contained devices' order never changes, howver\n * their deviceIds could change when they are retrieved again after a camera access and stop in some situations.\n */\n let availableVideoDevices: MediaDeviceInfo[] | undefined;\n\n /**\n * @hidden\n *\n * Whether the currently cached available devices are out of date because of a `devicechange` event.\n */\n let outdatedDevices: boolean = false;\n\n /**\n * @hidden\n *\n * Overrides for main camera for a given camera type on a desktop/laptop device, set when accessing an initial camera.\n */\n export const mainCameraForTypeOverridesOnDesktop: Map = new Map();\n\n /**\n * @hidden\n *\n * To be accessed directly only for tests.\n *\n * The mapping from deviceIds to camera objects.\n */\n export const deviceIdToCameraObjects: Map = new Map();\n\n /**\n * @hidden\n *\n * To be accessed directly only for tests.\n *\n * The list of inaccessible deviceIds.\n */\n export const inaccessibleDeviceIds: Set = new Set();\n\n /**\n * @hidden\n *\n * Listen to `devicechange` events.\n */\n function deviceChangeListener(): void {\n outdatedDevices = true;\n }\n\n /**\n * @hidden\n *\n * @param label The camera label.\n * @returns Whether the label mentions the camera being a back-facing one.\n */\n function isBackCameraLabel(label: string): boolean {\n const lowercaseLabel: string = label.toLowerCase();\n\n return backCameraKeywords.some((keyword) => {\n return lowercaseLabel.includes(keyword);\n });\n }\n\n /**\n * @hidden\n *\n * @param label The camera label.\n * @returns Whether the label identifies the camera being the iOS Wide front (main) camera one.\n */\n export function isIOSWideFrontCameraLabel(label: string): boolean {\n return iosWideFrontCameraLabels.has(label);\n }\n\n /**\n * @hidden\n *\n * @param label The camera label.\n * @returns Whether the label identifies the camera being the iOS Wide back (main) camera one.\n */\n export function isIOSWideBackCameraLabel(label: string): boolean {\n return iosWideBackCameraLabels.has(label);\n }\n\n /**\n * @hidden\n *\n * @param label The camera label.\n * @returns Whether the label identifies the camera being the iOS UltraWide back camera one.\n */\n export function isIOSUltraWideBackCameraLabel(label: string): boolean {\n return iosUltraWideBackCameraLabels.has(label);\n }\n\n /**\n * @hidden\n *\n * Map non-standard error names to standard ones.\n *\n * @param error The error object.\n */\n function mapNonStandardErrorName(error: Error): void {\n let name: string;\n if (error.message === \"Invalid constraint\") {\n name = \"OverconstrainedError\";\n } else {\n name = standardErrorNamesMapping.get(error.name) ?? error.name;\n }\n Object.defineProperty(error, \"name\", {\n value: name,\n });\n }\n\n /**\n * @hidden\n *\n * Get the main camera for the given camera type.\n *\n * @param cameras The array of available [[Camera]] objects.\n * @param cameraType The wanted camera type.\n * @returns The main camera matching the wanted camera type.\n */\n export function getMainCameraForType(cameras: Camera[], cameraType: Camera.Type): Camera | undefined {\n let mainCameraForType: Camera | undefined;\n if (BrowserHelper.isDesktopDevice()) {\n // When the device is a desktop/laptop, the overridden camera for the given type or, if not present, the first\n // camera of the given type is the main one.\n if (mainCameraForTypeOverridesOnDesktop.has(cameraType)) {\n mainCameraForType = mainCameraForTypeOverridesOnDesktop.get(cameraType);\n } else {\n // Note that if the device is a desktop/laptop, with no labels all cameras are assumed to be front ones,\n // so this will return the first camera as the main front one and none for the back one.\n mainCameraForType = cameras.filter((camera) => {\n return camera.cameraType === cameraType;\n })[0];\n }\n } else {\n const allHaveBlankLabel: boolean = cameras.every((camera) => {\n return camera.label === \"\";\n });\n const allHaveNonEmptyLabel: boolean = cameras.every((camera) => {\n return camera.label !== \"\";\n });\n const someHaveLabel: boolean = cameras.length > 1 && !allHaveBlankLabel && !allHaveNonEmptyLabel;\n if (allHaveBlankLabel) {\n // When no camera label is available cameras are already in front to back order, assume main front camera is the\n // first one and main back camera is the last one.\n mainCameraForType = cameras[cameraType === Camera.Type.FRONT ? 0 : cameras.length - 1];\n } else if (someHaveLabel) {\n // When only a few cameras have labels, we may be in a webview where only labels from accessed stream are\n // available.\n const cameraOfType: Camera[] = cameras.filter((camera) => {\n return camera.cameraType === cameraType;\n });\n if (cameraOfType.length === 1) {\n mainCameraForType = cameraOfType[0];\n } else if (cameraOfType.length > 1) {\n // Assume main front camera is the first one and main back camera is the last one.\n mainCameraForType = cameraOfType[cameraType === Camera.Type.FRONT ? 0 : cameraOfType.length - 1];\n }\n } else {\n if (cameraType === Camera.Type.BACK && BrowserHelper.isBrokenIPhoneCameraDevice()) {\n // If available, find the UltraWide back camera and return it as the main world facing camera\n const ultraWideBackCamera: Camera | undefined = cameras.find((camera) => {\n return isIOSUltraWideBackCameraLabel(camera.label);\n });\n if (ultraWideBackCamera != null) {\n return ultraWideBackCamera;\n }\n }\n if (BrowserHelper.userAgentInfo.getOS().name === \"iOS\") {\n if (cameraType === Camera.Type.BACK) {\n // If available find the Wide back camera and return it as the main world facing camera\n const wideBackCamera: Camera | undefined = cameras.find((camera) => {\n return isIOSWideBackCameraLabel(camera.label);\n });\n if (wideBackCamera != null) {\n return wideBackCamera;\n }\n } else {\n // If available find the Wide front camera and return it as the main user facing camera\n const wideFrontCamera: Camera | undefined = cameras.find((camera) => {\n return isIOSWideFrontCameraLabel(camera.label);\n });\n if (wideFrontCamera != null) {\n return wideFrontCamera;\n }\n }\n }\n\n mainCameraForType = cameras\n .filter((camera) => {\n return camera.cameraType === cameraType;\n })\n // sort so that camera list looks like ['camera1 0', 'camera1 1', 'camera2 0', 'camera2 1']\n .sort((camera1, camera2) => {\n return camera1.label.localeCompare(camera2.label);\n })[0];\n }\n }\n\n return mainCameraForType;\n }\n\n /**\n * @hidden\n *\n * Sort the given cameras in order of priority of access based on the given camera type.\n *\n * @param cameras The array of available [[Camera]] objects.\n * @param cameraType The preferred camera type.\n * @returns The sorted cameras.\n */\n export function sortCamerasForCameraType(cameras: Camera[], cameraType: Camera.Type): Camera[] {\n function prioritizeMainCameraOverride(prioritizedCameras: Camera[], currentCameraType: Camera.Type): Camera[] {\n const mainCameraOverride: Camera | undefined = mainCameraForTypeOverridesOnDesktop.get(currentCameraType);\n if (mainCameraOverride != null && prioritizedCameras.includes(mainCameraOverride)) {\n prioritizedCameras = prioritizedCameras.filter((camera) => {\n return camera !== mainCameraOverride;\n });\n prioritizedCameras.unshift(mainCameraOverride);\n }\n\n return prioritizedCameras;\n }\n\n let frontCameras: Camera[] = cameras.filter((camera) => {\n return camera.cameraType === Camera.Type.FRONT;\n });\n let backCameras: Camera[] = cameras.filter((camera) => {\n return camera.cameraType === Camera.Type.BACK;\n });\n if (BrowserHelper.isDesktopDevice()) {\n // When the device is a desktop/laptop, the cameras for each type are already ordered, we move the overrides\n // first if present and change front / back group order if needed.\n frontCameras = prioritizeMainCameraOverride(frontCameras, Camera.Type.FRONT);\n backCameras = prioritizeMainCameraOverride(backCameras, Camera.Type.BACK);\n } else if (\n cameras.every((camera) => {\n return camera.label === \"\";\n })\n ) {\n // When no camera label is available cameras are already in front to back order, we assume front cameras are\n // ordered and back cameras are in reversed order (try to access last first), and we change front / back group\n // order if needed.\n backCameras.reverse();\n } else {\n frontCameras.sort((camera1, camera2) => {\n return camera1.label.localeCompare(camera2.label);\n });\n backCameras.sort((camera1, camera2) => {\n return camera1.label.localeCompare(camera2.label);\n });\n\n if (BrowserHelper.userAgentInfo.getOS().name === \"iOS\") {\n // If available, find the Wide front camera and move it as the top priority for front cameras\n void frontCameras.some((camera, index) => {\n return isIOSWideFrontCameraLabel(camera.label) && frontCameras.unshift(frontCameras.splice(index, 1)[0]) >= 0;\n });\n // If available, find the UltraWide back camera and move it as the second priority for back cameras\n // (it's moved to top priority here, but the Wide back camera will take the first position in a few lines)\n void backCameras.some((camera, index) => {\n return (\n isIOSUltraWideBackCameraLabel(camera.label) && backCameras.unshift(backCameras.splice(index, 1)[0]) >= 0\n );\n });\n // If available, find the Wide back camera and move it as the top priority for back cameras\n void backCameras.some((camera, index) => {\n return isIOSWideBackCameraLabel(camera.label) && backCameras.unshift(backCameras.splice(index, 1)[0]) >= 0;\n });\n }\n if (BrowserHelper.isBrokenIPhoneCameraDevice()) {\n // If available, find the UltraWide back camera and move it as the top priority for back cameras\n void backCameras.some((camera, index) => {\n return (\n isIOSUltraWideBackCameraLabel(camera.label) && backCameras.unshift(backCameras.splice(index, 1)[0]) >= 0\n );\n });\n }\n }\n\n return cameraType === Camera.Type.FRONT ? [...frontCameras, ...backCameras] : [...backCameras, ...frontCameras];\n }\n\n /**\n * @hidden\n *\n * Adjusts the camera's information based on the given currently active video stream.\n *\n * @param mediaStream The currently active `MediaStream` object.\n * @param camera The currently active [[Camera]] object associated with the video stream.\n */\n export function adjustCameraFromMediaStream(mediaStream: MediaStream, camera: Camera): void {\n const videoTracks: MediaStreamTrack[] = mediaStream.getVideoTracks();\n if (videoTracks.length !== 0) {\n const mediaStreamTrack: MediaStreamTrack = videoTracks[0];\n let mediaTrackSettings: MediaTrackSettings | undefined;\n if (typeof mediaStreamTrack.getSettings === \"function\") {\n mediaTrackSettings = mediaStreamTrack.getSettings();\n if (mediaTrackSettings?.facingMode != null && mediaTrackSettings.facingMode.length > 0) {\n (>camera).cameraType =\n mediaTrackSettings.facingMode === \"environment\" ? Camera.Type.BACK : Camera.Type.FRONT;\n }\n }\n if (mediaStreamTrack.label != null && mediaStreamTrack.label.length > 0) {\n (>camera).label = mediaStreamTrack.label;\n }\n }\n }\n\n /**\n * @hidden\n *\n * @param devices The list of available devices.\n * @returns The extracted list of accessible camera objects initialized from the given devices.\n */\n function extractAccessibleCamerasFromDevices(devices: MediaDeviceInfo[]): Camera[] {\n function createCamera(videoDevice: MediaDeviceInfo, index: number, videoDevices: MediaDeviceInfo[]): Camera {\n if (deviceIdToCameraObjects.has(videoDevice.deviceId)) {\n return deviceIdToCameraObjects.get(videoDevice.deviceId);\n }\n\n const label: string = videoDevice.label ?? \"\";\n let cameraType: Camera.Type;\n if (\n !BrowserHelper.isDesktopDevice() &&\n videoDevices.every((device) => {\n return device.label === \"\" && !deviceIdToCameraObjects.has(device.deviceId);\n })\n ) {\n // When the device is not a desktop/laptop and no camera label is available, assume the camera is a front one\n // if it's the only one or comes in the first half of the list of cameras (if an odd number of cameras is\n // available, it's more likely to have more back than front ones).\n cameraType =\n videoDevices.length === 1 || index + 1 <= Math.floor(videoDevices.length / 2)\n ? Camera.Type.FRONT\n : Camera.Type.BACK;\n } else {\n // Note that if the device is a desktop/laptop, unless the label specifies a back camera, a front one is assumed\n cameraType = isBackCameraLabel(label) ? Camera.Type.BACK : Camera.Type.FRONT;\n }\n\n return {\n deviceId: videoDevice.deviceId,\n label,\n cameraType,\n };\n }\n\n const cameras: Camera[] = devices\n .map(createCamera)\n .map((camera) => {\n // If it's the initial camera, do nothing\n if (camera.deviceId !== \"\") {\n deviceIdToCameraObjects.set(camera.deviceId, camera);\n }\n\n return camera;\n })\n .filter((camera) => {\n // Ignore infrared cameras as they often fail to be accessed and are not useful in any case\n return !/\\b(?:ir|infrared)\\b/i.test(camera.label);\n })\n .filter((camera) => {\n return !inaccessibleDeviceIds.has(camera.deviceId);\n });\n if (\n !BrowserHelper.isDesktopDevice() &&\n cameras.length > 1 &&\n !cameras.some((camera) => {\n return camera.cameraType === Camera.Type.BACK;\n })\n ) {\n // When the device is not a desktop/laptop check if cameras are labeled with resolution information, if that's the\n // case, take the higher - resolution one, otherwise pick the last camera (it's not true that the primary camera\n // is first in most scenarios) and mark it as the back one.\n let backCameraIndex: number = cameras.length - 1;\n\n const cameraResolutions: number[] = cameras.map((camera) => {\n const match: RegExpMatchArray | null = camera.label.match(/\\b([0-9]+)MP?\\b/i);\n if (match != null) {\n return parseInt(match[1], 10);\n }\n\n return NaN;\n });\n if (\n !cameraResolutions.some((cameraResolution) => {\n return isNaN(cameraResolution);\n })\n ) {\n backCameraIndex = cameraResolutions.lastIndexOf(Math.max(...cameraResolutions));\n }\n\n (>cameras[backCameraIndex]).cameraType = Camera.Type.BACK;\n }\n\n return cameras;\n }\n\n /**\n * @hidden\n *\n * @returns The stream, if necessary, accessed to provide access to complete device information\n */\n async function getStreamForDeviceAccessPermission(): Promise {\n // If there are video devices and all of them have no label it means we need to access a camera before we can get\n // the needed information\n if (\n availableVideoDevices != null &&\n availableVideoDevices.length > 0 &&\n availableVideoDevices.every((device) => {\n return device.label === \"\" && !deviceIdToCameraObjects.has(device.deviceId);\n })\n ) {\n try {\n return await navigator.mediaDevices.getUserMedia({\n video: true,\n audio: false,\n });\n } catch {\n // Ignored\n }\n }\n }\n\n /**\n * @hidden\n *\n * Checks and adjust cameras' deviceId information and related information if a change is detected. We can rely on the\n * fact that devices are returned in the same order even when deviceId information changes.\n *\n * @param oldAvailableDevices The old list of available devices before deviceId information was refreshed.\n * @param newAvailableDevices The new list of available devices after deviceId information was refreshed.\n */\n function checkAndUpdateCameraDeviceIdInformation(\n oldAvailableDevices: MediaDeviceInfo[],\n newAvailableDevices: MediaDeviceInfo[]\n ): void {\n if (\n newAvailableDevices.length > 0 &&\n oldAvailableDevices.length === newAvailableDevices.length &&\n !newAvailableDevices.every((device, index) => {\n return oldAvailableDevices[index].deviceId === device.deviceId;\n })\n ) {\n const deviceIdChanges: { [oldDeviceId: string]: string } = {};\n oldAvailableDevices.forEach((device, index) => {\n const camera: Camera | undefined = deviceIdToCameraObjects.get(device.deviceId);\n if (camera == null || camera.label !== (newAvailableDevices[index].label ?? \"\")) {\n return;\n }\n const newDeviceId: string = newAvailableDevices[index].deviceId;\n deviceIdChanges[camera.deviceId] = newDeviceId;\n if (inaccessibleDeviceIds.has(camera.deviceId)) {\n inaccessibleDeviceIds.add(newDeviceId);\n }\n (>camera).deviceId = newDeviceId;\n deviceIdToCameraObjects.set(newDeviceId, camera);\n });\n Logger.log(\n Logger.Level.DEBUG,\n \"Detected updated camera deviceId information and updated it accordingly\",\n deviceIdChanges\n );\n }\n }\n\n /**\n * Get a list of cameras (if any) available on the device, a camera access permission is requested to the user\n * the first time this method is called if needed.\n *\n * If the browser is incompatible the returned promise is rejected with a `UnsupportedBrowserError` error.\n *\n * When refreshing available devices, if updated deviceId information is detected, cameras' deviceId are updated\n * accordingly. This could happen after a camera access and stop in some situations.\n *\n * @param refreshDevices Force a call to refresh available video devices even when information is already available.\n * @param cameraAlreadyAccessed Hint that a camera has already been accessed before, avoiding a possible initial\n * camera access permission request on the first call, in cases this cannot be already reliably detected.\n * @returns A promise resolving to the array of available [[Camera]] objects (could be empty).\n */\n export async function getCameras(\n refreshDevices: boolean = false,\n cameraAlreadyAccessed: boolean = false\n ): Promise {\n const browserCompatibility: BrowserCompatibility = BrowserHelper.checkBrowserCompatibility();\n if (!browserCompatibility.fullSupport) {\n throw new UnsupportedBrowserError(browserCompatibility);\n }\n\n // This will add the listeners only once in case of multiple calls: identical listeners are ignored\n if (typeof navigator.mediaDevices.addEventListener === \"function\") {\n navigator.mediaDevices.addEventListener(\"devicechange\", deviceChangeListener);\n } else {\n // It's not a problem if this event is not supported, this would just never trigger\n navigator.mediaDevices.ondevicechange = deviceChangeListener;\n }\n\n if (availableVideoDevices == null || refreshDevices || outdatedDevices) {\n outdatedDevices = false;\n let stream: MediaStream | void;\n const oldAvailableDevices: MediaDeviceInfo[] = availableVideoDevices ?? [];\n availableVideoDevices = [];\n try {\n availableVideoDevices = await enumerateVideoDevices();\n if (!cameraAlreadyAccessed) {\n stream = await getStreamForDeviceAccessPermission();\n if (stream != null) {\n availableVideoDevices = await enumerateVideoDevices();\n }\n }\n Logger.log(Logger.Level.DEBUG, \"Camera list (devices):\", ...availableVideoDevices);\n checkAndUpdateCameraDeviceIdInformation(oldAvailableDevices, availableVideoDevices);\n } catch (error) {\n mapNonStandardErrorName(error);\n throw error;\n } finally {\n if (stream != null) {\n stream.getVideoTracks().forEach((track) => {\n track.stop();\n });\n }\n }\n }\n\n const cameras: Camera[] = extractAccessibleCamerasFromDevices(availableVideoDevices);\n\n Logger.log(Logger.Level.DEBUG, \"Camera list (cameras): \", ...cameras);\n\n // Return a copy of the array to allow for array mutations in other functions\n return [...cameras];\n }\n\n /**\n * @hidden\n *\n * Call `navigator.mediaDevices.getUserMedia` asynchronously in a `setTimeout` call.\n *\n * @param getUserMediaParams The parameters for the `navigator.mediaDevices.getUserMedia` call.\n * @returns A promise resolving when the camera is accessed.\n */\n function getUserMediaDelayed(getUserMediaParams: MediaStreamConstraints): Promise {\n Logger.log(Logger.Level.DEBUG, \"Attempt to access camera (parameters):\", getUserMediaParams.video);\n\n return new Promise((resolve, reject) => {\n window.setTimeout(() => {\n (\n navigator.mediaDevices.getUserMedia(getUserMediaParams) ??\n Promise.reject(new CustomError({ name: \"AbortError\" }))\n )\n .then(resolve)\n .catch(reject);\n }, 0);\n });\n }\n\n /**\n * @hidden\n *\n * Get the *getUserMedia* *video* parameters to be used given a resolution fallback level and the browser used.\n *\n * @param cameraResolutionConstraint The resolution constraint.\n * @returns The resulting *getUserMedia* *video* parameters.\n */\n export function getUserMediaVideoParams(\n cameraResolutionConstraint: CameraResolutionConstraint\n ): MediaTrackConstraints {\n const userMediaVideoParams: MediaTrackConstraints = {\n // @ts-ignore\n resizeMode: \"none\",\n };\n switch (cameraResolutionConstraint) {\n case CameraResolutionConstraint.ULTRA_HD:\n return {\n ...userMediaVideoParams,\n width: { min: 3200, ideal: 3840, max: 4096 },\n height: { min: 1800, ideal: 2160, max: 2400 },\n };\n case CameraResolutionConstraint.FULL_HD:\n return {\n ...userMediaVideoParams,\n width: { min: 1400, ideal: 1920, max: 2160 },\n height: { min: 900, ideal: 1080, max: 1440 },\n };\n case CameraResolutionConstraint.HD:\n return {\n ...userMediaVideoParams,\n width: { min: 960, ideal: 1280, max: 1440 },\n height: { min: 480, ideal: 720, max: 960 },\n };\n case CameraResolutionConstraint.SD:\n return {\n ...userMediaVideoParams,\n width: { min: 640, ideal: 640, max: 800 },\n height: { min: 480, ideal: 480, max: 600 },\n };\n case CameraResolutionConstraint.NONE:\n default:\n return {};\n }\n }\n\n /**\n * @hidden\n *\n * Try to access a given camera for video input at the given resolution level.\n *\n * If a camera is inaccessible because of errors, then it's added to the inaccessible device list. If the specific\n * error is of type `OverconstrainedError` or `NotReadableError` however, this procedure is done later on via a\n * separate external logic; also, in case of an error of type `NotAllowedError` (permission denied) this procedure is\n * not executed, in order to possibly recover if and when the user allows the camera to be accessed again.\n * This is done to allow checking if the camera can still be accessed via an updated deviceId when deviceId\n * information changes, or if it should then be confirmed to be considered inaccessible.\n *\n * Depending on parameters, device features and user permissions for camera access, any of the following errors\n * could be the rejected result of the returned promise:\n * - `AbortError`\n * - `NotAllowedError`\n * - `NotFoundError`\n * - `NotReadableError`\n * - `SecurityError`\n * - `OverconstrainedError`\n *\n * @param cameraResolutionConstraint The resolution constraint.\n * @param camera The camera to try to access for video input.\n * @returns A promise resolving to the `MediaStream` object coming from the accessed camera.\n */\n export async function accessCameraStream(\n cameraResolutionConstraint: CameraResolutionConstraint,\n camera: Camera\n ): Promise {\n Logger.log(Logger.Level.DEBUG, \"Attempt to access camera (camera):\", camera);\n\n const getUserMediaParams: MediaStreamConstraints = {\n audio: false,\n video: getUserMediaVideoParams(cameraResolutionConstraint),\n };\n\n // If it's the initial camera, use the given cameraType, otherwise use the given deviceId\n if (camera.deviceId === \"\") {\n (getUserMediaParams.video).facingMode = {\n ideal: camera.cameraType === Camera.Type.BACK ? \"environment\" : \"user\",\n };\n } else {\n (getUserMediaParams.video).deviceId = {\n exact: camera.deviceId,\n };\n }\n\n try {\n const mediaStream: MediaStream = await getUserMediaDelayed(getUserMediaParams);\n adjustCameraFromMediaStream(mediaStream, camera);\n\n return mediaStream;\n } catch (error) {\n mapNonStandardErrorName(error);\n if (![\"OverconstrainedError\", \"NotReadableError\", \"NotAllowedError\"].includes(error.name)) {\n markCameraAsInaccessible(camera);\n }\n throw error;\n }\n }\n\n /**\n * @hidden\n *\n * Mark a camera to be inaccessible and thus excluded from the camera list returned by [[getCameras]].\n *\n * @param camera The camera to mark to be inaccessible.\n */\n export function markCameraAsInaccessible(camera: Camera): void {\n // If it's the initial camera, do nothing\n if (camera.deviceId !== \"\") {\n Logger.log(Logger.Level.DEBUG, \"Camera marked to be inaccessible:\", camera);\n inaccessibleDeviceIds.add(camera.deviceId);\n }\n }\n\n /**\n * @hidden\n *\n * Get a list of available video devices in a cross-browser compatible way.\n *\n * @returns A promise resolving to the `MediaDeviceInfo` array of all available video devices.\n */\n async function enumerateVideoDevices(): Promise {\n let devices: MediaDeviceInfo[];\n if (typeof navigator.enumerateDevices === \"function\") {\n devices = await navigator.enumerateDevices();\n } else if (typeof navigator.mediaDevices?.enumerateDevices === \"function\") {\n devices = await navigator.mediaDevices.enumerateDevices();\n } else {\n try {\n if (window.MediaStreamTrack?.getSources == null) {\n throw new Error();\n }\n devices = await new Promise((resolve) => {\n window.MediaStreamTrack?.getSources?.(resolve);\n });\n\n devices = devices\n .filter((device) => {\n return device.kind.toLowerCase() === \"video\" || device.kind.toLowerCase() === \"videoinput\";\n })\n .map((device) => {\n return {\n deviceId: device.deviceId ?? \"\",\n groupId: device.groupId,\n kind: \"videoinput\",\n label: device.label,\n toJSON: /* istanbul ignore next */ function (): MediaDeviceInfo {\n return this;\n },\n };\n });\n } catch {\n throw new UnsupportedBrowserError({\n fullSupport: false,\n scannerSupport: true,\n missingFeatures: [BrowserCompatibility.Feature.MEDIA_DEVICES],\n });\n }\n }\n\n return devices.filter((device) => {\n return device.kind === \"videoinput\";\n });\n }\n}\n","import { Camera } from \"../camera\";\nimport { CameraSettings } from \"../cameraSettings\";\nimport { CameraManager } from \"./cameraManager\";\n\n/**\n * A dummy barcode picker utility class used to (not) handle camera interaction.\n */\n// istanbul ignore next\nexport class DummyCameraManager extends CameraManager {\n public setInteractionOptions(_1: boolean, _2: boolean, _3: boolean, _4: boolean): void {\n return;\n }\n\n public isCameraSwitcherEnabled(): boolean {\n return false;\n }\n\n public async setCameraSwitcherEnabled(_1: boolean): Promise {\n return;\n }\n\n public isTorchToggleEnabled(): boolean {\n return false;\n }\n\n public setTorchToggleEnabled(_1: boolean): void {\n return;\n }\n\n public isTapToFocusEnabled(): boolean {\n return false;\n }\n\n public setTapToFocusEnabled(_1: boolean): void {\n return;\n }\n\n public isPinchToZoomEnabled(): boolean {\n return false;\n }\n\n public setPinchToZoomEnabled(_1: boolean): void {\n return;\n }\n\n public setInitialCameraType(_1?: Camera.Type): void {\n return;\n }\n\n public async setCameraType(_1?: Camera.Type): Promise {\n return;\n }\n\n public setSelectedCamera(_1?: Camera): void {\n return;\n }\n\n public setSelectedCameraSettings(_1?: CameraSettings): void {\n return;\n }\n\n public async setupCameras(): Promise {\n return;\n }\n\n public async stopStream(): Promise {\n return;\n }\n\n public async applyCameraSettings(_1?: CameraSettings): Promise {\n return;\n }\n\n public async reinitializeCamera(): Promise {\n return;\n }\n\n public async initializeCameraWithSettings(_1: Camera, _2?: CameraSettings): Promise {\n return;\n }\n\n public async setTorchEnabled(_1: boolean): Promise {\n return;\n }\n\n public async toggleTorch(): Promise {\n return;\n }\n\n public async setZoom(_1: number, _2?: number): Promise {\n return;\n }\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.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","module.exports = require(\"core-js/library/fn/object/assign\");","var resizeObservers = [];\nexport { resizeObservers };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { EventEmitter } from \"eventemitter3\";\nimport { Howl, Howler } from \"howler/dist/howler.core.min.js\";\n\nimport { beepSound } from \"../assets/base64assets\";\n\nimport { configurePhase, Mutable } from \"../../index\";\nimport { BrowserCompatibility } from \"../browserCompatibility\";\nimport { BrowserHelper } from \"../browserHelper\";\nimport { Camera } from \"../camera\";\nimport { CameraSettings } from \"../cameraSettings\";\nimport { CustomError } from \"../customError\";\nimport { ImageSettings } from \"../imageSettings\";\nimport { Logger } from \"../logger\";\nimport { Parser } from \"../parser\";\nimport { Scanner } from \"../scanner\";\nimport { ScanResult } from \"../scanResult\";\nimport { ScanSettings } from \"../scanSettings\";\nimport { SearchArea } from \"../searchArea\";\nimport { SingleImageModePlatformSettings, SingleImageModeSettings } from \"../singleImageModeSettings\";\nimport { UnsupportedBrowserError } from \"../unsupportedBrowserError\";\nimport { CameraManager } from \"./cameraManager\";\nimport { DummyCameraManager } from \"./dummyCameraManager\";\nimport { GUI } from \"./gui\";\n\n/**\n * @hidden\n */\ntype EventName = \"ready\" | \"submitFrame\" | \"processFrame\" | \"scan\" | \"scanError\" | \"cameraAccessError\";\n\n/**\n * @hidden\n */\nclass BarcodePickerEventEmitter extends EventEmitter {}\n\n/**\n * A barcode picker element used to get and show camera input and perform scanning operations.\n *\n * The barcode picker will automatically fit and scale inside the given *originElement*.\n *\n * Each barcode picker internally contains a [[Scanner]] object with its own WebWorker thread running a\n * separate copy of the external Scandit Data Capture library. To optimize loading times and performance it's\n * recommended to reuse the same picker and to already create the picker in advance (hidden) and just\n * display it when needed whenever possible.\n *\n * As the loading of the external Scandit Data Capture library can take some time, the picker always starts inactive\n * (but showing GUI and video) and then activates, if not paused, as soon as the library is ready to scan.\n * The [[on]] method targeting the [[ready]] event can be used to set up a listener function to be called when the\n * library is loaded. The picker will be ready to start scanning when the library is fully loaded.\n *\n * By default the external Scandit Data Capture library is preloaded in order to reduce the initialization time as much\n * as possible.\n *\n * The picker can also operate in Single Image Mode: letting the user click/tap to take a single image to be scanned\n * via the camera (mobile) or a file select dialog (desktop). This is provided automatically as fallback by\n * default when the OS/browser only supports part of the needed features and cannot provide direct access to the camera\n * for video streaming and continuous scanning, or can also be forced on/off. This behaviour can be set up on creation\n * via the *singleImageModeSettings* option. Note that in this mode some of the functions provided by the picker will\n * have no effect.\n *\n * By default an alert is shown if an internal error during scanning is encountered which prevents the scanning\n * procedure from continuing when running on a local IP address. As this uses the built-in [[scanError]] event\n * functionality, if unwanted it can be disabled by calling [[removeAllListeners]] on the BarcodePicker\n * instance (right after creation).\n *\n * In accordance with our license terms, the Scandit logo displayed in the bottom right corner of the barcode picker\n * must be displayed and cannot be hidden by any method. Workarounds are not allowed.\n */\nexport class BarcodePicker {\n private readonly cameraManager: CameraManager;\n private readonly gui: GUI;\n private readonly eventEmitter: BarcodePickerEventEmitter;\n private readonly scanner: Scanner;\n private readonly beepSound: Howl;\n private readonly vibrateFunction?: (pattern: number | number[]) => boolean;\n private readonly scannerReadyEventListener: () => void;\n\n private playSoundOnScan: boolean;\n private vibrateOnScan: boolean;\n private scanningPaused: boolean;\n private latestVideoTimeProcessed: number;\n private destroyed: boolean;\n private isReadyToWork: boolean;\n private cameraAccess: boolean;\n private targetScanningFPS: number;\n private averageProcessingTime: number;\n private externalImageData: Uint8Array;\n private internalImageData?: Uint8Array;\n\n private constructor(\n originElement: HTMLElement,\n {\n visible,\n singleImageModeEnabled,\n singleImageModeSettings,\n playSoundOnScan,\n vibrateOnScan,\n scanningPaused,\n guiStyle,\n videoFit,\n cameraRecoveryText,\n laserArea,\n viewfinderArea,\n scanner,\n scanSettings,\n cameraType,\n targetScanningFPS,\n hideLogo,\n }: {\n visible: boolean;\n singleImageModeEnabled: boolean;\n singleImageModeSettings: SingleImageModePlatformSettings;\n playSoundOnScan: boolean;\n vibrateOnScan: boolean;\n scanningPaused: boolean;\n guiStyle: BarcodePicker.GuiStyle;\n videoFit: BarcodePicker.ObjectFit;\n cameraRecoveryText: string;\n laserArea?: SearchArea;\n viewfinderArea?: SearchArea;\n scanner?: Scanner;\n scanSettings: ScanSettings;\n cameraType: Camera.Type;\n targetScanningFPS: number;\n hideLogo: boolean;\n }\n ) {\n this.isReadyToWork = false;\n this.destroyed = false;\n this.scanningPaused = scanningPaused;\n\n Howler.autoSuspend = false;\n this.beepSound = new Howl({\n src: beepSound,\n });\n\n this.vibrateFunction = navigator.vibrate ?? navigator.webkitVibrate ?? navigator.mozVibrate ?? navigator.msVibrate;\n\n this.eventEmitter = new EventEmitter();\n\n this.setPlaySoundOnScanEnabled(playSoundOnScan);\n this.setVibrateOnScanEnabled(vibrateOnScan);\n this.setTargetScanningFPS(targetScanningFPS);\n\n this.scanner = scanner?.applyScanSettings(scanSettings) ?? new Scanner({ scanSettings });\n this.scannerReadyEventListener = this.handleScannerReady.bind(this);\n this.scanner.on(\"ready\", this.scannerReadyEventListener);\n\n this.gui = new GUI({\n scanner: this.scanner,\n originElement,\n singleImageModeEnabled,\n singleImageModeSettings,\n scanningPaused,\n visible,\n guiStyle,\n videoFit,\n hideLogo,\n cameraRecoveryText,\n laserArea,\n viewfinderArea,\n cameraUploadCallback: this.processVideoFrame.bind(this, true),\n });\n\n if (singleImageModeEnabled) {\n this.cameraManager = new DummyCameraManager(this.scanner, this.triggerCameraAccessError.bind(this), this.gui);\n this.gui.setCameraType(cameraType);\n } else {\n this.cameraManager = new CameraManager(this.scanner, this.triggerCameraAccessError.bind(this), this.gui);\n this.scheduleVideoProcessing();\n }\n\n this.gui.setCameraManager(this.cameraManager);\n }\n\n /**\n * Fired when the external Scandit Data Capture library has been loaded and the barcode picker can thus start to scan\n * barcodes or texts.\n *\n * @asMemberOf BarcodePicker\n * @event\n */\n // istanbul ignore next\n public static ready(): void {\n // Ignored\n }\n /**\n * Fired when a new frame is submitted to the external Scandit Data Capture library to be processed. As the frame is\n * not processed yet, the [[ScanResult.barcodes]] property will always be empty (no results yet).\n *\n * @asMemberOf BarcodePicker\n * @event\n * @param scanResult The result of the scanning operation on the image.\n */\n // @ts-ignore\n // istanbul ignore next\n public static submitFrame(scanResult: ScanResult): void {\n // Ignored\n }\n /**\n * Fired when a new frame is processed by the external Scandit Data Capture library. This event is fired on every\n * frame, independently from the number of recognized barcodes or texts (can both be none). The returned barcodes and\n * texts are affected by [[ScanSettings]]'s *codeDuplicateFilter* and [[TextRecognitionSettings]]'s\n * *textDuplicateFilter* options.\n *\n * @asMemberOf BarcodePicker\n * @event\n * @param scanResult The result of the scanning operation on the image.\n */\n // @ts-ignore\n // istanbul ignore next\n public static processFrame(scanResult: ScanResult): void {\n // Ignored\n }\n /**\n * Fired when new barcodes or texts are recognized in the image frame. The returned barcodes and texts are affected by\n * [[ScanSettings]]'s *codeDuplicateFilter* and [[TextRecognitionSettings]]'s *textDuplicateFilter* options.\n *\n * @asMemberOf BarcodePicker\n * @event\n * @param scanResult The result of the scanning operation on the image.\n */\n // @ts-ignore\n // istanbul ignore next\n public static scan(scanResult: ScanResult): void {\n // Ignored\n }\n /**\n * Fired when an error occurs during scanning initialization and execution. The barcode picker will be automatically\n * paused when this happens.\n *\n * @asMemberOf BarcodePicker\n * @event\n * @param error The ScanditEngineError that was triggered.\n */\n // @ts-ignore\n // istanbul ignore next\n public static scanError(error: Error): void {\n // Ignored\n }\n /**\n * Fired when an error occurs during camera access.\n *\n * @asMemberOf BarcodePicker\n * @event\n * @param error The Error that was triggered.\n */\n // @ts-ignore\n // istanbul ignore next\n public static cameraAccessError(error: Error): void {\n // Ignored\n }\n\n /**\n * Create a [[BarcodePicker]] instance, creating the needed HTML in the given origin element.\n * If the *accessCamera* option is enabled (active by default) and the picker is not in Single Image Mode,\n * the available cameras are accessed and camera access permission is requested to the user if needed.\n * This object expects that at least a camera is available. The active camera is accessed and kept active during the\n * lifetime of the picker (also when hidden or scanning is paused), and is only released when [[destroy]] is called.\n *\n * It is required to having configured the library via [[configure]] before this object can be created.\n *\n * Depending on library configuration, parameters, device/browser features and user permissions for camera access, any\n * of the following errors could be the rejected result of the returned promise:\n * - `AbortError`\n * - `LibraryNotConfiguredError`\n * - `NoCameraAvailableError`\n * - `NoOriginElementError`\n * - `NotAllowedError`\n * - `NotFoundError`\n * - `NotReadableError`\n * - `SecurityError`\n * - `UnsupportedBrowserError`\n *\n * @param originElement The HTMLElement inside which all the necessary elements for the picker will be added.\n * @param visible
Default = true
\n * Whether the picker starts in a visible state.\n * @param singleImageModeSettings
Default = 
\n *
{\n   *   desktop: {\n   *     usageStrategy: SingleImageModeSettings.UsageStrategy.FALLBACK,\n   *     informationElement: <HTMLElement>,\n   *     buttonElement: <SVGElement>,\n   *     containerStyle: { backgroundColor: \"#333333\" },\n   *     informationStyle: { color: \"#FFFFFF\" },\n   *     buttonStyle: { borderColor: \"#FFFFFF\", color: \"#FFFFFF\", fill: \"#FFFFFF\" }\n   *   },\n   *   mobile: {\n   *     usageStrategy: SingleImageModeSettings.UsageStrategy.FALLBACK,\n   *     informationElement: <HTMLElement>,\n   *     buttonElement: <SVGElement>,\n   *     containerStyle: { backgroundColor: \"#333333\" },\n   *     informationStyle: { color: \"#FFFFFF\" },\n   *     buttonStyle: { borderColor: \"#FFFFFF\", color: \"#FFFFFF\", fill: \"#FFFFFF\" }\n   *   }\n   * }
\n * Settings for Single Image Mode: an alternative/fallback mode for a barcode picker to provide single camera\n * pictures to be scanned instead of continuous camera video stream access. In Single Image Mode users click/tap to\n * directly take a picture with the camera (mobile) or upload a file (desktop). Its usage depends on the given\n * settings and the camera video stream features provided by the OS/browser.\n * @param playSoundOnScan
Default = false
\n * Whether a sound is played on barcode/text recognition (iOS requires user input).\n * @param vibrateOnScan
Default = false
\n * Whether the device vibrates on barcode/text recognition (only Chrome & Firefox, requires user input).\n * @param scanningPaused
Default = false
\n * Whether the picker starts in a paused scanning state.\n * @param guiStyle
Default = GuiStyle.LASER
\n * The GUI style for the picker.\n * @param videoFit
Default = ObjectFit.CONTAIN
\n * The fit type for the video element of the picker.\n * @param cameraRecoveryText
Default = \"Tap/click to resume scanning\"
\n * The text to display to indicate to the user a necessary tap/click action on the picker to recover camera access.\n * @param laserArea
Default = undefined
\n * The area of the laser displayed when the GUI style is set to laser (the laser will match the width and be\n * vertically centered), by default the area will match the current [[ScanSettings]]'s searchArea option.\n * @param viewfinderArea
Default = undefined
\n * The area of the viewfinder displayed when the GUI style is set to viewfinder, by default the area will\n * match the current [[ScanSettings]]'s searchArea option.\n * @param enableCameraSwitcher
Default = true
\n * Whether to show a GUI button to switch between different cameras (when available).\n * @param enableTorchToggle
Default = true
\n * Whether to show a GUI button to toggle device torch on/off (when available, only Chrome).\n * @param enableTapToFocus
Default = true
\n * Whether to trigger a manual focus of the camera when clicking/tapping on the video (when available, only Chrome).\n * @param enablePinchToZoom
Default = true
\n * Whether to control the zoom of the camera when doing a pinching gesture on the video (when available, only Chrome).\n * @param accessCamera
Default = true
\n * Whether to immediately access the camera (and requesting user permissions if needed) on picker creation.\n * @param camera
Default = undefined
\n * The initial camera to be used for video input, if not specified the camera automatically selected depending on\n * the cameraType option will be used.\n * @param cameraType
Default = Camera.Type.BACK
\n * The preferred initial camera type (facing mode/direction) to be used for video input and Single Image Mode\n * (when available), by default the back or only camera will be used. If the camera option is provided then\n * cameraType is ignored.\n * @param cameraSettings
Default = undefined
\n * The camera options used when accessing the camera, by default hd resolution is used.\n * @param scanner
Default = undefined
\n * The scanner object responsible for scanning via the external Scandit Data Capture library\n * (a new scanner will be created and initialized if not provided).\n * @param scanSettings
Default = new ScanSettings()
\n * The configuration object for scanning options to be applied to the scanner (all symbologies disabled by default).\n * @param targetScanningFPS
Default = 30
\n * The target frames per second to be processed, the final speed is limited by the camera framerate (usually 30 FPS)\n * and the frame processing time of the device. By setting this to lower numbers devices can save power by performing\n * less work during scanning operations, depending on device speed (faster devices can \"sleep\" for longer periods).\n * Must be a number bigger than 0.\n * @returns A promise resolving to the created ready [[BarcodePicker]] object.\n */\n public static async create(\n originElement: HTMLElement,\n {\n visible = true,\n singleImageModeSettings = {},\n playSoundOnScan = false,\n vibrateOnScan = false,\n scanningPaused = false,\n guiStyle = BarcodePicker.GuiStyle.LASER,\n videoFit = BarcodePicker.ObjectFit.CONTAIN,\n cameraRecoveryText = \"Tap/click to resume scanning\",\n laserArea,\n viewfinderArea,\n scanner,\n scanSettings = new ScanSettings(),\n enableCameraSwitcher = true,\n enableTorchToggle = true,\n enableTapToFocus = true,\n enablePinchToZoom = true,\n accessCamera = true,\n camera,\n cameraType = Camera.Type.BACK,\n cameraSettings,\n targetScanningFPS = 30,\n /**\n * @hidden\n */\n hideLogo = false, // Hidden argument\n }: {\n visible?: boolean;\n singleImageModeSettings?: SingleImageModeSettings;\n playSoundOnScan?: boolean;\n vibrateOnScan?: boolean;\n scanningPaused?: boolean;\n guiStyle?: BarcodePicker.GuiStyle;\n videoFit?: BarcodePicker.ObjectFit;\n cameraRecoveryText?: string;\n laserArea?: SearchArea;\n viewfinderArea?: SearchArea;\n scanner?: Scanner;\n scanSettings?: ScanSettings;\n enableCameraSwitcher?: boolean;\n enableTorchToggle?: boolean;\n enableTapToFocus?: boolean;\n enablePinchToZoom?: boolean;\n accessCamera?: boolean;\n camera?: Camera;\n cameraType?: Camera.Type;\n cameraSettings?: CameraSettings;\n targetScanningFPS?: number;\n /**\n * @hidden\n */\n hideLogo?: boolean; // Hidden argument\n } = {}\n ): Promise {\n const deviceType: string | undefined = BrowserHelper.userAgentInfo.getDevice().type;\n const isMobileDevice: boolean = deviceType === \"mobile\" || deviceType === \"tablet\";\n const singleImageModePlatformSettings: SingleImageModePlatformSettings =\n (isMobileDevice ? singleImageModeSettings.mobile : singleImageModeSettings.desktop) ?? {};\n const singleImageModeDisallowed: boolean =\n singleImageModePlatformSettings.usageStrategy === SingleImageModeSettings.UsageStrategy.NEVER;\n const singleImageModeForced: boolean =\n singleImageModePlatformSettings.usageStrategy === SingleImageModeSettings.UsageStrategy.ALWAYS;\n\n const browserCompatibility: BrowserCompatibility = BrowserHelper.checkBrowserCompatibility();\n if (!browserCompatibility.scannerSupport || (singleImageModeDisallowed && !browserCompatibility.fullSupport)) {\n throw new UnsupportedBrowserError(browserCompatibility);\n }\n if (!browserCompatibility.fullSupport && !singleImageModeForced) {\n Logger.log(\n Logger.Level.INFO,\n \"BarcodePicker's Single Image Mode is being used as fallback as the OS/browser combination doesn't \" +\n \"support camera video stream scanning (https://caniuse.com/#feat=stream). \" +\n 'You can configure this behaviour via the \"singleImageModeSettings\" option.',\n browserCompatibility\n );\n }\n\n if (configurePhase !== \"done\") {\n throw new CustomError({\n name: \"LibraryNotConfiguredError\",\n message:\n configurePhase === \"started\"\n ? `The library has not completed its configuration yet, please call 'configure' and wait for the returned\n promise's resolution`\n : `The library was not configured, 'configure' must be called with valid parameters before instantiating\n the BarcodePicker`,\n });\n }\n if (!BrowserHelper.isValidHTMLElement(originElement)) {\n throw new CustomError({\n name: \"NoOriginElementError\",\n message: \"A valid origin HTML element must be given\",\n });\n }\n\n const barcodePicker: BarcodePicker = new BarcodePicker(originElement, {\n visible,\n singleImageModeEnabled: browserCompatibility.fullSupport ? singleImageModeForced : true,\n singleImageModeSettings: singleImageModePlatformSettings,\n playSoundOnScan,\n vibrateOnScan,\n scanningPaused,\n guiStyle,\n videoFit,\n cameraRecoveryText,\n laserArea,\n viewfinderArea,\n scanner,\n scanSettings,\n cameraType,\n targetScanningFPS,\n hideLogo,\n });\n\n barcodePicker.cameraManager.setInteractionOptions(\n enableCameraSwitcher,\n false,\n enableTorchToggle,\n enableTapToFocus,\n enablePinchToZoom\n );\n barcodePicker.cameraManager.setInitialCameraType(cameraType);\n barcodePicker.cameraManager.setSelectedCamera(camera);\n barcodePicker.cameraManager.setSelectedCameraSettings(cameraSettings);\n\n barcodePicker.cameraAccess = accessCamera;\n\n // Show error in alert on ScanError by default when running on local IP address for easier customer debugging\n barcodePicker.on(\"scanError\", (error) => {\n // istanbul ignore if\n if ([\"localhost\", \"127.0.0.1\", \"\"].includes(window.location.hostname)) {\n alert(error);\n }\n });\n\n if (accessCamera) {\n await barcodePicker.cameraManager.setupCameras();\n }\n\n return barcodePicker;\n }\n\n /**\n * Stop scanning and displaying video output, remove HTML elements added to the page,\n * destroy the internal [[Scanner]] (by default) and destroy the barcode picker itself; ensuring complete cleanup.\n *\n * This method should be called after you don't plan to use the picker anymore,\n * before the object is automatically cleaned up by JavaScript.\n * The barcode picker must not be used in any way after this call.\n *\n * If the [[Scanner]] is or will be in use for other purposes, the relative option can be passed to prevent\n * its destruction.\n *\n * @param destroyScanner Whether to destroy the internally used [[Scanner]] or not.\n */\n public destroy(destroyScanner: boolean = true): void {\n this.pauseScanning(true);\n this.scanner.removeListener(\"ready\", this.scannerReadyEventListener);\n this.destroyed = true;\n if (destroyScanner) {\n this.scanner.destroy();\n }\n this.gui.destroy();\n this.eventEmitter.removeAllListeners();\n }\n\n /**\n * Apply a new set of scan settings to the internal scanner (replacing old settings).\n *\n * @param scanSettings The scan configuration object to be applied to the scanner.\n * @returns The updated [[BarcodePicker]] object.\n */\n public applyScanSettings(scanSettings: ScanSettings): BarcodePicker {\n this.scanner.applyScanSettings(scanSettings);\n\n return this;\n }\n\n /**\n * @returns Whether the scanning is currently paused.\n */\n public isScanningPaused(): boolean {\n return this.scanningPaused;\n }\n\n /**\n * Pause the recognition of codes/texts in the input image.\n *\n * By default video from the camera is still shown, if the *pauseCamera* option is enabled the camera stream\n * is paused (camera access is fully interrupted) and will be resumed when calling [[resumeScanning]],\n * [[setActiveCamera]], [[setCameraType]] or [[accessCamera]], possibly requesting user permissions if needed.\n *\n * In Single Image Mode the input for submitting a picture is disabled.\n *\n * @param pauseCamera Whether to also pause the camera stream.\n * @returns The updated [[BarcodePicker]] object.\n */\n public pauseScanning(pauseCamera: boolean = false): BarcodePicker {\n this.scanningPaused = true;\n\n if (pauseCamera) {\n this.cameraManager.stopStream().catch(\n /* istanbul ignore next */ () => {\n // Ignored\n }\n );\n }\n\n if (this.scanner.isReady()) {\n this.gui.pauseScanning();\n }\n\n return this;\n }\n\n /**\n * Resume the recognition of codes/texts in the input image.\n *\n * If the camera stream was stopped when calling [[pauseScanning]], the camera stream is also resumed and\n * user permissions are requested if needed to resume video input.\n *\n * In Single Image Mode the input for submitting a picture is enabled.\n *\n * @returns The updated [[BarcodePicker]] object.\n */\n public async resumeScanning(): Promise {\n this.scanningPaused = false;\n\n if (this.scanner.isReady()) {\n this.gui.resumeScanning();\n }\n\n if (this.cameraAccess && this.getActiveCamera() == null) {\n await this.cameraManager.setupCameras();\n }\n\n return this;\n }\n\n /**\n * @returns The currently active camera.\n */\n public getActiveCamera(): Camera | undefined {\n return this.cameraManager.activeCamera;\n }\n\n /**\n * Select a camera to be used for video input, if no camera is passed, the default one (based on *cameraType*) is\n * selected.\n *\n * If camera access is enabled, the camera is enabled and accessed. If not, the camera is stored and used for the\n * future initial camera access.\n *\n * Depending on device features and user permissions for camera access, any of the following errors\n * could be the rejected result of the returned promise:\n * - `AbortError`\n * - `NoCameraAvailableError`\n * - `NotAllowedError`\n * - `NotFoundError`\n * - `NotReadableError`\n * - `SecurityError`\n *\n * In Single Image Mode this method has no effect.\n *\n * @param camera The new camera to be used, by default the automatically detected back camera is used.\n * @param cameraSettings The camera options used when accessing the camera, by default `hd` resolution is used.\n * @returns A promise resolving to the updated [[BarcodePicker]] object when the camera is set\n * (and accessed, if camera access is currently enabled).\n */\n public async setActiveCamera(camera?: Camera, cameraSettings?: CameraSettings): Promise {\n if (camera == null || !this.cameraAccess) {\n this.cameraManager.setSelectedCamera(camera);\n this.cameraManager.setSelectedCameraSettings(cameraSettings);\n\n if (this.cameraAccess) {\n await this.cameraManager.setupCameras();\n }\n } else {\n await this.cameraManager.initializeCameraWithSettings(camera, cameraSettings);\n }\n\n return this;\n }\n\n /**\n * Select a camera to be used for video input by specifying the wanted camera type (facing mode/direction): the main\n * camera detected for the given camera type will be used.\n *\n * If camera access is enabled, the camera is enabled and accessed. If not, the camera type is stored and used for the\n * future initial camera access.\n *\n * If the target camera is already in use or no camera with the given type is found this method has no effect.\n *\n * Depending on device features and user permissions for camera access, any of the following errors\n * could be the rejected result of the returned promise:\n * - `AbortError`\n * - `NoCameraAvailableError`\n * - `NotAllowedError`\n * - `NotFoundError`\n * - `NotReadableError`\n * - `SecurityError`\n *\n * @param cameraType The new camera type (facing mode/direction) to be used for video input and Single Image Mode\n * (when available).\n * @returns A promise resolving to the updated [[BarcodePicker]] object when the camera is updated\n * (and accessed, if camera access is currently enabled).\n */\n public async setCameraType(cameraType: Camera.Type): Promise {\n this.gui.setCameraType(cameraType);\n if (this.cameraAccess) {\n await this.cameraManager.setCameraType(cameraType);\n } else {\n this.cameraManager.setInitialCameraType(cameraType);\n }\n\n return this;\n }\n\n /**\n * Try to apply new settings to the currently used camera for video input,\n * if no settings are passed the default ones are set.\n *\n * If camera access is enabled, the camera is updated and accessed with the new settings. If not, the camera settings\n * are stored and used for the future initial camera access.\n *\n * Depending on device features and user permissions for camera access, any of the following errors\n * could be the rejected result of the returned promise:\n * - `AbortError`\n * - `NoCameraAvailableError`\n * - `NotAllowedError`\n * - `NotFoundError`\n * - `NotReadableError`\n * - `SecurityError`\n *\n * In Single Image Mode this method has no effect.\n *\n * @param cameraSettings The new camera options used when accessing the camera, by default `hd` resolution is used.\n * @returns A promise resolving to the updated [[BarcodePicker]] object when the camera is updated\n * (and accessed, if camera access is currently enabled).\n */\n public async applyCameraSettings(cameraSettings?: CameraSettings): Promise {\n if (!this.cameraAccess) {\n this.cameraManager.setSelectedCameraSettings(cameraSettings);\n } else {\n await this.cameraManager.applyCameraSettings(cameraSettings);\n }\n\n return this;\n }\n\n /**\n * @returns Whether the picker is in a visible state or not.\n */\n public isVisible(): boolean {\n return this.gui.isVisible();\n }\n\n /**\n * Enable or disable picker visibility.\n *\n * Note that this does not affect camera access, frame processing or any other picker logic.\n *\n * @param visible Whether the picker is in a visible state or not.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setVisible(visible: boolean): BarcodePicker {\n this.gui.setVisible(visible);\n\n return this;\n }\n\n /**\n * @returns Whether the currently selected camera's video is mirrored along the vertical axis.\n */\n public isMirrorImageEnabled(): boolean {\n return this.gui.isMirrorImageEnabled();\n }\n\n /**\n * Enable or disable camera video mirroring along the vertical axis.\n * By default front cameras are automatically mirrored.\n * This setting is applied per camera and the method has no effect if no camera is currently selected.\n *\n * In Single Image Mode this method has no effect.\n *\n * @param enabled Whether the camera video is mirrored along the vertical axis.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setMirrorImageEnabled(enabled: boolean): BarcodePicker {\n this.gui.setMirrorImageEnabled(enabled, true);\n\n return this;\n }\n\n /**\n * @returns Whether a sound should be played on barcode/text recognition (iOS requires user input).\n * Note that the sound is played if there's at least a barcode or text not rejected via [[ScanResult.rejectCode]] or\n * [[ScanResult.rejectText]].\n */\n public isPlaySoundOnScanEnabled(): boolean {\n return this.playSoundOnScan;\n }\n\n /**\n * Enable or disable playing a sound on barcode/text recognition (iOS requires user input).\n *\n * The sound is played if there's at least a barcode or text not rejected via [[ScanResult.rejectCode]] or\n * [[ScanResult.rejectText]].\n *\n * @param enabled Whether a sound should be played on barcode/text recognition.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setPlaySoundOnScanEnabled(enabled: boolean): BarcodePicker {\n this.playSoundOnScan = enabled;\n\n return this;\n }\n\n /**\n * @returns Whether the device should vibrate on barcode/text recognition (only Chrome & Firefox, requires user\n * input).\n * Note that the vibration is triggered if there's at least a barcode or text not rejected via\n * [[ScanResult.rejectCode]] or [[ScanResult.rejectText]].\n */\n public isVibrateOnScanEnabled(): boolean {\n return this.vibrateOnScan;\n }\n\n /**\n * Enable or disable vibrating the device on barcode/text recognition (only Chrome & Firefox, requires user input).\n *\n * The vibration is triggered if there's at least a barcode or text not rejected via [[ScanResult.rejectCode]] or\n * [[ScanResult.rejectText]].\n *\n * @param enabled Whether the device should vibrate on barcode/text recognition.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setVibrateOnScanEnabled(enabled: boolean): BarcodePicker {\n this.vibrateOnScan = enabled;\n\n return this;\n }\n\n /**\n * @returns Whether a GUI button to switch between different cameras is shown (when available).\n */\n public isCameraSwitcherEnabled(): boolean {\n return this.cameraManager.isCameraSwitcherEnabled();\n }\n\n /**\n * Show or hide a GUI button to switch between different cameras (when available).\n *\n * In Single Image Mode this method has no effect.\n *\n * @param enabled Whether to show a GUI button to switch between different cameras.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setCameraSwitcherEnabled(enabled: boolean): BarcodePicker {\n this.cameraManager.setCameraSwitcherEnabled(enabled).catch(\n /* istanbul ignore next */ () => {\n // Ignored\n }\n );\n\n return this;\n }\n\n /**\n * @hidden\n *\n * @returns Whether a GUI button to switch between Wide and UltraWide cameras on specific \"broken\" iPhone devices is\n * shown (when available).\n */\n public isCameraFOVSwitcherEnabled(): boolean {\n return this.cameraManager.isCameraFOVSwitcherEnabled();\n }\n\n /**\n * @hidden\n *\n * Show or hide a GUI button to switch between Wide and UltraWide cameras on specific \"broken\" iPhone devices\n * (when available).\n *\n * In Single Image Mode this method has no effect.\n *\n * @param enabled Whether to show a GUI button to switch between Wide and UltraWide cameras on specific \"broken\"\n * iPhone devices.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setCameraFOVSwitcherEnabled(enabled: boolean): BarcodePicker {\n this.cameraManager.setCameraFOVSwitcherEnabled(enabled);\n\n return this;\n }\n\n /**\n * @returns Whether a GUI button to toggle device torch on/off is shown (when available, only Chrome).\n */\n public isTorchToggleEnabled(): boolean {\n return this.cameraManager.isTorchToggleEnabled();\n }\n\n /**\n * Show or hide a GUI button to toggle device torch on/off (when available, only Chrome).\n *\n * In Single Image Mode this method has no effect.\n *\n * @param enabled Whether to show a GUI button to toggle device torch on/off.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setTorchToggleEnabled(enabled: boolean): BarcodePicker {\n this.cameraManager.setTorchToggleEnabled(enabled);\n\n return this;\n }\n\n /**\n * @returns Whether manual camera focus when clicking/tapping on the video is enabled (when available, only Chrome).\n */\n public isTapToFocusEnabled(): boolean {\n return this.cameraManager.isTapToFocusEnabled();\n }\n\n /**\n * Enable or disable manual camera focus when clicking/tapping on the video (when available, only Chrome).\n *\n * In Single Image Mode this method has no effect.\n *\n * @param enabled Whether to enable manual camera focus when clicking/tapping on the video.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setTapToFocusEnabled(enabled: boolean): BarcodePicker {\n this.cameraManager.setTapToFocusEnabled(enabled);\n\n return this;\n }\n\n /**\n * @returns Whether camera zoom control via pinching gesture on the video is enabled (when available, only Chrome).\n */\n public isPinchToZoomEnabled(): boolean {\n return this.cameraManager.isPinchToZoomEnabled();\n }\n\n /**\n * Enable or disable camera zoom control via pinching gesture on the video (when available, only Chrome).\n *\n * In Single Image Mode this method has no effect.\n *\n * @param enabled Whether to enable camera zoom control via pinching gesture on the video.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setPinchToZoomEnabled(enabled: boolean): BarcodePicker {\n this.cameraManager.setPinchToZoomEnabled(enabled);\n\n return this;\n }\n\n /**\n * Enable or disable the torch/flashlight of the device (when available, only Chrome).\n * Changing active camera or camera settings will cause the torch to become disabled.\n *\n * A button on the [[BarcodePicker]] GUI to let the user toggle this functionality can also be set\n * on creation via the *enableTorchToggle* option (enabled by default, when available).\n *\n * In Single Image Mode this method has no effect.\n *\n * @param enabled Whether the torch should be enabled or disabled.\n * @returns A promise resolving to the updated [[BarcodePicker]] object when the torch is enabled/disabled.\n */\n public async setTorchEnabled(enabled: boolean): Promise {\n await this.cameraManager.setTorchEnabled(enabled);\n\n return this;\n }\n\n /**\n * Set the zoom level of the device (when available, only Chrome).\n * Changing active camera or camera settings will cause the zoom to be reset.\n *\n * In Single Image Mode this method has no effect.\n *\n * @param zoomPercentage The percentage of the max zoom (between 0 and 1).\n * @returns The updated [[BarcodePicker]] object.\n */\n public async setZoom(zoomPercentage: number): Promise {\n await this.cameraManager.setZoom(zoomPercentage);\n\n return this;\n }\n\n /**\n * @returns Whether the barcode picker has loaded the external Scandit Data Capture library and is ready to scan.\n */\n public isReady(): boolean {\n return this.isReadyToWork;\n }\n\n /**\n * Add the listener function to the listeners array for an event.\n *\n * No checks are made to see if the listener has already been added.\n * Multiple calls passing the same listener will result in the listener being added, and called, multiple times.\n *\n * @param eventName The name of the event to listen to.\n * @param listener The listener function.\n * @param once
Default = false
\n * Whether the listener should just be triggered only once and then discarded.\n * @returns The updated [[BarcodePicker]] object.\n */\n // tslint:disable-next-line:bool-param-default\n public on(eventName: EventName, listener: EventEmitter.ListenerFn, once?: boolean): BarcodePicker;\n /**\n * Add the listener function to the listeners array for the [[ready]] event, fired when the external\n * Scandit Data Capture library has been loaded and the barcode picker can thus start to scan barcodes or texts.\n * If the library has already been loaded the listener is called immediately.\n *\n * No checks are made to see if the listener has already been added.\n * Multiple calls passing the same listener will result in the listener being added, and called, multiple times.\n *\n * @param eventName The name of the event to listen to.\n * @param listener The listener function.\n * @returns The updated [[BarcodePicker]] object.\n */\n public on(eventName: \"ready\", listener: () => void): BarcodePicker;\n /**\n * Add the listener function to the listeners array for the [[submitFrame]] event, fired when a new frame is submitted\n * to the external Scandit Data Capture library to be processed. As the frame is not processed yet, the\n * [[ScanResult.barcodes]] and [[ScanResult.texts]] properties will always be empty (no results yet).\n *\n * No checks are made to see if the listener has already been added.\n * Multiple calls passing the same listener will result in the listener being added, and called, multiple times.\n *\n * @param eventName The name of the event to listen to.\n * @param listener The listener function, which will be invoked with a [[ScanResult]] object.\n * @param once
Default = false
\n * Whether the listener should just be triggered only once and then discarded.\n * @returns The updated [[BarcodePicker]] object.\n */\n public on(\n eventName: \"submitFrame\",\n listener: (scanResult: ScanResult) => void,\n // tslint:disable-next-line:bool-param-default\n once?: boolean\n ): BarcodePicker;\n /**\n * Add the listener function to the listeners array for the [[processFrame]] event, fired when a new frame is\n * processed. This event is fired on every frame, independently from the number of recognized barcodes or texts (can\n * both be none). The returned barcodes and texts are affected by [[ScanSettings]]'s *codeDuplicateFilter* and\n * [[TextRecognitionSettings]]'s *textDuplicateFilter* options.\n *\n * No checks are made to see if the listener has already been added.\n * Multiple calls passing the same listener will result in the listener being added, and called, multiple times.\n *\n * @param eventName The name of the event to listen to.\n * @param listener The listener function, which will be invoked with a [[ScanResult]] object.\n * @param once
Default = false
\n * Whether the listener should just be triggered only once and then discarded.\n * @returns The updated [[BarcodePicker]] object.\n */\n public on(\n // tslint:disable-next-line:unified-signatures\n eventName: \"processFrame\",\n listener: (scanResult: ScanResult) => void,\n // tslint:disable-next-line:bool-param-default\n once?: boolean\n ): BarcodePicker;\n /**\n * Add the listener function to the listeners array for the [[scan]] event, fired when new barcodes or texts\n * are recognized in the image frame. The returned barcodes and texts are affected by [[ScanSettings]]'s\n * *codeDuplicateFilter* and [[TextRecognitionSettings]]'s *textDuplicateFilter* options.\n *\n * No checks are made to see if the listener has already been added.\n * Multiple calls passing the same listener will result in the listener being added, and called, multiple times.\n *\n * @param eventName The name of the event to listen to.\n * @param listener The listener function, which will be invoked with a [[ScanResult]] object.\n * @param once
Default = false
\n * Whether the listener should just be triggered only once and then discarded.\n * @returns The updated [[BarcodePicker]] object.\n */\n public on(\n // tslint:disable-next-line:unified-signatures\n eventName: \"scan\",\n listener: (scanResult: ScanResult) => void,\n // tslint:disable-next-line:bool-param-default\n once?: boolean\n ): BarcodePicker;\n /**\n * Add the listener function to the listeners array for the [[scanError]] event, fired when an error occurs\n * during scanning initialization and execution. The barcode picker will be automatically paused when this happens.\n *\n * No checks are made to see if the listener has already been added.\n * Multiple calls passing the same listener will result in the listener being added, and called, multiple times.\n *\n * @param eventName The name of the event to listen to.\n * @param listener The listener function, which will be invoked with an `ScanditEngineError` object.\n * @param once
Default = false
\n * Whether the listener should just be triggered only once and then discarded.\n * @returns The updated [[BarcodePicker]] object.\n */\n // tslint:disable-next-line:bool-param-default\n public on(eventName: \"scanError\", listener: (error: Error) => void, once?: boolean): BarcodePicker;\n /**\n * Add the listener function to the listeners array for the [[cameraAccessError]] event, fired when an error occurs\n * during camera access..\n *\n * No checks are made to see if the listener has already been added.\n * Multiple calls passing the same listener will result in the listener being added, and called, multiple times.\n *\n * @param eventName The name of the event to listen to.\n * @param listener The listener function, which will be invoked with an `Error` object.\n * @param once
Default = false
\n * Whether the listener should just be triggered only once and then discarded.\n * @returns The updated [[BarcodePicker]] object.\n */\n public on(\n // tslint:disable-next-line:unified-signatures\n eventName: \"cameraAccessError\",\n listener: (error: Error) => void,\n // tslint:disable-next-line:bool-param-default\n once?: boolean\n ): BarcodePicker;\n public on(eventName: EventName, listener: EventEmitter.ListenerFn, once: boolean = false): BarcodePicker {\n if (eventName === \"ready\") {\n if (this.isReadyToWork) {\n listener();\n } else {\n this.eventEmitter.once(eventName, listener, this);\n }\n } else {\n if (once === true) {\n this.eventEmitter.once(eventName, listener, this);\n } else {\n this.eventEmitter.on(eventName, listener, this);\n }\n }\n\n return this;\n }\n\n /**\n * Remove the specified listener from the given event's listener array.\n *\n * @param eventName The name of the event from which to remove the listener.\n * @param listener The listener function to be removed.\n * @returns The updated [[BarcodePicker]] object.\n */\n public removeListener(eventName: EventName, listener: EventEmitter.ListenerFn): BarcodePicker {\n this.eventEmitter.removeListener(eventName, listener);\n\n return this;\n }\n\n /**\n * Remove all listeners from the given event's listener array.\n *\n * @param eventName The name of the event from which to remove all listeners.\n * @returns The updated [[BarcodePicker]] object.\n */\n public removeAllListeners(eventName: EventName): BarcodePicker {\n this.eventEmitter.removeAllListeners(eventName);\n\n return this;\n }\n\n /**\n * *See the [[on]] method.*\n *\n * @param eventName The name of the event to listen to.\n * @param listener The listener function.\n * @param once
Default = false
\n * Whether the listener should just be triggered only once and then discarded.\n * @returns The updated [[BarcodePicker]] object.\n */\n // tslint:disable-next-line:bool-param-default\n public addListener(eventName: EventName, listener: EventEmitter.ListenerFn, once?: boolean): BarcodePicker {\n return this.on(eventName, listener, once);\n }\n\n /**\n * Set the GUI style for the picker.\n *\n * In Single Image Mode this method has no effect.\n *\n * When the GUI style is set to *laser* or *viewfinder*, the GUI will flash on barcode/text recognition.\n * Note that the GUI will flash if there's at least a barcode or text not rejected via [[ScanResult.rejectCode]] or\n * [[ScanResult.rejectText]].\n *\n * @param guiStyle The new GUI style to be applied.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setGuiStyle(guiStyle: BarcodePicker.GuiStyle): BarcodePicker {\n this.gui.setGuiStyle(guiStyle);\n\n return this;\n }\n\n /**\n * Set the fit type for the video element of the picker.\n *\n * If the \"cover\" type is selected the maximum available search area for barcode/text detection is (continuously)\n * adjusted automatically according to the visible area of the picker.\n *\n * In Single Image Mode this method has no effect.\n *\n * @param objectFit The new fit type to be applied.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setVideoFit(objectFit: BarcodePicker.ObjectFit): BarcodePicker {\n this.gui.setVideoFit(objectFit);\n\n return this;\n }\n\n /**\n * Access the currently set or default camera, requesting user permissions if needed.\n * This method is meant to be used after the picker has been initialized with disabled camera access\n * (*accessCamera*=false) or after [[pauseScanning]] has been called with the pause camera stream option.\n * Calling this doesn't do anything if the camera is already being accessed.\n *\n * Depending on device features and user permissions for camera access, any of the following errors\n * could be the rejected result of the returned promise:\n * - `AbortError`\n * - `NoCameraAvailableError`\n * - `NotAllowedError`\n * - `NotFoundError`\n * - `NotReadableError`\n * - `SecurityError`\n *\n * In Single Image Mode this method has no effect.\n *\n * @returns A promise resolving to the updated [[BarcodePicker]] object when the camera is accessed.\n */\n public async accessCamera(): Promise {\n if (!this.cameraAccess || this.getActiveCamera() == null) {\n await this.cameraManager.setupCameras();\n this.cameraAccess = true;\n }\n\n return this;\n }\n\n /**\n * Create a new parser object.\n *\n * @param dataFormat The format of the input data for the parser.\n * @returns The newly created parser.\n */\n public createParserForFormat(dataFormat: Parser.DataFormat): Parser {\n return this.scanner.createParserForFormat(dataFormat);\n }\n\n /**\n * Reassign the barcode picker to a different HTML element.\n *\n * All the barcode picker elements inside the current origin element will be moved to the new given one.\n *\n * If an invalid element is given, a `NoOriginElementError` error is thrown.\n *\n * @param originElement The HTMLElement into which all the necessary elements for the picker will be moved.\n * @returns The updated [[BarcodePicker]] object.\n */\n public reassignOriginElement(originElement: HTMLElement): BarcodePicker {\n if (!BrowserHelper.isValidHTMLElement(originElement)) {\n throw new CustomError({\n name: \"NoOriginElementError\",\n message: \"A valid origin HTML element must be given\",\n });\n }\n\n this.gui.reassignOriginElement(originElement);\n\n return this;\n }\n\n /**\n * Set the target frames per second to be processed by the external Scandit Data Capture library.\n *\n * The final speed is limited by the camera framerate (usually 30 FPS) and the frame processing time of the device.\n * By setting this to lower numbers devices can save power by performing less work during scanning operations,\n * depending on device speed (faster devices can \"sleep\" for longer periods).\n *\n * In Single Image Mode this method has no effect.\n *\n * @param targetScanningFPS The target frames per second to be processed.\n * Must be a number bigger than 0, by default set to 30.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setTargetScanningFPS(targetScanningFPS: number): BarcodePicker {\n if (targetScanningFPS <= 0) {\n targetScanningFPS = 30;\n }\n this.targetScanningFPS = targetScanningFPS;\n\n return this;\n }\n\n /**\n * @returns The internally used initialized (and possibly configured) [[Scanner]] object instance.\n */\n public getScanner(): Scanner {\n return this.scanner;\n }\n\n /**\n * Clear the internal scanner session.\n *\n * This removes all recognized barcodes/texts from the scanner session and allows them to be scanned again in case a\n * custom *codeDuplicateFilter* and/or *textDuplicateFilter* option was set in [[ScanSettings]] or\n * [[TextRecognitionSettings]].\n *\n * @returns The updated [[BarcodePicker]] object.\n */\n public clearSession(): BarcodePicker {\n this.scanner.clearSession();\n\n return this;\n }\n\n /**\n * Set the area of the laser displayed when the GUI style is set to *laser* (the laser will match the width and be\n * vertically centered).\n * Note that this functionality affects UI only and doesn't change the actual *searchArea* option set via\n * [[ScanSettings]]. If no area is passed, the default automatic size behaviour is set, where the laser will match\n * the current area of the image in which barcodes/texts are searched, controlled via the *searchArea* option in\n * [[ScanSettings]].\n *\n * @param area The new search area, by default the area will match [[ScanSettings]]'s *searchArea* option.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setLaserArea(area?: SearchArea): BarcodePicker {\n this.gui.setLaserArea(area);\n\n return this;\n }\n\n /**\n * Set the area of the viewfinder displayed when the GUI style is set to *viewfinder*.\n * Note that this functionality affects UI only and doesn't change the actual search area set via [[ScanSettings]].\n * If no area is passed, the default automatic size behaviour is set, where the viewfinder will match the current area\n * of the image in which barcodes/texts are searched, controlled via the *searchArea* option in [[ScanSettings]].\n *\n * @param area The new search area, by default the area will match the [[ScanSettings]]'s *searchArea*.\n * @returns The updated [[BarcodePicker]] object.\n */\n public setViewfinderArea(area?: SearchArea): BarcodePicker {\n this.gui.setViewfinderArea(area);\n\n return this;\n }\n\n /**\n * @hidden\n *\n * Pause the camera stream (camera access is fully interrupted).\n *\n * @returns The updated [[BarcodePicker]] object.\n */\n public pauseCameraAccess(): BarcodePicker {\n this.cameraAccess = false;\n this.cameraManager.stopStream().catch(\n /* istanbul ignore next */ () => {\n // Ignored\n }\n );\n\n return this;\n }\n\n private triggerCameraAccessError(error: Error): void {\n this.eventEmitter.emit(\"cameraAccessError\", error);\n }\n\n private handleScanResult(scanResult: ScanResult): void {\n (>scanResult).imageData = this.externalImageData;\n\n this.eventEmitter.emit(\"processFrame\", scanResult);\n\n if (scanResult.barcodes.length !== 0 || scanResult.texts.length !== 0) {\n // This will get executed only after the other existing listeners for \"processFrame\" and \"scan\" are executed\n this.eventEmitter.once(\"scan\", () => {\n const acceptedBarcodes: boolean = scanResult.barcodes.some((barcode) => {\n return !scanResult.rejectedCodes.has(barcode);\n });\n const acceptedTexts: boolean = scanResult.texts.some((text) => {\n return !scanResult.rejectedTexts.has(text);\n });\n if (acceptedBarcodes || acceptedTexts) {\n this.gui.flashGUI();\n if (this.playSoundOnScan) {\n this.beepSound.play();\n }\n if (this.vibrateOnScan) {\n this.vibrateFunction?.call(navigator, 300);\n }\n }\n });\n this.eventEmitter.emit(\"scan\", scanResult);\n }\n }\n\n private scheduleVideoProcessing(timeout: number = 0): void {\n window.setTimeout(async () => {\n await this.videoProcessing();\n }, timeout); // Leave some breathing room for other operations\n }\n\n private async scheduleNextVideoProcessing(processingStartTime: number): Promise {\n if (this.targetScanningFPS < 60) {\n if (this.averageProcessingTime == null) {\n this.averageProcessingTime = performance.now() - processingStartTime;\n } else {\n this.averageProcessingTime = this.averageProcessingTime * 0.9 + (performance.now() - processingStartTime) * 0.1;\n }\n const nextProcessingCallDelay: number = Math.max(0, 1000 / this.targetScanningFPS - this.averageProcessingTime);\n if (Math.round(nextProcessingCallDelay) <= 16) {\n await this.videoProcessing();\n } else {\n this.scheduleVideoProcessing(nextProcessingCallDelay);\n }\n } else {\n await this.videoProcessing();\n }\n }\n\n private async processVideoFrame(highQualitySingleFrameMode: boolean): Promise {\n this.internalImageData = this.gui.getImageData(this.internalImageData);\n\n // This could happen in unexpected situations and should be temporary\n // istanbul ignore if\n if (this.internalImageData == null) {\n return;\n }\n\n if (\n this.externalImageData == null ||\n this.externalImageData.byteLength === 0 ||\n this.externalImageData.byteLength !== this.internalImageData.byteLength\n ) {\n this.externalImageData = new Uint8Array(this.internalImageData);\n } else {\n this.externalImageData.set(this.internalImageData);\n }\n\n if (!this.scanningPaused) {\n if (this.eventEmitter.listenerCount(\"submitFrame\") > 0) {\n this.eventEmitter.emit(\n \"submitFrame\",\n new ScanResult([], [], this.externalImageData, this.scanner.getImageSettings())\n );\n }\n\n try {\n const scanResult: ScanResult = await this.scanner.processImage(\n this.internalImageData,\n highQualitySingleFrameMode\n );\n this.internalImageData = scanResult.imageData;\n // Paused status could have changed in the meantime\n if (!this.scanningPaused) {\n this.handleScanResult(scanResult);\n }\n } catch (error) {\n this.internalImageData = undefined;\n if (error.name === \"ImageSettingsDataMismatch\") {\n // This could happen in unexpected situations and should be temporary\n return;\n }\n this.pauseScanning();\n this.eventEmitter.emit(\"scanError\", error);\n }\n }\n }\n\n private async videoProcessing(): Promise {\n if (this.destroyed) {\n return;\n }\n\n if (\n this.getActiveCamera()?.currentResolution == null ||\n this.scanningPaused ||\n !this.scanner.isReady() ||\n this.scanner.isBusyProcessing() ||\n this.latestVideoTimeProcessed === this.gui.getVideoCurrentTime()\n ) {\n this.scheduleVideoProcessing();\n\n return;\n }\n\n if (this.latestVideoTimeProcessed == null) {\n // Show active GUI if needed, as now it's the moment the scanner is ready and used for the first time\n await this.resumeScanning();\n }\n\n const processingStartTime: number = performance.now();\n this.latestVideoTimeProcessed = this.gui.getVideoCurrentTime();\n\n await this.processVideoFrame(false);\n await this.scheduleNextVideoProcessing(processingStartTime);\n }\n\n private handleScannerReady(): void {\n this.isReadyToWork = true;\n this.eventEmitter.emit(\"ready\");\n }\n}\n\n// istanbul ignore next\nexport namespace BarcodePicker {\n /**\n * GUI style to be used by a barcode picker, used to hint barcode/text placement in the frame.\n */\n export enum GuiStyle {\n /**\n * No GUI is shown to indicate where the barcode/text should be placed.\n * Be aware that the Scandit logo continues to be displayed as showing it is part of the license agreement.\n */\n NONE = \"none\",\n /**\n * A laser line is shown.\n */\n LASER = \"laser\",\n /**\n * A rectangular viewfinder with rounded corners is shown.\n */\n VIEWFINDER = \"viewfinder\",\n }\n\n /**\n * Fit type used to control the resizing (scale) of the barcode picker to fit in its container *originElement*.\n */\n export enum ObjectFit {\n /**\n * Scale to maintain aspect ratio while fitting within the *originElement*'s content box.\n * Aspect ratio is preserved, so the barcode picker will be \"letterboxed\" if its aspect ratio\n * does not match the aspect ratio of the box.\n */\n CONTAIN = \"contain\",\n /**\n * Scale to maintain aspect ratio while filling the *originElement*'s entire content box.\n * Aspect ratio is preserved, so the barcode picker will be clipped to fit if its aspect ratio\n * does not match the aspect ratio of the box.\n */\n COVER = \"cover\",\n }\n}\n","import { BarcodePicker, Camera, ScanSettings, SearchArea, SingleImageModeSettings, TextRecognitionSettings } from \"..\";\n\nexport enum Attribute {\n ACCESS_CAMERA = \"accessCamera\",\n CAMERA = \"camera\",\n CAMERA_SETTINGS = \"cameraSettings\",\n CAMERA_TYPE = \"cameraType\",\n CONFIGURE = \"configure\",\n ENABLE_CAMERA_SWITCHER = \"enableCameraSwitcher\",\n ENABLE_PINCH_TO_ZOOM = \"enablePinchToZoom\",\n ENABLE_TAP_TO_FOCUS = \"enableTapToFocus\",\n ENABLE_TORCH_TOGGLE = \"enableTorchToggle\",\n GUI_STYLE = \"guiStyle\",\n LASER_AREA = \"laserArea\",\n PLAY_SOUND_ON_SCAN = \"playSoundOnScan\",\n SCANNING_PAUSED = \"scanningPaused\",\n SINGLE_IMAGE_MODE_SETTINGS = \"singleImageModeSettings\",\n TARGET_SCANNING_FPS = \"targetScanningFPS\",\n VIBRATE_ON_SCAN = \"vibrateOnScan\",\n VIDEO_FIT = \"videoFit\",\n VIEWFINDER_AREA = \"viewfinderArea\",\n VISIBLE = \"visible\",\n CONFIGURE_ENGINE_LOCATION = \"configure.engineLocation\",\n CONFIGURE_LICENSE_KEY = \"configure.licenseKey\",\n CONFIGURE_HIGH_QUALITY_BLURRY_RECOGNITION = \"configure.highQualityBlurryRecognition\",\n CONFIGURE_LOAD_TEXT_RECOGNITION = \"configure.loadTextRecognition\",\n CONFIGURE_PRELOAD_BLURRY_RECOGNITION = \"configure.preloadBlurryRecognition\",\n CONFIGURE_PRELOAD_ENGINE = \"configure.preloadEngine\",\n SCAN_SETTINGS_BLURRY_RECOGNITION = \"scanSettings.blurryRecognition\",\n SCAN_SETTINGS_CODE_DIRECTION_HINT = \"scanSettings.codeDirectionHint\",\n SCAN_SETTINGS_CODE_DUPLICATE_FILTER = \"scanSettings.codeDuplicateFilter\",\n SCAN_SETTINGS_DEVICE_NAME = \"scanSettings.deviceName\",\n SCAN_SETTINGS_ENABLED_SYMBOLOGIES = \"scanSettings.enabledSymbologies\",\n SCAN_SETTINGS_GPU_ACCELERATION = \"scanSettings.gpuAcceleration\",\n SCAN_SETTINGS_MAX_NUMBER_OF_CODES_PER_FRAME = \"scanSettings.maxNumberOfCodesPerFrame\",\n SCAN_SETTINGS_RECOGNITION_MODE = \"scanSettings.recognitionMode\",\n SCAN_SETTINGS_SEARCH_AREA = \"scanSettings.searchArea\",\n SCAN_SETTINGS_TEXT_RECOGNITION_SETTINGS = \"scanSettings.textRecognitionSettings\",\n}\n\nexport const attributes: Attribute[] = Object.values(Attribute);\n\nlet schema: { [key in Attribute]: AttributeDescriptor };\n// tslint:disable-next-line: max-func-body-length\nexport function getSchema(): { [key in Attribute]: AttributeDescriptor } {\n if (schema != null) {\n return schema;\n }\n\n return (schema = Object.freeze({\n [Attribute.ACCESS_CAMERA]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.CAMERA]: {\n type: \"camera\",\n default: undefined,\n },\n [Attribute.CAMERA_SETTINGS]: {\n type: \"cameraSettings\",\n default: undefined,\n },\n [Attribute.CAMERA_TYPE]: {\n type: \"cameraType\",\n default: Camera.Type.BACK,\n },\n [Attribute.CONFIGURE]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.ENABLE_CAMERA_SWITCHER]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.ENABLE_PINCH_TO_ZOOM]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.ENABLE_TAP_TO_FOCUS]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.ENABLE_TORCH_TOGGLE]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.GUI_STYLE]: {\n type: \"guiStyle\",\n default: BarcodePicker.GuiStyle.LASER,\n },\n [Attribute.LASER_AREA]: {\n type: \"searchArea\",\n default: undefined,\n },\n [Attribute.PLAY_SOUND_ON_SCAN]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.SCANNING_PAUSED]: {\n type: \"boolean\",\n default: false,\n },\n [Attribute.SINGLE_IMAGE_MODE_SETTINGS]: {\n type: \"singleImageModeSettings\",\n default: undefined,\n },\n [Attribute.TARGET_SCANNING_FPS]: {\n type: \"integer\",\n default: 30,\n },\n [Attribute.VIBRATE_ON_SCAN]: {\n type: \"boolean\",\n default: false,\n },\n [Attribute.VIDEO_FIT]: {\n type: \"videoFit\",\n default: BarcodePicker.ObjectFit.CONTAIN,\n },\n [Attribute.VIEWFINDER_AREA]: {\n type: \"searchArea\",\n default: undefined,\n },\n [Attribute.VISIBLE]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.CONFIGURE_ENGINE_LOCATION]: {\n type: \"string\",\n default: \"/\",\n },\n [Attribute.CONFIGURE_LICENSE_KEY]: {\n type: \"string\",\n default: \"\",\n },\n [Attribute.CONFIGURE_HIGH_QUALITY_BLURRY_RECOGNITION]: {\n type: \"boolean\",\n default: false,\n },\n [Attribute.CONFIGURE_LOAD_TEXT_RECOGNITION]: {\n type: \"boolean\",\n default: false,\n },\n [Attribute.CONFIGURE_PRELOAD_BLURRY_RECOGNITION]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.CONFIGURE_PRELOAD_ENGINE]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.SCAN_SETTINGS_BLURRY_RECOGNITION]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.SCAN_SETTINGS_CODE_DIRECTION_HINT]: {\n type: \"codeDirection\",\n default: ScanSettings.CodeDirection.LEFT_TO_RIGHT,\n },\n [Attribute.SCAN_SETTINGS_CODE_DUPLICATE_FILTER]: {\n type: \"integer\",\n default: 0,\n },\n [Attribute.SCAN_SETTINGS_DEVICE_NAME]: {\n type: \"string\",\n default: undefined,\n },\n [Attribute.SCAN_SETTINGS_ENABLED_SYMBOLOGIES]: {\n type: \"array\",\n default: [],\n },\n [Attribute.SCAN_SETTINGS_GPU_ACCELERATION]: {\n type: \"boolean\",\n default: true,\n },\n [Attribute.SCAN_SETTINGS_MAX_NUMBER_OF_CODES_PER_FRAME]: {\n type: \"integer\",\n default: 1,\n },\n [Attribute.SCAN_SETTINGS_RECOGNITION_MODE]: {\n type: \"recognitionMode\",\n default: ScanSettings.RecognitionMode.CODE,\n },\n [Attribute.SCAN_SETTINGS_SEARCH_AREA]: {\n type: \"searchArea\",\n default: undefined,\n },\n [Attribute.SCAN_SETTINGS_TEXT_RECOGNITION_SETTINGS]: {\n type: \"textRecognitionSettings\",\n default: undefined,\n },\n }));\n}\n\ntype AttributeType =\n | \"boolean\"\n | \"string\"\n | \"integer\"\n | \"array\"\n | \"videoFit\"\n | \"camera\"\n | \"cameraSettings\"\n | \"cameraType\"\n | \"guiStyle\"\n | \"searchArea\"\n | \"codeDirection\"\n | \"recognitionMode\"\n | \"singleImageModeSettings\"\n | \"textRecognitionSettings\";\n\nexport type AttributeDescriptor =\n | StringValue\n | BooleanValue\n | IntegerValue\n | ArrayValue\n | VideoFitValue\n | CameraValue\n | CameraSettings\n | CameraTypeValue\n | GuiStyleValue\n | SearchAreaValue\n | CodeDirectionValue\n | RecognitionModeValue\n | SingleImageModeSettingsValue\n | TextRecognitionSettingsValue;\n\ninterface GenericValue {\n type: AttributeType;\n}\n\ninterface BooleanValue extends GenericValue {\n type: \"boolean\";\n default: boolean;\n}\n\ninterface StringValue extends GenericValue {\n type: \"string\";\n default?: string;\n}\n\ninterface IntegerValue extends GenericValue {\n type: \"integer\";\n default?: number;\n}\n\ninterface ArrayValue extends GenericValue {\n type: \"array\";\n default?: string[] | number[];\n}\n\ninterface VideoFitValue extends GenericValue {\n type: \"videoFit\";\n default?: BarcodePicker.ObjectFit;\n}\n\ninterface CameraValue extends GenericValue {\n type: \"camera\";\n default?: Camera;\n}\n\ninterface CameraSettings extends GenericValue {\n type: \"cameraSettings\";\n default?: CameraSettings;\n}\n\ninterface CameraTypeValue extends GenericValue {\n type: \"cameraType\";\n default?: Camera.Type;\n}\n\ninterface GuiStyleValue extends GenericValue {\n type: \"guiStyle\";\n default?: BarcodePicker.GuiStyle;\n}\n\ninterface SearchAreaValue extends GenericValue {\n type: \"searchArea\";\n default?: SearchArea;\n}\n\ninterface CodeDirectionValue extends GenericValue {\n type: \"codeDirection\";\n default?: ScanSettings.CodeDirection;\n}\n\ninterface RecognitionModeValue extends GenericValue {\n type: \"recognitionMode\";\n default?: ScanSettings.RecognitionMode;\n}\n\ninterface SingleImageModeSettingsValue extends GenericValue {\n type: \"singleImageModeSettings\";\n default?: SingleImageModeSettings;\n}\n\ninterface TextRecognitionSettingsValue extends GenericValue {\n type: \"textRecognitionSettings\";\n default?: TextRecognitionSettings;\n}\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import { ResizeObserver as ResizeObserverPolyfill } from \"@juggle/resize-observer\";\n\n/**\n * @hidden\n */\n// tslint:disable-next-line: variable-name no-any\nconst ResizeObserver: typeof ResizeObserverPolyfill = (window).ResizeObserver ?? ResizeObserverPolyfill;\n\nimport {\n laserActiveImage,\n laserPausedImage,\n scanditLogoImage,\n switchCameraFOVUltraWideImage,\n switchCameraFOVWideImage,\n switchCameraImage,\n toggleTorchImage,\n transparentPixelImage,\n} from \"../assets/base64assets\";\nimport { BrowserHelper } from \"../browserHelper\";\nimport { Camera } from \"../camera\";\nimport { CameraAccess } from \"../cameraAccess\";\nimport { ImageSettings } from \"../imageSettings\";\nimport { Logger } from \"../logger\";\nimport { Scanner } from \"../scanner\";\nimport { ScanSettings } from \"../scanSettings\";\nimport { SearchArea } from \"../searchArea\";\nimport { SingleImageModePlatformSettings, SingleImageModeSettings } from \"../singleImageModeSettings\";\nimport { BarcodePicker } from \"./barcodePicker\";\nimport { CameraManager } from \"./cameraManager\";\n\nexport class GUI {\n public static readonly grandParentElementClassName: string = \"scandit scandit-container\";\n public static readonly parentElementClassName: string = \"scandit scandit-barcode-picker\";\n public static readonly hiddenClassName: string = \"scandit-hidden\";\n public static readonly hiddenOpacityClassName: string = \"scandit-hidden-opacity\";\n public static readonly videoElementClassName: string = \"scandit-video\";\n public static readonly scanditLogoImageElementClassName: string = \"scandit-logo\";\n public static readonly laserContainerElementClassName: string = \"scandit-laser\";\n public static readonly viewfinderElementClassName: string = \"scandit-viewfinder\";\n public static readonly cameraSwitcherElementClassName: string = \"scandit-camera-switcher\";\n public static readonly cameraFOVSwitcherElementClassName: string = \"scandit-camera-fov-switcher\";\n public static readonly cameraRecoveryElementClassName: string = \"scandit-camera-recovery\";\n public static readonly torchTogglerElementClassName: string = \"scandit-torch-toggle\";\n public static readonly cameraUploadElementClassName: string = \"scandit-camera-upload\";\n public static readonly flashColorClassName: string = \"scandit-flash-color\";\n public static readonly flashWhiteClassName: string = \"scandit-flash-white\";\n public static readonly flashInsetClassName: string = \"scandit-flash-inset\";\n public static readonly opacityPulseClassName: string = \"scandit-opacity-pulse\";\n public static readonly mirroredClassName: string = \"mirrored\";\n public static readonly pausedClassName: string = \"paused\";\n\n public readonly videoElement: HTMLVideoElement;\n\n private readonly cameraSwitcherElement: HTMLImageElement;\n private readonly cameraFOVSwitcherElement: HTMLDivElement;\n private readonly cameraFOVSwitcherUltraWideElement: HTMLImageElement;\n private readonly cameraFOVSwitcherWideElement: HTMLImageElement;\n private readonly torchTogglerElement: HTMLImageElement;\n private readonly cameraRecoveryElement: HTMLDivElement;\n\n private readonly scanner: Scanner;\n private readonly singleImageModeEnabled: boolean;\n private readonly singleImageModeSettings: SingleImageModePlatformSettings;\n private readonly grandParentElement: HTMLDivElement;\n private readonly parentElement: HTMLDivElement;\n private readonly laserContainerElement: HTMLDivElement;\n private readonly laserActiveImageElement: HTMLImageElement;\n private readonly laserPausedImageElement: HTMLImageElement;\n private readonly viewfinderElement: HTMLDivElement;\n private readonly cameraUploadElement: HTMLDivElement;\n private readonly cameraUploadLabelElement: HTMLLabelElement;\n private readonly cameraUploadInputElement: HTMLInputElement;\n private readonly cameraUploadProgressElement: HTMLDivElement;\n private readonly visibilityListener: EventListenerOrEventListenerObject;\n private readonly videoPauseListener: EventListenerOrEventListenerObject;\n private readonly videoResizeListener: EventListenerOrEventListenerObject;\n private readonly webGLContextLostListener: EventListenerOrEventListenerObject;\n private readonly newScanSettingsListener: (scanSettings: ScanSettings) => void;\n private readonly contextCreatedShowLogoListener: (licenseKeyFeatures: object) => void;\n private readonly contextCreatedActivateGUIListener: () => void;\n private readonly resizeObserver: ResizeObserverPolyfill;\n private readonly cameraUploadCallback: () => Promise;\n private readonly mirrorImageOverrides: Map;\n\n private contextWebGL?: WebGLRenderingContext;\n private context2d?: CanvasRenderingContext2D;\n private cameraManager?: CameraManager;\n private originElement: HTMLElement;\n private scanningPaused: boolean;\n private visible: boolean;\n private guiStyle: BarcodePicker.GuiStyle;\n private videoFit: BarcodePicker.ObjectFit;\n private customLaserArea?: SearchArea;\n private customViewfinderArea?: SearchArea;\n private cameraUploadInProgress: boolean;\n private cameraSwitchInProgress: boolean;\n private dataCaptureContextCreated: boolean;\n // This property was introduced because testing videoElement.offsetParent in Safari\n // proved to be unreliable.\n private isVideoElementDetached: boolean = false;\n\n public constructor(options: {\n scanner: Scanner;\n originElement: HTMLElement;\n singleImageModeEnabled: boolean;\n singleImageModeSettings: SingleImageModePlatformSettings;\n scanningPaused: boolean;\n visible: boolean;\n guiStyle: BarcodePicker.GuiStyle;\n videoFit: BarcodePicker.ObjectFit;\n hideLogo: boolean;\n cameraRecoveryText: string;\n laserArea?: SearchArea;\n viewfinderArea?: SearchArea;\n cameraUploadCallback(): Promise;\n }) {\n this.scanner = options.scanner;\n this.originElement = options.originElement;\n this.singleImageModeEnabled = options.singleImageModeEnabled;\n this.singleImageModeSettings = options.singleImageModeSettings;\n this.scanningPaused = options.scanningPaused;\n this.cameraUploadCallback = options.cameraUploadCallback;\n this.mirrorImageOverrides = new Map();\n this.cameraUploadInProgress = false;\n this.cameraSwitchInProgress = false;\n this.dataCaptureContextCreated = false;\n\n this.grandParentElement = document.createElement(\"div\");\n this.grandParentElement.className = GUI.grandParentElementClassName;\n this.originElement.appendChild(this.grandParentElement);\n this.parentElement = document.createElement(\"div\");\n this.parentElement.className = GUI.parentElementClassName;\n this.grandParentElement.appendChild(this.parentElement);\n\n this.videoElement = document.createElement(\"video\");\n this.cameraSwitcherElement = document.createElement(\"img\");\n this.cameraFOVSwitcherElement = document.createElement(\"div\");\n this.cameraFOVSwitcherUltraWideElement = document.createElement(\"img\");\n this.cameraFOVSwitcherWideElement = document.createElement(\"img\");\n this.torchTogglerElement = document.createElement(\"img\");\n this.laserContainerElement = document.createElement(\"div\");\n this.laserActiveImageElement = document.createElement(\"img\");\n this.laserPausedImageElement = document.createElement(\"img\");\n this.cameraRecoveryElement = document.createElement(\"div\");\n this.viewfinderElement = document.createElement(\"div\");\n\n const canvas: HTMLCanvasElement = document.createElement(\"canvas\");\n this.webGLContextLostListener = this.handleWebGLContextLost.bind(this);\n\n if (options.singleImageModeEnabled) {\n this.context2d = canvas.getContext(\"2d\");\n\n this.cameraUploadElement = document.createElement(\"div\");\n this.cameraUploadLabelElement = document.createElement(\"label\");\n this.cameraUploadInputElement = document.createElement(\"input\");\n this.cameraUploadProgressElement = document.createElement(\"div\");\n\n this.setupCameraUploadGuiAssets();\n\n this.guiStyle = BarcodePicker.GuiStyle.NONE;\n } else {\n this.setupContext(canvas);\n this.setupVideoElement();\n this.setupCameraSwitcher();\n this.setupCameraFOVSwitcher();\n this.setupTorchToggler();\n this.setupCameraRecovery(options.cameraRecoveryText);\n this.setupFullGuiAssets();\n this.setGuiStyle(options.guiStyle);\n this.setVideoFit(options.videoFit);\n this.setLaserArea(options.laserArea);\n this.setViewfinderArea(options.viewfinderArea);\n\n // Ensure the camera is accessed and the video plays again correctly when visibility changes\n this.visibilityListener = this.checkAndRecoverPlayback.bind(this);\n document.addEventListener(\"visibilitychange\", this.visibilityListener);\n\n this.newScanSettingsListener = this.handleNewScanSettings.bind(this);\n this.scanner.on(\"newScanSettings\", this.newScanSettingsListener);\n this.handleNewScanSettings();\n\n this.videoPauseListener = this.handleVideoPause.bind(this);\n this.videoElement.addEventListener(\"pause\", this.videoPauseListener);\n\n this.videoResizeListener = this.handleVideoResize.bind(this);\n this.videoElement.addEventListener(\"resize\", this.videoResizeListener);\n }\n\n if (options.hideLogo) {\n this.contextCreatedShowLogoListener = this.showScanditLogo.bind(this, options.hideLogo);\n this.scanner.on(\"contextCreated\", this.contextCreatedShowLogoListener);\n } else {\n this.showScanditLogo(options.hideLogo);\n }\n this.contextCreatedActivateGUIListener = this.activateGUI.bind(this);\n this.scanner.on(\"contextCreated\", this.contextCreatedActivateGUIListener);\n\n this.resize();\n this.resizeObserver = new ResizeObserver(\n /* istanbul ignore next */ () => {\n this.resize();\n }\n );\n this.resizeObserver.observe(this.originElement);\n\n this.setVisible(options.visible);\n }\n\n public destroy(): void {\n if (this.visibilityListener != null) {\n document.removeEventListener(\"visibilitychange\", this.visibilityListener);\n }\n if (this.newScanSettingsListener != null) {\n this.scanner.removeListener(\"newScanSettings\", this.newScanSettingsListener);\n }\n if (this.videoPauseListener != null) {\n this.videoElement.removeEventListener(\"pause\", this.videoPauseListener);\n }\n if (this.videoResizeListener != null) {\n this.videoElement.removeEventListener(\"resize\", this.videoResizeListener);\n }\n if (this.contextCreatedShowLogoListener != null) {\n this.scanner.removeListener(\"contextCreated\", this.contextCreatedShowLogoListener);\n }\n if (this.contextCreatedActivateGUIListener != null) {\n this.scanner.removeListener(\"contextCreated\", this.contextCreatedActivateGUIListener);\n }\n this.resizeObserver.disconnect();\n this.grandParentElement.remove();\n this.videoElement.remove();\n this.contextWebGL?.canvas?.removeEventListener(\"webglcontextlost\", this.webGLContextLostListener);\n this.contextWebGL?.getExtension(\"WEBGL_lose_context\")?.loseContext();\n this.contextWebGL = undefined;\n this.context2d = undefined;\n this.originElement.classList.remove(GUI.hiddenClassName);\n }\n\n public setCameraManager(cameraManager: CameraManager): void {\n this.cameraManager = cameraManager;\n }\n\n public pauseScanning(): void {\n this.scanningPaused = true;\n this.laserActiveImageElement.classList.add(GUI.hiddenOpacityClassName);\n this.laserPausedImageElement.classList.remove(GUI.hiddenOpacityClassName);\n this.viewfinderElement.classList.add(GUI.pausedClassName);\n }\n\n public resumeScanning(): void {\n this.scanningPaused = false;\n if (this.dataCaptureContextCreated) {\n this.laserPausedImageElement.classList.add(GUI.hiddenOpacityClassName);\n this.laserActiveImageElement.classList.remove(GUI.hiddenOpacityClassName);\n this.viewfinderElement.classList.remove(GUI.pausedClassName);\n }\n }\n\n public isVisible(): boolean {\n return this.visible;\n }\n\n public setVisible(visible: boolean): void {\n this.visible = visible;\n\n if (visible) {\n this.originElement.classList.remove(GUI.hiddenClassName);\n if (this.guiStyle === BarcodePicker.GuiStyle.LASER) {\n this.laserActiveImageElement.classList.remove(GUI.flashColorClassName);\n } else if (this.guiStyle === BarcodePicker.GuiStyle.VIEWFINDER) {\n this.viewfinderElement.classList.remove(GUI.flashWhiteClassName);\n }\n } else {\n this.originElement.classList.add(GUI.hiddenClassName);\n }\n }\n\n public isMirrorImageEnabled(): boolean {\n if (this.cameraManager?.selectedCamera != null && this.cameraManager?.activeCamera != null) {\n const mirrorImageOverride: boolean | undefined = this.mirrorImageOverrides.get(this.cameraManager.activeCamera);\n\n return mirrorImageOverride ?? this.cameraManager.activeCamera.cameraType === Camera.Type.FRONT;\n } else {\n return false;\n }\n }\n\n public setMirrorImageEnabled(enabled: boolean, override: boolean): void {\n if (this.cameraManager?.selectedCamera != null) {\n if (enabled) {\n this.videoElement.classList.add(GUI.mirroredClassName);\n } else {\n this.videoElement.classList.remove(GUI.mirroredClassName);\n }\n\n if (override) {\n this.mirrorImageOverrides.set(this.cameraManager.selectedCamera, enabled);\n }\n }\n }\n\n public setGuiStyle(guiStyle: BarcodePicker.GuiStyle): void {\n if (this.singleImageModeEnabled) {\n return;\n }\n\n switch (guiStyle) {\n case BarcodePicker.GuiStyle.LASER:\n this.guiStyle = guiStyle;\n this.laserContainerElement.classList.remove(GUI.hiddenClassName);\n this.viewfinderElement.classList.add(GUI.hiddenClassName);\n break;\n case BarcodePicker.GuiStyle.VIEWFINDER:\n this.guiStyle = guiStyle;\n this.laserContainerElement.classList.add(GUI.hiddenClassName);\n this.viewfinderElement.classList.remove(GUI.hiddenClassName);\n break;\n case BarcodePicker.GuiStyle.NONE:\n default:\n this.guiStyle = BarcodePicker.GuiStyle.NONE;\n this.laserContainerElement.classList.add(GUI.hiddenClassName);\n this.viewfinderElement.classList.add(GUI.hiddenClassName);\n break;\n }\n }\n\n public setLaserArea(area?: SearchArea): void {\n this.customLaserArea = area;\n if (area == null) {\n area = this.scanner.getScanSettings().getSearchArea();\n }\n const borderPercentage: number = 0.025;\n const usablePercentage: number = 1 - borderPercentage * 2;\n this.laserContainerElement.style.left = `${(borderPercentage + area.x * usablePercentage) * 100}%`;\n this.laserContainerElement.style.width = `${area.width * usablePercentage * 100}%`;\n this.laserContainerElement.style.top = `${(borderPercentage + area.y * usablePercentage) * 100}%`;\n this.laserContainerElement.style.height = `${area.height * usablePercentage * 100}%`;\n }\n\n public setViewfinderArea(area?: SearchArea): void {\n this.customViewfinderArea = area;\n if (area == null) {\n area = this.scanner.getScanSettings().getSearchArea();\n }\n const borderPercentage: number = 0.025;\n const usablePercentage: number = 1 - borderPercentage * 2;\n this.viewfinderElement.style.left = `${(borderPercentage + area.x * usablePercentage) * 100}%`;\n this.viewfinderElement.style.width = `${area.width * usablePercentage * 100}%`;\n this.viewfinderElement.style.top = `${(borderPercentage + area.y * usablePercentage) * 100}%`;\n this.viewfinderElement.style.height = `${area.height * usablePercentage * 100}%`;\n }\n\n public setVideoFit(objectFit: BarcodePicker.ObjectFit): void {\n if (this.singleImageModeEnabled) {\n return;\n }\n\n this.videoFit = objectFit;\n\n if (objectFit === BarcodePicker.ObjectFit.COVER) {\n this.videoElement.style.objectFit = \"cover\";\n this.videoElement.dataset.objectFit = \"cover\"; // used by \"objectFitPolyfill\" library\n } else {\n this.videoElement.style.objectFit = \"contain\";\n this.videoElement.dataset.objectFit = \"contain\"; // used by \"objectFitPolyfill\" library\n\n this.scanner.applyScanSettings(\n this.scanner.getScanSettings().setBaseSearchArea({ x: 0, y: 0, width: 1.0, height: 1.0 })\n );\n }\n\n this.resize();\n }\n\n public reassignOriginElement(originElement: HTMLElement): void {\n if (!this.visible) {\n this.originElement.classList.remove(GUI.hiddenClassName);\n originElement.classList.add(GUI.hiddenClassName);\n }\n\n originElement.appendChild(this.grandParentElement);\n this.checkAndRecoverPlayback().catch(\n /* istanbul ignore next */ () => {\n // Ignored\n }\n );\n this.resize();\n this.resizeObserver.disconnect();\n this.resizeObserver.observe(originElement);\n\n this.originElement = originElement;\n this.resize();\n }\n\n public flashGUI(): void {\n if (this.guiStyle === BarcodePicker.GuiStyle.LASER) {\n this.flashLaser();\n } else if (this.guiStyle === BarcodePicker.GuiStyle.VIEWFINDER) {\n this.flashViewfinder();\n }\n }\n\n public getImageData(imageData?: Uint8Array): Uint8Array | undefined {\n function isVideoAndContextStateValid(\n videoElement: HTMLVideoElement,\n context: WebGLRenderingContext | CanvasRenderingContext2D\n ): boolean {\n // This could happen in unexpected situations and should be temporary\n return (\n videoElement.readyState === 4 &&\n videoElement.videoWidth > 2 &&\n videoElement.videoHeight > 2 &&\n context.canvas.width > 2 &&\n context.canvas.height > 2\n );\n }\n\n if (this.singleImageModeEnabled && this.context2d != null) {\n return new Uint8Array(\n this.context2d.getImageData(0, 0, this.context2d.canvas.width, this.context2d.canvas.height).data.buffer\n );\n }\n // istanbul ignore else\n if (!this.singleImageModeEnabled) {\n if (this.contextWebGL != null) {\n if (\n !isVideoAndContextStateValid(this.videoElement, this.contextWebGL) ||\n this.contextWebGL.drawingBufferWidth <= 2 ||\n this.contextWebGL.drawingBufferHeight <= 2\n ) {\n return;\n }\n\n const imageDataLength: number =\n this.contextWebGL.drawingBufferWidth * this.contextWebGL.drawingBufferHeight * 4;\n if (imageData == null || imageData.byteLength === 0 || imageData.byteLength !== imageDataLength) {\n imageData = new Uint8Array(imageDataLength);\n }\n this.contextWebGL.texImage2D(\n this.contextWebGL.TEXTURE_2D,\n 0,\n this.contextWebGL.RGBA,\n this.contextWebGL.RGBA,\n this.contextWebGL.UNSIGNED_BYTE,\n this.videoElement\n );\n this.contextWebGL.readPixels(\n 0,\n 0,\n this.contextWebGL.drawingBufferWidth,\n this.contextWebGL.drawingBufferHeight,\n this.contextWebGL.RGBA,\n this.contextWebGL.UNSIGNED_BYTE,\n imageData\n );\n\n // Detect incorrect GPU accelerated WebGL image processing by checking for incorrect alpha channel data\n if (imageData[3] !== 255) {\n Logger.log(\n Logger.Level.WARN,\n \"Detected incorrect GPU accelerated WebGL image processing, switching to canvas mode\"\n );\n this.contextWebGL = undefined;\n this.setupContext(document.createElement(\"canvas\"), true);\n this.handleVideoResize();\n\n return this.getImageData(imageData);\n }\n\n return imageData;\n }\n // istanbul ignore else\n if (this.context2d != null) {\n if (!isVideoAndContextStateValid(this.videoElement, this.context2d)) {\n return;\n }\n\n this.context2d.drawImage(this.videoElement, 0, 0);\n\n return new Uint8Array(\n this.context2d.getImageData(0, 0, this.context2d.canvas.width, this.context2d.canvas.height).data.buffer\n );\n }\n }\n\n // istanbul ignore next\n return;\n }\n\n public getVideoCurrentTime(): number {\n return this.videoElement.currentTime;\n }\n\n public setCameraSwitcherVisible(visible: boolean): void {\n if (visible) {\n this.cameraSwitcherElement.classList.remove(GUI.hiddenClassName);\n } else {\n this.cameraSwitcherElement.classList.add(GUI.hiddenClassName);\n }\n }\n\n public setCameraFOVSwitcherVisible(visible: boolean): void {\n if (visible) {\n this.cameraFOVSwitcherElement.classList.remove(GUI.hiddenClassName);\n } else {\n this.cameraFOVSwitcherElement.classList.add(GUI.hiddenClassName);\n }\n }\n\n public setCameraFOVSwitcherState(ultraWide: boolean): void {\n if (ultraWide) {\n this.cameraFOVSwitcherUltraWideElement.classList.remove(GUI.hiddenClassName);\n this.cameraFOVSwitcherWideElement.classList.add(GUI.hiddenClassName);\n } else {\n this.cameraFOVSwitcherWideElement.classList.remove(GUI.hiddenClassName);\n this.cameraFOVSwitcherUltraWideElement.classList.add(GUI.hiddenClassName);\n }\n }\n\n public isCameraRecoveryVisible(): boolean {\n return !this.cameraRecoveryElement.classList.contains(GUI.hiddenClassName);\n }\n\n public setCameraRecoveryVisible(visible: boolean): void {\n if (visible) {\n this.cameraRecoveryElement.classList.remove(GUI.hiddenClassName);\n } else {\n this.cameraRecoveryElement.classList.add(GUI.hiddenClassName);\n }\n }\n\n public setTorchTogglerVisible(visible: boolean): void {\n if (visible) {\n this.torchTogglerElement.classList.remove(GUI.hiddenClassName);\n } else {\n this.torchTogglerElement.classList.add(GUI.hiddenClassName);\n }\n }\n\n public playVideo(): void {\n const playPromise: Promise | undefined = this.videoElement.play();\n playPromise?.catch(\n /* istanbul ignore next */ () => {\n // Can sometimes cause an incorrect rejection (all is good, ignore).\n }\n );\n }\n\n public setVideoVisible(visible: boolean): void {\n this.videoElement.style.visibility = visible ? \"visible\" : \"hidden\";\n }\n\n public setCameraType(cameraType: Camera.Type): void {\n this.cameraUploadInputElement?.setAttribute(\"capture\", cameraType === Camera.Type.FRONT ? \"user\" : \"environment\");\n }\n\n private setCameraUploadGuiBusyScanning(busyScanning: boolean): void {\n if (busyScanning) {\n this.cameraUploadProgressElement.classList.remove(GUI.flashInsetClassName);\n this.cameraUploadElement.classList.add(GUI.opacityPulseClassName);\n } else {\n this.cameraUploadProgressElement.classList.add(GUI.flashInsetClassName);\n this.cameraUploadElement.classList.remove(GUI.opacityPulseClassName);\n }\n }\n\n private setupContext(canvas: HTMLCanvasElement, force2d: boolean = false): void {\n if (force2d) {\n this.context2d = canvas.getContext(\"2d\");\n\n return;\n }\n let context: WebGLRenderingContext | null = canvas.getContext(\"webgl\", { alpha: false, antialias: false });\n // istanbul ignore if\n if (context == null) {\n context = canvas.getContext(\"experimental-webgl\", { alpha: false, antialias: false });\n }\n if (context != null) {\n this.setupWebGL(context);\n canvas.addEventListener(\"webglcontextlost\", this.webGLContextLostListener);\n } else {\n this.context2d = canvas.getContext(\"2d\");\n }\n }\n\n private setupWebGL(contextWebGL: WebGLRenderingContext): void {\n const texture: WebGLTexture = contextWebGL.createTexture();\n contextWebGL.bindTexture(contextWebGL.TEXTURE_2D, texture);\n const frameBuffer: WebGLFramebuffer = contextWebGL.createFramebuffer();\n contextWebGL.bindFramebuffer(contextWebGL.FRAMEBUFFER, frameBuffer);\n contextWebGL.framebufferTexture2D(\n contextWebGL.FRAMEBUFFER,\n contextWebGL.COLOR_ATTACHMENT0,\n contextWebGL.TEXTURE_2D,\n texture,\n 0\n );\n contextWebGL.texParameteri(contextWebGL.TEXTURE_2D, contextWebGL.TEXTURE_WRAP_S, contextWebGL.CLAMP_TO_EDGE);\n contextWebGL.texParameteri(contextWebGL.TEXTURE_2D, contextWebGL.TEXTURE_WRAP_T, contextWebGL.CLAMP_TO_EDGE);\n contextWebGL.texParameteri(contextWebGL.TEXTURE_2D, contextWebGL.TEXTURE_MIN_FILTER, contextWebGL.NEAREST);\n contextWebGL.texParameteri(contextWebGL.TEXTURE_2D, contextWebGL.TEXTURE_MAG_FILTER, contextWebGL.NEAREST);\n this.contextWebGL = contextWebGL;\n }\n\n private setupVideoElement(): void {\n this.videoElement.setAttribute(\"autoplay\", \"autoplay\");\n this.videoElement.setAttribute(\"playsinline\", \"true\");\n this.videoElement.setAttribute(\"muted\", \"muted\");\n this.videoElement.setAttribute(\"poster\", transparentPixelImage);\n this.videoElement.className = GUI.videoElementClassName;\n this.parentElement.appendChild(this.videoElement);\n }\n\n private setupCameraUploadGuiAssets(): void {\n const deviceType: string | undefined = BrowserHelper.userAgentInfo.getDevice().type;\n const defaultSettings: SingleImageModePlatformSettings =\n deviceType === \"mobile\" || deviceType === \"tablet\"\n ? SingleImageModeSettings.defaultMobile\n : SingleImageModeSettings.defaultDesktop;\n\n this.cameraUploadElement.className = GUI.cameraUploadElementClassName;\n Object.assign(\n this.cameraUploadElement.style,\n defaultSettings.containerStyle,\n this.singleImageModeSettings.containerStyle\n );\n this.parentElement.appendChild(this.cameraUploadElement);\n\n const informationElement: HTMLElement =\n this.singleImageModeSettings.informationElement ?? defaultSettings.informationElement;\n Object.assign(\n informationElement.style,\n defaultSettings.informationStyle,\n this.singleImageModeSettings.informationStyle\n );\n this.cameraUploadElement.appendChild(informationElement);\n\n this.cameraUploadInputElement.type = \"file\";\n this.cameraUploadInputElement.accept = \"image/*\";\n this.cameraUploadInputElement.addEventListener(\"change\", this.cameraUploadFile.bind(this));\n const cameraUploadInputCheckFunction: EventListenerOrEventListenerObject = (event: Event): void => {\n // istanbul ignore next\n if (this.scanningPaused || this.cameraUploadInProgress) {\n event.preventDefault();\n }\n };\n this.cameraUploadInputElement.addEventListener(\"click\", cameraUploadInputCheckFunction);\n this.cameraUploadInputElement.addEventListener(\"keydown\", cameraUploadInputCheckFunction);\n\n this.cameraUploadLabelElement.appendChild(this.cameraUploadInputElement);\n\n const cameraUploadButtonIconElement: HTMLElement | SVGElement =\n this.singleImageModeSettings.buttonElement ?? defaultSettings.buttonElement;\n [this.cameraUploadProgressElement.style, cameraUploadButtonIconElement.style].forEach((style) => {\n Object.assign(style, defaultSettings.buttonStyle, this.singleImageModeSettings.buttonStyle);\n });\n cameraUploadButtonIconElement.style.maxWidth = \"100px\";\n cameraUploadButtonIconElement.style.maxHeight = \"100px\";\n this.cameraUploadLabelElement.appendChild(cameraUploadButtonIconElement);\n\n this.cameraUploadProgressElement.classList.add(\"radial-progress\");\n this.cameraUploadLabelElement.appendChild(this.cameraUploadProgressElement);\n\n this.cameraUploadElement.appendChild(this.cameraUploadLabelElement);\n }\n\n private setupFullGuiAssets(): void {\n this.laserActiveImageElement.src = laserActiveImage;\n this.laserContainerElement.appendChild(this.laserActiveImageElement);\n\n this.laserPausedImageElement.src = laserPausedImage;\n this.laserContainerElement.appendChild(this.laserPausedImageElement);\n\n this.laserContainerElement.className = GUI.laserContainerElementClassName;\n this.parentElement.appendChild(this.laserContainerElement);\n\n this.viewfinderElement.className = GUI.viewfinderElementClassName;\n this.parentElement.appendChild(this.viewfinderElement);\n\n // Show inactive GUI, as for now the scanner isn't ready yet\n this.laserActiveImageElement.classList.add(GUI.hiddenOpacityClassName);\n this.laserPausedImageElement.classList.remove(GUI.hiddenOpacityClassName);\n this.viewfinderElement.classList.add(GUI.pausedClassName);\n }\n\n private flashLaser(): void {\n this.laserActiveImageElement.classList.remove(GUI.flashColorClassName);\n // tslint:disable-next-line:no-unused-expression\n this.laserActiveImageElement.offsetHeight; // NOSONAR // Trigger reflow to restart animation\n this.laserActiveImageElement.classList.add(GUI.flashColorClassName);\n }\n\n private flashViewfinder(): void {\n this.viewfinderElement.classList.remove(GUI.flashWhiteClassName);\n // tslint:disable-next-line:no-unused-expression\n this.viewfinderElement.offsetHeight; // NOSONAR // Trigger reflow to restart animation\n this.viewfinderElement.classList.add(GUI.flashWhiteClassName);\n }\n\n private resize(): void {\n this.parentElement.style.maxWidth = \"\";\n this.parentElement.style.maxHeight = \"\";\n\n const width: number = this.originElement.clientWidth;\n const height: number = this.originElement.clientHeight;\n\n if (width === 0 || height === 0) {\n if (!this.singleImageModeEnabled) {\n this.handleVideoDisplay(true);\n }\n\n return;\n }\n\n if (this.singleImageModeEnabled) {\n this.resizeCameraUpload(width, height);\n } else {\n this.resizeVideo(width, height);\n this.handleVideoDisplay(false);\n }\n }\n\n private resizeCameraUpload(width: number, height: number): void {\n this.cameraUploadLabelElement.style.transform = `scale(${Math.min(1, width / 300, height / 300)})`;\n }\n\n private resizeVideo(width: number, height: number): void {\n if (this.videoElement.videoWidth <= 2 || this.videoElement.videoHeight <= 2) {\n return;\n }\n\n const videoRatio: number = this.videoElement.videoWidth / this.videoElement.videoHeight;\n\n if (this.videoFit === BarcodePicker.ObjectFit.COVER) {\n let widthPercentage: number = 1;\n let heightPercentage: number = 1;\n\n if (videoRatio < width / height) {\n heightPercentage = Math.min(1, height / (width / videoRatio));\n } else {\n widthPercentage = Math.min(1, width / (height * videoRatio));\n }\n\n this.scanner.applyScanSettings(\n this.scanner.getScanSettings().setBaseSearchArea({\n x: (1 - widthPercentage) / 2,\n y: (1 - heightPercentage) / 2,\n width: widthPercentage,\n height: heightPercentage,\n })\n );\n\n return;\n }\n\n if (videoRatio > width / height) {\n height = width / videoRatio;\n } else {\n width = height * videoRatio;\n }\n\n this.parentElement.style.maxWidth = `${Math.ceil(width)}px`;\n this.parentElement.style.maxHeight = `${Math.ceil(height)}px`;\n\n window.objectFitPolyfill(this.videoElement);\n }\n\n private async checkAndRecoverPlayback(): Promise {\n const srcObject: MediaStream | undefined = this.videoElement.srcObject;\n if (\n document.visibilityState === \"visible\" &&\n this.cameraManager?.activeCamera != null &&\n this.videoElement?.srcObject != null\n ) {\n if (!srcObject.active || srcObject.getVideoTracks()[0]?.muted !== false) {\n try {\n Logger.log(\n Logger.Level.DEBUG,\n 'Detected visibility change (\"visible\") event with inactive video source, try to reinitialize camera'\n );\n await this.cameraManager.reinitializeCamera();\n } catch {\n // Ignored\n }\n } else {\n Logger.log(\n Logger.Level.DEBUG,\n 'Detected visibility change (\"visible\") event with active video source, replay video'\n );\n this.playVideo();\n }\n }\n }\n\n private updateCameraUploadProgress(progressPercentageValue: string): void {\n this.cameraUploadProgressElement.setAttribute(\"data-progress\", progressPercentageValue);\n }\n\n private async cameraUploadImageLoad(image: HTMLImageElement): Promise {\n this.updateCameraUploadProgress(\"100\");\n\n let resizedImageWidth: number;\n let resizedImageHeight: number;\n const resizedImageSizeLimit: number = 1440;\n if (image.naturalWidth <= resizedImageSizeLimit && image.naturalHeight <= resizedImageSizeLimit) {\n resizedImageWidth = image.naturalWidth;\n resizedImageHeight = image.naturalHeight;\n } else {\n if (image.naturalWidth > image.naturalHeight) {\n resizedImageWidth = resizedImageSizeLimit;\n resizedImageHeight = Math.round((image.naturalHeight / image.naturalWidth) * resizedImageSizeLimit);\n } else {\n resizedImageWidth = Math.round((image.naturalWidth / image.naturalHeight) * resizedImageSizeLimit);\n resizedImageHeight = resizedImageSizeLimit;\n }\n }\n\n await this.cameraUploadFileProcess(image, resizedImageWidth, resizedImageHeight);\n }\n\n private async cameraUploadFileProcess(image: HTMLImageElement, width: number, height: number): Promise {\n // istanbul ignore else\n if (this.context2d != null) {\n this.context2d.canvas.width = width;\n this.context2d.canvas.height = height;\n\n this.context2d.drawImage(image, 0, 0, width, height);\n this.scanner.applyImageSettings({\n width,\n height,\n format: ImageSettings.Format.RGBA_8U,\n });\n }\n\n this.setCameraUploadGuiBusyScanning(true);\n await this.cameraUploadCallback();\n this.setCameraUploadGuiBusyScanning(false);\n this.cameraUploadInProgress = false;\n }\n\n private cameraUploadFile(): void {\n const files: FileList | null = this.cameraUploadInputElement.files;\n if (files != null && files.length !== 0) {\n this.cameraUploadInProgress = true;\n const image: HTMLImageElement = new Image();\n const fileReader: FileReader = new FileReader();\n fileReader.onload = () => {\n this.cameraUploadInputElement.value = \"\";\n // istanbul ignore else\n if (fileReader.result != null) {\n image.onload = this.cameraUploadImageLoad.bind(this, image);\n // istanbul ignore next\n image.onprogress = (event2) => {\n if (event2.lengthComputable) {\n const progress: number = Math.round((event2.loaded / event2.total) * 20) * 5;\n if (progress <= 100) {\n this.updateCameraUploadProgress(progress.toString());\n }\n }\n };\n // istanbul ignore next\n image.onerror = () => {\n this.cameraUploadInProgress = false;\n Logger.log(Logger.Level.WARN, \"Could not load image from selected file\");\n };\n image.src = fileReader.result;\n }\n };\n // istanbul ignore next\n fileReader.onerror = () => {\n this.cameraUploadInProgress = false;\n Logger.log(Logger.Level.WARN, `Error while reading the file: ${fileReader.error?.toString()}`);\n };\n this.updateCameraUploadProgress(\"0\");\n fileReader.readAsDataURL(files[0]);\n }\n }\n\n private async cameraSwitcherListener(event: Event): Promise {\n if (!this.cameraSwitchInProgress && this.cameraManager != null) {\n const cameraManager: CameraManager = this.cameraManager;\n event.preventDefault();\n try {\n const cameras: Camera[] = await CameraAccess.getCameras();\n if (cameraManager.activeCamera == null) {\n return;\n }\n if (cameras.length <= 1) {\n this.setCameraSwitcherVisible(false);\n\n return;\n }\n this.cameraSwitchInProgress = true;\n const currentCameraIndex: number = cameras.indexOf(cameraManager.activeCamera);\n let newCameraIndex: number = (currentCameraIndex + 1) % cameras.length;\n while (newCameraIndex !== currentCameraIndex) {\n try {\n await cameraManager.initializeCameraWithSettings(\n cameras[newCameraIndex],\n cameraManager.activeCameraSettings\n );\n } catch (error) {\n Logger.log(Logger.Level.WARN, \"Couldn't access camera:\", cameras[newCameraIndex], error);\n newCameraIndex = (newCameraIndex + 1) % cameras.length;\n if (newCameraIndex === currentCameraIndex) {\n this.setCameraSwitcherVisible(false);\n await cameraManager.initializeCameraWithSettings(\n cameras[newCameraIndex],\n cameraManager.activeCameraSettings\n );\n }\n continue;\n }\n break;\n }\n this.cameraSwitchInProgress = false;\n } catch (error) {\n Logger.log(Logger.Level.ERROR, error);\n this.cameraSwitchInProgress = false;\n }\n }\n }\n\n private async cameraFOVSwitcherListener(event: Event): Promise {\n if (!this.cameraSwitchInProgress && this.cameraManager != null) {\n const cameraManager: CameraManager = this.cameraManager;\n event.preventDefault();\n try {\n const cameras: Camera[] = await CameraAccess.getCameras();\n if (cameraManager.activeCamera == null) {\n return;\n }\n this.cameraSwitchInProgress = true;\n const alternativeCamera: Camera | undefined = cameras.find((camera) => {\n // tslint:disable-next-line: no-non-null-assertion\n return CameraAccess.isIOSUltraWideBackCameraLabel(cameraManager.activeCamera!.label)\n ? CameraAccess.isIOSWideBackCameraLabel(camera.label)\n : CameraAccess.isIOSUltraWideBackCameraLabel(camera.label);\n });\n if (alternativeCamera == null) {\n this.setCameraFOVSwitcherVisible(false);\n\n return;\n }\n try {\n await cameraManager.initializeCameraWithSettings(alternativeCamera, cameraManager.activeCameraSettings);\n } catch (error) {\n Logger.log(Logger.Level.WARN, \"Couldn't access camera:\", alternativeCamera, error);\n }\n } catch (error) {\n Logger.log(Logger.Level.ERROR, error);\n }\n this.cameraSwitchInProgress = false;\n }\n }\n\n private async cameraRecoveryListener(event: Event): Promise {\n event.preventDefault();\n if (this.cameraManager != null) {\n this.cameraManager.activeCamera = this.cameraManager.selectedCamera;\n await this.cameraManager?.reinitializeCamera();\n }\n }\n\n private setupCameraSwitcher(): void {\n this.cameraSwitcherElement.src = switchCameraImage;\n this.cameraSwitcherElement.className = GUI.cameraSwitcherElementClassName;\n this.cameraSwitcherElement.classList.add(GUI.hiddenClassName);\n this.parentElement.appendChild(this.cameraSwitcherElement);\n [\"touchstart\", \"mousedown\"].forEach((eventName) => {\n this.cameraSwitcherElement.addEventListener(eventName, this.cameraSwitcherListener.bind(this));\n });\n }\n\n private setupCameraFOVSwitcher(): void {\n this.cameraFOVSwitcherElement.className = GUI.cameraFOVSwitcherElementClassName;\n this.cameraFOVSwitcherElement.classList.add(GUI.hiddenClassName);\n this.cameraFOVSwitcherUltraWideElement.src = switchCameraFOVUltraWideImage;\n this.cameraFOVSwitcherUltraWideElement.classList.add(GUI.hiddenClassName);\n this.cameraFOVSwitcherWideElement.src = switchCameraFOVWideImage;\n this.cameraFOVSwitcherWideElement.classList.add(GUI.hiddenClassName);\n this.cameraFOVSwitcherElement.appendChild(this.cameraFOVSwitcherUltraWideElement);\n this.cameraFOVSwitcherElement.appendChild(this.cameraFOVSwitcherWideElement);\n this.parentElement.appendChild(this.cameraFOVSwitcherElement);\n [\"touchstart\", \"mousedown\"].forEach((eventName) => {\n this.cameraFOVSwitcherElement.addEventListener(eventName, this.cameraFOVSwitcherListener.bind(this));\n });\n }\n\n private setupCameraRecovery(cameraRecoveryText: string): void {\n this.cameraRecoveryElement.textContent = cameraRecoveryText;\n this.cameraRecoveryElement.className = GUI.cameraRecoveryElementClassName;\n this.cameraRecoveryElement.classList.add(GUI.hiddenClassName);\n this.parentElement.appendChild(this.cameraRecoveryElement);\n [\"touchstart\", \"mousedown\"].forEach((eventName) => {\n this.cameraRecoveryElement.addEventListener(eventName, this.cameraRecoveryListener.bind(this));\n });\n }\n\n private setupTorchToggler(): void {\n this.torchTogglerElement.src = toggleTorchImage;\n this.torchTogglerElement.className = GUI.torchTogglerElementClassName;\n this.torchTogglerElement.classList.add(GUI.hiddenClassName);\n this.parentElement.appendChild(this.torchTogglerElement);\n [\"touchstart\", \"mousedown\"].forEach((eventName) => {\n this.torchTogglerElement.addEventListener(eventName, async (event) => {\n if (this.cameraManager != null) {\n event.preventDefault();\n await this.cameraManager.toggleTorch();\n }\n });\n });\n }\n\n private showScanditLogo(hideLogo: boolean, licenseKeyFeatures?: { hiddenScanditLogoAllowed?: boolean }): void {\n if (hideLogo && licenseKeyFeatures?.hiddenScanditLogoAllowed === true) {\n return;\n }\n\n const scanditLogoImageElement: HTMLImageElement = document.createElement(\"img\");\n scanditLogoImageElement.src = scanditLogoImage;\n scanditLogoImageElement.className = GUI.scanditLogoImageElementClassName;\n this.parentElement.appendChild(scanditLogoImageElement);\n }\n\n private activateGUI(): void {\n this.dataCaptureContextCreated = true;\n if (!this.scanningPaused) {\n this.resumeScanning();\n }\n }\n\n private handleNewScanSettings(): void {\n if (this.customLaserArea == null) {\n this.setLaserArea();\n }\n if (this.customViewfinderArea == null) {\n this.setViewfinderArea();\n }\n }\n\n private handleVideoDisplay(hidden: boolean): void {\n // Safari on iOS 14 behaves weirdly when hiding the video element:\n // it stops camera access after a few seconds if the related video element is not \"visible\".\n // We do the following to maintain the video element \"visible\" but actually hidden.\n if (hidden && !this.isVideoElementDetached) {\n this.videoElement.width = this.videoElement.height = 0;\n this.videoElement.style.opacity = \"0\";\n document.body.appendChild(this.videoElement);\n this.isVideoElementDetached = true;\n } else if (!hidden && this.isVideoElementDetached) {\n this.parentElement.insertAdjacentElement(\"afterbegin\", this.videoElement);\n this.isVideoElementDetached = false;\n this.videoElement.removeAttribute(\"width\");\n this.videoElement.removeAttribute(\"height\");\n this.videoElement.style.removeProperty(\"opacity\");\n this.resize();\n }\n }\n\n private handleVideoPause(): void {\n // Safari behaves weirdly when displaying the video element again after hiding it:\n // it pauses the video on hide and resumes it on show, then reusing video frames \"buffered\" from the video just\n // before it was hidden. We do the following to avoid processing old data.\n this.playVideo();\n }\n\n private handleVideoResize(): void {\n this.resize();\n\n if (this.videoElement.videoWidth <= 2 || this.videoElement.videoHeight <= 2) {\n return;\n }\n\n if (this.contextWebGL != null) {\n if (\n this.contextWebGL.canvas.width === this.videoElement.videoWidth &&\n this.contextWebGL.canvas.height === this.videoElement.videoHeight\n ) {\n return;\n }\n\n this.contextWebGL.canvas.width = this.videoElement.videoWidth;\n this.contextWebGL.canvas.height = this.videoElement.videoHeight;\n this.contextWebGL.viewport(0, 0, this.contextWebGL.drawingBufferWidth, this.contextWebGL.drawingBufferHeight);\n\n this.scanner.applyImageSettings({\n width: this.contextWebGL.drawingBufferWidth,\n height: this.contextWebGL.drawingBufferHeight,\n format: ImageSettings.Format.RGBA_8U,\n });\n } else if (this.context2d != null) {\n if (\n this.context2d.canvas.width === this.videoElement.videoWidth &&\n this.context2d.canvas.height === this.videoElement.videoHeight\n ) {\n return;\n }\n\n this.context2d.canvas.width = this.videoElement.videoWidth;\n this.context2d.canvas.height = this.videoElement.videoHeight;\n\n this.scanner.applyImageSettings({\n width: this.videoElement.videoWidth,\n height: this.videoElement.videoHeight,\n format: ImageSettings.Format.RGBA_8U,\n });\n }\n }\n\n private handleWebGLContextLost(): void {\n // We recreate instead of waiting for restore via the webglcontextrestored event as restore might never happen\n Logger.log(Logger.Level.WARN, \"WebGL context has been lost, restoring...\");\n this.contextWebGL = undefined;\n this.setupContext(document.createElement(\"canvas\"));\n this.handleVideoResize();\n Logger.log(Logger.Level.WARN, \"WebGL context restored\");\n }\n}\n","// See https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html#union-exhaustiveness-checking\nexport function assertUnreachable(x: never): never {\n throw new Error(`Unexpected object: ${x}`);\n}\n","import { TextRecognitionSettings } from \"..\";\nimport { AttributeDescriptor } from \"./schema\";\nimport { assertUnreachable } from \"./tsHelper\";\n\nexport type ConvertedAttribute = boolean | string | unknown[] | number | object | undefined;\n\nexport function convertAttribute(\n schema: AttributeDescriptor,\n value: string | undefined\n): ConvertedAttribute | undefined {\n switch (schema.type) {\n case \"boolean\":\n return convertToBoolean(value, schema.default);\n case \"string\":\n case \"guiStyle\":\n case \"cameraType\":\n case \"videoFit\":\n case \"codeDirection\":\n case \"recognitionMode\":\n return convertToString(value, schema.default);\n case \"array\":\n return convertToArray(value, schema.default);\n case \"integer\":\n return convertToInteger(value, schema.default);\n case \"searchArea\":\n case \"camera\":\n case \"cameraSettings\":\n case \"singleImageModeSettings\":\n return convertJsonToObject(value, schema.default);\n case \"textRecognitionSettings\":\n return new TextRecognitionSettings(convertJsonToObject(value, schema.default));\n default:\n break;\n }\n\n // Trick to make sure all cases are covered:\n return assertUnreachable(schema);\n}\n\nfunction convertToBoolean(input: string | undefined, defaultValue: boolean): boolean {\n return input == null ? defaultValue : input !== \"false\";\n}\n\nfunction convertToString(input: string | undefined, defaultValue: string | undefined): string | undefined {\n return input ?? defaultValue;\n}\n\nfunction convertToInteger(input: string | undefined, defaultValue: number | undefined): number | undefined {\n if (input == null) {\n return defaultValue;\n }\n const parsed: number = parseInt(input, 10);\n if (isNaN(parsed)) {\n return defaultValue;\n }\n\n return parsed;\n}\n\nfunction convertToArray(input: string | undefined, defaultValue: unknown[] | undefined): unknown[] | undefined {\n if (input == null) {\n return defaultValue;\n }\n\n const json: JSON | undefined = toJson(input);\n if (json == null || !Array.isArray(json)) {\n return defaultValue;\n }\n\n return json;\n}\n\nfunction convertJsonToObject(input: string | undefined, defaultValue: object | undefined): object | undefined {\n if (input == null) {\n return defaultValue;\n }\n const json: JSON | undefined = toJson(input);\n if (json == null) {\n return defaultValue;\n }\n // must be an object\n if (Array.isArray(json) || typeof json === \"number\") {\n return defaultValue;\n }\n\n return json;\n}\n\nfunction toJson(input: string): JSON | undefined {\n try {\n return JSON.parse(input);\n } catch (e) {\n return;\n }\n}\n","import {\n Barcode,\n BarcodePicker,\n Camera,\n CameraSettings,\n ScanSettings,\n SearchArea,\n SingleImageModeSettings,\n TextRecognitionSettings,\n} from \"..\";\nimport { convertAttribute, ConvertedAttribute } from \"./attributeConverter\";\nimport { BarcodePickerView } from \"./barcodePickerView\";\nimport { Attribute, AttributeDescriptor } from \"./schema\";\n\nexport class LazyAttributeConverter {\n constructor(\n private readonly schema: { [key in Attribute]: AttributeDescriptor },\n private readonly view: BarcodePickerView\n ) {}\n\n get [Attribute.ACCESS_CAMERA](): boolean {\n return this.convertToPrimary(Attribute.ACCESS_CAMERA);\n }\n\n get [Attribute.CAMERA](): Camera {\n return this.convertToPrimary(Attribute.CAMERA);\n }\n\n get [Attribute.CAMERA_SETTINGS](): CameraSettings {\n return this.convertToPrimary(Attribute.CAMERA_SETTINGS);\n }\n\n get [Attribute.CAMERA_TYPE](): Camera.Type {\n return this.convertToPrimary(Attribute.CAMERA_TYPE);\n }\n\n get [Attribute.CONFIGURE](): boolean {\n return this.convertToPrimary(Attribute.CONFIGURE);\n }\n\n get [Attribute.ENABLE_CAMERA_SWITCHER](): boolean {\n return this.convertToPrimary(Attribute.ENABLE_CAMERA_SWITCHER);\n }\n\n get [Attribute.ENABLE_PINCH_TO_ZOOM](): boolean {\n return this.convertToPrimary(Attribute.ENABLE_PINCH_TO_ZOOM);\n }\n\n get [Attribute.ENABLE_TAP_TO_FOCUS](): boolean {\n return this.convertToPrimary(Attribute.ENABLE_TAP_TO_FOCUS);\n }\n\n get [Attribute.ENABLE_TORCH_TOGGLE](): boolean {\n return this.convertToPrimary(Attribute.ENABLE_TORCH_TOGGLE);\n }\n\n get [Attribute.GUI_STYLE](): BarcodePicker.GuiStyle {\n return this.convertToPrimary(Attribute.GUI_STYLE);\n }\n\n get [Attribute.LASER_AREA](): SearchArea {\n return this.convertToPrimary(Attribute.LASER_AREA);\n }\n\n get [Attribute.PLAY_SOUND_ON_SCAN](): boolean {\n return this.convertToPrimary(Attribute.PLAY_SOUND_ON_SCAN);\n }\n\n get [Attribute.SCANNING_PAUSED](): boolean {\n return this.convertToPrimary(Attribute.SCANNING_PAUSED);\n }\n\n get [Attribute.SINGLE_IMAGE_MODE_SETTINGS](): SingleImageModeSettings {\n return this.convertToPrimary(Attribute.SINGLE_IMAGE_MODE_SETTINGS);\n }\n\n get [Attribute.TARGET_SCANNING_FPS](): number {\n return this.convertToPrimary(Attribute.TARGET_SCANNING_FPS);\n }\n\n get [Attribute.VIBRATE_ON_SCAN](): boolean {\n return this.convertToPrimary(Attribute.VIBRATE_ON_SCAN);\n }\n\n get [Attribute.VIDEO_FIT](): BarcodePicker.ObjectFit {\n return this.convertToPrimary(Attribute.VIDEO_FIT);\n }\n\n get [Attribute.VIEWFINDER_AREA](): SearchArea {\n return this.convertToPrimary(Attribute.VIEWFINDER_AREA);\n }\n\n get [Attribute.VISIBLE](): boolean {\n return this.convertToPrimary(Attribute.VISIBLE);\n }\n\n get [Attribute.CONFIGURE_ENGINE_LOCATION](): string {\n return this.convertToPrimary(Attribute.CONFIGURE_ENGINE_LOCATION);\n }\n\n get [Attribute.CONFIGURE_LICENSE_KEY](): string {\n return this.convertToPrimary(Attribute.CONFIGURE_LICENSE_KEY);\n }\n\n get [Attribute.CONFIGURE_HIGH_QUALITY_BLURRY_RECOGNITION](): boolean {\n return this.convertToPrimary(Attribute.CONFIGURE_HIGH_QUALITY_BLURRY_RECOGNITION);\n }\n\n get [Attribute.CONFIGURE_LOAD_TEXT_RECOGNITION](): boolean {\n return this.convertToPrimary(Attribute.CONFIGURE_LOAD_TEXT_RECOGNITION);\n }\n\n get [Attribute.CONFIGURE_PRELOAD_BLURRY_RECOGNITION](): boolean {\n return this.convertToPrimary(Attribute.CONFIGURE_PRELOAD_BLURRY_RECOGNITION);\n }\n\n get [Attribute.CONFIGURE_PRELOAD_ENGINE](): boolean {\n return this.convertToPrimary(Attribute.CONFIGURE_PRELOAD_ENGINE);\n }\n\n get [Attribute.SCAN_SETTINGS_BLURRY_RECOGNITION](): boolean {\n return this.convertToPrimary(Attribute.SCAN_SETTINGS_BLURRY_RECOGNITION);\n }\n\n get [Attribute.SCAN_SETTINGS_CODE_DIRECTION_HINT](): ScanSettings.CodeDirection {\n return this.convertToPrimary(Attribute.SCAN_SETTINGS_CODE_DIRECTION_HINT);\n }\n\n get [Attribute.SCAN_SETTINGS_CODE_DUPLICATE_FILTER](): number {\n return this.convertToPrimary(Attribute.SCAN_SETTINGS_CODE_DUPLICATE_FILTER);\n }\n\n get [Attribute.SCAN_SETTINGS_DEVICE_NAME](): string {\n return this.convertToPrimary(Attribute.SCAN_SETTINGS_DEVICE_NAME);\n }\n\n get [Attribute.SCAN_SETTINGS_ENABLED_SYMBOLOGIES](): Barcode.Symbology[] {\n return this.convertToPrimary(Attribute.SCAN_SETTINGS_ENABLED_SYMBOLOGIES);\n }\n\n get [Attribute.SCAN_SETTINGS_GPU_ACCELERATION](): boolean {\n return this.convertToPrimary(Attribute.SCAN_SETTINGS_GPU_ACCELERATION);\n }\n\n get [Attribute.SCAN_SETTINGS_MAX_NUMBER_OF_CODES_PER_FRAME](): number {\n return this.convertToPrimary(Attribute.SCAN_SETTINGS_MAX_NUMBER_OF_CODES_PER_FRAME);\n }\n\n get [Attribute.SCAN_SETTINGS_RECOGNITION_MODE](): ScanSettings.RecognitionMode {\n return this.convertToPrimary(Attribute.SCAN_SETTINGS_RECOGNITION_MODE);\n }\n\n get [Attribute.SCAN_SETTINGS_SEARCH_AREA](): SearchArea {\n return this.convertToPrimary(Attribute.SCAN_SETTINGS_SEARCH_AREA);\n }\n\n get [Attribute.SCAN_SETTINGS_TEXT_RECOGNITION_SETTINGS](): TextRecognitionSettings {\n return this.convertToPrimary(Attribute.SCAN_SETTINGS_TEXT_RECOGNITION_SETTINGS);\n }\n\n private convertToPrimary(attribute: Attribute): T {\n return convertAttribute(this.schema[attribute], this.view.getAttribute(attribute) ?? undefined);\n }\n}\n","import {\n BarcodePicker,\n Camera,\n CameraSettings,\n ScanSettings,\n SingleImageModeSettings,\n TextRecognitionSettings,\n} from \"..\";\n\ntype ValidationType =\n | \"booleanAttribute\"\n | \"boolean\"\n | \"integer\"\n | \"array\"\n | \"jsonArray\"\n | \"videoFit\"\n | \"camera\"\n | \"cameraType\"\n | \"cameraSettings\"\n | \"codeDirection\"\n | \"recognitionMode\"\n | \"guiStyle\"\n | \"searchArea\"\n | \"singleImageModeSettings\"\n | \"textRecognitionSettings\";\n\n// tslint:disable:no-any no-unnecessary-class\nexport abstract class Validator {\n public static expectationMessage: Map = new Map();\n\n @validationMessage(\"booleanAttribute\")\n public static isBooleanAttribute(value: any): boolean {\n return value === \"true\" || value === \"false\";\n }\n\n @validationMessage(\"boolean\")\n public static isBooleanProperty(value: any): boolean {\n return typeof value === \"boolean\";\n }\n\n @validationMessage(\"integer\")\n public static isIntegerAttribute(value: any): boolean {\n return typeof value === \"string\" && /^-?\\d+$/.test(value);\n }\n\n @validationMessage(\"integer\")\n public static isIntegerProperty(value: any): boolean {\n return Number.isInteger(value);\n }\n\n @validationMessage(\"cameraType\")\n public static isValidCameraType(value: any): boolean {\n return Object.values(Camera.Type).includes(value);\n }\n\n @validationMessage(\"guiStyle\")\n public static isValidGuiStyle(value: any): boolean {\n return Object.values(BarcodePicker.GuiStyle).includes(value);\n }\n\n @validationMessage(\"videoFit\")\n public static isValidVideoFit(value: any): boolean {\n return Object.values(BarcodePicker.ObjectFit).includes(value);\n }\n\n @validationMessage(\"codeDirection\")\n public static isValidCodeDirection(value: any): boolean {\n return Object.values(ScanSettings.CodeDirection).includes(value);\n }\n\n @validationMessage(\"recognitionMode\")\n public static isValidRecognitionMode(value: any): boolean {\n return Object.values(ScanSettings.RecognitionMode).includes(value);\n }\n\n @validationMessage(\"array\")\n public static isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n @validationMessage(\"jsonArray\")\n public static isValidJsonArray(value: any): boolean {\n let json: any;\n try {\n json = JSON.parse(value);\n } catch (e) {\n return false;\n }\n\n return Array.isArray(json);\n }\n\n @validationMessage(\"searchArea\")\n public static isValidSearchAreaAttribute(value: any): boolean {\n let areaObject: any;\n try {\n areaObject = JSON.parse(value);\n } catch (e) {\n return false;\n }\n\n return Validator.isValidSearchAreaProperty(areaObject);\n }\n\n @validationMessage(\"searchArea\")\n public static isValidSearchAreaProperty(areaObject: any): boolean {\n if (areaObject == null || typeof areaObject !== \"object\") {\n return false;\n }\n\n return (\n areaObject.x >= 0 &&\n areaObject.x <= 1 &&\n areaObject.y >= 0 &&\n areaObject.y <= 1 &&\n areaObject.width >= 0 &&\n areaObject.width <= 1 &&\n areaObject.height >= 0 &&\n areaObject.height <= 1\n );\n }\n\n @validationMessage(\"camera\")\n public static isValidCameraObject(value: any): boolean {\n let camera: Camera;\n try {\n camera = JSON.parse(value);\n } catch (e) {\n return false;\n }\n\n return typeof camera?.deviceId === \"string\";\n }\n\n @validationMessage(\"cameraSettings\")\n public static isValidCameraSettingsObject(value: any): boolean {\n let settings: CameraSettings;\n try {\n settings = JSON.parse(value);\n } catch (e) {\n return false;\n }\n\n return typeof settings?.resolutionPreference === \"string\";\n }\n\n @validationMessage(\"singleImageModeSettings\")\n public static isValidSingleImageModeSettingsObject(value: any): boolean {\n let settings: SingleImageModeSettings;\n try {\n settings = JSON.parse(value);\n } catch (e) {\n return false;\n }\n\n // TODO: improve checks\n return settings != null && typeof settings === \"object\";\n }\n\n @validationMessage(\"textRecognitionSettings\")\n public static isValidTextRecognitionSettingsObject(value: any): boolean {\n let settings: TextRecognitionSettings;\n try {\n settings = JSON.parse(value);\n } catch (e) {\n return false;\n }\n\n // TODO: improve checks\n return settings != null && typeof settings === \"object\";\n }\n\n public static getExpectationMessageForType(type: ValidationType): string {\n const messageByType: { [key in ValidationType]: string } = {\n booleanAttribute: `Expected one of \"true\" or \"false\"`,\n boolean: `Boolean expected`,\n integer: `Integer expected`,\n array: `Array expected`,\n jsonArray: `Expected JSON array`,\n videoFit: `Expected a valid BarcodePicker.ObjectFit\"`,\n camera: `Expected JSON object having properties of a Camera object`,\n cameraSettings: `Expected JSON object having properties of a CameraSettings object`,\n cameraType: `Expected a valid Camera.Type\"`,\n codeDirection: `Expected a valid ScanSettings.CodeDirection\"`,\n recognitionMode: `Expected a valid ScanSettings.RecognitionMode\"`,\n guiStyle: `Expected a valid BarcodePicker.GuiStyle\"`,\n searchArea: `Expected JSON object having properties of a SearchArea object`,\n singleImageModeSettings: `Expected JSON object having properties of a SingleImageModeSettings object`,\n textRecognitionSettings: `Expected JSON object having properties of a TextRecognitionSettings object`,\n };\n\n return messageByType[type];\n }\n}\n\nfunction validationMessage(type: ValidationType): MethodDecorator {\n return (target: any, key: string | symbol): void => {\n target.expectationMessage.set(target[key], target.getExpectationMessageForType(type));\n };\n}\n","import {\n Barcode,\n BarcodePicker,\n Camera,\n CameraAccess,\n configure,\n ScanResult,\n ScanSettings,\n SingleImageModePlatformSettings,\n SingleImageModeSettings,\n} from \"..\";\nimport { CameraManager } from \"../lib/barcodePicker/cameraManager\";\nimport { GUI } from \"../lib/barcodePicker/gui\";\nimport { Logger } from \"../lib/logger\";\nimport { AttributeValue, BarcodePickerView } from \"./barcodePickerView\";\nimport { LazyAttributeConverter } from \"./lazyAttributeConverter\";\nimport { convertProperty } from \"./propertyConverter\";\nimport { Attribute, attributes, getSchema } from \"./schema\";\nimport { assertUnreachable } from \"./tsHelper\";\nimport { Validator } from \"./validator\";\n\ntype PropertyUpdateOrigin = \"gui\" | \"picker\" | \"cameraManager\" | \"scanner\";\n\nexport class Controller {\n public picker: BarcodePicker;\n\n private lazyAttributeConverter: LazyAttributeConverter;\n\n private scanSettings: ScanSettings;\n\n private viewConnected: boolean = false;\n\n private trackAttributes: boolean = true;\n\n private readonly allSymbologies: Barcode.Symbology[] = Object.values(Barcode.Symbology).filter(\n (s) => {\n return typeof s === \"string\";\n }\n );\n\n constructor(public view: BarcodePickerView) {}\n\n public async viewConnectedCallback(): Promise {\n this.viewConnected = true;\n this.view.initializeDom();\n this.initializeAttributeConversionGetter();\n if (this.lazyAttributeConverter[Attribute.CONFIGURE]) {\n await this.initPicker();\n }\n }\n\n public attributeChangedCallback(name: string): void {\n if (!this.viewConnected || !this.trackAttributes) {\n return;\n }\n\n const rawAttribute: string | null = this.view.getAttribute(name);\n if (rawAttribute != null && !this.validateAttribute(name, rawAttribute)) {\n return;\n }\n const normalizedAttribute: Attribute = this.attributeToCamelCase(name);\n this.applyChangeFromAttributeChange(normalizedAttribute);\n }\n\n public viewDisconnectedCallback(): void {\n this.viewConnected = false;\n this.picker.destroy();\n // @ts-ignore\n delete this.picker;\n // @ts-ignore\n delete this.scanSettings;\n }\n\n // tslint:disable-next-line: max-func-body-length\n private applyChangeFromAttributeChange(attribute: Attribute): void {\n switch (attribute) {\n case Attribute.ACCESS_CAMERA:\n if (this.lazyAttributeConverter[Attribute.ACCESS_CAMERA]) {\n this.picker.accessCamera().catch((reason) => {\n Logger.log(Logger.Level.WARN, \"Error while accessing the camera:\", reason);\n });\n } else {\n this.picker.pauseCameraAccess();\n }\n break;\n case Attribute.ENABLE_CAMERA_SWITCHER:\n this.picker.setCameraSwitcherEnabled(this.lazyAttributeConverter[Attribute.ENABLE_CAMERA_SWITCHER]);\n break;\n case Attribute.ENABLE_PINCH_TO_ZOOM:\n this.picker.setPinchToZoomEnabled(this.lazyAttributeConverter[Attribute.ENABLE_PINCH_TO_ZOOM]);\n break;\n case Attribute.ENABLE_TAP_TO_FOCUS:\n this.picker.setTapToFocusEnabled(this.lazyAttributeConverter[Attribute.ENABLE_TAP_TO_FOCUS]);\n break;\n case Attribute.ENABLE_TORCH_TOGGLE:\n this.picker.setTorchToggleEnabled(this.lazyAttributeConverter[Attribute.ENABLE_TORCH_TOGGLE]);\n break;\n case Attribute.GUI_STYLE:\n this.picker.setGuiStyle(this.lazyAttributeConverter[Attribute.GUI_STYLE]);\n break;\n case Attribute.LASER_AREA:\n this.picker.setLaserArea(this.lazyAttributeConverter[Attribute.LASER_AREA]);\n break;\n case Attribute.PLAY_SOUND_ON_SCAN:\n this.picker.setPlaySoundOnScanEnabled(this.lazyAttributeConverter[Attribute.PLAY_SOUND_ON_SCAN]);\n break;\n case Attribute.SCANNING_PAUSED:\n if (this.lazyAttributeConverter[Attribute.SCANNING_PAUSED]) {\n this.picker.pauseScanning();\n break;\n }\n this.picker.resumeScanning().catch((reason) => {\n Logger.log(Logger.Level.WARN, \"Error while resuming scanning:\", reason);\n });\n break;\n case Attribute.TARGET_SCANNING_FPS:\n this.picker.setTargetScanningFPS(this.lazyAttributeConverter[Attribute.TARGET_SCANNING_FPS]);\n break;\n case Attribute.VIBRATE_ON_SCAN:\n this.picker.setVibrateOnScanEnabled(this.lazyAttributeConverter[Attribute.VIBRATE_ON_SCAN]);\n break;\n case Attribute.VIDEO_FIT:\n this.picker.setVideoFit(this.lazyAttributeConverter[Attribute.VIDEO_FIT]);\n break;\n case Attribute.VIEWFINDER_AREA:\n this.picker.setViewfinderArea(this.lazyAttributeConverter[Attribute.VIEWFINDER_AREA]);\n break;\n case Attribute.VISIBLE:\n this.picker.setVisible(this.lazyAttributeConverter[Attribute.VISIBLE]);\n break;\n case Attribute.CAMERA:\n this.getCameraFromAttribute()\n .then((camera: Camera | undefined) => {\n this.picker.setActiveCamera(camera).catch((reason) => {\n Logger.log(Logger.Level.WARN, \"Error while setting the active camera:\", reason);\n });\n })\n .catch((reason) => {\n Logger.log(Logger.Level.WARN, \"Error while getting the camera:\", reason);\n });\n break;\n case Attribute.CAMERA_TYPE:\n this.picker.setCameraType(this.lazyAttributeConverter[Attribute.CAMERA_TYPE]).catch((reason) => {\n Logger.log(Logger.Level.WARN, \"Error while setting camera type:\", reason);\n });\n break;\n case Attribute.CAMERA_SETTINGS:\n this.picker.applyCameraSettings(this.lazyAttributeConverter[Attribute.CAMERA_SETTINGS]).catch((reason) => {\n Logger.log(Logger.Level.WARN, \"Error while applying camera settings:\", reason);\n });\n break;\n //\n // SCAN SETTINGS from here\n //\n case Attribute.SCAN_SETTINGS_BLURRY_RECOGNITION:\n this.scanSettings.setBlurryRecognitionEnabled(\n this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_BLURRY_RECOGNITION]\n );\n this.picker.applyScanSettings(this.scanSettings);\n break;\n case Attribute.SCAN_SETTINGS_CODE_DIRECTION_HINT:\n this.scanSettings.setCodeDirectionHint(\n this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_CODE_DIRECTION_HINT]\n );\n this.picker.applyScanSettings(this.scanSettings);\n break;\n case Attribute.SCAN_SETTINGS_CODE_DUPLICATE_FILTER:\n this.scanSettings.setCodeDuplicateFilter(\n this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_CODE_DUPLICATE_FILTER]\n );\n this.picker.applyScanSettings(this.scanSettings);\n break;\n case Attribute.SCAN_SETTINGS_DEVICE_NAME:\n this.scanSettings.setDeviceName(this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_DEVICE_NAME]);\n this.picker.applyScanSettings(this.scanSettings);\n break;\n case Attribute.SCAN_SETTINGS_ENABLED_SYMBOLOGIES:\n this.onEnabledSymbologiesChanged();\n break;\n case Attribute.SCAN_SETTINGS_GPU_ACCELERATION:\n this.scanSettings.setGpuAccelerationEnabled(\n this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_GPU_ACCELERATION]\n );\n this.picker.applyScanSettings(this.scanSettings);\n break;\n case Attribute.SCAN_SETTINGS_MAX_NUMBER_OF_CODES_PER_FRAME:\n this.scanSettings.setMaxNumberOfCodesPerFrame(\n this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_MAX_NUMBER_OF_CODES_PER_FRAME]\n );\n this.picker.applyScanSettings(this.scanSettings);\n break;\n case Attribute.SCAN_SETTINGS_RECOGNITION_MODE:\n this.scanSettings.setRecognitionMode(this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_RECOGNITION_MODE]);\n this.picker.applyScanSettings(this.scanSettings);\n break;\n case Attribute.SCAN_SETTINGS_SEARCH_AREA:\n this.scanSettings.setSearchArea(this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_SEARCH_AREA]);\n this.picker.applyScanSettings(this.scanSettings);\n break;\n case Attribute.SCAN_SETTINGS_TEXT_RECOGNITION_SETTINGS:\n this.scanSettings.setTextRecognitionSettings(\n this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_TEXT_RECOGNITION_SETTINGS]\n );\n this.picker.applyScanSettings(this.scanSettings);\n break;\n case Attribute.CONFIGURE:\n if (this.lazyAttributeConverter[Attribute.CONFIGURE]) {\n this.initPicker().catch((reason) => {\n Logger.log(Logger.Level.WARN, \"Error while initializing barcode picker:\", reason);\n });\n }\n break;\n case Attribute.SINGLE_IMAGE_MODE_SETTINGS:\n case Attribute.CONFIGURE_ENGINE_LOCATION:\n case Attribute.CONFIGURE_LICENSE_KEY:\n case Attribute.CONFIGURE_HIGH_QUALITY_BLURRY_RECOGNITION:\n case Attribute.CONFIGURE_LOAD_TEXT_RECOGNITION:\n case Attribute.CONFIGURE_PRELOAD_BLURRY_RECOGNITION:\n case Attribute.CONFIGURE_PRELOAD_ENGINE:\n // noop\n break;\n default:\n // the following statement is here to make sure of the exhaustivenesss of this switch statement (if you miss\n // a case the compiler will yell at you)\n assertUnreachable(attribute);\n break;\n }\n }\n\n private async initPicker(): Promise {\n if (this.picker != null) {\n return;\n }\n\n this.validateAllAttributes();\n\n try {\n await configure(this.lazyAttributeConverter[Attribute.CONFIGURE_LICENSE_KEY], {\n engineLocation: this.lazyAttributeConverter[Attribute.CONFIGURE_ENGINE_LOCATION],\n highQualityBlurryRecognition: this.lazyAttributeConverter[Attribute.CONFIGURE_HIGH_QUALITY_BLURRY_RECOGNITION],\n loadTextRecognition: this.lazyAttributeConverter[Attribute.CONFIGURE_LOAD_TEXT_RECOGNITION],\n preloadBlurryRecognition: this.lazyAttributeConverter[Attribute.CONFIGURE_PRELOAD_BLURRY_RECOGNITION],\n preloadEngine: this.lazyAttributeConverter[Attribute.CONFIGURE_PRELOAD_ENGINE],\n });\n\n this.picker = new Proxy(\n await BarcodePicker.create(this.view.root, {\n accessCamera: this.lazyAttributeConverter[Attribute.ACCESS_CAMERA],\n camera: await this.getCameraFromAttribute(),\n cameraType: this.lazyAttributeConverter[Attribute.CAMERA_TYPE],\n enableCameraSwitcher: this.lazyAttributeConverter[Attribute.ENABLE_CAMERA_SWITCHER],\n enablePinchToZoom: this.lazyAttributeConverter[Attribute.ENABLE_PINCH_TO_ZOOM],\n enableTapToFocus: this.lazyAttributeConverter[Attribute.ENABLE_TAP_TO_FOCUS],\n enableTorchToggle: this.lazyAttributeConverter[Attribute.ENABLE_TORCH_TOGGLE],\n playSoundOnScan: this.lazyAttributeConverter[Attribute.PLAY_SOUND_ON_SCAN],\n vibrateOnScan: this.lazyAttributeConverter[Attribute.VIBRATE_ON_SCAN],\n scanningPaused: this.lazyAttributeConverter[Attribute.SCANNING_PAUSED],\n guiStyle: this.lazyAttributeConverter[Attribute.GUI_STYLE],\n targetScanningFPS: this.lazyAttributeConverter[Attribute.TARGET_SCANNING_FPS],\n videoFit: this.lazyAttributeConverter[Attribute.VIDEO_FIT],\n visible: this.lazyAttributeConverter[Attribute.VISIBLE],\n viewfinderArea: this.lazyAttributeConverter[Attribute.VIEWFINDER_AREA],\n laserArea: this.lazyAttributeConverter[Attribute.LASER_AREA],\n singleImageModeSettings: await this.getSingleImageModeSettings(),\n }),\n this.getBarcodePickerProxyHandler()\n );\n } catch (e) {\n return this.handleException(e);\n }\n\n this.scanSettings = new ScanSettings({\n textRecognitionSettings: this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_TEXT_RECOGNITION_SETTINGS],\n recognitionMode: this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_RECOGNITION_MODE],\n blurryRecognition: this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_BLURRY_RECOGNITION],\n codeDirectionHint: this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_CODE_DIRECTION_HINT],\n codeDuplicateFilter: this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_CODE_DUPLICATE_FILTER],\n deviceName: this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_DEVICE_NAME],\n enabledSymbologies: this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_ENABLED_SYMBOLOGIES],\n gpuAcceleration: this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_GPU_ACCELERATION],\n maxNumberOfCodesPerFrame: this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_MAX_NUMBER_OF_CODES_PER_FRAME],\n searchArea: this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_SEARCH_AREA],\n });\n this.picker.applyScanSettings(this.scanSettings);\n\n this.picker.on(\"ready\", this.dispatchPickerEvent.bind(this, \"ready\"));\n this.picker.on(\"submitFrame\", this.dispatchPickerEvent.bind(this, \"submitFrame\"));\n this.picker.on(\"processFrame\", this.dispatchPickerEvent.bind(this, \"processFrame\"));\n this.picker.on(\"scan\", this.dispatchPickerEvent.bind(this, \"scan\"));\n this.picker.on(\"scanError\", this.dispatchPickerEvent.bind(this, \"scanError\"));\n }\n\n private getBarcodePickerProxyHandler(): ProxyHandler {\n let proxiedGui: GUI;\n let proxiedCameraManager: CameraManager;\n // tslint:disable-next-line: no-this-assignment\n const controllerRef: Controller = this;\n\n function getProxiedGui(target: BarcodePicker): GUI {\n if (proxiedGui == null) {\n // tslint:disable-next-line: no-string-literal\n proxiedGui = new Proxy(target[\"gui\"], {\n // tslint:disable-next-line: no-any\n set: (gui: GUI, p: Attribute, value: any): boolean => {\n Reflect.set(gui, p, value);\n controllerRef.onPickerPropertyUpdate.call(controllerRef, { origin: \"gui\", key: p, newValue: value });\n\n return true;\n },\n });\n }\n\n return proxiedGui;\n }\n\n function getProxiedCameraManager(target: BarcodePicker): CameraManager {\n if (proxiedCameraManager == null) {\n // tslint:disable-next-line: no-string-literal\n proxiedCameraManager = new Proxy(target[\"cameraManager\"], {\n // tslint:disable-next-line: no-any\n set: (cameraManager: CameraManager, p: Attribute, value: any): boolean => {\n Reflect.set(cameraManager, p, value);\n controllerRef.onPickerPropertyUpdate.call(controllerRef, {\n origin: \"cameraManager\",\n key: p,\n newValue: value,\n });\n\n return true;\n },\n });\n }\n\n return proxiedCameraManager;\n }\n\n return {\n get: (target: BarcodePicker, p: PropertyKey) => {\n if (p === \"gui\") {\n return getProxiedGui(target);\n }\n if (p === \"cameraManager\") {\n return getProxiedCameraManager(target);\n }\n if (p === \"applyScanSettings\") {\n return (scanSettings: ScanSettings): void => {\n Reflect.apply(Reflect.get(target, p), target, [scanSettings]);\n this.onScannerNewScanSettings(scanSettings);\n };\n }\n\n return Reflect.get(target, p);\n },\n // tslint:disable-next-line: no-any\n set: (picker: BarcodePicker, p: Attribute, value: any): boolean => {\n Reflect.set(picker, p, value);\n this.onPickerPropertyUpdate({ key: p, origin: \"picker\", newValue: value });\n\n return true;\n },\n };\n }\n\n /**\n * Gather all settings from the passed scan settings and call `propertyDidUpdate`\n * to notify about the new settings.\n *\n * @param scanSettings The newly applied scan settings\n */\n private onScannerNewScanSettings(scanSettings: ScanSettings): void {\n const allSymbologies: Barcode.Symbology[] = Object.values(Barcode.Symbology).filter((s) => {\n return typeof s === \"string\";\n });\n // tslint:disable-next-line: no-any\n const changeSet: { key: Attribute; newValue: any }[] = [\n {\n key: Attribute.SCAN_SETTINGS_BLURRY_RECOGNITION,\n newValue: scanSettings.isBlurryRecognitionEnabled(),\n },\n {\n key: Attribute.SCAN_SETTINGS_CODE_DIRECTION_HINT,\n newValue: scanSettings.getCodeDirectionHint(),\n },\n {\n key: Attribute.SCAN_SETTINGS_CODE_DUPLICATE_FILTER,\n newValue: scanSettings.getCodeDuplicateFilter(),\n },\n {\n key: Attribute.SCAN_SETTINGS_DEVICE_NAME,\n newValue: scanSettings.getDeviceName(),\n },\n {\n key: Attribute.SCAN_SETTINGS_ENABLED_SYMBOLOGIES,\n newValue: allSymbologies.reduce((enabledSymbologies: string[], symbology) => {\n if (scanSettings.isSymbologyEnabled(symbology)) {\n enabledSymbologies.push(Barcode.Symbology.toJSONName(symbology));\n }\n\n return enabledSymbologies;\n }, []),\n },\n {\n key: Attribute.SCAN_SETTINGS_GPU_ACCELERATION,\n newValue: scanSettings.isGpuAccelerationEnabled(),\n },\n {\n key: Attribute.SCAN_SETTINGS_MAX_NUMBER_OF_CODES_PER_FRAME,\n newValue: scanSettings.getMaxNumberOfCodesPerFrame(),\n },\n {\n key: Attribute.SCAN_SETTINGS_RECOGNITION_MODE,\n newValue: scanSettings.getRecognitionMode(),\n },\n {\n key: Attribute.SCAN_SETTINGS_SEARCH_AREA,\n newValue: scanSettings.getSearchArea(),\n },\n {\n key: Attribute.SCAN_SETTINGS_TEXT_RECOGNITION_SETTINGS,\n newValue: scanSettings.getTextRecognitionSettings(),\n },\n ];\n changeSet.forEach((change) => {\n this.onPickerPropertyUpdate({ origin: \"scanner\", ...change });\n });\n }\n\n /**\n * for each attribute we support, define a property on the \"primaryValues\" object to get the attribute and convert\n * it to its primary type (e.g. the string \"true\" would become the real boolean value `true`)\n */\n private initializeAttributeConversionGetter(): void {\n this.lazyAttributeConverter = new LazyAttributeConverter(getSchema(), this.view);\n }\n\n private async getCameraFromAttribute(): Promise {\n let userCamera: Camera | undefined;\n const cameraAttr: Camera | undefined = this.lazyAttributeConverter[Attribute.CAMERA];\n if (cameraAttr?.deviceId != null) {\n const cameras: Camera[] = await CameraAccess.getCameras();\n const userCameraId: string = cameraAttr.deviceId;\n userCamera = cameras.find((camera) => {\n return camera.deviceId === userCameraId;\n });\n if (userCamera == null) {\n Logger.log(Logger.Level.WARN, `Could not find camera with id \"${userCameraId}\", will use default camera.`);\n }\n }\n\n return userCamera;\n }\n\n private onEnabledSymbologiesChanged(): void {\n const symbologiesToEnable: string[] = this.lazyAttributeConverter[Attribute.SCAN_SETTINGS_ENABLED_SYMBOLOGIES];\n this.allSymbologies.forEach((symbology) => {\n const shouldEnable: boolean = symbologiesToEnable.includes(symbology);\n this.scanSettings.getSymbologySettings(symbology).setEnabled(shouldEnable);\n });\n this.picker.applyScanSettings(this.scanSettings);\n }\n\n // tslint:disable-next-line: no-any\n private onPickerPropertyUpdate(change: { key: Attribute; newValue: any; origin: PropertyUpdateOrigin }): void {\n // we need to map the private property name to our \"public\" properties\n const mappingsByOrigin: { [key in typeof change.origin]?: { [key: string]: Attribute[] } } = {\n gui: {\n customLaserArea: [Attribute.LASER_AREA],\n customViewfinderArea: [Attribute.VIEWFINDER_AREA],\n },\n cameraManager: {\n activeCamera: [Attribute.CAMERA, Attribute.CAMERA_TYPE],\n cameraSwitcherEnabled: [Attribute.ENABLE_CAMERA_SWITCHER],\n torchToggleEnabled: [Attribute.ENABLE_TORCH_TOGGLE],\n tapToFocusEnabled: [Attribute.ENABLE_TAP_TO_FOCUS],\n pinchToZoomEnabled: [Attribute.ENABLE_PINCH_TO_ZOOM],\n },\n };\n\n const propertyNames: string[] = mappingsByOrigin[change.origin]?.[change.key] ?? [change.key];\n\n this.trackAttributes = false;\n propertyNames.forEach((propertyName) => {\n if (attributes.includes(propertyName)) {\n if (change.newValue == null) {\n this.view.removeAttribute(propertyName);\n } else {\n this.view.setAttribute(propertyName, convertProperty(getSchema()[propertyName], change.newValue));\n }\n }\n });\n this.trackAttributes = true;\n }\n\n private async getSingleImageModeSettings(): Promise {\n const settings: SingleImageModeSettings = {};\n\n if (this.lazyAttributeConverter[Attribute.SINGLE_IMAGE_MODE_SETTINGS] != null) {\n // merge settings from user\n settings.desktop = {\n ...SingleImageModeSettings.defaultDesktop,\n ...(this.lazyAttributeConverter[Attribute.SINGLE_IMAGE_MODE_SETTINGS].desktop ?? {}),\n };\n settings.mobile = {\n ...SingleImageModeSettings.defaultMobile,\n ...(this.lazyAttributeConverter[Attribute.SINGLE_IMAGE_MODE_SETTINGS].mobile ?? {}),\n };\n }\n\n // children may not have been parsed yet\n await this.view.waitOnChildrenReady();\n\n // This parts will slightly hurt your eyes because of TS: basically we just loop over \"desktop\" and \"mobile\", and\n // loop again inside over the HTML elements that can be set with slot.\n (<(keyof SingleImageModeSettings)[]>[\"mobile\", \"desktop\"]).forEach((platform) => {\n (<(keyof SingleImageModePlatformSettings)[]>[\"informationElement\", \"buttonElement\"]).forEach(\n (platformSetting) => {\n const el: HTMLElement | null = this.view.querySelector(\n `*[slot=\"singleImageModeSettings.${platform}.${platformSetting}\"]`\n );\n if (el != null && settings[platform] != null) {\n // tslint:disable-next-line: no-non-null-assertion no-any\n settings[platform]![platformSetting] = el;\n }\n }\n );\n });\n\n return settings;\n }\n\n private dispatchPickerEvent(eventName: string, scanResultOrError?: ScanResult | Error): void {\n const event: CustomEvent = new CustomEvent(eventName, { detail: scanResultOrError });\n this.view.dispatchCustomEvent(event);\n }\n\n private validateAllAttributes(): void {\n const attrs: AttributeValue[] = Array.from(this.view.getAttributes());\n attrs.forEach((attr) => {\n if (attributes.includes(attr.name)) {\n this.validateAttribute(attr.name, attr.value);\n }\n });\n }\n\n private validateAttribute(name: Attribute | string, value: string): boolean {\n const normalizedAttribute: Attribute = this.attributeToCamelCase(name);\n let validatorFunction: (value: string) => boolean;\n\n switch (normalizedAttribute) {\n case Attribute.ACCESS_CAMERA:\n case Attribute.CONFIGURE:\n case Attribute.CONFIGURE_HIGH_QUALITY_BLURRY_RECOGNITION:\n case Attribute.CONFIGURE_LOAD_TEXT_RECOGNITION:\n case Attribute.CONFIGURE_PRELOAD_BLURRY_RECOGNITION:\n case Attribute.CONFIGURE_PRELOAD_ENGINE:\n case Attribute.ENABLE_CAMERA_SWITCHER:\n case Attribute.ENABLE_PINCH_TO_ZOOM:\n case Attribute.ENABLE_TAP_TO_FOCUS:\n case Attribute.ENABLE_TORCH_TOGGLE:\n case Attribute.PLAY_SOUND_ON_SCAN:\n case Attribute.SCANNING_PAUSED:\n case Attribute.VIBRATE_ON_SCAN:\n case Attribute.VISIBLE:\n case Attribute.SCAN_SETTINGS_BLURRY_RECOGNITION:\n case Attribute.SCAN_SETTINGS_GPU_ACCELERATION:\n validatorFunction = Validator.isBooleanAttribute;\n break;\n case Attribute.TARGET_SCANNING_FPS:\n case Attribute.SCAN_SETTINGS_CODE_DUPLICATE_FILTER:\n case Attribute.SCAN_SETTINGS_MAX_NUMBER_OF_CODES_PER_FRAME:\n validatorFunction = Validator.isIntegerAttribute;\n break;\n case Attribute.SCAN_SETTINGS_CODE_DIRECTION_HINT:\n validatorFunction = Validator.isValidCodeDirection;\n break;\n case Attribute.SCAN_SETTINGS_RECOGNITION_MODE:\n validatorFunction = Validator.isValidRecognitionMode;\n break;\n case Attribute.SCAN_SETTINGS_TEXT_RECOGNITION_SETTINGS:\n validatorFunction = Validator.isValidTextRecognitionSettingsObject;\n break;\n case Attribute.CAMERA_TYPE:\n validatorFunction = Validator.isValidCameraType;\n break;\n case Attribute.GUI_STYLE:\n validatorFunction = Validator.isValidGuiStyle;\n break;\n case Attribute.VIDEO_FIT:\n validatorFunction = Validator.isValidVideoFit;\n break;\n case Attribute.SCAN_SETTINGS_ENABLED_SYMBOLOGIES:\n validatorFunction = Validator.isValidJsonArray;\n break;\n case Attribute.VIEWFINDER_AREA:\n case Attribute.LASER_AREA:\n case Attribute.SCAN_SETTINGS_SEARCH_AREA:\n validatorFunction = Validator.isValidSearchAreaAttribute;\n break;\n case Attribute.CAMERA:\n validatorFunction = Validator.isValidCameraObject;\n break;\n case Attribute.CAMERA_SETTINGS:\n validatorFunction = Validator.isValidCameraSettingsObject;\n break;\n case Attribute.SINGLE_IMAGE_MODE_SETTINGS:\n validatorFunction = Validator.isValidSingleImageModeSettingsObject;\n break;\n case Attribute.CONFIGURE_ENGINE_LOCATION:\n case Attribute.CONFIGURE_LICENSE_KEY:\n case Attribute.SCAN_SETTINGS_DEVICE_NAME:\n validatorFunction = () => {\n return true;\n };\n break;\n default:\n assertUnreachable(normalizedAttribute);\n break;\n }\n\n if (!validatorFunction(value)) {\n Logger.log(\n Logger.Level.WARN,\n `Invalid value for attribute \"${normalizedAttribute}\": \"${value}\". ${\n Validator.expectationMessage.get(validatorFunction) ?? \"\"\n }`\n );\n\n return false;\n }\n\n return true;\n }\n\n /**\n * Transform the given attribute name to its camel-cased version.\n *\n * @param attrName The attribute name, possibly all lower-cased\n * @returns camel-cased attribute name\n */\n private attributeToCamelCase(attrName: string): Attribute {\n const index: number = attributes.findIndex((k) => {\n return k.toLowerCase() === attrName.toLowerCase();\n });\n\n return attributes[index];\n }\n\n private handleException(e: Error): void {\n Logger.log(Logger.Level.ERROR, e);\n }\n}\n","import { Camera } from \"..\";\nimport { AttributeDescriptor } from \"./schema\";\nimport { assertUnreachable } from \"./tsHelper\";\n\n/**\n * Convert the given value to a string aimed to be used as an attribute value\n *\n * @param schema description of the attribute\n * @param value the value in its primary form\n * @returns the converted value as a string\n */\n// tslint:disable-next-line: no-any\nexport function convertProperty(schema: AttributeDescriptor, value: any): string {\n switch (schema.type) {\n case \"boolean\":\n return value ? \"true\" : \"false\";\n case \"guiStyle\":\n case \"integer\":\n case \"string\":\n case \"videoFit\":\n case \"codeDirection\":\n case \"recognitionMode\":\n return value.toString();\n case \"array\":\n case \"camera\":\n case \"cameraSettings\":\n case \"searchArea\":\n case \"singleImageModeSettings\":\n case \"textRecognitionSettings\":\n return JSON.stringify(value);\n case \"cameraType\":\n return (value).cameraType.toString();\n default:\n break;\n }\n\n // Trick to make sure all cases are covered:\n return assertUnreachable(schema);\n}\n","import { BarcodePicker } from \"..\";\nimport { default as pickerStyles } from \"../styles/styles.scss\";\nimport { AttributeValue, BarcodePickerView } from \"./barcodePickerView\";\nimport { Controller } from \"./controller\";\nimport { attributes } from \"./schema\";\n\nexport class ScanditBarcodePicker extends HTMLElement implements BarcodePickerView {\n public static readonly TAG_NAME: string = \"scandit-barcode-picker\";\n\n private readonly shadowDom: ShadowRoot;\n\n private readonly controller: Controller;\n\n static get observedAttributes(): string[] {\n return attributes.map((s: string) => {\n return s.toLowerCase();\n });\n }\n\n constructor() {\n super();\n this.controller = new Controller(this);\n this.shadowDom = this.attachShadow({ mode: \"open\" });\n }\n\n public static registerComponent(): undefined | string {\n if (!(\"customElements\" in window)) {\n return;\n }\n if (customElements.get(ScanditBarcodePicker.TAG_NAME) == null) {\n customElements.define(ScanditBarcodePicker.TAG_NAME, ScanditBarcodePicker);\n }\n\n return ScanditBarcodePicker.TAG_NAME;\n }\n\n /**\n * Expose main objects on view\n */\n get barcodePicker(): BarcodePicker | undefined {\n return this.controller.picker;\n }\n\n public get root(): HTMLElement {\n return this.shadowDom.querySelector(\"#root\");\n }\n\n public async connectedCallback(): Promise {\n await this.controller.viewConnectedCallback();\n }\n\n public disconnectedCallback(): void {\n this.controller.viewDisconnectedCallback();\n }\n\n public attributeChangedCallback(name: string): void {\n this.controller.attributeChangedCallback(name);\n }\n\n public initializeDom(): void {\n // tslint:disable-next-line:no-inner-html\n this.shadowDom.innerHTML = this.initialDomContent;\n }\n\n public dispatchCustomEvent(e: CustomEvent): void {\n this.dispatchEvent(e);\n }\n\n public getAttributes(): AttributeValue[] {\n return Array.from(this.attributes).map((att) => {\n return { name: att.name, value: att.value };\n });\n }\n\n public waitOnChildrenReady(): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, 50);\n });\n }\n\n private get initialDomContent(): string {\n return `\n \n
\n `;\n }\n\n private get wcStyles(): string {\n return `\n :host {\n display: block;\n }\n\n :host([hidden]) {\n display: none;\n }\n\n #root {\n height: 100%;\n }\n `;\n }\n\n private get styles(): string {\n return `\n ${this.wcStyles}\n ${pickerStyles}\n `;\n }\n}\n","import \"objectFitPolyfill\";\n\nimport { BlurryRecognitionPreloader } from \"./lib/blurryRecognitionPreloader\";\nimport { BrowserCompatibility } from \"./lib/browserCompatibility\";\nimport { BrowserHelper } from \"./lib/browserHelper\";\nimport { CustomError } from \"./lib/customError\";\nimport { DataCaptureLoader } from \"./lib/dataCaptureLoader\";\nimport { Logger } from \"./lib/logger\";\nimport { UnsupportedBrowserError } from \"./lib/unsupportedBrowserError\";\n\nimport \"./styles/styles.scss\";\n\n/**\n * @hidden\n */\ndeclare global {\n interface Window {\n MediaStreamTrack?: {\n getSources?(callback: (devices: MediaDeviceInfo[]) => void): void;\n };\n Worker: Function;\n WebAssembly: object;\n OffscreenCanvas: Function;\n WebGLRenderingContext: Function;\n objectFitPolyfill(elements?: HTMLElement | HTMLElement[]): void;\n }\n\n interface Navigator {\n mozVibrate?: Navigator[\"vibrate\"];\n msVibrate?: Navigator[\"vibrate\"];\n webkitVibrate?: Navigator[\"vibrate\"];\n enumerateDevices?(): Promise;\n }\n}\n\nexport * from \"./lib/barcodePicker/barcodePicker\";\nexport * from \"./lib/barcode\";\nexport * from \"./lib/barcodeEncodingRange\";\nexport * from \"./lib/browserCompatibility\";\nexport * from \"./lib/browserHelper\";\nexport * from \"./lib/camera\";\nexport * from \"./lib/cameraAccess\";\nexport * from \"./lib/cameraSettings\";\nexport * from \"./lib/customError\";\nexport * from \"./lib/imageSettings\";\nexport * from \"./lib/logger\";\nexport * from \"./lib/point\";\nexport * from \"./lib/quadrilateral\";\nexport * from \"./lib/parser\";\nexport * from \"./lib/parserField\";\nexport * from \"./lib/parserResult\";\nexport * from \"./lib/recognizedText\";\nexport * from \"./lib/scanResult\";\nexport * from \"./lib/scanner\";\nexport * from \"./lib/scanSettings\";\nexport * from \"./lib/singleImageModeSettings\";\nexport * from \"./lib/searchArea\";\nexport * from \"./lib/symbologySettings\";\nexport * from \"./lib/textRecognitionSettings\";\n\nexport * from \"./lib/workers/dataCaptureWorker\";\n\nimport { ScanditBarcodePicker } from \"./webComponent\";\nScanditBarcodePicker.registerComponent();\n\n/**\n * @hidden\n */\nexport type Mutable = { -readonly [P in keyof T]: T[P] };\n\n/**\n * @hidden\n */\nexport const deviceId: string = BrowserHelper.getDeviceId();\n/**\n * @hidden\n */\nexport let userLicenseKey: string | undefined;\n/**\n * @hidden\n */\nexport let scanditDataCaptureLocation: string;\n/**\n * @hidden\n */\nexport let blurryRecognitionPreloader: BlurryRecognitionPreloader;\n/**\n * @hidden\n */\nexport let highEndBlurryRecognition: boolean;\n/**\n * @hidden\n */\nexport let textRecognition: boolean;\n/**\n * @hidden\n */\nexport let dataCaptureLoader: DataCaptureLoader;\n/**\n * @hidden\n *\n * Flag describing if configure() was called and if it could execute in its entirety.\n */\nexport let configurePhase: \"unconfigured\" | \"started\" | \"done\" = \"unconfigured\";\n\n/**\n * @hidden\n */\nexport let configurePromise: Promise | undefined;\n\n/**\n * @hidden\n *\n * Mainly used by tests.\n */\nexport function resetConfigure(): void {\n configurePhase = \"unconfigured\";\n}\n\n/**\n * Initialize and configure the Scandit Barcode Scanner SDK library. This function must be called (once) before\n * instantiating the main library components (`BarcodePicker` and `Scanner` objects) and returns a promise. In case this\n * is called again after a successful call, parameters from subsequent calls are ignored and the same promise returned\n * from the successful call will be returned.\n *\n * Depending on parameters and browser features, any of the following errors could be the rejected result of the\n * returned promise:\n * - `NoLicenseKeyError`\n * - `UnsupportedBrowserError`\n *\n * The external external Scandit Data Capture library and data needed for barcode blurry recognition are preloaded\n * asynchronously eagerly by default after library configuration to ensure the best performance. If needed this\n * behaviour can be changed via the *preloadEngine* and *preloadBlurryRecognition* options.\n *\n * For optimal performance, it is recommended to call this function as soon as possible to ensure needed components are\n * preloaded and initialized ahead of time.\n *\n * Camera access requests are done lazily only when needed by a [[BarcodePicker]] (or [[Scanner]]) object. You can also\n * eagerly ask only for camera access permissions by calling the [[CameraAccess.getCameras]] function.\n *\n * Ideally, to make the scanning process faster, it is recommended depending on the use case to create in\n * advance a (hidden and paused) [[BarcodePicker]] or [[Scanner]] object, to later show and unpause it when needed.\n * Depending on the options this can also be used to correctly ask for camera access permissions whenever preferred.\n *\n * @param licenseKey The Scandit license key to be used by the library.\n * @param logLevel
Default = Logger.Level.DEBUG
\n * The console log level to be used by the library.\n * @param engineLocation
Default = \"/\"
\n * The location of the folder containing the external scandit-engine-sdk.min.js and\n * scandit-engine-sdk.wasm files (external Scandit Data Capture library).\n * By default they are retrieved from the root of the web application.\n * Can be a full URL to folder or an absolute folder path.\n * @param highQualityBlurryRecognition
Default = false
\n * Whether to generate and use high quality barcode blurry recognition data, resulting in improved localization and\n * scanning performance of extremely challenging 1D codes. If enabled, more time is spent to initialize (load or\n * generate if needed) the needed data - at a time depending on the preloadBlurryRecognition option - and for\n * the processing of each video frame.\n *\n * Enabling this option is not recommended unless really needed due to its high performance impact.\n * @param loadTextRecognition
Default = false
\n * Whether to load a version of the external Scandit Data Capture library providing support for text recognition (OCR).\n * If enabled, a larger version of the library is loaded, unlocking [[ScanSettings]] options to enable text recognition\n * in addition or as an alternative to barcode scanning. This also requires more time to load (download if needed,\n * compile/instantiate WebAssembly code and initialize) the external Scandit Data Capture library, used by\n * [[BarcodePicker]] and [[Scanner]] objects to perform scan operations, at a time depending on the\n * preloadEngine option.\n *\n * In case barcode scanning is not needed, the preloadBlurryRecognition option should be disabled for better\n * initialization performance.\n * @param preloadBlurryRecognition
Default = true
\n * Whether to preload (load or generate if needed) data needed for barcode blurry recognition as soon as possible via a\n * separate asynchronous WebWorker thread running the external Scandit Data Capture library. Data for all symbologies is\n * generated over time.\n *\n * If enabled, any [[BarcodePicker]] or [[Scanner]] object will be able to start processing video frames much faster, as\n * it won't need to generate barcode blurry recognition data lazily only when needed. If necessary, depending on given\n * [[ScanSettings]] options and on readiness of the data, processing is also initially performed without blurry\n * recognition until this data becomes available, at which point the new data will be loaded and used.\n *\n * If disabled, [[BarcodePicker]] or [[Scanner]] objects will load or generate barcode blurry recognition data lazily\n * when needed to process the first frame, depending on given [[ScanSettings]] options, and will thus require more time\n * the first time the library is actively used with the given active symbologies. As this needs to be done in the same\n * WebWorker, the processing of the frame will then be blocked until the needed data is loaded or generated.\n *\n * Note that in either case the data for barcode blurry recognition will be cached for later successive uses of the\n * library.\n *\n * Note that preloading does not trigger a device activation for licensing purposes.\n * @param preloadEngine
Default = true
\n * Whether to preload (download if needed, compile/instantiate WebAssembly code and initialize) the external Scandit\n * Data Capture library, used by [[BarcodePicker]] and [[Scanner]] objects to perform scan operations.\n *\n * If enabled, any [[BarcodePicker]] or [[Scanner]] object will be ready to start processing video frames much faster,\n * as the needed external Scandit Data Capture library will already be in a partially or fully initialized state thanks\n * to it being preloaded now.\n *\n * If disabled, [[BarcodePicker]] and [[Scanner]] objects will load the external Scandit Data Capture library on\n * creation (if it wasn't already loaded before by a previously created object), and will thus require more time to be\n * initialized and ready.\n *\n * Note that in either case the loaded external Scandit Data Capture library will be reused whenever possible for later\n * successive uses of the library.\n *\n * Note that preloading does not trigger a device activation for licensing purposes.\n *\n * @returns A promise resolving when the library has been configured (preloading is done independently asynchronously).\n */\nexport function configure(\n licenseKey: string,\n {\n logLevel = Logger.Level.DEBUG,\n engineLocation = \"/\",\n highQualityBlurryRecognition = false,\n loadTextRecognition = false,\n preloadBlurryRecognition = true,\n preloadEngine = true,\n }: {\n logLevel?: Logger.Level;\n engineLocation?: string;\n highQualityBlurryRecognition?: boolean;\n loadTextRecognition?: boolean;\n preloadBlurryRecognition?: boolean;\n preloadEngine?: boolean;\n } = {}\n): Promise {\n if (configurePhase !== \"unconfigured\" && configurePromise != null) {\n return configurePromise;\n }\n\n Logger.setLevel(logLevel);\n\n configurePromise = new Promise(async (resolve, reject) => {\n Logger.log(Logger.Level.INFO, \"Scandit Web SDK version: %VERSION%\");\n configurePhase = \"started\";\n\n const browserCompatibility: BrowserCompatibility = BrowserHelper.checkBrowserCompatibility();\n if (!browserCompatibility.fullSupport && !browserCompatibility.scannerSupport) {\n return reject(new UnsupportedBrowserError(browserCompatibility));\n }\n\n if (licenseKey == null || licenseKey.trim().length < 64) {\n return reject(new CustomError({ name: \"NoLicenseKeyError\", message: \"No license key provided\" }));\n }\n userLicenseKey = licenseKey;\n\n engineLocation += engineLocation.slice(-1) === \"/\" ? \"\" : \"/\";\n if (/^https?:\\/\\//.test(engineLocation)) {\n scanditDataCaptureLocation = `${engineLocation}`;\n } else {\n engineLocation = engineLocation\n .split(\"/\")\n .filter((s) => {\n return s.length > 0;\n })\n .join(\"/\");\n if (engineLocation === \"\") {\n engineLocation = \"/\";\n } else {\n engineLocation = `/${engineLocation}/`;\n }\n if (location.protocol === \"file:\" || location.origin === \"null\") {\n scanditDataCaptureLocation = `${location.href.split(\"/\").slice(0, -1).join(\"/\")}${engineLocation}`;\n } else {\n scanditDataCaptureLocation = `${location.origin}${engineLocation}`;\n }\n }\n\n // Workaround to solve Safari/iOS bug preventing IndexedDB to work correctly on first page load\n // https://bugs.webkit.org/show_bug.cgi?id=226547\n const browserName: string | undefined = BrowserHelper.userAgentInfo.getBrowser().name;\n const osName: string | undefined = BrowserHelper.userAgentInfo.getOS().name;\n if (\n (browserName == null || browserName.includes(\"Safari\") || osName == null || osName === \"iOS\") &&\n window.indexedDB != null &&\n \"databases\" in indexedDB\n ) {\n let indexedDBStatusCheckInterval: number;\n await new Promise((resolveCheck: () => void) => {\n function checkIndexedDBStatus(): void {\n indexedDB\n .databases()\n .then(resolveCheck)\n .catch(\n /* istanbul ignore next */ () => {\n // Ignored\n }\n );\n }\n\n indexedDBStatusCheckInterval = window.setInterval(checkIndexedDBStatus, 50);\n checkIndexedDBStatus();\n }).then(() => clearInterval(indexedDBStatusCheckInterval));\n }\n\n highEndBlurryRecognition = highQualityBlurryRecognition;\n textRecognition = loadTextRecognition;\n blurryRecognitionPreloader = await BlurryRecognitionPreloader.create(preloadBlurryRecognition);\n await blurryRecognitionPreloader.prepareBlurryTables();\n dataCaptureLoader = new DataCaptureLoader(preloadEngine);\n\n configurePhase = \"done\";\n\n return resolve();\n }).catch((e) => {\n resetConfigure();\n throw e;\n });\n\n return configurePromise;\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=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","/* UAParser.js v1.0.37\n Copyright © 2012-2021 Faisal Salman \n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.37\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=500;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","// 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","__webpack_require__.amdO = {};","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__.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))","// 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 = \"/\";","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\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 history!\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\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { warning, invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type MutationFormMethod = \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormMethod = \"get\" | MutationFormMethod;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\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 type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\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 // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\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 RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\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: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n detectErrorBoundary: DetectErrorBoundaryFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n hasErrorBoundary: detectErrorBoundary(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n hasErrorBoundary: detectErrorBoundary(route),\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n detectErrorBoundary,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | 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(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\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 // Our types know better, but runtime JS may not!\n // @ts-expect-error\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({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\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 ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\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 // TODO: Can this as be avoided?\n params: matchedParams as Params,\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 * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\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 path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n const starParam = params[star];\n\n // Apply the splat\n return starParam;\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n\n return param;\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\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/utils/match-path\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 if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\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 * @private\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 // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\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\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\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 if (isPathRelative || 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\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\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\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n DetectErrorBoundaryFunction,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n MutationFormMethod,\n ShouldRevalidateFunction,\n RouteManifest,\n ImmutableRouteKey,\n ActionFunction,\n LoaderFunction,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key?: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n\nconst defaultDetectErrorBoundary = (route: AgnosticRouteObject) =>\n Boolean(route.hasErrorBoundary);\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let detectErrorBoundary =\n init.detectErrorBoundary || defaultDetectErrorBoundary;\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n detectErrorBoundary,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations from their actions\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(router.state.blockers) });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (state.initialized) {\n return router;\n }\n\n let lazyMatches = state.matches.filter((m) => m.route.lazy);\n\n if (lazyMatches.length === 0) {\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n startNavigation(HistoryAction.Pop, state.location);\n return router;\n }\n\n // Load lazy modules, then kick off initial data load if needed\n let lazyPromises = lazyMatches.map((m) =>\n loadLazyRouteModule(m.route, detectErrorBoundary, manifest)\n );\n Promise.all(lazyPromises).then(() => {\n let initialized =\n !state.matches.some((m) => m.route.loader) ||\n init.hydrationData != null;\n if (initialized) {\n // We already have required loaderData so we can just set initialized\n updateState({ initialized: true });\n } else {\n // We still need to kick off initial data loads\n startNavigation(HistoryAction.Pop, state.location);\n }\n });\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n for (let [key] of blockerFunctions) {\n deleteBlocker(key);\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers: new Map(state.blockers),\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(state.blockers) });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a mutation submission\n // For example, on /page#hash and submit a
which will\n // default to a navigation to /page\n if (\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission\n ? submission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) =>\n fetchControllers.set(rf.key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = matchRoutes(routesToUse, href, init.basename);\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: href })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true,\n });\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, init.basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n // Check if this an absolute external redirect that goes to a new origin\n if (\n ABSOLUTE_URL_REGEX.test(redirect.location) &&\n isBrowser &&\n typeof window?.location !== \"undefined\"\n ) {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename =\n stripBasename(url.pathname, init.basename || \"/\") == null;\n\n if (window.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, request.signal),\n f.match,\n f.matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n state.blockers.set(key, newBlocker);\n updateState({ blockers: new Map(state.blockers) });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n inFlightDataRoutes = newRoutes;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let detectErrorBoundary =\n opts?.detectErrorBoundary || defaultDetectErrorBoundary;\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n detectErrorBoundary,\n undefined,\n manifest\n );\n let basename = (opts ? opts.basename : null) || \"/\";\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\" && method !== \"options\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n detectErrorBoundary,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\n\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n let defaultShouldRevalidate =\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n defaultShouldRevalidate ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData\n if (!fetcherMatches) {\n revalidatingFetchers.push({ key, ...f, matches: null, match: null });\n return;\n }\n\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // hit a static href, so they _always_ check shouldRevalidate and the\n // default is strictly if a revalidation is explicitly required (action\n // submissions, useRevalidator, X-Remix-Revalidate).\n let shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n detectErrorBoundary: DetectErrorBoundaryFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to detectErrorBoundary\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `detectErrorBoundary` function to set the `hasErrorBoundary` route\n // property since the logic will differ between frameworks.\n hasErrorBoundary: detectErrorBoundary({ ...routeToUpdate }),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n detectErrorBoundary: DetectErrorBoundaryFunction,\n basename = \"/\",\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([\n runHandler(handler),\n loadLazyRouteModule(match.route, detectErrorBoundary, manifest),\n ]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, detectErrorBoundary, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n throw getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else {\n invariant(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let resolvedLocation = resolveTo(\n location,\n routePathnames,\n new URL(request.url).pathname\n );\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${location}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, value instanceof File ? value.name : value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod {\n return validRequestMethods.has(method as FormMethod);\n}\n\nfunction isMutationMethod(method?: string): method is MutationFormMethod {\n return validMutationMethods.has(method as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\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\nimport * as React from \"react\";\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction isPolyfill(x: any, y: any) {\n return (\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n );\n}\n\nconst is: (x: any, y: any) => boolean =\n typeof Object.is === \"function\" ? Object.is : isPolyfill;\n\n// Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\nconst { useState, useEffect, useLayoutEffect, useDebugValue } = React;\n\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false;\n\n// Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\nexport function useSyncExternalStore(\n subscribe: (fn: () => void) => () => void,\n getSnapshot: () => T,\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n getServerSnapshot?: () => T\n): T {\n if (__DEV__) {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that \" +\n \"does not support useSyncExternalStore. The \" +\n \"use-sync-external-store shim will not work correctly. Upgrade \" +\n \"to a newer pre-release.\"\n );\n }\n }\n }\n\n // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n const value = getSnapshot();\n if (__DEV__) {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n if (!is(value, cachedValue)) {\n console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n );\n didWarnUncachedGetSnapshot = true;\n }\n }\n }\n\n // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n const [{ inst }, forceUpdate] = useState({ inst: { value, getSnapshot } });\n\n // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n\n // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe, value, getSnapshot]);\n\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n };\n // Subscribe to the store and return a clean-up function.\n return subscribe(handleStoreChange);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst: any) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n","/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\n\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 * @flow\n */\n\nimport * as React from \"react\";\n\nimport { useSyncExternalStore as client } from \"./useSyncExternalStoreShimClient\";\nimport { useSyncExternalStore as server } from \"./useSyncExternalStoreShimServer\";\n\nconst canUseDOM: boolean = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? server : client;\n\nexport const useSyncExternalStore =\n \"useSyncExternalStore\" in React\n ? ((module) => module.useSyncExternalStore)(React)\n : shim;\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\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 interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\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\nexport interface 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\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n Router as RemixRouter,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\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/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): 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, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : 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/hooks/use-in-router-context\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/hooks/use-location\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/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern 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/hooks/use-match\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\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/hooks/use-navigate\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 getPathContributingMatches(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 options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\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/hooks/use-outlet-context\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/hooks/use-outlet\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/hooks/use-params\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/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\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/hooks/use-routes\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 { navigator } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\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\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 matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterStateContext || undefined\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own \n ErrorBoundary prop on \n <Route>\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for the current errors: ${errors}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n if (match.route.ErrorBoundary) {\n errorElement = ;\n } else if (match.route.errorElement) {\n errorElement = match.route.errorElement;\n } else {\n errorElement = ;\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode = outlet;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey] = React.useState(() => String(++blockerId));\n\n let blockerFunction = React.useCallback(\n (args) => {\n return typeof shouldBlock === \"function\"\n ? !!shouldBlock(args)\n : !!shouldBlock;\n },\n [shouldBlock]\n );\n\n let blocker = router.getBlocker(blockerKey, blockerFunction);\n\n // Cleanup on unmount\n React.useEffect(\n () => () => router.deleteBlocker(blockerKey),\n [router, blockerKey]\n );\n\n // Prefer the blocker from state since DataRouterContext is memoized so this\n // ensures we update on blocker state updates\n return state.blockers.get(blockerKey) || blocker;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n RouterState,\n To,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport { useSyncExternalStore as useSyncExternalStoreShim } from \"./use-sync-external-store-shim\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n let getState = React.useCallback(() => router.state, [router]);\n\n // Sync router state to our component state to force re-renders\n let state: RouterState = useSyncExternalStoreShim(\n router.subscribe,\n getState,\n // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n getState\n );\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a