{"version":3,"sources":["webpack:///./node_modules/devextreme-vue/core/strategy/vue2/configuration.js","webpack:///./node_modules/diffie-hellman/browser.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/devextreme/esm/data/abstract_store.js","webpack:///./node_modules/browserify-aes/modes/ecb.js","webpack:///./node_modules/des.js/lib/des/cipher.js","webpack:///./node_modules/devextreme/esm/events/gesture/emitter.gesture.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/index.js","webpack:///./node_modules/devextreme/esm/events/utils/add_namespace.js","webpack:///./node_modules/devextreme/esm/events/utils/index.js","webpack:///./node_modules/lodash.isboolean/index.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/devextreme/esm/core/utils/dependency_injector.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/hash-base/node_modules/safe-buffer/index.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/devextreme/esm/ui/button.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/devextreme/esm/core/component_registrator_callbacks.js","webpack:///./node_modules/devextreme/esm/core/component_registrator.js","webpack:///./node_modules/sha.js/sha.js","webpack:///./node_modules/devextreme/esm/data/array_query.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/browserify-aes/streamCipher.js","webpack:///./node_modules/devextreme/esm/core/utils/object.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/core-js/internals/array-species-constructor.js","webpack:///./node_modules/browserify-des/modes.js","webpack:///./node_modules/elliptic/lib/elliptic/curves.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/devextreme/esm/core/templates/empty_template.js","webpack:///./node_modules/des.js/lib/des/cbc.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.base.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.js","webpack:///./node_modules/jws/lib/tostring.js","webpack:///./node_modules/jsonwebtoken/verify.js","webpack:///./node_modules/public-encrypt/privateDecrypt.js","webpack:///./node_modules/devextreme/esm/core/templates/template_engine_registry.js","webpack:///./node_modules/devextreme/esm/core/templates/template_engines.js","webpack:///./node_modules/devextreme/esm/core/templates/template.js","webpack:///./node_modules/devextreme/esm/core/utils/template_manager.js","webpack:///./node_modules/devextreme/esm/localization/cldr-data/first_day_of_week_data.js","webpack:///./node_modules/devextreme/esm/localization/intl/date.js","webpack:///./node_modules/devextreme/esm/localization/date.js","webpack:///./node_modules/devextreme-vue/core/extension-component.js","webpack:///./node_modules/browserify-sign/algos.js","webpack:///./node_modules/devextreme-vue/core/children-processing.js","webpack:///./node_modules/devextreme/esm/core/utils/callbacks.js","webpack:///./node_modules/randombytes/browser.js","webpack:///./node_modules/devextreme/esm/ui/drawer/ui.drawer.animation.js","webpack:///./node_modules/devextreme/esm/ui/drawer/ui.drawer.rendering.strategy.js","webpack:///./node_modules/devextreme/esm/ui/drawer/ui.drawer.rendering.strategy.push.js","webpack:///./node_modules/devextreme/esm/ui/drawer/ui.drawer.rendering.strategy.shrink.js","webpack:///./node_modules/devextreme/esm/ui/drawer/ui.drawer.rendering.strategy.overlap.js","webpack:///./node_modules/devextreme/esm/ui/drawer/ui.drawer.js","webpack:///./node_modules/mitt/dist/mitt.mjs","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/ms/index.js","webpack:///./node_modules/jsonwebtoken/index.js","webpack:///./node_modules/des.js/lib/des.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/devextreme/esm/core/utils/ready_callbacks.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/jws/lib/verify-stream.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/create-hmac/browser.js","webpack:///./node_modules/devextreme/esm/ui/load_panel.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/crypto-browserify/index.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/devextreme/esm/core/utils/queue.js","webpack:///./node_modules/devextreme/esm/data/data_source/operation_manager.js","webpack:///./node_modules/devextreme/esm/data/data_source/data_source.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/devextreme/esm/core/utils/icon.js","webpack:///./node_modules/browserify-des/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/devextreme/esm/core/utils/html_parser.js","webpack:///./node_modules/des.js/lib/des/ede.js","webpack:///./node_modules/pbkdf2/lib/async.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.base.js","webpack:///./node_modules/devextreme/esm/ui/list/item.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack:///./node_modules/devextreme/esm/ui/themes.js","webpack:///./node_modules/devextreme/esm/ui/themes_callback.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.base.js","webpack:///./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.search.js","webpack:///./node_modules/jsonwebtoken/sign.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.strategy.grouped.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator_registry.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.static.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.switchable.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.switchable.button.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator_menu_helper.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.switchable.slide.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.swipe.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.context.js","webpack:///./node_modules/devextreme/esm/ui/radio_group/radio_button.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.selection.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.reorder.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.provider.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/devextreme-vue/core/index.js","webpack:///./node_modules/devextreme-vue/tree-view.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/jsonwebtoken/lib/JsonWebTokenError.js","webpack:///./node_modules/devextreme/esm/ui/popover.js","webpack:///./node_modules/devextreme/esm/events/drag.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/parse-asn1/index.js","webpack:///./node_modules/devextreme-vue/core/config.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/devextreme/esm/ui/validation_message.js","webpack:///./node_modules/devextreme/esm/ui/editor/editor.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///./node_modules/elliptic/lib/elliptic.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/jws/index.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack:///./node_modules/devextreme/esm/core/utils/version.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/browserify-aes/modes/cfb.js","webpack:///./node_modules/devextreme/esm/ui/list/ui.list.edit.search.js","webpack:///./node_modules/devextreme/esm/ui/list.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/templates-manager.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack:///./node_modules/devextreme/esm/core/utils/resize_callbacks.js","webpack:///./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///./node_modules/devextreme/esm/core/config.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.js","webpack:///./node_modules/jsonwebtoken/decode.js","webpack:///./node_modules/bn.js/lib/bn.js","webpack:///./node_modules/browserify-sign/node_modules/safe-buffer/index.js","webpack:///./node_modules/browserify-aes/aes.js","webpack:///./node_modules/devextreme/esm/core/utils/variable_wrapper.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/index.js","webpack:///./node_modules/browserify-aes/ghash.js","webpack:///./node_modules/devextreme/esm/core/http_request.js","webpack:///./node_modules/devextreme/esm/core/utils/ajax.js","webpack:///./node_modules/devextreme/esm/events/core/keyboard_processor.js","webpack:///./node_modules/devextreme/esm/events/short.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/devextreme/esm/core/action.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/devextreme/esm/data/errors.js","webpack:///./node_modules/devextreme/esm/ui/text_box/utils.support.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.rule.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.clear.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/custom.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/index.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.base.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.base.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.default.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.input_events.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.js","webpack:///./node_modules/devextreme/esm/ui/text_box/ui.text_editor.js","webpack:///./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///./node_modules/parse-asn1/asn1.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/asn1.js/lib/asn1/base/index.js","webpack:///./node_modules/browserify-aes/decrypter.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.live_update.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/devextreme/esm/core/utils/selection_filter.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.plain.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/devextreme/esm/ui/overlay/z_index.js","webpack:///./node_modules/devextreme/esm/events/core/emitter_registrator.js","webpack:///./node_modules/devextreme/esm/core/utils/window.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/devextreme/esm/ui/text_box/utils.caret.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/devextreme/esm/events/core/event_registrator.js","webpack:///./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/devextreme/esm/core/templates/template_base.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/devextreme/esm/animation/easing.js","webpack:///./node_modules/devextreme/esm/animation/fx.js","webpack:///./node_modules/devextreme/esm/core/memorized_callbacks.js","webpack:///./node_modules/devextreme/esm/ui/widget/selectors.js","webpack:///./node_modules/devextreme/esm/core/devices.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/lodash.isinteger/index.js","webpack:///./node_modules/parse-asn1/fixProc.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/des.js/lib/des/des.js","webpack:///./node_modules/devextreme/esm/animation/frame.js","webpack:///./node_modules/devextreme/esm/ui/validation_engine.js","webpack:///./node_modules/sha.js/sha512.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/browserify-aes/modes/ofb.js","webpack:///./node_modules/devextreme/esm/ui/dialog.js","webpack:///./node_modules/devextreme/esm/data/data_source/utils.js","webpack:///./node_modules/browserify-aes/modes/cfb1.js","webpack:///./node_modules/devextreme/esm/core/dom_adapter.js","webpack:///./node_modules/public-encrypt/withPublic.js","webpack:///./node_modules/devextreme/esm/ui/text_box/text_box.js","webpack:///./node_modules/devextreme/esm/ui/text_box.js","webpack:///./node_modules/devextreme-vue/ui/popup.js","webpack:///./node_modules/devextreme/esm/core/utils/scroll_rtl_behavior.js","webpack:///./node_modules/devextreme/esm/core/utils/dom.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/animator.js","webpack:///./node_modules/diffie-hellman/lib/dh.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/parse-asn1/certificate.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue3/index.js","webpack:///./node_modules/diffie-hellman/lib/generatePrime.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/devextreme/esm/localization/ldml/number.js","webpack:///./node_modules/create-hash/md5.js","webpack:///./node_modules/devextreme/esm/mobile/hide_callback.js","webpack:///./node_modules/devextreme/esm/core/renderer_base.js","webpack:///./node_modules/devextreme/esm/core/renderer.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/devextreme/esm/core/polyfills/promise.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/des.js/lib/des/utils.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/devextreme/esm/core/polyfills/weak_map.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/devextreme/esm/core/templates/function_template.js","webpack:///./node_modules/devextreme-vue/core/helpers.js","webpack:///./node_modules/devextreme/esm/core/utils/math.js","webpack:///./node_modules/devextreme/esm/core/utils/inflector.js","webpack:///./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack:///./node_modules/browserify-aes/modes/cfb8.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.formatter.js","webpack:///./node_modules/cipher-base/index.js","webpack:///./node_modules/public-encrypt/browser.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/errors.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.pull_down.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.simulated.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view.js","webpack:///./node_modules/lodash.isnumber/index.js","webpack:///./node_modules/devextreme/esm/data_helper.js","webpack:///./node_modules/devextreme/esm/core/utils/style.js","webpack:///./node_modules/sha.js/index.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./node_modules/browserify-aes/modes/ctr.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/constants.js","webpack:///./node_modules/devextreme/esm/core/utils/common.js","webpack:///./node_modules/vue-router/dist/vue-router.esm-bundler.js","webpack:///./node_modules/jws/lib/sign-stream.js","webpack:///./node_modules/vue-toastification/dist/esm/index.js","webpack:///./node_modules/jsonwebtoken/lib/TokenExpiredError.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/devextreme/esm/ui/shared/grouped_data_converter_mixin.js","webpack:///./node_modules/browserify-sign/browser/sign.js","webpack:///./node_modules/devextreme/esm/events/index.js","webpack:///./node_modules/sha.js/sha224.js","webpack:///./node_modules/devextreme/esm/events/contextmenu.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/devextreme/esm/events/hold.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/randomfill/browser.js","webpack:///./node_modules/devextreme/esm/core/utils/view_port.js","webpack:///./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///./node_modules/devextreme/esm/ui/drop_down_menu.js","webpack:///./node_modules/pinia/dist/pinia.esm-bundler.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/jwa/index.js","webpack:///./node_modules/miller-rabin/lib/mr.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/vue/dist/vue.runtime.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/devextreme/esm/core/template_manager.js","webpack:///./node_modules/devextreme/esm/core/dom_component.js","webpack:///./node_modules/pbkdf2/lib/precondition.js","webpack:///./node_modules/devextreme/esm/ui/drawer.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/devextreme/esm/core/utils/position.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/sha.js/sha1.js","webpack:///./node_modules/asn1.js/lib/asn1.js","webpack:///./node_modules/devextreme/esm/events/double_click.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_converter.js","webpack:///./node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_adapter.js","webpack:///./node_modules/devextreme/esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js","webpack:///./node_modules/devextreme/esm/ui/overlay/ui.overlay.js","webpack:///./node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.format.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/browserify-aes/authCipher.js","webpack:///./node_modules/asn1.js/lib/asn1/base/node.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/public-encrypt/xor.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/config.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/devextreme/esm/core/templates/bindable_template.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/button.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/browserify-aes/encrypter.js","webpack:///./node_modules/devextreme/esm/localization/default_date_names.js","webpack:///./node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/der.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/pbkdf2/lib/to-buffer.js","webpack:///./node_modules/devextreme/esm/events/swipe.js","webpack:///./node_modules/buffer-xor/index.js","webpack:///./node_modules/semver/semver.js","webpack:///./node_modules/devextreme-vue/ui/tree-view.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/templates-discovering.js","webpack:///./node_modules/devextreme-vue/core/configuration.js","webpack:///./node_modules/devextreme-vue/core/version.js","webpack:///./node_modules/devextreme/esm/events/pointer/base.js","webpack:///./node_modules/devextreme/esm/events/pointer/touch.js","webpack:///./node_modules/devextreme/esm/events/pointer/mspointer.js","webpack:///./node_modules/devextreme/esm/events/pointer/observer.js","webpack:///./node_modules/devextreme/esm/events/pointer/mouse.js","webpack:///./node_modules/devextreme/esm/events/pointer/mouse_and_touch.js","webpack:///./node_modules/devextreme/esm/events/pointer.js","webpack:///./node_modules/devextreme/esm/core/utils/browser.js","webpack:///./node_modules/devextreme/esm/core/utils/array.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/devextreme/esm/localization/currency.js","webpack:///./node_modules/devextreme/esm/events/core/emitter.js","webpack:///./node_modules/devextreme-vue/core/templates-manager.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.native.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/browserify-cipher/browser.js","webpack:///./node_modules/devextreme/esm/core/utils/string.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/browserify-sign/browser/verify.js","webpack:///./node_modules/create-hash/browser.js","webpack:///./node_modules/devextreme/esm/core/utils/comparator.js","webpack:///./node_modules/devextreme/esm/core/options/utils.js","webpack:///./node_modules/devextreme/esm/core/options/option_manager.js","webpack:///./node_modules/devextreme/esm/core/options/index.js","webpack:///./node_modules/devextreme/esm/core/postponed_operations.js","webpack:///./node_modules/devextreme/esm/core/component.js","webpack:///./node_modules/lodash.isstring/index.js","webpack:///./node_modules/devextreme/esm/localization/utils.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/devextreme/esm/data/utils.js","webpack:///./node_modules/lodash.includes/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/devextreme/esm/localization.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/devextreme/esm/ui/load_indicator.js","webpack:///./node_modules/pbkdf2/lib/default-encoding.js","webpack:///./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/devextreme/esm/ui/popup.js","webpack:///./node_modules/pbkdf2/browser.js","webpack:///./node_modules/devextreme/esm/core/errors.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollbar.js","webpack:///./node_modules/devextreme/esm/core/utils/console.js","webpack:///./node_modules/jws/lib/data-stream.js","webpack:///./node_modules/devextreme/esm/events/core/emitter.feedback.js","webpack:///./node_modules/sha.js/sha256.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/children-processing.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/helpers.js","webpack:///./node_modules/devextreme-vue/core/constants.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.deferred.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.strategy.standard.js","webpack:///./node_modules/devextreme/esm/ui/selection/selection.js","webpack:///./node_modules/devextreme/esm/core/templates/child_default_template.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/devextreme/esm/core/utils/call_once.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/browserify-rsa/index.js","webpack:///./node_modules/devextreme/esm/ui/draggable.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/devextreme/esm/localization/ldml/date.parser.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/env.js","webpack:///./node_modules/devextreme/esm/core/element.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/public-encrypt/publicEncrypt.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/devextreme/esm/ui/widget/utils.ink_ripple.js","webpack:///./node_modules/evp_bytestokey/index.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/component.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/devextreme/esm/core/utils/iterator.js","webpack:///./node_modules/devextreme/esm/ui/action_sheet.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/devextreme-vue/ui/toolbar.js","webpack:///./node_modules/devextreme-vue/core/templates-discovering.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.errors.js","webpack:///./node_modules/devextreme/esm/data/array_store.js","webpack:///./node_modules/devextreme/esm/ui/collection/ui.collection_widget.async.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.base.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/ripemd160/index.js","webpack:///./node_modules/buffer-equal-constant-time/index.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/sha.js/hash.js","webpack:///./node_modules/browserify-sign/browser/index.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/const.js","webpack:///./node_modules/devextreme/esm/core/utils/data.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/sha.js/sha384.js","webpack:///./node_modules/devextreme/esm/events/core/event_registrator_callbacks.js","webpack:///./node_modules/devextreme/esm/ui/collection/item.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///./node_modules/devextreme/esm/core/utils/extend.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/devextreme-vue/ui/drawer.js","webpack:///./node_modules/devextreme/esm/events/visibility_change.js","webpack:///./node_modules/browserify-aes/modes/index.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/asn1.js/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/browserify-aes/incr32.js","webpack:///./node_modules/devextreme/esm/ui/popover_contants.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/devextreme/esm/data/array_utils.js","webpack:///./node_modules/devextreme/esm/animation/position.js","webpack:///./node_modules/devextreme/esm/core/utils/type.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/browserify-aes/modes/cbc.js","webpack:///./node_modules/devextreme/esm/core/utils/public_component.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/devextreme/esm/core/version.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/devextreme/esm/events/core/wheel.js","webpack:///./node_modules/devextreme/esm/events/core/hook_touch_props.js","webpack:///./node_modules/devextreme/esm/events/core/events_engine.js","webpack:///./node_modules/devextreme/esm/animation/translator.js","webpack:///./node_modules/safer-buffer/safer.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.events.emitter.gesture.scroll.js","webpack:///./node_modules/devextreme/esm/data/query_adapters.js","webpack:///./node_modules/devextreme/esm/data/remote_query.js","webpack:///./node_modules/devextreme/esm/data/query_implementation.js","webpack:///./node_modules/devextreme/esm/data/query.js","webpack:///./node_modules/devextreme/esm/core/utils/storage.js","webpack:///./node_modules/devextreme/esm/core/utils/support.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/devextreme/esm/core/events_strategy.js","webpack:///./node_modules/devextreme/esm/data/custom_store.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/extension-component.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/devextreme/esm/core/utils/deferred.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/lodash.isplainobject/index.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/devextreme-vue/toolbar.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/index.js","webpack:///./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/devextreme/esm/core/remove_event.js","webpack:///./node_modules/create-hmac/legacy.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/devextreme-vue/core/component.js","webpack:///./node_modules/devextreme-vue/popup.js","webpack:///./node_modules/devextreme/esm/core/utils/error.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.device.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/devextreme/esm/ui/tree_view.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.search_box_mixin.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/configuration-component.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/devextreme/esm/localization/default_messages.js","webpack:///./node_modules/devextreme/esm/localization/message.js","webpack:///./node_modules/devextreme/esm/core/guid.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.simulated.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/devextreme/esm/ui/resizable.js","webpack:///./node_modules/devextreme/esm/localization/cldr-data/parent_locales.js","webpack:///./node_modules/devextreme/esm/localization/parentLocale.js","webpack:///./node_modules/devextreme/esm/localization/core.js","webpack:///./node_modules/pbkdf2/lib/sync-browser.js","webpack:///./node_modules/devextreme-vue/core/strategy/vue2/constants.js","webpack:///./node_modules/devextreme-vue/core/vue-helper.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/devextreme/esm/ui/widget/swatch_container.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/create-ecdh/browser.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.strategy.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.strategy.action_sheet.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.strategy.drop_down_menu.js","webpack:///./node_modules/devextreme/esm/ui/toolbar.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/devextreme/esm/localization/open_xml_currency_format.js","webpack:///./node_modules/devextreme/esm/localization/cldr-data/accounting_formats.js","webpack:///./node_modules/devextreme/esm/localization/intl/number.js","webpack:///./node_modules/devextreme/esm/localization/number.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/devextreme/esm/ui/check_box.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/devextreme/esm/events/utils/event_nodes_disposing.js","webpack:///./node_modules/devextreme/esm/events/click.js","webpack:///./node_modules/devextreme/esm/data/store_helper.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./node_modules/devextreme-vue/core/configuration-component.js","webpack:///./node_modules/lodash.once/index.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/devextreme/esm/core/utils/array_compare.js","webpack:///./node_modules/jsonwebtoken/lib/psSupported.js","webpack:///./node_modules/asn1.js/lib/asn1/api.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/devextreme/esm/ui/sortable.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/jsonwebtoken/lib/NotBeforeError.js","webpack:///./node_modules/elliptic/lib/elliptic/utils.js","webpack:///./node_modules/public-encrypt/mgf.js","webpack:///./node_modules/jsonwebtoken/lib/timespan.js","webpack:///./node_modules/md5.js/index.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/devextreme/esm/ui/widget/ui.widget.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/devextreme-vue/drawer.js","webpack:///./node_modules/devextreme/esm/core/element_data.js","webpack:///./node_modules/devextreme/esm/core/utils/size.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/devextreme/esm/core/class.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/devextreme/esm/events/hover.js","webpack:///./node_modules/browserify-aes/browser.js","webpack:///./node_modules/brorand/index.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js"],"names":["__assign","this","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","defineProperty","exports","value","setEmitOptionChangedFunc","bindOptionWatchers","helpers_1","Configuration","updateFunc","name","initialValues","expectedChildren","isCollectionItem","collectionItemIndex","ownerConfig","_updateFunc","_name","_initialValues","_nestedConfigurations","_isCollectionItem","_collectionItemIndex","_expectedChildren","_ownerConfig","_componentChanges","updateValue","bind","get","enumerable","configurable","cleanComponentsCountChanged","fullPath","fullName","_options","_prevNestedConfigOptions","init","options","set","handler","_emitOptionChanged","setPrevNestedOptions","onOptionChanged","args","isEqual","previousValue","_onOptionChanged","split","cleanNested","createNested","expected","actualName","actualIsCollectionItem","optionName","filter","c","configuration","push","nestedName","join","getNestedOptionValues","values","forEach","o","nestedValue","arr","Array","isArray","getOptionsToWatch","blackList","optionRelPath","optionInfo","getOptionInfo","isCollection","nestedConfig","_getNestedConfig","slice","_tryEmitOptionChanged","component","option","_i","_a","config","vueInstance","innerChanges","targets","$watch","emitOptionChanged","$props","$emit","default","primes","DH","getDiffieHellman","mod","prime","Buffer","gen","ENCODINGS","createDiffieHellman","enc","generator","genc","isBuffer","undefined","generatePrime","DiffieHellmanGroup","createDiffieHellmanGroup","DiffieHellman","wellKnownSymbol","TO_STRING_TAG","test","module","String","assert","val","msg","Error","inherits","ctor","superCtor","super_","TempCtor","constructor","BN","number","base","endian","isBN","negative","words","red","_init","wordSize","window","e","parseHex4Bits","string","index","charCodeAt","parseHexByte","lowerBound","r","parseBase","str","start","end","mul","len","Math","min","num","max","left","right","cmp","_initNumber","_initArray","toString","replace","_parseHex","_parseBase","toArray","ceil","j","w","off","strip","parseLength","limbLen","limbPow","total","word","imuln","_iaddn","pow","copy","dest","clone","_expand","size","_normSign","inspect","zeros","groupSizes","groupBases","toBitArray","bitLength","bit","wbit","smallMulTo","self","out","a","b","lo","carry","k","ncarry","rword","maxJ","padding","groupSize","groupBase","isZero","modn","idivn","toNumber","ret","toJSON","toBuffer","toArrayLike","ArrayType","byteLength","reqLength","littleEndian","res","q","andln","iushrn","clz32","_countBits","_zeroBits","hi","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","iadd","isub","add","sub","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","imul","w0","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","fftm","FFTM","mulp","x","y","mulTo","makeRBT","N","l","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","m","odd","conjugate","normalize13b","ws","round","convert13b","stub","ph","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","iushln","bits","carryMask","newCarry","ishln","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","shift","_wordDiv","mode","bhi","bhiBits","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","A","B","C","D","g","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","k256","p224","p192","p25519","MPrime","tmp","_tmp","K256","P224","P192","P25519","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","input","output","outLen","prev","next","mod3","one","nOne","lpow","z","inv","windowSize","wnd","current","currentLen","mont","u","abstract","queryByOptions","storeImpl","Store","inherit","that","_eventsStrategy","on","toLowerCase","_key","key","_errorHandler","errorHandler","_useDefaultSearch","_customLoadOptions","keyOf","obj","_keyGetter","_requireKey","load","fireEvent","_withLock","_loadImpl","done","result","createQuery","enumerate","task","promise","resolveWith","fail","rejectWith","totalCount","_totalCountImpl","count","byKey","extraOptions","_addFailHandlers","_byKeyImpl","insert","_insertImpl","callbackValues","callbackKey","update","_updateImpl","changes","beforePushArgs","waitFor","_pushImpl","remove","_removeImpl","deferred","eventName","eventHandler","create","alias","registerClass","type","inheritor","members","encrypt","block","_cipher","encryptBlock","decrypt","decryptBlock","Cipher","blockSize","buffer","bufferOff","data","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","_update","inputOff","outputOff","final","first","last","_finalEncrypt","_finalDecrypt","concat","_pad","_unpad","equal","ready","SLEEP","INITED","STARTED","TOUCH_BOUNDARY","IMMEDIATE_TOUCH_BOUNDARY","IMMEDIATE_TIMEOUT","supportPointerEvents","setGestureCover","isDesktop","real","deviceType","$cover","addClass","css","subscribeGlobal","preventDefault","appendTo","toggle","cursor","gestureCover","gestureCoverStrategy","GestureEmitter","gesture","configure","getElement","immediate","callBase","allowInterruptionByMouseWheel","_stage","getDirection","direction","_cancel","_toggleGestureCover","_needSkipEvent","_startEvent","_startEventData","_setupImmediateTimer","clearTimeout","_immediateTimer","_immediateAccepted","setTimeout","move","_directionConfirmed","_resetActiveElement","_clearSelection","_adjustStartEvent","_start","_requestAccept","_move","_forgetAccept","touchBoundary","_getTouchBoundary","deltaX","deltaY","horizontalMove","_validateMove","verticalMove","bothAccepted","horizontalAccepted","verticalAccepted","mainAxis","crossAxis","pageX","pageY","platform","find","_toggleGestureCoverImpl","isStarted","_end","_stop","dispose","initialTouchBoundary","newBoundary","constants","_reverse","map","keys","der","addNamespace","eventNames","namespace","errors","indexOf","KEY_MAP","backspace","tab","enter","escape","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","delete","f","alt","control","up","down","multiply","spacebar","del","subtract","esc","LEGACY_KEY_CODES","8","9","13","27","33","34","35","36","37","38","39","40","46","32","70","65","106","109","189","173","16","17","18","EVENT_SOURCES_REGEX","dx","mouse","touch","keyboard","pointer","fixMethod","copyEvent","originalEvent","Event","isDxEvent","eventSource","isNativeMouseEvent","isNativeTouchEvent","_ref","isPointerEvent","isMouseEvent","pointerType","isDxMouseWheelEvent","isTouchEvent","isFakeClickEvent","_ref2","screenX","offsetX","eventData","_ref3","timeStamp","time","eventDelta","from","to","hasTouches","pointers","touches","skipEvents","needSkipEvent","target","$target","isDropDown","is","isContentEditable","hasAttribute","touchInEditable","isTextArea","hasClass","isInputFocused","which","createEvent","event","extend","props","delegateTarget","trigger","normalizeKeyName","_ref4","isKeySupported","fromCharCode","getChar","_ref5","isCommandKeyPressed","_ref6","ctrlKey","metaKey","boolTag","objectProto","objectToString","isBoolean","isObjectLike","aFunction","fn","BaseClass","object","InjectedClass","instance","initialFields","injectFields","injectionObject","initial","inject","resetInjection","toIndexedObject","$getOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","it","error","ERR_INVALID_OPT_VALUE","codes","highWaterMarkFrom","isDuplex","duplexKey","highWaterMark","getHighWaterMark","state","hwm","isFinite","floor","objectMode","copyProps","src","dst","SafeBuffer","arg","encodingOrOffset","alloc","allocUnsafe","allocUnsafeSlow","TypeError","fill","encoding","buf","SlowBuffer","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPropertyKey","has","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","ANONYMOUS_TEMPLATE_NAME","Button","super","_feedbackHideTimeout","$element","active","inactive","$el","_eventBindingTarget","selector","_activeStateUnit","excludeValidators","showTimeout","_feedbackShowTimeout","hideTimeout","_defaultOptionsRules","device","isSimulator","focusStateEnabled","useInkRipple","_clickAction","validationGroup","_validationGroupConfig","model","_modelByElement","findGroup","icon","text","_templateData","_getDefaultOptions","hoverStateEnabled","onClick","iconPosition","activeStateEnabled","template","useSubmitBehavior","stylingMode","needValidate","validationStatus","_createAction","status","complete","validate","then","_submitInput","click","stopPropagation","_renderType","_renderStylingMode","_renderInkRipple","_renderClick","_updateAriaLabel","_initMarkup","_updateContent","setAria","_templateManager","addDefaultTemplates","content","container","$icon","$textContainer","$container","append","prepend","_initTemplates","_updateClick","_updateType","_updateStylingMode","_updateSubmitInput","_invalidate","_optionChanged","NAME","_executeClickAction","isOnlyIconButton","_inkRipple","waveSizeCoefficient","useHoldAnimation","isCentered","changeWaveVisibility","visible","_disposed","element","_$content","showWave","hideWave","_attachActiveEvents","submitAction","_getSubmitAction","$content","attr","_$submitInput","_supportedKeys","space","ariaTarget","_getAriaTarget","_createActionByOption","afterExecute","_getContentData","empty","toggleClass","$template","_getTemplateByOption","render","transclude","anonymousTemplateName","replaceWith","$submitInput","_renderSubmitInput","className","removeClass","getGroupConfig","_findGroup","utils","SHA256","SHA224","outSize","hmacStrength","padLength","_digest","toHex32","split32","registerComponent","componentClass","fire","registerRendererComponent","isMemberInvoke","memberName","memberArgs","each","getInstance","member","memberValue","Hash","K","W","Sha","_w","rotl5","rotl30","ft","d","_b","_c","_d","_e","M","readInt32BE","_hash","H","writeInt32BE","Iterator","reset","countable","ArrayIterator","array","WrappedIterator","iter","MapIterator","mapper","hasNext","defaultCompare","xValue","yValue","SortIterator","getter","desc","compare","_wrap","rules","thenBy","sortedIter","_ensureSorted","sort","_compare","_unwrap","record","wrappedItem","xIndex","yIndex","rulesCount","rule","compareResult","compileCriteria","compileEquals","negate","crit","ops","isConjunctiveOperator","isConjunctiveNextOperator","op","criteria","getterValue","searchValue","lastIndexOf","FilterIterator","GroupIterator","_ensureGrouped","groupedIter","hash","items","SelectIterator","SliceIterator","skip","take","pos","arrayQueryImpl","queryOptions","handleError","aggregateCore","aggregator","seed","step","finalize","NaN","accumulator","resolve","reject","standardAggregate","select","chainQuery","selectProp","sortBy","Number","MAX_VALUE","groupBy","aggregate","sum","avg","Transform","_require$codes","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","Duplex","afterTransform","er","ts","_transformState","transforming","cb","writecb","emit","writechunk","rs","_readableState","reading","needReadable","_read","needTransform","writeencoding","sync","_transform","flush","_flush","prefinish","_this","destroyed","stream","_writableState","chunk","_write","_destroy","err","err2","aes","StreamCipher","iv","AES","_prev","_cache","_secCache","_decrypt","_mode","_final","scrub","Clone","orderEach","func","isNumberX","isNumberY","assignValueToProperty","property","assignByReference","isWrapped","deepExtendArraySafe","extendComplexObject","prevValue","newValue","goDeeper","PassThrough","isObject","SPECIES","originalArray","des","des3","pre","curves","curve","PresetCurve","short","edwards","isInfinity","defineCurve","sha256","gRed","sha384","sha512","beta","lambda","basis","fails","createElement","EmptyTemplate","proto","CBCState","instantiate","Base","CBC","_cbcInit","_cbcState","inp","inOff","outOff","superProto","COLLECTION_CLASS","ITEM_CLASS","CONTENT_CLASS_POSTFIX","ITEM_CONTENT_PLACEHOLDER_CLASS","ITEM_DATA_KEY","ITEM_INDEX_KEY","ITEM_TEMPLATE_ID_PREFIX","ITEMS_OPTIONS_NAME","SELECTED_ITEM_CLASS","ITEM_RESPONSE_WAIT_CLASS","EMPTY_COLLECTION","TEMPLATE_WRAPPER_CLASS","ITEM_PATH_REGEX","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_PAGE_UP","FOCUS_PAGE_DOWN","FOCUS_LAST","FOCUS_FIRST","CollectionWidget","$itemElement","_itemClickHandler","currentTarget","location","_moveFocus","leftArrow","rightArrow","upArrow","downArrow","pageUp","pageDown","selectOnFocus","loopItemFocus","itemTemplate","onItemRendered","onItemClick","onItemHold","itemHoldTimeout","onItemContextMenu","onFocusedItemChanged","noDataText","message","format","dataSource","_itemAttributes","itemTemplateProperty","focusOnSelectedItem","focusedElement","displayExpr","disabledExpr","disabled","visibleExpr","_compileDisplayGetter","_cleanRenderedItems","_refreshDataSource","_displayGetter","_initItemsFromMarkup","_initDefaultItemTemplate","_getAnonymousTemplateName","fieldsMap","_getFieldsMap","item","_prepareDefaultItemTemplate","_getBindableFields","html","rawItems","isTemplateRequired","innerHTML","_prepareItemTemplate","templateId","detach","removeAttr","_saveTemplate","_dataSourceOptions","paginate","_renderedItemsCount","_focusTarget","_focusInHandler","$focusedElement","_setFocusedItem","$activeItem","_getActiveItem","_focusOutHandler","_updateFocusedItemState","activeElements","_getActiveElement","lastIndex","$newTarget","$items","_getAvailableItems","_prevItem","_nextItem","_getVisibleItems","$itemElements","_itemElements","not","targetIndex","$last","$item","loop","$first","_selectFocusedItem","selectItem","isFocused","needCleanItemId","_refreshActiveDescendant","_refreshItemId","_toggleFocusClass","_updateParentActiveDescendant","getFocusedItemId","_findItemElementByItem","itemElements","_itemDataKey","_getIndexByItem","_itemOptionChanged","oldValue","ItemClass","setDataField","_refreshItem","isDisabling","_resetItemFocus","itemData","_getItemData","_itemIndexKey","_renderItem","matches","match","itemPath","_renderEmptyMessage","_createItemRenderAction","_attachHoldEvent","_attachContextMenuEvent","_loadNextPage","_dataSource","_expectNextPageLoading","pageIndex","_startIndexForAppendedItems","_expectLastItemLoading","_forgetNextPageLoading","_dataSourceChangedHandler","newItems","_initialized","_shouldAppendItems","_isLastPage","_refreshContent","_prepareContent","_renderContent","_dataSourceLoadErrorHandler","_allowDynamicItemsAppend","_clean","_cleanFocusState","_cleanItemContainer","_itemContainer","_dispose","_itemFocusTimeout","_refresh","_itemClass","_itemContentClass","_selectedItemClass","_itemResponseWaitClass","_itemSelector","_renderContentImpl","_fireContentReadyAction","_render","_attachClickEvent","itemSelector","clickEventNamespace","pointerDownEventNamespace","pointerDownAction","_itemPointerDownHandler","execute","_itemDXEventHandler","_itemFocusHandler","isDefaultPrevented","$closestItem","closest","$closestFocusable","_closestFocusable","_forcePointerDownFocus","parent","isDocument","_updateFocusState","$itemContainer","hold","timeout","_getHoldTimeout","_itemHoldHandler","_shouldFireHoldEvent","hasActionSubscription","cancel","_itemContextMenuHandler","_shouldFireContextMenuEvent","_renderItems","$itemToReplace","$itemFrame","_renderItemFrame","_setElementData","_attachItemClickEvent","$itemContent","_getItemContent","renderContentPromise","_renderItemContent","contentClass","defaultTemplateName","_postprocessRenderItem","itemElement","itemContent","itemIndex","_executeItemRenderAction","_itemEventHandlerByHandler","itemTemplateName","_getItemTemplateName","_getTemplate","_addItemContentClasses","$templateResult","_createItemByTemplate","_renderItemContentByNode","$node","classes","_appendItemToContainer","_itemOptions","displayValue","watchMethod","owner","fieldGetter","field","expr","_getItemRenderAction","_itemRenderAction","category","templateProperty","renderArgs","_emptyMessageContainer","hideNoData","_isDataSourceLoading","_$noData","dxEvent","handlerOptionName","actionArgs","actionConfig","_itemEventHandler","initiator","action","validatingTargetName","_itemEventHandlerImpl","_closestItemElement","_extendActionArgs","_getSummaryItemsWidth","includeMargin","outerWidth","_focusedItemId","itemsContainer","include","ITEM_DELETING_DATA_KEY","NOT_EXISTING_INDEX","indexExists","_setOptionsByReference","_optionsByReference","selectedItem","selectionMode","selectionRequired","selectionByClick","selectedItems","selectedItemKeys","maxFilterLengthInRequest","keyExpr","selectedIndex","onSelectionChanged","onItemReordered","onItemDeleting","onItemDeleted","_userOptions","_initEditStrategy","_initKeyGetter","_initSelectionModule","_getKeysByItems","_editStrategy","getKeysByItems","_getItemsByKeys","getItemsByKeys","_getKeyByIndex","getKeyByIndex","_getIndexByKey","getIndexByKey","_getIndexByItemData","getIndexByItemData","_isKeySpecified","_getCombinedFilter","store","_nullValueSelectionSupported","itemsGetter","_selection","allowNullValue","equalByReference","addedItemKeys","removedItemKeys","_updateSelectedItems","loadOptions","customQueryParams","userData","_userData","loadResult","_applyMapFunction","plainItems","dataFields","Strategy","_getSelectedItemIndices","indices","getSelectedItemKeys","beginCache","endCache","_rendering","isLoading","_syncSelectionOptions","_normalizeSelectedItems","_rendered","byOption","_chooseSelectOption","getItemDataByIndex","_setOptionWithoutOptionChange","selectedItemIndex","setSelection","isOptionDefined","optionValue","_compareKeys","oldKeys","newKeys","newSelection","currentSelection","getSelectedItems","normalizedSelection","_itemSelectHandler","isItemSelected","unselectItem","_selectedItemElement","normalizedItemIndex","getNormalizedIndex","_isItemSelected","_processSelectableItem","isSelected","_setAriaSelected","selectionChangePromise","_selectionChangePromise","normalizedIndex","addedSelection","removedSelection","_addSelection","_removeSelection","_updateSelection","_fireSelectionChangeEvent","addedItems","removedItems","getItemElement","triggerHandler","checkPending","_clearSelectedItems","_waitDeletingPrepare","deletingActionArgs","deletePromise","always","deletePromiseExists","deletePromiseResolved","argumentsSpecified","shouldDelete","_deleteItemFromDS","disabledState","dataStore","_tryRefreshLastPage","_refreshLastPage","_updateSelectionAfterDelete","deselect","_updateIndicesAfterIndex","_simulateOptionChange","_optionChangedAction","_deleteItemElementByIndex","deleteItemAtIndex","_afterItemElementDeleted","deletedActionArgs","changingOption","beforeExecute","deleteItem","itemResponseWaitClass","reorderItem","toItemElement","strategy","$movingItem","$destinationItem","movingIndex","destinationIndex","canMoveItems","itemPlacementFunc","moveItemAtIndexToIndex","fromIndex","getIndex","toIndex","JSON","stringify","JsonWebTokenError","NotBeforeError","TokenExpiredError","decode","timespan","PS_SUPPORTED","jws","PUB_KEY_ALGS","RSA_KEY_ALGS","HS_ALGS","splice","jwtString","secretOrPublicKey","callback","clockTimestamp","nonce","trim","Date","now","decodedToken","parts","getSecret","header","secretCallback","valid","hasSignature","algorithms","alg","verify","payload","nbf","ignoreNotBefore","clockTolerance","exp","ignoreExpiration","audience","audiences","aud","some","targetAudience","RegExp","issuer","invalid_issuer","iss","subject","jwtid","jti","maxAge","iat","maxAgeTimestamp","signature","parseKeys","mgf","crt","createHash","withPublic","oaep","modulus","iHash","digest","hLen","maskedSeed","maskedDb","db","pkcs1","reverse","p1","ps","dif","privateKey","zBuffer","currentTemplateEngine","templateEngines","registerTemplateEngine","templateEngine","setTemplateEngine","getCurrentTemplateEngine","compile","jQuery","tmpl","jsrender","templates","Mustache","Hogan","Handlebars","doT","_element","_compiledTemplate","contents","findTemplates","optionsString","optionsParser","suitableTemplatesByName","rawTemplates","templatesMap","_findBestMatches$","suitableTemplate","devices","addOneRenderedCall","templateResult","onRendered","getNormalizedTemplateArgs","validateTemplateSource","templateSource","templateKey","defaultCreateElement","acquireIntegrationTemplate","isAsyncTemplate","skipTemplates","integrationTemplate","acquireTemplate","createTemplate","defaultTemplates","nodeType","agq","ak","ar","asa","ast","az","bas","be","bem","bez","bg","bm","br","bs","ca","ce","cgg","ckb","cs","cy","da","de","dje","dsb","dua","dyo","ee","el","eo","es","et","eu","ewo","fa","ff","fi","fo","fr","fur","fy","ga","gd","gl","gsw","gv","ha","hr","hsb","hu","hy","ia","ig","jgo","jmc","ka","kab","kde","kea","khq","kk","kkj","kl","ksb","ksf","ksh","ku","kw","ky","lag","lb","lg","ln","lrc","lu","lv","mfe","mg","mgo","mi","mk","mn","ms","mua","mzn","naq","nds","nl","nmg","nnh","no","nus","nyn","os","pcm","pl","rm","rn","rof","ru","rw","rwk","sah","sbp","se","ses","sg","shi","si","sk","sl","smn","so","sq","sr","sv","sw","teo","tg","tk","tr","tt","twq","tzm","uk","uz","vai","vi","vun","wae","wo","xog","yav","yi","yo","zgh","SYMBOLS_TO_REMOVE_REGEX","getIntlFormatter","date","timeZoneName","year","getFullYear","recognizableAsTwentyCentury","temporaryYearValue","utcDate","UTC","getMonth","getDate","getHours","getMinutes","getSeconds","setFullYear","utcFormat","timeZone","formatDateTime","formattersCache","getFormatter","locale","Intl","DateTimeFormat","formatNumber","NumberFormat","getAlternativeNumeralsMap","numeralsMapCache","normalizeNumerals","dateString","alternativeNumeralsMap","sign","removeLeadingZeroes","dateStringEquals","actual","normalizeMonth","intlFormats","day","dayofweek","weekday","longdate","month","longdatelongtime","hour","minute","second","longtime","monthandday","monthandyear","shortdate","shorttime","shortyear","defaultOptions","resolvedOptions","getIntlFormat","monthNameStrategies","standalone","monthIndex","monthFormat","part","engine","getMonthNames","wide","abbreviated","narrow","getDayNames","dayIndex","getPeriodNames","hour12Formatter","hour12","hours","hourNumberText","timeParts","biggerPart","_format","formatter","intlFormat","formatType","parse","parser","_parseDateBySimpleFormat","formatParts","getFormatParts","dateParts","dateArgs","_generateDateArgs","constructValidDate","ampmShift","parsedDate","hoursShift","minutes","seconds","currentDate","formatPart","datePart","parsed","parseInt","formatUsesMonthName","formatUsesDayName","getTimeSeparator","formattedDate","DEFAULT_DAY_OF_WEEK_INDEX","hasIntl","FORMATS_TO_PATTERN_MAP","quarterandyear","shortdateshorttime","quarter","millisecond","possiblePartPatterns","milliseconds","dateLocalization","_getPatternByFormat","_expandPattern","pattern","partName","possiblePatterns","getQuarterNames","is24HourFormat","amTime","pmTime","amTimeFormatted","pmTimeFormatted","isNaN","convertDigits","ldmlFormat","log","getTime","firstDayOfWeekIndex","getValueByClosestLocale","initDxExtensionComponent","vue_1","component_1","vue_helper_1","defineComponent","extends","initBaseComponent","created","nodeOptions","getNodeOptions","$_isExtension","$_attachTo","attachTo","mounted","setAttribute","componentOptions","$_hasOwner","methods","$_createWidget","pullAllChildren","isFragment","directChildren","allChildren","pullConfigComponents","node","patchFlag","children","nodes","componentInfo","getComponentInfo","$_optionName","componentChildren","configurationChildren","$_predefinedProps","getNormalizedProps","$_isCollectionItem","$_expectedChildren","$_config","$_innerChanges","Callback","_list","_queue","_firing","_fired","_firingIndexes","_fireCore","context","firingIndexes","list","stopOnFalse","pop","unique","fireWith","queue","syncStrategy","memory","fired","Callbacks","MAX_BYTES","MAX_UINT32","oldBrowser","crypto","global","msCrypto","randomBytes","RangeError","bytes","generated","getRandomValues","process","nextTick","animation","animationType","position","toConfig","top","fx","animate","duration","margin","completeAction","marginTop","height","stop","drawer","_drawer","whenPanelContentRendered","getDrawerInstance","changePositionUsingFxAnimation","animationDuration","whenPositionAnimationCompleted","whenShaderAnimationCompleted","_animationCompleteHandler","_internalRenderPosition","resizeViewContent","renderShaderVisibility","isDrawerOpened","isHorizontalDirection","getRealPanelWidth","getRealPanelHeight","getMaxSize","getMinSize","whenAnimationCompleted","isShaderVisible","fadeConfig","fade","_$shader","_toggleShaderVisibility","calcFromRealPanelSize","refreshPanelElementSize","panelSize","_getPanelSize","openedPanelSize","contentPosition","_getPositionCorrection","paddingCssPropertyName","calcTargetPosition","viewContent","moveTo","$panel","panelOffset","_getPanelOffset","revealMode","isRtl","_initialPosition","opened","minSize","_overlay","_createComponent","shading","getOverlayTarget","_getOverlayPosition","templatesRenderAsynchronously","show","onPositioned","_fixOverlayPosition","contentTemplate","onContentReady","_processOverlayZIndex","propagateOutsideClick","$overlayContent","panelPosition","my","at","of","overlay","getOverlay","_updateViewContentStyles","$panelOverlayContent","targetPanelPosition","styles","style","zIndex","setZIndex","DRAWER_CLASS","DRAWER_WRAPPER_CLASS","DRAWER_PANEL_CONTENT_CLASS","DRAWER_VIEW_CONTENT_CLASS","DRAWER_SHADER_CLASS","INVISIBLE_STATE_CLASS","OPENED_STATE_CLASS","PANEL_TEMPLATE_NAME","Drawer","maxSize","openedStateMode","animationEnabled","closeOnOutsideClick","_deprecatedOptions","since","_initStrategy","_whenAnimationCompleted","_whenPanelContentRendered","_whenPanelContentRefreshed","_$wrapper","_$viewContentWrapper","_strategy","stopAnimations","hide","_toggleOpenedStateClass","_renderPanelContentWrapper","_refreshOpenedStateModeClass","_refreshRevealModeClass","_renderShader","renderPanelContent","onPanelContentRendered","_renderViewContent","_viewContentWrapperClickHandler","_refreshPositionClass","_refreshWrapperChildrenOrder","_initMinMaxSize","_renderPosition","_removePanelManualPosition","_$panelContentWrapper","bottom","prevOpenedStateMode","prevPosition","isViewContentFirst","prevRevealMode","contentTemplateOption","$viewTemplate","noModel","realPanelSize","_maxSize","_minSize","rtl","silent","_getPanelTemplateElement","$panelContent","getPanelContent","$result","$children","jumpToEnd","disableAnimation","renderPosition","_isInvertedPosition","_dimensionChanged","_removePanelContentWrapper","_removeOverlay","_refreshPanel","targetOpened","all","Map","common","shaCommon","rotl32","sum32","sum32_5","ft_1","BlockHash","sha1_K","SHA1","exec","parseFloat","fmtShort","msAbs","fmtLong","plural","isPlural","long","DES","EDE","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","callbacks","isReady","getReadyState","getDocumentElement","doScroll","subscribeReady","removeListener","listen","getDocument","readyCallbacks","windowExists","$forEach","arrayMethodIsStrict","STRICT_METHOD","callbackfn","DataStream","jwa","Stream","util","JWS_REGEX","thing","safeJsonParse","headerFromJWS","jwsSig","encodedHeader","securedInputFromJWS","signatureFromJWS","payloadFromJWS","isValidJws","jwsVerify","algorithm","secretOrKey","code","securedInput","algo","jwsDecode","opts","typ","json","VerifyStream","secret","publicKey","secretStream","readable","once","writable","isValid","Constructor","CorkedRequest","entry","finish","onCorkedFinish","Writable","WritableState","internalUtil","deprecate","OurUint8Array","Uint8Array","_uint8ArrayToBuffer","_isUint8Array","realHasInstance","destroyImpl","_require","ERR_INVALID_ARG_TYPE","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","errorOrDestroy","nop","writableObjectMode","finalCalled","needDrain","ending","ended","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","emitClose","autoDestroy","bufferedRequestCount","corkedRequestsFree","write","writev","_writev","destroy","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","allBuffers","callFinal","need","rState","endEmitted","endWritable","corkReq","getBuffer","Symbol","hasInstance","Function","pipe","cork","uncork","setDefaultEncoding","_undestroy","undestroy","Legacy","md5","RIPEMD160","sha","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","LOADPANEL_CLASS","LOADPANEL_WRAPPER_CLASS","LOADPANEL_INDICATOR_CLASS","LOADPANEL_MESSAGE_CLASS","LOADPANEL_CONTENT_CLASS","LOADPANEL_CONTENT_WRAPPER_CLASS","LOADPANEL_PANE_HIDDEN_CLASS","LoadPanel","showIndicator","indicatorSrc","showPane","delay","hideTopOverlayHandler","resizeEnabled","shadingColor","maxHeight","maxWidth","$wrapper","_$loadPanelContentWrapper","_togglePaneVisible","_cleanPreviousContent","_renderLoadIndicator","_renderMessage","_show","_clearShowTimeout","_showTimeout","_hide","$message","_$indicator","getBuiltIn","base64","ieee754","typedArraySupport","__proto__","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","checked","isEncoding","fromArrayLike","byteOffset","isnan","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","offset","remaining","strLen","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","_isBuffer","swap16","swap32","swap64","equals","thisStart","thisEnd","thisCopy","targetCopy","includes","_arr","MAX_ARGUMENTS_LENGTH","codePoints","toHex","checkOffset","ext","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","Infinity","leadSurrogate","byteArray","toByteArray","rng","pseudoRandomBytes","prng","createHmac","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","createCipher","Cipheriv","createCipheriv","Decipher","createDecipher","Decipheriv","createDecipheriv","getCiphers","listCiphers","dh","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","userAgent","createQueue","discardPendingTasks","_tasks","_busy","removeTaskCallback","busy","_counter","_deferreds","operationId","DataSource","_options$reshapeOnPus","_store","_changedTime","needThrottling","pushAggregationTimeout","pushDeferred","lastPushWaiters","throttlingTimeout","throttlingPushHandler","storePushPending","_onPush","_onPushHandler","_aggregationTimeoutId","_storeLoadOptions","_extractLoadOptions","_mapFunc","_postProcessFunc","postProcess","_pageIndex","_pageSize","pageSize","_loadingCount","_loadQueue","_createLoadQueue","_searchValue","_searchOperation","searchOperation","_searchExpr","searchExpr","_paginate","_reshapeOnPush","reshapeOnPush","_operationManager","_items","_totalCount","_isLoaded","group","_this$_delayedLoadTas","_delayedLoadTask","abort","cancelAll","names","customNames","newIndex","normalizedArgs","_len","generateStoreLoadOptionAccessor","newFilter","_len2","_key2","_len3","_key3","requireTotalCount","argc","_this$_store","_changeLoadingCount","increment","oldLoading","newLoading","beginLoading","endLoading","_len4","_key4","_fireChanged","propName","propValue","_createStoreLoadOptions","_scheduleFailCallbacks","refresh","searchString","_byKeyViaLoad","loadTask","_loadFromStore","loadOperation","_scheduleLoadCallbacks","_scheduleChangedCallbacks","_createLoadOperation","groupLevel","dataSourceChanges","keyInfo","groupCount","useInsertIndex","storeLoadOptions","clearRawDataCache","_addSearchFilter","_addSearchOptions","searchFilter","pendingDeferred","handleSuccess","extra","_processStoreLoadResult","resolvePendingDeferred","_applyPostProcessFunction","V8_VERSION","METHOD_NAME","Boolean","ICON_CLASS","SVG_ICON_CLASS","getImageSourceType","source","getImageContainer","CipherBase","modes","modeName","_des","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","isTagName","tagWrappers","tagsCount","startTags","endTags","thead","td","col","tbody","colgroup","caption","tfoot","th","parseHTML","fragment","createDocumentFragment","appendChild","tags","firstRootTag","tagWrapper","lastChild","childNodes","isTablePart","EDEState","k1","k2","k3","ciphers","_edeState","ZERO_BUF","checkParameters","subtle","toBrowser","sha1","checks","checkNative","browser","Promise","importKey","deriveBits","prom","browserPbkdf2","catch","getNextTick","queueMicrotask","setImmediate","password","salt","iterations","resolvePromise","keylen","resp","_scrollView","LIST_ITEM_BADGE_CONTAINER_CLASS","LIST_ITEM_BADGE_CLASS","BADGE_CLASS","LIST_ITEM_CHEVRON_CONTAINER_CLASS","LIST_ITEM_CHEVRON_CLASS","ListItem","_renderWatchers","_startWatcher","_renderBadge","_renderShowChevron","badge","_$element","$badge","$chevron","insertBefore","showChevron","$chevronContainer","LIST_CLASS","LIST_ITEM_CLASS","LIST_ITEM_SELECTOR","LIST_ITEM_ICON_CONTAINER_CLASS","LIST_ITEM_ICON_CLASS","LIST_GROUP_CLASS","LIST_GROUP_HEADER_CLASS","LIST_GROUP_BODY_CLASS","LIST_COLLAPSIBLE_GROUPS_CLASS","LIST_GROUP_COLLAPSED_CLASS","LIST_GROUP_HEADER_INDICATOR_CLASS","LIST_HAS_NEXT_CLASS","LIST_NEXT_BUTTON_CLASS","WRAP_ITEM_TEXT_CLASS","SELECT_ALL_ITEM_SELECTOR","LIST_ITEM_DATA_KEY","LIST_FEEDBACK_SHOW_TIMEOUT","groupItemsGetter","ListBase","moveFocusPerPage","getEdgeVisibleItem","isFocusedItem","resultPosition","outerHeight","scrollTo","scrollToItem","scrollTop","containerHeight","isItemVisible","$nextItem","nextItemLocation","pullRefreshEnabled","scrollingEnabled","showScrollbar","useNativeScrolling","bounceEnabled","scrollByContent","scrollByThumb","pullingDownText","pulledDownText","refreshingText","pageLoadingText","onScroll","onPullRefresh","onPageLoading","pageLoadMode","nextButtonText","onItemSwipe","grouped","onGroupRendered","collapsibleGroups","groupTemplate","indicateLoading","role","_listAttributes","wrapItemText","_swipeEnabled","_revertPageOnEmptyLoad","showChevronExpr","badgeExpr","themeName","_device","_visibilityChanged","_updateLoadingState","_$container","_saveSelectionChangeEvent","_selectionChangeEventInstance","_getSelectionChangeEvent","_refreshItemElements","_itemElementsCache","_modifyByChanges","_resetDataSourcePageIndex","currentDataSource","getDataSource","_initScrollView","_createGroupRenderAction","_scrollBottomMode","_nextButtonMode","scrollBottom","nextButton","_getGroupedOption","_getGroupContainerByIndex","groupIndex","_dataSourceFromUrlLoadMode","autoPagingEnabled","getScrollView","_scrollHandler","onPullDown","_pullDownHandler","onReachBottom","_scrollBottomHandler","useNative","reachBottomText","useKeyboard","_createScrollViewActions","_scrollAction","_pullRefreshAction","_pageLoadingAction","$iconContainer","tryLoadMore","isDataLoaded","scrollBottomMode","stopLoading","hideLoadIndicator","_scrollViewIsFull","release","_toggleNextButton","_shouldRenderNextButton","_loadIndicationSuppressed","_infiniteDataLoading","isLoaded","_isDataSourceFirstLoadCompleted","_isFirstLoadCompleted","_dataSourceLoadingChangedHandler","_showLoadingIndicatorTimer","_this$_scrollView","isEmpty","shouldIndicateLoading","startLoading","finishLoading","_hideLoadingIfLoadIndicationOff","_isLoadIndicationSuppressed","isFull","reload","isElementVisible","_loadNextPageTimer","_setPreviousPageIfNewIsEmpty","_renderGroup","_attachGroupCollapseEvent","attachGroupHeaderInkRippleEvents","$group","_collapseGroupHandler","$groupBody","startHeight","endHeight","updateDimensions","_toggleActiveState","_inkRippleTimer","_attachSwipeEvent","endEventName","swipe","_itemSwipeEndHandler","_nextButtonHandler","toggleLoading","_$nextButton","$groupElement","$groupHeaderElement","groupTemplateName","prependTo","_renderingGroupIndex","_groupRenderAction","groupElement","groupData","downInkRippleHandler","upInkRippleHandler","_downInkRippleHandler","_upInkRippleHandler","downArguments","upArguments","_holdTimer","_toggleDisabledState","$nextButton","_getNextButton","_createNextButton","$button","integrationOptions","expandGroup","collapseGroup","repaint","scrollOffset","clientHeight","scrollHeight","scrollBy","distance","scrollToElement","decoders","pem","$activeThemeLink","knownThemes","currentThemeName","pendingThemeName","themeClasses","themeReadyCallback","viewPort","viewPortChanged","initDeferred","DX_LINK_SELECTOR","THEME_ATTR","ACTIVE_ATTR","DX_HAIRLINES_CLASS","ANY_THEME","defaultTimeout","THEME_MARKER_PREFIX","readThemeMarker","documentElement","getComputedStyle","fontFamily","waitForThemeLoad","waitStartTime","timerId","intervalCleared","handleLoaded","clearInterval","isPendingThemeLoaded","setInterval","isTimeout","anyThemePending","themeMarker","processMarkup","$allThemeLinks","link","fullThemeName","url","isActive","after","resolveFullThemeName","desiredThemeName","desiredThemeParts","knownThemeName","themeData","knownThemeParts","initContext","newContext","detachCssClasses","theme","currentThemeData","isAutoInit","_autoInit","loadCallback","_forceTimeout","attachCssClasses","getCssClasses","themeNameParts","isMaterial","pixelRatio","devicePixelRatio","$tester","isTheme","themeRegExp","isGeneric","isWebFontLoaded","fontWeight","document","testElement","visibility","fontSize","body","etalonFontWidth","offsetWidth","testedFontWidth","parentNode","removeChild","waitWebFont","clear","intervalId","timeoutId","autoInit","prevViewPort","changed","inner","outer","anObject","isArrayIteratorMethod","toLength","getIteratorMethod","iteratorClose","Result","stopped","iterable","unboundFunction","iterator","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","condition","callFn","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","_defineProperties","descriptor","_createClass","protoProps","staticProps","_require2","custom","copyBuffer","BufferList","head","tail","v","hasStrings","_getString","_getBuffer","nb","depth","customInspect","toInteger","integer","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","internalObjectKeys","enumBugKeys","hiddenKeys","WIDGET_CLASS","NODE_CLASS","NODE_CONTAINER_CLASS","NODE_LOAD_INDICATOR_CLASS","OPENED_NODE_CONTAINER_CLASS","IS_LEAF","ITEM_WITH_CHECKBOX_CLASS","ITEM_WITHOUT_CHECKBOX_CLASS","TOGGLE_ITEM_VISIBILITY_CLASS","LOAD_INDICATOR_CLASS","LOAD_INDICATOR_WRAPPER_CLASS","TOGGLE_ITEM_VISIBILITY_OPENED_CLASS","SELECT_ALL_ITEM_CLASS","DISABLED_STATE_CLASS","EXPAND_EVENT_NAMESPACE","DATA_ITEM_ID","TreeViewBase","expandEventName","_getEventNameByOption","expandByClick","_expandEventHandler","checkboxInstance","_getCheckBoxInstance","currentState","_updateItemSelection","toggleExpandedNestedItems","$rootElement","rootItem","_toggleExpandedNestedItems","_showCheckboxes","asterisk","minus","_dataAdapter","getNodeByItem","_toggleExpandedState","_getNodeElement","cache","_encodeString","internalFields","$nodeByKey","querySelector","_widgetClass","dataStructure","deferRendering","expandAllEnabled","hasItemsExpr","selectNodesRecursive","expandNodesRecursive","showCheckBoxesMode","selectAllText","onItemSelectionChanged","onItemExpanded","onItemCollapsed","scrollDirection","virtualModeEnabled","rootValue","expandEvent","selectByClick","createChildren","onSelectAllValueChanged","useDeferUpdateForTemplates","_initSelectedItems","_fireSelectionChanged","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","selectAllExists","_$selectAllItem","_renderSelectAllItem","getFullData","_hasChildren","toggleSelection","dxCheckBox","_scrollableContainer","_initDataAdapter","_filter","_initAccessors","_initExpandEvent","setOption","_initDataSource","_useCustomChildrenLoader","_loadChildrenByCustomLoader","_isVirtualMode","_initVirtualMode","internal","_isDataStructurePlain","invocationResult","_combineFilter","_initStoreChangeHandlers","_removeTreeViewLoadIndicator","_treeViewLoadIndicator","_createTreeViewLoadIndicator","resultFilter","newItem","addItem","isFiltered","_updateLevel","_parentIdGetter","removedKey","getNodeByKey","_markChildrenItemsToRemove","_removeItems","removeItem","childrenKeys","counter","parentId","_getContainerByParentKey","getChildrenNodes","_getOldContainer","_renderNodeContainer","_isRootLevel","_renderScrollableContainer","_getAccessors","accessors","_getDataAdapterOptions","multipleSelection","_isSingleSelection","recursiveSelection","_isRecursiveSelection","recursiveExpansion","dataType","getRootNodes","$nodeContainer","_selectAllEnabled","skipContentReadyAction","$parent","_expandedGetter","_createDOMElement","label","expanded","level","_getLevel","nodeIndex","nodeData","showCheckBox","_renderCheckBox","selected","_toggleSelectedClass","_renderChildren","_renderToggleItemVisibilityIcon","_loadSublevel","_renderSublevel","_getActualNode","_addLeafClass","cachedNode","_hasItemsGetter","childrenNodes","_getChildNodes","_loadNestedItems","getNodesByItems","$nestedNodeContainer","childNodesByChildrenKeys","childNode","firstChild","_updateParentsState","_normalizeIconState","_getNode","getPublicNode","$nodeElement","expandedEventName","$itemsContainer","identifier","isElementNode","_getNodeByElement","_decodeString","_createLoadIndicator","toggleExpansion","_updateExpandedItemsUI","_renderToggleItemVisibilityIconClick","isHiddenNode","parentKey","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","actualNodeData","publicNode","_areNodesExists","_appendItems","keyOfRootItem","fullData","nodeHeight","_fireExpandedStateUpdatedEvent","isExpanded","hasNewItems","$loadIndicator","_contentAlreadyRendered","isAllSelected","onValueChanged","_onSelectAllCheckboxValueChanged","before","_toggleSelectAll","toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_disabledGetter","_toggleNodeDisabledState","toggleNodeDisabledState","checkbox","_isLastSelectedBranch","selectedNodesKeys","deep","keyIndex","_isLastRequired","isSingleMode","getSelectedNodeKeys","selectedKeys","_fireItemSelectionChanged","needFireSelectAllChanged","getData","nodeSelection","selectAllCheckbox","$parentNode","parents","parentValue","_createEventHandler","clickSelector","pointerDownSelector","pointerDownEvent","_updateSelectionToFirstItem","startIndex","_updateSelectionToLastItem","_setFocusedItemTimeout","_findNonDisabledNodes","$nodes","_nodeElements","$prevItem","prevItemElement","_getNodeItemElement","shiftKey","nextItemElement","$firstItem","$lastItem","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","encodeURI","decodeURI","expandItem","collapseItem","getNodes","getTreeNodes","getSelectedNodes","getSelectedNodesKeys","selectAll","unselectAll","expandAll","dataAdapter","collapseAll","getExpandedNodesKeys","keyOrItemOrElement","nodeKeysToExpand","scrollCallback","_expandNodes","scrollToElementTopLeft","keysToExpand","resultCallback","callbacksByNodes","TreeViewSearch","_addWidgetPrefix","_updateSearch","_repaintContainer","_updateDataAdapter","searchMode","_searchEditor","editorOptions","_getSearchEditorOptions","rootNodes","isSearchMode","_addWidgetClass","_removeSearchBox","isInteger","isNumber","isPlainObject","isString","SUPPORTED_ALGS","sign_options_schema","expiresIn","notBefore","noTimestamp","keyid","mutatePayload","registered_claims_schema","schema","allowUnknown","parameterName","validator","validateOptions","validatePayload","options_to_payload","options_for_objects","secretOrPrivateKey","isObjectPayload","kid","failure","invalid_options","opt","timestamp","claim","SELECTION_SHIFT","SELECTION_MASK","combineIndex","splitIndex","combinedIndex","GroupedEditStrategy","_groupElements","_collectionWidget","_groupItemElements","groups","resultItems","itemGroup","itemKey","_equalKeys","_getGroups","query","getItemMeta","groupKey","itemMeta","selectedGroup","movingIndices","destinationIndices","movingItemGroup","destinationItemGroup","movedItemData","_isItemIndex","_getNormalizedItemIndex","_normalizeItemIndex","_denormalizeItemIndex","_getItemByNormalizedIndex","_itemsFromSameParent","firstIndex","secondIndex","registry","register","decoratorClass","decoratorsRegistry","decoratorConfig","LIST_EDIT_DECORATOR","SWIPE_START_EVENT_NAME","SWIPE_UPDATE_EVENT_NAME","SWIPE_END_EVENT_NAME","EditDecorator","_shouldHandleSwipe","swipeConfig","itemSizeFunc","_clearSwipeCache","_itemWidthCache","_itemSwipeStartHandler","_itemSwipeUpdateHandler","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","beforeBag","afterBag","_commonOptions","modifyElement","afterRender","handleClick","handleKeyboardEvents","handleEnterPressing","handleContextMenu","visibilityChange","getExcludedSelectors","STATIC_DELETE_BUTTON_CONTAINER_CLASS","STATIC_DELETE_BUTTON_CLASS","_deleteItem","POINTER_DOWN_EVENT_NAME","ACTIVE_EVENT_NAME","LIST_ITEM_CONTENT_CLASS","SWITCHABLE_DELETE_READY_CLASS","SWITCHABLE_MENU_SHIELD_POSITIONING_CLASS","SWITCHABLE_DELETE_TOP_SHIELD_CLASS","SWITCHABLE_DELETE_BOTTOM_SHIELD_CLASS","SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS","SWITCHABLE_DELETE_ITEM_CONTENT_SHIELD_CLASS","SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS","SwitchableEditDecorator","_$topShield","_$bottomShield","_$itemContentShield","_cancelDeleteReadyItem","_$readyToDeleteItem","_cancelDelete","_toggleDeleteReady","readyToDelete","_isReadyToDelete","_toggleShields","_toggleScrolling","_cacheReadyToDeleteItem","_animateToggleDelete","enabled","_updateShieldsHeight","_toggleContentShield","$list","listTopOffset","listHeight","itemTopOffset","itemHeight","dirtyTopShieldHeight","dirtyBottomShieldHeight","scrollView","dxScrollView","_cancelScrolling","_enablePositioning","_prepareDeleteReady","_animatePrepareDeleteReady","_forgetDeleteReady","_animateForgetDeleteReady","_disablePositioning","_getDeleteButtonContainer","_isRtlEnabled","SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS","SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS","SWITCHABLE_DELETE_BUTTON_CLASS","SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION","SwitchableButtonEditDecorator","$buttonContainer","$buttonWrapper","$buttonInnerWrapper","_$buttonContainer","listWidth","buttonWidth","_buttonWidth","fromValue","toValue","_buttonContainerWidth","TOGGLE_DELETE_SWITCH_CONTAINER_CLASS","TOGGLE_DELETE_SWITCH_CLASS","$toggle","targetOffset","EditDecoratorMenuHelperMixin","_menuEnabled","_menuItems","_deleteEnabled","_fireMenuAction","CLICK_EVENT_NAME","SLIDE_MENU_CLASS","SLIDE_MENU_WRAPPER_CLASS","SLIDE_MENU_CONTENT_CLASS","SLIDE_MENU_BUTTONS_CONTAINER_CLASS","SLIDE_MENU_BUTTONS_CLASS","SLIDE_MENU_BUTTON_CLASS","SLIDE_MENU_BUTTON_MENU_CLASS","SLIDE_MENU_BUTTON_DELETE_CLASS","SLIDE_MENU_ANIMATION_DURATION","SLIDE_MENU_ANIMATION_EASING","_$buttonsContainer","_$buttons","_renderMenu","_renderDeleteButton","menuItems","menuItem","_renderMenuButton","_fireAction","$menu","_menu","showTitle","$menuButton","$deleteButton","_cachedNode","$slideMenuContent","wrapInner","_cacheItemData","_setPositions","_getPositions","signCorrection","isItemReadyToDelete","moveJustStarted","_getCurrentPositions","_getStartPositions","_cachedItemWidth","startOffset","_cachedButtonWidth","correctedOffset","percent","buttonsContainer","buttons","startPositions","_$cachedContent","positions","_minButtonContainerLeftOffset","endedAtReadyToDelete","_animateToPositions","currentPosition","durationTimePart","easing","draw","_renderItemPosition","itemOffset","_itemElementWidth","CONTEXTMENU_CLASS","CONTEXTMENU_MENUCONTENT_CLASS","_renderOverlay","closeOnTargetScroll","opacity","_$menuList","_renderMenuContent","_menuItemClickHandler","_$itemWithMenu","collision","RADIO_BUTTON_CLASS","RADIO_BUTTON_ICON_CLASS","RADIO_BUTTON_ICON_DOT_CLASS","RADIO_BUTTON_CHECKED_CLASS","RADIO_BUTTON_ICON_CHECKED_CLASS","RadioButton","_canValueBeChangedByClick","_renderIcon","_renderCheckedState","wavesNumber","_renderInkWave","doRender","waveIndex","wave","_$icon","_clickHandler","_saveValueChangeEvent","SELECT_DECORATOR_ENABLED_CLASS","SELECT_DECORATOR_SELECT_ALL_CLASS","SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS","SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS","SELECT_CHECKBOX_CONTAINER_CLASS","SELECT_CHECKBOX_CLASS","SELECT_RADIO_BUTTON_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CLASS","FOCUSED_STATE_CLASS","_singleStrategy","_containerClass","_controlClass","_controlWidget","$control","_isSelected","_processCheckedState","_updateSelectAllState","_$selectAll","_selectAllCheckBox","isSelectAll","_renderSelectAll","currentFocusedIndex","moveFocusUp","moveFocusDown","$selectAll","lastItemIndex","_getLastItemIndex","isFocusOutOfList","hasSelectAllItem","downArrowHandler","registerKeyHandler","_attachSelectAllHandler","_selectAllHandler","_selectAllClickHandler","isSelectedAll","_selectAllItems","_unselectAllItems","_checkSelectAllCapability","deselectAll","_disposeSelectAll","REORDER_HANDLE_CONTAINER_CLASS","REORDER_HANDLE_CLASS","REORDERING_ITEM_GHOST_CLASS","STATE_HOVER_CLASS","_groupedEnabled","_lockedDrag","_sortable","allowReordering","dragDirection","handle","dragTemplate","_dragTemplate","onDragStart","_dragStartHandler","onDragChange","_dragChangeHandler","onReorder","_reorderHandler","_sameParent","$dragging","getItemElementByFlatIndex","$over","$targetElement","$handle","editOptionsRegistry","registerOption","enabledFunc","decoratorTypeFunc","decoratorSubTypeFunc","decoratorType","decoratorSubType","LIST_ITEM_BEFORE_BAG_CLASS","LIST_ITEM_AFTER_BAG_CLASS","DECORATOR_BEFORE_BAG_CREATE_METHOD","DECORATOR_AFTER_BAG_CREATE_METHOD","DECORATOR_MODIFY_ELEMENT_METHOD","DECORATOR_AFTER_RENDER_METHOD","DECORATOR_GET_EXCLUDED_SELECTORS_METHOD","EditProvider","_fetchRequiredDecorators","_decorators","decorator","optionEnabled","_createDecorator","subType","_findDecorator","foundDecorator","modifyItemElement","_prependBeforeBags","_appendAfterBags","_applyDecorators","afterItemsRendered","$beforeBags","_collectDecoratorsMarkup","$afterBags","method","containerClass","$collector","_handlerExists","decorators","_eventHandler","response","contextMenuHandlerExists","getExcludedItemSelectors","excludedSelectors","LIST_ITEM_SELECTED_CLASS","LIST_ITEM_RESPONSE_WAIT_CLASS","ListEdit","moveFocusedItem","moveUp","editStrategy","focusedItemIndex","isLastIndexFocused","nextItemIndex","editProvider","_editProvider","isInternalMoving","_isItemStrictEquals","item1","item2","__dx_key__","showSelectionControls","selectAllMode","menuMode","allowItemDeleting","itemDeleteMode","itemDragging","_initEditProvider","_isPageSelectAll","_disposeEditProvider","_refreshEditProvider","handledByEditProvider","_getItemContainer","changeData","_this$_editStrategy$g","focus","getSelectAllState","flatIndex","definePropertyModule","CONSTRUCTOR_NAME","_this2","__createBinding","__setModuleDefault","__importStar","__esModule","createExtensionComponent","createConfigurationComponent","createComponent","vue2Stategy","vue3Stategy","version_1","isVue3","__importDefault","DxSearchEditorOptions","DxOptions","DxItem","DxButton","DxTreeView","tree_view_1","index_1","index_2","accessKey","elementAttr","expandedExpr","itemsExpr","onDisposing","onInitialized","parentIdExpr","rtlEnabled","searchEditorOptions","searchEnabled","searchTimeout","selectedExpr","tabIndex","emits","computed","$_instance","beforeCreate","$_WidgetClass","hasItems","id","bindingOptions","onFocusIn","onFocusOut","inputAttr","maskChar","maskInvalidMessage","maskRules","maxLength","onChange","onCopy","onCut","onEnterKey","onInput","onKeyDown","onKeyPress","onKeyUp","onPaste","placeholder","readOnly","showClearButton","showMaskMode","spellcheck","useMaskedValue","validationError","validationErrors","validationMessageMode","valueChangeEvent","button","captureStackTrace","POPOVER_CLASS","POPOVER_WRAPPER_CLASS","POPOVER_ARROW_CLASS","POPOVER_WITHOUT_TITLE_CLASS","POSITION_FLIP_MAP","center","WEIGHT_OF_SIDES","POSITION_ALIASES","SIDE_BORDER_WIDTH_STYLES","getEventNameByOption","getEventName","getEventDelay","attachEvent","isSelector","_clearEventsTimeouts","_timeouts","EVENT_HANDLER_NAME","targetElement","detachEvent","Popover","dragEnabled","fullScreen","arrowPosition","arrowOffset","boundaryOffset","_fixedPosition","_renderArrow","_detachEvents","_attachEvents","_$arrow","_documentDownHandler","_isOutsideClick","_animate","_getContainerPosition","_stopAnimation","_renderTitle","_renderOverlayPosition","_renderOverlayBoundaryOffset","_resetOverlayPosition","_updateContentSize","resultLocation","setup","positionSide","_getSideByLocation","_togglePositionClass","_toggleFlippedClass","flip","isArrowVisible","_isHorizontalSide","_isVerticalSide","_renderArrowPosition","_setContentHeight","_positionSide","containerLocation","calculate","oversize","fit","newContainerWidth","newOverlayContentHeight","newPopupContentHeight","_position","hOffset","vOffset","isVerticalSide","isHorizontalSide","isPopoverInside","_isPopoverInside","arrowSize","arrowSizeCorrection","_getContentBorderWidth","side","borderWidth","isFlippedByVertical","isFlippedByHorizontal","positionClass","isFlippedHorizontal","isFlippedVertical","arrowRect","arrowFlip","arrowLocation","axis","sizeProperty","contentOffset","contentLocation","contentSize","targetLocation","targetSize","finalArrowLocation","_transformStringPosition","normalizeAlign","fullUpdate","_renderWrapperPosition","_renderWrapperDimensions","_normalizePosition","_getDisplaySide","weightSign","horizontalWeight","verticalWeight","_clearEventTimeout","_renderGeometry","substring","DRAG_START_EVENT","DRAG_EVENT","DRAG_END_EVENT","DRAG_ENTER_EVENT","DRAG_LEAVE_EVENT","DROP_EVENT","DX_DRAG_EVENTS_COUNT_KEY","knownDropTargets","knownDropTargetSelectors","knownDropTargetConfigs","dropTargetRegistration","knownDropTarget","handleObj","updateEventsCounter","eventsCount","teardown","handlersCount","getItemDelegatedTargets","dropTargetIndex","dropTargetSelectors","$delegatedTargets","getItemConfig","getItemPosition","dropTargetConfig","itemPositionFunc","getItemSize","getBoundingClientRect","DragEmitter","_initEvent","_fireEvent","_maxLeftOffset","maxLeftOffset","_maxRightOffset","maxRightOffset","_maxTopOffset","maxTopOffset","_maxBottomOffset","maxBottomOffset","dropTargets","targetElements","_dropTargets","dragOffset","_calculateOffset","_processDropTargets","_cancelPreventDefault","_calculateXOffset","_calculateYOffset","_fitOffset","minOffset","maxOffset","_findDropTarget","sameTarget","_currentDropTarget","_fireDropTargetEvent","draggingElement","_checkDropTargetActive","delegatedTarget","$delegatedTarget","_checkDropTarget","activeTarget","$prevTarget","isDraggingElement","targetPosition","checkDropTarget","emitter","events","returnMethod","asn1","aesid","fixProc","compat","passphrase","subtype","ndata","stripped","tag","certificate","tbsCertificate","subjectPublicKeyInfo","PublicKey","RSAPublicKey","subjectPublicKey","subjectPrivateKey","params","pub_key","DSAparam","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","kdeparams","iters","cipher","cipherText","getOption","deepWatch","setOptions","defer","channel","port","IS_IOS","IS_NODE","clearImmediate","MessageChannel","Dispatch","ONREADYSTATECHANGE","run","runner","listener","post","postMessage","protocol","host","argumentsLength","port2","port1","onmessage","addEventListener","importScripts","version","Deno","versions","v8","getParamSize","keySize","paramBytesForAlg","ES256","ES384","ES512","getParamBytesForAlg","paramBytes","descriptors","formatRegExp","objects","isNull","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","console","trace","debugEnviron","debugs","seen","stylize","stylizeNoColor","colors","showHidden","_extend","isUndefined","stylizeWithColor","formatValue","styleType","arrayToHash","idx","recurseTimes","isFunction","primitive","formatPrimitive","visibleKeys","isError","formatError","isRegExp","isDate","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","line","reduce","cur","numLinesEst","isNullOrUndefined","isSymbol","isPrimitive","pad","debuglog","NODE_DEBUG","toUpperCase","pid","months","prop","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","newReason","callbackify","original","callbackified","maybeCb","rej","setPrototypeOf","getPrototypeOf","promisify","promiseResolve","promiseReject","INVALID_MESSAGE","INVALID_MESSAGE_AUTO","INVALID_MESSAGE_ALWAYS","INVALID_MESSAGE_CONTENT","VALIDATION_MESSAGE_MIN_WIDTH","ValidationMessage","_checkParentVisibility","_renderInnerHtml","positionRequest","describedElement","boundary","updateMaxWidth","_updatePosition","_toggleModeClass","_updateContentId","contentId","validationErrorMessage","separator","_target$outerWidth","targetWidth","verticalPositions","READONLY_STATE_CLASS","INVALID_CLASS","DX_INVALID_BADGE_CLASS","VALIDATION_TARGET","VALIDATION_STATUS_VALID","VALIDATION_STATUS_INVALID","READONLY_NAMESPACE","ALLOWED_STYLING_MODES","VALIDATION_MESSAGE_KEYS_MAP","validationMessageOffset","validationBoundary","Editor","showValidationMessageTimeout","validationRequest","_createElement","_initOptions","initValidationOptions","validationTooltipOptions","_attachKeyboardEvents","_createValueChangeAction","_valueChangeAction","_suppressValueChangeAction","_valueChangeActionSuppressed","_resumeValueChangeAction","_toggleReadOnlyState","_setSubmitElementName","_renderValidationState","_raiseValueChangeAction","_valueChangeArgs","_valueChangeEventInstance","isValidationMessageShownOnFocus","_this$_validationMess","$validationMessageWrapper","_validationMessage","_getStylingModePrefix","prefix","allowedStylingClasses","stylingModeClass","defaultOptionValue","platformOptionValue","_convertRulesToOptions","_getValidationErrors","_disposeValidationMessage","_$validationMessage","_toggleValidationClasses","isInvalid","_getValidationMessageTarget","_bindInnerWidgetOptions","_toggleBackspaceHandler","isReadOnly","$eventTarget","_keyboardEventBindingTarget","$submitElement","_getSubmitElement","_setValidationMessageOption","_this$_validationMess2","optionKey","_hasActiveElement","_this$_validationMess3","_refreshFocusState","editor","synchronizeValidationOptions","_innerWidgetOptionChanged","blur","isEditor","ShortCurve","conf","tinv","two","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","BasePoint","inf","JPoint","zOne","betas","_getEndoRoots","lambdas","vec","_getEndoBasis","ntinv","l1","l2","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","c1","c2","p2","q1","q2","pointFromX","zero","point","ax","rhs","_endoWnafMulAdd","points","coeffs","jacobianResult","npoints","ncoeffs","_getBeta","_wnafMulAdd","pointFromJSON","fromJSON","precomputed","endoMul","naf","doubles","obj2point","dbl","nx","ny","ys1","dyinv","getX","getY","_hasDoubles","_fixedNafMul","_wnafMul","mulAdd","jmulAdd","_precompute","toJ","jpoint","toP","zinv","zinv2","ay","pz2","z2","u1","u2","s1","s2","h2","h3","nz","mixedAdd","dblp","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","t1","t2","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","yyu4","kbase","z3","pz3","eqXToP","zs","xc","redN","elliptic","rand","ec","eddsa","Readable","pipeline","SignStream","ALGORITHMS","encoders","maxLevel","normalizeArg","xItem","yItem","encryptStart","ListSearch","getOperationBySearchMode","TemplatesManager","config_1","templates_discovering_1","dom_adapter_1","events_1","constants_1","_slots","_templates","_isDirty","_component","discover","slots","allKeysAreEqual","_prepareTemplates","resetDirtyFlag","name_1","createDxTemplate","scopeData","mountedTemplate","mountTemplate","setClass","DX_TEMPLATE_WRAPPER_CLASS","Node","TEXT_NODE","removalListener","nodeName","display","DX_REMOVE_EVENT","$destroy","classof","Iterators","DEREncoder","entity","tree","DERNode","encodeTag","cls","reporter","tagByName","tagClassByName","encode","_encode","_encodeComposite","encodedTag","_createEncoderBuffer","lenOctets","_encodeStr","unused","_isNumstr","_isPrintstr","_encodeObjid","relative","ident","objid","_encodeTime","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","_encodeNull","_encodeInt","numArray","unshift","_encodeBool","_use","_getEncoder","_skipDefault","dataBuffer","_baseState","defaultBuffer","_encodeValue","resizeCallbacks","prevSize","originalCallbacksAdd","originalCallbacksRemove","formatSize","innerWidth","innerHeight","handleResize","changedDimension","setPrevSize","objectKeys","Properties","parseBytes","cachedProperty","KeyPair","_secret","isPoint","pub","_pub","_pubBytes","fromPublic","fromSecret","encodePoint","decodePoint","priv","lastIx","encodingLength","decodeInt","privBytes","sig","getPublic","pubBytes","defaultCurrency","oDataFilterToLower","serverDecimalSeparator","decimalSeparator","thousandsSeparator","forceIsoDateParsing","wrapActionsBeforeExecute","useLegacyStoreResult","useJQuery","editorStylingMode","useLegacyVisibleIndex","floatingActionButtonConfig","closeIcon","maxSpeedDialActionCount","charAt","ex","deprecatedFields","configMethod","newConfig","deprecatedField","DevExpress","SCROLLABLE","SCROLLABLE_STRATEGY","SCROLLABLE_CLASS","SCROLLABLE_DISABLED_CLASS","SCROLLABLE_CONTAINER_CLASS","SCROLLABLE_WRAPPER_CLASS","SCROLLABLE_CONTENT_CLASS","VERTICAL","HORIZONTAL","BOTH","Scrollable","onUpdated","onStart","onEnd","onBounce","useSimulatedScrollbar","inertiaEnabled","updateManually","mozilla","_setUseSimulatedScrollbar","initialOption","_initScrollableMarkup","_locked","_updateRtlPosition","_savedScrollOffset","hasDocumentProperty","msie","_renderDirection","_renderStrategy","_attachEventHandlers","_renderDisabledState","_createActions","needInitializeRtlConfig","updateRtlPosition","_getMaxOffset","scrollWidth","clientWidth","_container","initEventData","_validate","isNative","scrollTarget","_initHandler","handleStart","handleMove","handleEnd","handleCancel","handleStop","handleScroll","_isLocked","_updateIfNeed","handleInit","_lock","_unlock","_createStrategy","createActions","_resetInactiveDirection","disabledChanged","inactiveProp","_getInactiveProp","_location","_normalizeLocation","_isDirection","_updateAllowedDirection","allowedDirections","_allowedDirections","vertical","horizontal","_allowedDirectionValue","_allowedDirection","_getScrollOffset","_isRtlNativeStrategy","scrollLeft","_applyScaleRatio","_isScrollInverted","_getScrollSign","decreasing","elementInsideContent","elementIsInsideContent","scrollPosition","getScrollElementPosition","leftPosition","_elementPositionRelativeToContent","isVertical","endOffset","elementPositionRelativeToContent","elementPosition","elementSize","scrollLocation","clientSize","startDistance","endDistance","_hasScrollContent","offsetParent","_useTemplates","jwt","decoded","for","modrn","allocate","postfix","_toArrayLikeLE","_toArrayLikeBE","isNegNum","asUInt32Array","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t0","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","_reset","keyWords","ksRows","invKeySchedule","ik","ksR","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","m1","isWritableWrapped","wrap","unwrap","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getInternalState","getterFor","iterated","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","normalize","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","other","setupDevtoolsPlugin","pluginDescriptor","setupFn","hook","__VUE_DEVTOOLS_PLUGINS__","ZEROES","fromArray","GHASH","ghash","_multiply","lsbVi","Vi","Zi","abl","bl","nativeXMLHttpRequest","getXhr","XMLHttpRequest","SUCCESS","ERROR","TIMEOUT","NO_CONTENT","PARSER_ERROR","isStatusSuccess","hasContent","paramsConvert","encodeURIComponent","createScript","script","removeScript","scriptNode","appendToHead","getHead","evalScript","evalCrossDomainScript","loadHandler","getAcceptHeader","scriptAccept","accepts","xml","jsonp","getContentTypeHeader","defaultContentType","upload","getMethod","contentType","getDataFromResponse","xhr","responseType","responseText","isCrossDomain","crossDomain","originAnchor","urlAnchor","href","setHttpTimeout","customStatus","getJsonpOptions","random","callbackName","jsonpCallback","callbackParameter","getRequestOptions","headers","paramsAlreadyString","getRequestHeaders","Accept","sendRequest","async","needScriptEvaluation","requestOptions","open","username","onreadystatechange","readyState","onprogress","onloadstart","onabort","xhrFields","setRequestHeader","beforeSend","send","COMPOSITION_START_EVENT","COMPOSITION_END_EVENT","KEYDOWN_EVENT","NAMESPACE","KeyboardProcessor","_keydown","_compositionStart","_compositionEnd","focusTarget","_handler","_processFunction","isNotFocusTarget","shouldSkipProcessing","_isComposingJustFinished","_isComposing","_toggleProcessingWithContext","toggleProcessing","keyName","ctrl","altKey","executeAction","resize","hover","shown","hiding","focusIn","focusOut","isFocusable","_ref7","dxClick","keyboardProcessors","generateListenerId","listenerId","_getProcessor","Action","_action","_context","_beforeExecute","_afterExecute","_validatingTargetName","_excludeValidators","handled","argsBag","_validateAction","_executeAction","executors","_executor$validate","executor","_executor$execute","registerExecutor","createValidatorByTargetElement","ERROR_MESSAGES","E4000","E4001","E4002","E4003","E4004","E4005","E4006","E4007","E4008","E4009","E4010","E4011","E4012","E4013","E4014","E4015","E4016","E4017","E4018","E4019","E4020","E4021","E4022","E4023","E4024","W4000","W4001","W4002","isModernAndroidDevice","android","isInputEventsL2Supported","EMPTY_CHAR","BaseMaskRule","_value","_next","rawValue","_prepareHandlingArgs","_config$str","_config$start","_config$length","handlingProperty","isAccepted","adjustedCaret","caret","isForwardDirection","char","_adjustedForward","_adjustedBackward","EmptyMaskRule","MaskRule","rest","_tryAcceptChar","_accepted","_isAllowed","acceptedChar","fullText","_isAccepted","_isValid","allowedChars","StubMaskRule","hasValueProperty","nextArgs","pointerDown","STATE_INVISIBLE_CLASS","TEXTEDITOR_CLEAR_BUTTON_CLASS","TEXTEDITOR_CLEAR_ICON_CLASS","TEXTEDITOR_ICON_CLASS","TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS","_addToContainer","_isClearButtonVisible","editorName","_clearValueHandler","$editor","isVisible","rendered","_isVisible","_legacyRender","CUSTOM_BUTTON_HOVERED_CLASS","ignoreParentReadOnly","_isDisabled","_prepareIntegrationOptions","isUpdated","isDefinedByUser","TEXTEDITOR_BUTTONS_CONTAINER_CLASS","checkButtonInfo","buttonInfo","checkNamesUniqueness","existingNames","newName","isPredefinedButtonName","predefinedButtonsInfo","info","defaultButtonsInfo","isStringButton","isDefaultButton","defaultButtonInfo","Ctor","buttonsInfo","$buttonsContainer","_compileButtonInfo","_createButton","buttonName","_renderButtons","TEXTEDITOR_CLASS","TEXTEDITOR_INPUT_CONTAINER_CLASS","TEXTEDITOR_INPUT_CLASS","TEXTEDITOR_INPUT_SELECTOR","TEXTEDITOR_CONTAINER_CLASS","TEXTEDITOR_PLACEHOLDER_CLASS","TEXTEDITOR_EMPTY_INPUT_CLASS","TEXTEDITOR_PENDING_INDICATOR_CLASS","TEXTEDITOR_VALIDATION_PENDING_CLASS","TEXTEDITOR_VALID_CLASS","EVENTS_LIST","CONTROL_KEYS","checkButtonsOptionType","TextEditorBase","_buttonCollection","_getDefaultButtons","_$beforeButtonsContainer","_$afterButtonsContainer","displayValueFormatter","showValidationMark","_setDeprecatedOptions","_input","_isFocused","_inputWrapper","_buttonsContainer","_isControlKey","_updateButtonsStyling","_renderInput","_renderInputType","_renderPlaceholder","_renderProps","_renderValue","_refreshValueChangeEvent","_renderEvents","_renderEnterKeyAction","_renderEmptinessEvent","_$textEditorContainer","_$textEditorInputContainer","_createInput","_renderButtonContainers","_renderPendingIndicator","$inputContainer","_getInputContainer","$indicatorElement","_pendingIndicator","_disposePendingIndicator","isPending","_showValidMark","renderBeforeButtons","renderAfterButtons","_cleanButtonContainers","_this$_$beforeButtons","_this$_$afterButtonsC","clean","$input","_applyInputAttributes","inputAttrName","customAttributes","inputAttributes","_getDefaultAttributes","defaultAttributes","autocomplete","ios","mac","_updateButtons","updateButtons","buttonInstance","getButton","renderInputPromise","_renderInputValue","_renderDisplayText","_toggleEmptinessEventHandler","_isValueValid","validity","_toggleEmptiness","_togglePlaceholder","_toggleSpellcheckState","_toggleTabIndex","_readOnlyPropValue","_renderPlaceholderMarkup","_attachPlaceholderEvents","_$placeholder","placeholderText","$placeholder","insertAfter","startEvent","_placeholder","_clearValue","_refreshEvents","_keyPressHandler","_keyDownHandler","isCtrlEnter","isNewValue","_renderValueChangeEvent","keyPressEvent","_renderValueEventName","keyDownEvent","_valueChangeEventHandler","_cleanValueChangeEvent","valueChangeNamespace","textChangeNamespace","_focusEventTarget","_isInput","_preventNestedFocusEvent","_isNestedTarget","relatedTarget","_focusClassTarget","_hasFocusClass","formattedValue","_enterKeyAction","_enterKeyHandlerUp","_updateValue","getActiveElement","_refreshFocusEvent","_setInputType","MASK_EVENT_NAMESPACE","BLUR_EVENT","DIRECTION","FORWARD","BACKWARD","_getStrategyName","newCaret","_caret","handlerName","editorInput","getHandleEventNames","subscriptionName","getEventHandler","_attachChangeEventHandlers","editorOption","_suppressCaretChanging","_changeHandler","_showMaskPlaceholder","_direction","_isValueEmpty","_adjustCaret","_maskRulesChain","_caretTimeout","editorCaret","selectedText","_maskKeyHandler","_clearDragTimer","_dragTimer","_convertToValue","_keyPressHandled","pastedText","restText","accepted","_handleChain","inputVal","_inputHandlerTimer","_isAutoFill","_validateMask","webkit","keyPressHandled","_hasSelection","_handleKey","_backspaceHandlerTimeout","BACKSPACE_INPUT_TYPE","_isControlKeyFired","_backspaceInputHandled","inputType","_handleBackspaceInput","_autoFillHandler","inputValue","afterBackspaceHandler","needAdjustCaret","callBack","currentCaret","_displayMask","_tryMoveCaretBackward","_backspaceHandler","DELETE_INPUT_TYPE","_prevCaret","setBackwardDirection","_updateEditorMask","_getEmptyString","_this$_prevCaret","_this$_prevCaret2","_this$_prevCaret3","_length","newData","setForwardDirection","hasValidChars","textLength","updatedCharsCount","correction","stubCaret","ESCAPED_CHAR","TEXTEDITOR_MASKED_CLASS","FORWARD_DIRECTION","BACKWARD_DIRECTION","buildInMaskRules","0","L","isLiteralChar","isSpaceChar","isNumericChar","TextEditorMask","keyHandlerMap","_maskStrategy","getHandler","parentHandler","_$hiddenElement","_initMaskStrategy","_renderHiddenElement","_attachMouseWheelEventHandlers","hasMouseWheelHandler","_onMouseWheel","wheel","mouseWheelAction","_renderMask","_removeHiddenElement","detachEvents","attachEvents","_parseMask","_renderMaskedValue","_changedValue","changeEvent","_maskRules","_parseMaskRule","currentMaskChar","isEscapedChar","_getMaskRule","ruleConfig","rulePattern","_normalizeChainArguments","chainArgs","_isMaskedValueMode","_replaceSelectedText","selection","textBefore","textAfter","edited","_shouldShowMask","submitElementValue","_getPreparedValue","handledCount","_textValue","_replaceMaskCharWithEmpty","keyHandler","_handleSelection","previousText","raiseInputEvent","runWithoutEventProcessing","_handleKeyChain","_moveCaret","emptyChars","chars","maskRuleIndex","force","_typingDirection","editorSpecific","_updateHiddenElement","_updateMaskOption","_processEmptyMask","define","seq","int","use","AlgorithmIdentifier","bitstr","null_","optional","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","explicit","ECParameters","choice","namedCurve","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","wrapForNext","lastPromise","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","asyncIterator","createReadableStreamAsyncIterator","_Object$create","Reporter","DecoderBuffer","EncoderBuffer","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","unpad","padded","suite","setAutoPadding","setTo","autoPadding","ReadableState","EventEmitter","EElistenerCount","listeners","debug","debugUtil","StringDecoder","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","prependListener","_events","readableObjectMode","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","emitReadable","isPaused","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","xs","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","onclose","onfinish","onerror","ondata","pause","dests","ev","addListener","removeAllListeners","_fromList","PRIVATE_KEY_FIELD","repaintChangesOnly","_customizeStoreLoadOptions","_correctionIndex","_refreshItemsCache","_findItemElementByKey","_isItemEquals","_shouldAddNewGroup","change","_partialRefresh","_itemsCache","itemCache","_updateByChange","isPartialRefresh","changedItem","_insertByChange","_change$index","_beforeItemElementInserted","_afterItemElementInserted","_updateSelectionAfterRemoveByChange","removeIndex","_removeByChange","removedItem","oldItem","$removedItemElement","nextSiblingElement","insertElement","isItemsUpdated","ERR_STREAM_PREMATURE_CLOSE","noop","isRequest","setHeader","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","req","arch","execPath","title","env","argv","binding","path","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","SelectionFilterCreator","selectedItemKeyHashesMap","functionFilter","equalKeys","keyHash","selectedKeyHashesMap","getFilterForPlainKey","keyValue","getLocalFilter","keyGetter","getExpr","filterExpr","filterExprPart","itemKeyValue","currentKeyExpr","currentKeyValue","getCombinedFilter","dataSourceFilter","combinedFilter","EditStrategy","collectionWidget","resultIndex","key1","key2","_isNormalizedItemIndex","_isNode","isNode","PlainEditStrategy","_getPlainItems","Signature","R","S","_R","_S","_Rencoded","Rencoded","_Sencoded","Sencoded","encodeInt","toBytes","propertyIsEnumerable","UNSCOPABLES","ArrayPrototype","baseZIndex","zIndexStack","ZIndex","baseIndex","MANAGER_EVENT","EMITTER_DATA","EventManager","_attachHandlers","_proxiedCancelHandler","_cancelHandler","_proxiedAcceptHandler","_acceptHandler","_pointerDownHandler","_pointerMoveHandler","_pointerUpHandler","_mouseWheelHandler","_eachEmitter","activeEmitters","_activeEmitters","_applyToEmitters","resetEmitter","_updateEmitters","_isSetChanged","_cleanEmitters","_fetchEmitters","currentSet","_closestEmitter","previousSet","_emittersSet","setChanged","handleEmitter","validatePointers","addCancelCallback","addAcceptCallback","emitters","acceptedEmitter","_cancelEmitter","canceledEmitter","removeCancelCallback","removeAcceptCallback","emitterIndex","_allowInterruptionByMouseWheel","_adjustWheelEvent","allowInterruption","closestGestureEmitter","verticalGestureDirection","eventManager","EMITTER_SUBSCRIPTION_DATA","registerEmitter","emitterConfig","emitterClass","emitterName","emitterEvents","noBubble","bubble","subscriptions","delegateSelector","disposeEmitter","hasWindowValue","hasWindow","windowObject","getWindow","hasProperty","defaultScreenFactorFunc","getCurrentScreenFactor","screenFactorCallback","screenFactorFunc","windowWidth","getNavigator","navigator","pna","readableDestroyed","writableDestroyed","emitErrorNT","isFocusingOnCaretChange","getCaret","range","selectionStart","selectionEnd","setCaret","getBody","contains","defaultConstructor","pref","valueOf","registerEvent","eventObject","bindType","delegateType","methodName","symbol","emitCloseNT","emitErrorAndCloseNT","renderedCallbacks","TemplateBase","_renderCore","_ensureResultInContainer","resultInContainer","resultInBody","CSS_TRANSITION_EASING_REGEX","TransitionTimingFuncMap","linear","swing","ease","polynomBezier","Cx","Bx","Ax","Cy","By","Ay","bezierX","derivativeX","convertTransitionTimingFuncToEasing","cssTransitionEasing","forceName","easingName","getEasing","removeEventName","RELATIVE_VALUE_REGEX","ANIM_DATA_KEY","ANIM_QUEUE_KEY","TRANSFORM_PROP","TransitionAnimationStrategy","initAnimation","transitionProperty","setProps","cleanupWhen","transitionAnimation","_finishTransition","_cleanup","_completeAnimationCallback","_startAnimation","simulatedEndEventTimer","startTime","transitionEndFired","simulatedTransitionEndFired","transitionEndEventFullName","waitForJSCompleteTimer","_simulatedTransitionEndDelay","transitionDelay","transitionDuration","transitionTimingFunction","FrameAnimationStrategy","_normalizeValue","_parseTransform","frameAnimation","currentValue","animationFrameId","delayTimeout","_animationStep","transformString","translateData","scaleData","rotateData","translate","scale","_calcStepValue","currentDuration","calcValueRecursively","endPropValue","numericValue","FallbackToNoAnimationStrategy","isSynchronous","getAnimationStrategy","animationStrategies","transition","frame","noAnimation","baseConfigValidator","typeMessage","isObjectConfigValidator","isStringConfigValidator","CustomAnimationConfigurator","CssAnimationConfigurator","validateConfig","positionAliases","SlideAnimationConfigurator","positioningConfig","setupPosition","_setUpConfig","_initNewPosition","relativeValue","_getRelativeValue","FadeAnimationConfigurator","toOpacity","fromOpacity","skipElementInitialStyles","PopAnimationConfigurator","fromScale","toScale","_getCssTransform","animationConfigurators","slide","slideIn","slideOut","fadeIn","fadeOut","getAnimationConfigurator","defaultJSConfig","defaultCssConfig","setupAnimationOnElement","configurator","onElementAnimationComplete","removeData","startAnimationOnElement","stopAnimationOnElement","startTimeout","scopedRemoveEvent","subscribeToRemoveEvent","createAnimation","initialConfig","defaultConfig","pushInAnimationQueue","queueData","getAnimQueueData","writeAnimQueueData","isAnimating","shiftFromAnimationQueue","destroyAnimQueueData","executeAnimation","win","animationTypes","MemorizedCallbacks","focusableFn","isTabIndexNotNaN","isDisabled","isDefaultFocus","isHyperlink","focusable","tabbable","focused","KNOWN_UA_TABLE","iPhone","iPhone5","iPhone6","iPhone6plus","iPad","iPadMini","androidPhone","androidTablet","msSurface","desktop","DEFAULT_DEVICE","phone","tablet","generic","grade","uaParsers","isPhone","isTablet","isMac","isIPhone4","screen","worseThan4_4","Devices","_window","_realDevice","_getDevice","_currentDevice","_currentOrientation","_recalculateOrientation","deviceOrName","_forced","_getDeviceOrNameFromWindowScope","_getDeviceNameFromSessionStorage","forceDevice","tinyHippos","realDevice","_deviceClasses","_getCssClasses","_isSimulator","isRippleEmulator","deviceName","_fromConfig","ua","_fromUA","sessionStorage","getItem","shortcuts","$window","orientation","_currentWidth","_changeOrientation","viewPortElement","prevViewport","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","INFINITY","MAX_INTEGER","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toFinite","remainder","isBinary","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","$","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","DESState","_desState","deriveKeys","shiftTable","kL","kR","pc1","r28shl","pc2","ip","_encrypt","lStart","rStart","keyL","keyR","expand","substitute","rip","FRAME_ANIMATION_STEP_TIME","request","requestID","setAnimationFrameMethods","nativeRequest","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","nativeCancel","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","canceledRequests","requestId","STATUS","invalid","pending","BaseRuleValidator","rulesValidators","required","valueArray","every","itemValue","RequiredRuleValidator","NumericRuleValidator","ignoreEmptyValue","useCultureSettings","RangeRuleValidator","validNumber","numeric","validValue","StringLengthRuleValidator","CustomRuleValidator","dataGetter","extraParams","validationCallback","AsyncRuleValidator","reevaluate","callbackResult","_getWrappedPromise","CompareRuleValidator","comparisonTarget","otherValue","comparisonType","PatternRuleValidator","EmailRuleValidator","stringLength","email","GroupConfig","validators","_pendingValidators","_onValidatorStatusChanged","_resetValidationInfo","brokenRules","_unsubscribeFromAllChangeEvents","validatorResult","_addPendingValidator","_subscribeToChangeEvents","_raiseValidatedEvent","_updateValidationInfo","_validationInfo","_unsubscribeFromChangeEvents","foundValidator","orderedRules","foundRules","_orderBrokenRules","_resolveIfComplete","_removePendingValidator","_updateBrokenRules","_synchronizeValidationInfo","ValidationEngine","$dxGroup","dxValidationGroup","addGroup","defaultFormattedMessage","defaultMessage","brokenRule","_rules$","validationRules","pendingRules","asyncRuleItems","ruleValidationResult","ruleValidator","_addBrokenRule","_setDefaultMessage","_validateAsyncRules","_synchronizeGroupValidationInfo","_result$brokenRules","groupConfig","_validationGroup","asyncResults","validateResult","asyncResult","ruleResult","_getPatchedRuleResult","_updateRuleConfig","_getAsyncRulesResult","registerValidator","validatorsInGroup","isDefaultGroup","isValidationGroupInstance","removeRegisteredValidator","_shouldRemoveGroup","removeGroup","initedOptions","newStatus","initGroups","Sha512","Ch","maj","sigma0","xl","sigma1","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","ah","bh","ch","eh","fh","gh","hh","al","cl","dl","fl","hl","xh","gamma0","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","argument","toObject","hasOwn","getBlock","DEFAULT_BUTTON","DX_DIALOG_CLASSNAME","DX_DIALOG_WRAPPER_CLASSNAME","DX_DIALOG_ROOT_CLASSNAME","DX_DIALOG_CONTENT_CLASSNAME","DX_DIALOG_MESSAGE_CLASSNAME","DX_DIALOG_BUTTONS_CLASSNAME","DX_DIALOG_BUTTON_CLASSNAME","DX_BUTTON_CLASSNAME","FakeDialogComponent","lWidth","pWidth","isMessageDefined","isMessageHtmlDefined","messageHtml","popupToolbarItems","popupInstance","toolbar","widget","isPortrait","widthOption","showCloseButton","ignoreChildEvents","onShowing","bottomToolbar","onShown","$firstButton","onHiding","toolbarItems","popupOptions","confirm","_excluded","CANCELED_TOKEN","normalizeStoreLoadOptionAccessorArguments","originalArguments","mapGroup","restItem","mapRecursive","mapDataRespectingGrouping","groupInfo","normalizeLoadResult","_data","createCustomStoreFromLoadFunc","storeConfig","createStoreFromConfig","createCustomStoreFromUrl","normalizationOptions","loadMode","fromUrlLoadMode","normalizeDataSourceOptions","encryptByte","byteParam","shiftIn","ELEMENT_NODE","DOCUMENT_NODE","nativeDOMAdapterStrategy","querySelectorAll","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","doc","ownerDocument","tagName","_document","ns","createElementNS","createTextNode","isTextNode","parentElement","newElement","getAttribute","removeAttribute","textContent","isAdd","classList","resultClassName","classNameSupported","elementClass","classNames","classIndex","activeElement","removeEventListener","paddedMsg","publicExponent","ignoreKeys","TEXTBOX_CLASS","SEARCHBOX_CLASS","SEARCH_ICON_CLASS","TextBox","_showClearButton","_renderMaxLengthHandlers","_renderSearchMode","_isAndroidOrIE","_onKeyDownCutOffHandler","_onChangeCutOffHandler","_toggleMaxLengthProp","_getMaxLength","_renderSearchIcon","_$searchIcon","$searchIcon","actualMaxLength","_cutOffExtraChar","getSelection","textInput","isMaskSpecified","__exportStar","popup_1","getScrollRtlBehavior","insertAdjacentHTML","scroller","lastElementChild","initiallyPositive","hasNegative","resetActiveElement","clearSelection","removeAllRanges","closestCommonParent","startTarget","endTarget","$startTarget","$endTarget","$startParents","$endParents","startingParent","extractTemplateMarkup","templateTag","normalizeTemplateElement","clipboardText","clipboard","clipboardData","setData","compareDocumentPosition","DOCUMENT_POSITION_CONTAINS","createTextElementHiddenCopy","elementStyles","includePaddings","fontStyle","fontVariant","letterSpacing","border","paddingTop","paddingRight","paddingBottom","paddingLeft","whiteSpace","float","_objectSpread2","Animator","_finished","_stopped","_proxiedStepCore","_stepCore","_stepAnimationFrame","_isStopped","_isFinished","_complete","_step","inProgress","MillerRabin","millerRabin","TWENTYFOUR","ELEVEN","TEN","THREE","SEVEN","setPublicKey","setPrivateKey","_priv","primeCache","checkPrime","hex","rem","simpleSieve","fermatTest","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","bn","__gen","generateKeys","_gen","getPublicKey","computeSecret","getPrime","front","getPrivateKey","getGenerator","IS_PURE","copyright","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","any","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","def","TBSCertificate","implicit","X509Certificate","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","configuration_component_1","extension_component_1","initDxComponent","setVModel","initDxConfiguration","findPrime","ONE","TWO","FIVE","FOUR","_getPrimes","n2","sha224","DEFAULT_CONFIG","ESCAPING_CHAR","MAXIMUM_NUMBER_LENGTH","getGroupSizes","formatString","getSignParts","signParts","reverseString","isPercentFormat","removeStubs","getNonRequiredDigitCount","floatFormat","getRequiredDigitCount","normalizeValueString","valuePart","minDigitCount","maxDigitCount","applyGroups","valueString","formatNumberPart","escapeIndex","isEscape","getFloatPointIndex","signFormatParts","isPositiveZero","isPositive","numberFormat","floatPointIndex","floatFormatParts","minFloatPrecision","maxFloatPrecision","minIntegerPrecision","maxIntegerPrecision","unlimitedIntegerDigits","integerLength","floatPrecision","valueParts","valueIntegerPart","valueFloatPart","integerString","floatString","parseValue","isPercent","isNegative","prepareValueText","valueText","isIntegerPart","nextText","nextValueText","hasGroups","getFormatByValueText","valueTextParts","valueTextWithModifiedFloat","valueWithModifiedFloat","decimalSeparatorIndex","getFormat","positiveFormat","negativeFormat","MD5","hideCallback","indexOfCallback","hasCallback","renderer","initRender","dxRenderer","repeatMethod","setAttributeValue","attrName","setProperty","_className","partialName","isOuter","isInner","paddings","borders","margins","sizeAdjustment","isBorderBox","boxSizing","setStyle","appendElements","nextSibling","wrapTR","tBodies","setCss","wrapper","removeElement","setText","cloneNode","elementId","queryId","offsetHeight","getClientRects","elementMatches","siblings","parentChildNodes","previousSibling","emptyArray","getWindowByElement","defaultView","rect","docElem","pageYOffset","clientTop","pageXOffset","clientLeft","marginLeft","parentOffset","offsetProp","scrollWindow","directionStrategy","rendererWrapper","bitmap","resolver","promises","allowHalfOpen","onEndNT","inL","inR","outL","outR","pc2table","sTable","sb","permuteTable","padSplit","weakMap","WeakMap","IndexedObject","$assign","alphabet","chr","T","FunctionTemplate","uppercaseFirst","lowercaseFirst","camelize","toComparable","value1","value2","forEachChildNode","obj1","obj2","obj1Keys","obj1Keys_1","getOptionValue","optionPath","fitIntoRange","minValue","maxValue","isMinValueUndefined","isMaxValueUndefined","inRange","getExponent","toExponential","_isEdgeBug","toPrecision","adjust","interval","separatedAdjustedValue","precision","getPrecision","separatedValue","sourceValue","absValue","isExponentValue","integerPart","mantissa","positionOfDelimiter","getRoot","solveCubicEquation","D2","roots","D3","acos","trunc","getRemainderByDivision","dividend","divider","digitsCount","quotient","roundFloatPart","getExponentLength","_valueString$split$","toFixed","_normalize","_upperCaseFirst","_chop","dasherize","upperFirst","humanize","titleize","DIGIT_CHARS","captionize","captionList","isPrevCharNewWord","isNewWord","isEncoderBuffer","isDecoderBuffer","isCompatible","save","restore","raw","_reporterState","webpackPolyfill","paths","leftPad","FORMAT_TYPES","3","4","5","LDML_FORMATTERS","useUtc","Q","E","period","timezoneOffset","getTimezoneOffset","signPart","timezoneOffsetAbs","hoursPart","minutesPart","X","Z","charIndex","isCurrentCharEqualsNext","charCount","isEscaping","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","getAuthTag","setAuthTag","setAAD","fin","requireObjectCoercible","CONVERT_TO_STRING","codeAt","arraySpeciesConstructor","TEMPLATE_MULTIPLE_ROOTS_ERROR","MontCurve","i4","a24","precompute","aa","bb","diffAdd","jumlAdd","SCROLLVIEW_PULLDOWN_REFRESHING_CLASS","SCROLLVIEW_PULLDOWN_READY_CLASS","SCROLLVIEW_PULLDOWN_IMAGE_CLASS","SCROLLVIEW_PULLDOWN_INDICATOR_CLASS","SCROLLVIEW_PULLDOWN_TEXT_CLASS","SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS","STATE_RELEASED","STATE_READY","STATE_REFRESHING","STATE_LOADING","PULLDOWN_RELEASE_TIME","PullDownNativeScrollViewStrategy","_$topPocket","_$pullDown","_$bottomPocket","_$refreshingText","_$scrollViewContent","_initCallbacks","pullDownCallbacks","releaseCallbacks","reachBottomCallbacks","_renderPullDown","_releaseState","$image","$loadContainer","$text","_$pullDownText","_$pullingDownText","_$pulledDownText","_state","_refreshPullDownText","pullDownTextItems","visibleState","_setTopPocketOffset","_updateDimensions","_topPocketSize","_bottomPocketSize","_scrollOffset","_pullDownEnabled","_setPullDownOffset","_pullDownRefreshTimeout","_pullDownRefreshing","currentLocation","scrollDelta","_isPullDown","_pullDownReady","_isReachBottom","_reachBottom","_stateReleased","_reachBottomEnabled","pullDownEnable","reachBottomEnable","pendingRelease","_releaseTimeout","_updateAction","SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS","PULLDOWN_ICON_CLASS","STATE_TOUCHED","STATE_PULLED","SwipeDownNativeScrollViewStrategy","_releasePullDown","_startClientY","_deltaY","_movePullDown","pullDownHeight","_getPullDownHeight","_getPullDownStartPosition","angle","_pullDownRefreshHandler","_refreshPullDown","math","ScrollViewScroller","_updateBounds","considerPockets","_dimension","_bottomBound","_minOffset","_updateScrollbar","_scrollbar","containerSize","_containerSize","_contentSize","scaleRatio","_getScaleRatio","_moveContent","_reachBottomReady","_moveScrollbar","_scrollComplete","_inBounds","_reachBottomLoading","_getMinOffset","_maxOffset","_releaseHandler","_moveToBounds","_releaseTask","_release","_reachBottomEnablingHandler","_pullDownEnablingHandler","_considerTopPocketChange","_updateHandler","_pendingReleaseHandler","SimulatedScrollViewStrategy","_createScroller","_scrollers","_scrollerOptions","$topPocket","$bottomPocket","$pullDown","$pullDownText","$pullingDownText","$pulledDownText","$refreshingText","SCROLLVIEW_CLASS","SCROLLVIEW_CONTENT_CLASS","SCROLLVIEW_TOP_POCKET_CLASS","SCROLLVIEW_BOTTOM_POCKET_CLASS","SCROLLVIEW_PULLDOWN_CLASS","SCROLLVIEW_REACHBOTTOM_CLASS","SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS","SCROLLVIEW_REACHBOTTOM_TEXT_CLASS","SCROLLVIEW_LOADPANEL","refreshStrategies","pullDown","swipeDown","simulated","isServerSide","scrollViewServerConfig","ScrollView","refreshStrategy","_loadingIndicatorEnabled","_initContent","_initTopPocket","_initBottomPocket","_initLoadPanel","$reachBottom","_$reachBottom","_$reachBottomText","_updateReachBottomText","$loadPanelElement","loadPanelOptions","_loadPanel","strategyName","strategyClass","_reachBottomHandler","_pullDownAction","_reachBottomAction","_tryRefreshPocketState","_pullDownEnable","_reachBottomEnable","_loadingIndicator","_pullDownLoading","preventReachBottom","showOrHide","numberTag","DATA_SOURCE_OPTIONS_METHOD","DATA_SOURCE_CHANGED_METHOD","DATA_SOURCE_LOAD_ERROR_METHOD","DATA_SOURCE_LOADING_CHANGED_METHOD","DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD","SPECIFIC_DATA_SOURCE_OPTION","NORMALIZE_DATA_SOURCE","DataHelperMixin","postCtor","_disposeDataSource","_loadDataSource","widgetDataSourceOptions","dataSourceType","dataSourceOptions","_isSharedDataSource","_dataSourceType","_addDataSourceHandlers","_addDataSourceChangeHandler","_addDataSourceLoadErrorHandler","_addDataSourceLoadingChangedHandler","_addReadyWatcher","_ready","_proxiedDataSourceChangedHandler","_proxiedDataSourceLoadErrorHandler","_proxiedDataSourceLoadingChangedHandler","_loadSingle","loadSingle","isLastPage","jsPrefixes","cssPrefixes","Webkit","Moz","getStyles","forEachPrefixes","cssPrefixesCount","jsPrefix","prefixedProp","lowerPrefixedProp","styleProp","originalName","stylePropPrefix","specific","pxExceptions","normalizeStyleProp","setDimensionProperty","elements","propertyName","setWidth","setHeight","Algorithm","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","enforce","TYPE","wmget","wmhas","wmset","metadata","facade","STATE","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","V","entropy","entropyEnc","nonceEnc","pers","persEnc","_hmac","hmac","kmac","reseed","addEnc","generate","temp","incr32","chunkNum","TOOLBAR_CLASS","executingName","ensureDefined","defaultValue","executeAsync","normalizedContext","delayedFuncs","delayedNames","delayedDeferreds","deferExecute","oldExecutingName","currentDelayedCount","deferRender","deferUpdate","deferRenderer","deferUpdater","findBestMatches","targetFilter","mapFn","bestMatches","maxMatchCount","itemSrc","matchCount","paramName","targetValue","mismatch","valueItem","splitPair","_raw$x","_raw$y","normalizeKey","pairToObject","preventRound","pair","getKeyHash","escapeRegExp","applyServerDecimalSeparator","asyncNoop","grep","checkFunction","invert","check","expectedCheck","arraysEqualByValue","array1","array2","equalByValue","objectsEqualByValue","object1","object2","strict","_propertyName","maxEqualityDepth","comparisonResult","hasSymbol","toStringTag","PolySymbol","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","isBrowser","isESModule","applyToParams","newParams","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery","searchPos","hashPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","pathname","startsWith","isSameRouteLocation","aLastIndex","matched","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","aliasOf","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","toPosition","segment","NavigationType","NavigationDirection","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","docRect","elRect","behavior","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getElementById","getScrollKey","history","scrollPositions","saveScrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","search","slicePos","pathFromHash","useHistoryListeners","historyState","teardowns","pauseState","popStateHandler","fromState","forward","back","unknown","pauseListeners","beforeUnloadListener","replaceState","buildState","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","meta","redirectedFrom","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","sensitive","REGEX_CHARS_RE","tokensToParser","segments","score","segmentScores","tokenIndex","token","subSegmentScore","repeatable","regexp","subPattern","avoidDuplicatedSlash","endsWith","param","compareScoreArray","comparePathParserScore","aScore","bScore","comp","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","previousState","tokens","finalizeSegment","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","mergeOptions","normalizedRecords","aliases","components","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","paramsFromLocation","parentMatcher","mergeMetaFields","redirect","beforeEnter","normalizeRecordProps","instances","leaveGuards","Set","updateGuards","enterCallbacks","propsObject","defaults","partialOptions","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decodeURIComponent","hasLeadingIM","searchParams","searchParam","eqPos","normalizeQuery","normalizedQuery","useCallbacks","handlers","guardToPromiseFn","guard","enterCallbackArray","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","__vccOpts","componentPromise","resolved","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","routeMatched","currentMatched","findIndex","parentRecordPath","getOriginalPath","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","activeClass","exactActiveClass","ariaCurrentValue","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","class","RouterLink","defaultPrevented","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","inheritAttrs","attrs","injectedRoute","routeToDisplay","matchedRouteRef","viewRef","oldInstance","oldName","matchedRoute","ViewComponent","currentName","normalizeSlot","Component","routePropsOption","routeProps","onVnodeUnmounted","vnode","isUnmounted","ref","slot","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","scrollBehavior","scrollRestoration","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matcherLocation","targetParams","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","shouldRedirect","toLocation","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","isPush","isFirstNavigation","markAsReady","removeHistoryListener","setupListeners","_from","readyHandlers","errorHandlers","started","installedApps","beforeEach","beforeResolve","afterEach","onError","app","globalProperties","$router","reactiveRoute","provide","unmountApp","unmount","recordFrom","recordTo","useRouter","base64url","jwsSecuredInput","encodedPayload","jwsSign","isNonEmptyString","isJSX","hasProp","TouchEvent","isToastComponent","isToastContent","isVueComponent","isDOMRect","propKey","getId","targetTouches","clientX","clientY","getVueComponentFromObj","normalizeToastComponent","EventBus","allHandlers","eventType","getHandlers","isEventBusInterface","POSITION","EVENTS","VT_NAMESPACE","COMMON","DEFAULT","trueBoolean","ICON","customIcon","CLOSE_BUTTON","showOnHover","ariaLabel","PROGRESS_BAR","hideProgressBar","isRunning","TRANSITION","CORE_TOAST","TOP_RIGHT","draggable","draggablePercent","pauseOnFocusLoss","pauseOnHover","closeOnClick","toastClassName","bodyClassName","closeButton","closeButtonClassName","showCloseButtonOnHover","accessibility","toastRole","closeButtonLabel","eventBus","TOAST","onClose","CONTAINER","newestOnTop","maxToasts","toastDefaults","filterBeforeCreate","toast","filterToasts","toasts","containerClassName","onMounted","PROPS","animationPlayState","watch","$nextTick","animationEnded","_ctx","$setup","$data","$options","cpClass","__file","script$1","_hoisted_1","render$1","buttonComponent","$attrs","script$2","_hoisted_1$1","xmlns","viewBox","_hoisted_2","render$2","script$3","_hoisted_1$2","_hoisted_2$1","render$3","script$4","_hoisted_1$3","_hoisted_2$2","render$4","script$5","_hoisted_1$4","_hoisted_2$3","render$5","script$6","trimValue","iconChildren","iconClass","iconTag","customIconClass","hasCustomIcon","customIconTag","iconTypeComponent","types","INFO","WARNING","render$6","iconClasses","customIconChildren","script$7","ProgressBar","CloseButton","Icon","disableTransitions","beingDragged","dragStart","dragPos","dragRect","dragDelta","removalDistance","draggableSetup","focusSetup","draggableCleanup","focusCleanup","DISMISS","closeToast","focusPause","focusPlay","passive","onDragMove","onDragEnd","render$7","_component_Icon","_component_CloseButton","_component_ProgressBar","draggableStyle","clickHandler","onMouseenter","hoverPause","onMouseleave","hoverPlay","bodyClasses","onCloseToast","timeoutHandler","script$8","offsetLeft","offsetTop","render$8","leave","onLeave","$slots","script$9","Toast","VtTransition","toastArray","ADD","addToast","CLEAR","clearToasts","dismissToast","UPDATE","updateToast","UPDATE_DEFAULTS","updateDefaults","setToast","filteredToasts","render$9","_component_Toast","_component_VtTransition","getClasses","getPositionToasts","buildInterface","mountContainer","mount","dismiss","success","warning","createMockToastInterface","warn","Proxy","createToastInterface","optionsOrEventBus","toastInjectionKey","globalEventBus","VueToastificationPlugin","App","inter","useToast","expiredAt","inspectSource","enforceInternalState","TEMPLATE","unsafe","sum32_4","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","isCorrectStructure","hasTwoFields","hasCorrectFields","_getSpecificDataSourceOption","hasSimpleItems","innerItem","keepInitialKeyOrder","EC","hashType","signType","ecSign","dsaSign","curveId","keyFromPrivate","toDER","bits2int","kv","getKey","makeKey","makeR","hlen","hbits","bits2octets","obits","Sha256","Sha224","_f","_g","_h","CONTEXTMENU_NAMESPACE","CONTEXTMENU_NAMESPACED_EVENT_NAME","HOLD_NAMESPACED_EVENT_NAME","CONTEXTMENU_EVENT_NAME","ContextMenu","_contextMenuHandler","_holdHandler","_fireContextMenu","HOLD_EVENT_NAME","HOLD_TIMEOUT","HoldEmitter","_startTimer","holdTimeout","_touchWasMoved","_stopTimer","wrappedWellKnownSymbolModule","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","uint","changeCallback","$originalViewPort","$current","isNewViewportFound","originalViewPort","zero2","DROP_DOWN_MENU_CLASS","DROP_DOWN_MENU_POPUP_CLASS","DROP_DOWN_MENU_POPUP_WRAPPER_CLASS","DROP_DOWN_MENU_LIST_CLASS","DROP_DOWN_MENU_BUTTON_CLASS","POPUP_OPTION_MAP","popupWidth","popupHeight","popupMaxHeight","popupAutoResizeEnabled","BUTTON_OPTION_MAP","buttonIcon","buttonText","buttonHeight","buttonTemplate","DropDownMenu","extension","_button","_popup","onButtonClick","usePopover","popupPosition","popupAnimation","menuWidget","_initItemClickAction","_initButtonClickAction","_itemClickAction","_buttonClickAction","_renderButton","haspopup","_renderPopup","_$popup","_buttonOptions","_toggleMenuVisibility","$popup","_popupOptions","usePopup","contentElement","_renderList","autoResizeEnabled","listConfig","_listOptions","_setListDataSource","listMaxHeight","_deferRendering","_toggleVisibility","close","activePinia","setActivePinia","pinia","getActivePinia","storesMap","piniaSymbol","MutationType","IS_CLIENT","_global","globalThis","HTMLElement","bom","blob","autoBom","Blob","download","onload","saveAs","corsEnabled","dispatchEvent","MouseEvent","evt","initMouseEvent","_navigator","isMacOSWebView","HTMLAnchorElement","downloadSaveAs","msSaveAs","fileSaverSaveAs","rel","URL","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","popup","innerText","isSafari","isChromeIOS","FileReader","reader","onloadend","readAsDataURL","createPinia","localApp","_p","toBeInstalled","$pinia","plugin","innerPatch","patchToApply","subPatch","computedFromState","rootStateRef","reactiveObject","initStore","$id","initialState","debuggerEvents","isListening","actionSubscriptions","$patch","partialStateOrMutator","subscriptionMutation","patchFunction","storeId","patchObject","$subscribe","stopWatcher","oldState","direct","removeSubscription","$onAction","$reset","storeWithState","_as","injectionSymbol","newState","buildStoreToUse","partialStore","getters","actions","computedGetters","getterName","wrappedActions","actionName","localStore","afterCallback","onErrorCallback","extender","defineStore","useStore","currentInstance","shouldProvide","storeCache","storeAndDescriptor","bufferEqual","formatEcdsa","MSG_INVALID_ALGORITHM","MSG_INVALID_SECRET","MSG_INVALID_VERIFIER_KEY","MSG_INVALID_SIGNER_KEY","supportsKeyObjects","createPublicKey","checkIsPublicKey","typeError","asymmetricKeyType","export","checkIsPrivateKey","checkIsSecretKey","fromBase64","toBase64","errMsg","bufferOrString","normalizeInput","createHmacSigner","createHmacVerifier","computedSig","createKeySigner","signer","createKeyVerifier","verifier","createPSSKeySigner","RSA_PKCS1_PSS_PADDING","saltLength","RSA_PSS_SALTLEN_DIGEST","createPSSKeyVerifier","createECDSASigner","derToJose","createECDSAVerifer","joseToDer","createNoneSigner","createNoneVerifier","signerFactories","hs","none","verifierFactories","brorand","Rand","_randbelow","min_bytes","_randrange","rone","n1","rn1","getDivisor","activeEffectScope","effectScopeStack","EffectScope","detached","effects","cleanups","scopes","fromParent","effectScope","recordEffectScope","effect","scope","getCurrentScope","onScopeDispose","createDep","dep","wasTracked","trackOpBit","newTracked","initDepMarkers","deps","finalizeDepMarkers","ptr","targetMap","effectTrackDepth","maxMarkerBits","effectStack","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","scheduler","enableTracking","cleanupEffect","resetTracking","onStop","_effect","lazy","shouldTrack","trackStack","pauseTracking","track","isTracking","depsMap","eventInfo","trackEffects","debuggerEventExtraInfo","oldTarget","triggerEffects","allowRecurse","isNonTrackableKeys","builtInSymbols","createGetter","shallowGet","readonlyGet","shallowReadonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","toRaw","isReadonly","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","Reflect","isRef","shouldUnwrap","readonly","reactive","createSetter","shallowSet","hadKey","deleteProperty","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toReactive","toReadonly","toShallow","getProto","get$1","isShallow","rawTarget","rawKey","has$1","set$1","deleteEntry","hadItems","createForEach","thisArg","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","iteratorMethods","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isReactive","isProxy","markRaw","trackRefValue","triggerRefValue","newVal","convert","__v_isRef","createRef","shallowRef","_shallow","_rawValue","triggerRef","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","_get","_set","customRef","toRefs","toRef","ObjectRefImpl","_object","ComputedRefImpl","_setter","_dirty","getterOrOptions","debugOptions","setter","cRef","devtools","setDevtoolsHook","rawArgs","isModelListener","modelArg","modifiersKey","callWithAsyncErrorHandling","onceHandler","emitted","normalizeEmitsOptions","appContext","asMixin","emitsCache","cached","normalized","hasExtends","extendEmits","normalizedFromExtend","mixins","isEmitListener","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","__scopeId","pushScopeId","popScopeId","withScopeId","_id","withCtx","isNonScopedSlot","_n","renderFnWithContext","setBlockTracking","prevInstance","renderComponentRoot","withProxy","propsOptions","renderCache","setupState","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","root","filterModelListeners","cloneVNode","dirs","blockStack","createVNode","Comment$1","filterSingleRoot","singleRoot","child","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","subTree","isSuspense","__isSuspense","SuspenseImpl","anchor","parentComponent","parentSuspense","isSVG","slotScopeIds","rendererInternals","mountSuspense","patchSuspense","hydrate","hydrateSuspense","createSuspenseBoundary","normalizeSuspenseChildren","Suspense","triggerEvent","eventListener","patch","hiddenContainer","suspense","pendingBranch","ssContent","ssFallback","setActiveBranch","um","newBranch","newFallback","activeBranch","isInFallback","isHydrating","isSameVNodeType","pendingId","fallback","delayEnter","afterLeave","hasUnresolvedAncestor","queuePostFlushCb","fallbackVNode","mountFallback","setupRenderEffect","isInPendingSuspense","hydratedEl","asyncDep","asyncSetupResult","suspenseId","asyncResolved","handleSetupResult","doRemove","hydrateNode","isSlotChildren","normalizeSuspenseSlot","Comment","isCompiledSlot","openBlock","currentBlock","closeBlock","singleChild","dynamicChildren","queueEffectWithSuspense","branch","provides","parentProvides","treatDefaultAsFactory","useTransitionState","isMounted","isLeaving","isUnmounting","leavingVNodes","onBeforeUnmount","TransitionHookValidator","BaseTransitionImpl","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","rawProps","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","leavingHooks","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","callHook","hooks","leavingVNode","afterHook","cancelHook","_enterCb","cancelled","isKeepAlive","keepComment","keyedFragmentCount","Fragment","isAsyncWrapper","__asyncLoader","defineAsyncComponent","loader","loadingComponent","errorComponent","suspensible","userOnError","resolvedComp","pendingRequest","retries","retry","thisRequest","userRetry","userFail","createInnerComp","loaded","delayed","queueJob","__isKeepAlive","KeepAliveImpl","exclude","sharedContext","_unmount","storageContainer","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","activate","queuePostRenderEffect","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","pendingCacheKey","cacheSubtree","getInnerChild","rawVNode","__asyncResolved","cachedVNode","KeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","__weh","setCurrentInstance","unsetCurrentInstance","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","shouldCacheAccess","applyOptions","resolveMergedOptions","publicThis","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","beforeMount","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","directives","filters","checkDuplicateProperties","resolveInjections","unwrapInjectedRef","methodHandler","createWatcher","registerLifecycleHook","_hook","exposed","unwrapRef","normalizeInject","createPathGetter","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","initProps","isStateful","isSSR","InternalObjectKey","propsDefaults","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","normalizePropsOptions","propsCache","extendProps","normalizedKey","validatePropName","booleanIndex","getTypeIndex","stringIndex","getType","isSameType","expectedTypes","isInternalKey","normalizeSlotValue","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","withDirectives","internalInstance","bindings","modifiers","traverse","invokeDirectiveHook","oldBindings","createAppContext","isNativeTag","performance","warnHandler","compilerOptions","uid","createAppAPI","rootComponent","rootProps","installedPlugins","_uid","_props","_instance","install","mixin","directive","rootContainer","isHydrate","__vue_app__","hasMismatch","isSVGContainer","namespaceURI","isComment","createHydrationFunctions","mt","mountComponent","patchProp","createComment","hasChildNodes","flushPostFlushCbs","isFragmentStart","onMismatch","handleMismatch","domType","nextNode","Text","Static","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","locateClosingAsyncAnchor","createTextVNode","hydrateChildren","setRef","forcePatchValue","vnodeHooks","onVnodeBeforeMount","parentVNode","fragmentSlotScopeIds","initFeatureFlags","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","createText","hostCreateText","hostCreateComment","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","hostCloneNode","insertStaticContent","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","mountChildren","unmountChildren","scopeId","needCallTransitionHooks","cloneIfMounted","oldProps","newProps","onVnodeBeforeUpdate","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","createComponentInstance","setupComponent","registerDep","updateComponentPreRender","invalidateJob","componentUpdateFn","bu","originNext","nextTree","prevTree","isAsyncWrapperVNode","hydrateSubTree","scopedInitialVNode","flushPreFlushCbs","prevShapeFlag","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","nextChild","parentAnchor","e1","e2","nextPos","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","increasingNewIndexSequence","getSequence","nextIndex","moveType","needTransition","performLeave","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","bum","_vnode","mc","pc","pbc","createApp","rawRef","oldRawRef","isUnmount","refValue","getExposeProxy","oldRef","refs","doSet","callWithErrorHandling","ch1","ch2","arrI","isTeleport","__isTeleport","isTeleportDisabled","isTargetSVG","SVGElement","resolveTarget","targetSelector","TeleportImpl","mainAnchor","targetAnchor","wasDisabled","currentContainer","currentAnchor","moveTeleport","nextTarget","hydrateTeleport","isReorder","targetNode","_lpa","Teleport","COMPONENTS","DIRECTIVES","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveDirective","warnMissing","selfName","disableTracking","vnodeArgsTransformer","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","createBlock","__v_isVNode","transformVNodeArgs","transformer","normalizeRef","isBlockNode","needFullChildrenNormalization","__v_skip","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","extraProps","mergeRef","mergedProps","mergeProps","flag","createStaticVNode","numberOfNodes","createCommentVNode","asBlock","memo","slotFlag","toMerge","existing","incoming","renderList","renderItem","createSlots","dynamicSlots","renderSlot","noSlotted","isCE","validSlotContent","ensureValidVNode","vnodes","toHandlers","getPublicInstance","isStatefulComponent","publicPropertiesMap","$refs","$root","$forceUpdate","instanceWatch","PublicInstanceProxyHandlers","accessCache","normalizedProps","publicGetter","cssModule","__cssModules","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","emptyAppContext","uid$1","exposeProxy","setupContext","bc","rtg","rtc","sp","installWithProxy","setupResult","setupStatefulComponent","createSetupContext","resolvedResult","finishComponentSetup","registerRuntimeCompiler","_compile","_rc","isRuntimeOnly","skipOptions","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","createAttrsProxy","classifyRE","classify","displayName","formatComponentName","isRoot","inferFromRegistry","stack","appWarnHandler","getComponentTrace","warnArgs","formatTrace","currentVNode","normalizedStack","recurseCount","parentInstance","logs","formatTraceEntry","formatProps","formatProp","throwInDev","contextVNode","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","logError","isFlushing","isFlushPending","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","currentPreFlushParentJob","findInsertionIndex","middle","middleJobId","job","queueFlush","flushJobs","queueCb","activeQueue","pendingQueue","queuePreFlushCb","parentJob","deduped","watchEffect","doWatch","watchPostEffect","watchSyncEffect","INITIAL_WATCHER_VALUE","onTrack","onTrigger","forceTrigger","isMultiSource","onInvalidate","baseGetter","isPromise","defineProps","defineEmits","defineExpose","withDefaults","useSlots","getContext","useAttrs","mergeDefaults","withAsyncContext","getAwaitable","awaitable","propsOrChildren","ssrContextKey","useSSRContext","initCustomFormatter","withMemo","isMemoSame","_ssrUtils","ssrUtils","resolveFilter","compatUtils","svgNS","staticTemplateCache","nodeOps","multiple","nodeValue","patchClass","transitionClasses","_vtc","patchStyle","cssText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","patchDOMProp","_getNow","skipTimestampCheck","ffMatch","cachedNow","getNow","patchEvent","nextValue","invokers","_vei","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","initialValue","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","nativeOnRE","shouldSetAsProp","_trueValue","_falseValue","defineCustomElement","hydate","Comp","VueCustomElement","initialProps","defineSSRCustomElement","_def","_connected","_resolved","shadowRoot","attachShadow","attributes","_setAttr","observer","MutationObserver","mutations","attributeName","observe","_resolveDef","_setProp","rawKeys","_getProp","_applyStyles","asyncDef","shouldReflect","CustomEvent","detail","useCssModule","modules","useCssVars","setVars","setVarsOnVNode","ob","childList","disconnect","vars","setVarsOnNode","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","hasExplicitCallback","baseProps","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","toMs","positionMap","newPositionMap","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","webkitTransform","_moveCb","cssTransitionProps","TransitionGroup","oldPos","newPos","dy","getModelAssigner","onCompositionStart","composing","onCompositionEnd","initEvent","vModelText","_assign","castToNumber","domValue","vModelCheckbox","modelValue","_modelValue","elementValue","getValue","filtered","getCheckboxValue","setChecked","vModelRadio","vModelSelect","isSetModel","selectedVal","setSelected","_binding","isMultiple","vModelDynamic","callModelHook","modelToUse","systemModifiers","modifierGuards","prevent","exact","withModifiers","keyNames","withKeys","eventKey","vShow","_vod","setDisplay","rendererOptions","enabledHydration","ensureRenderer","ensureHydrationRenderer","containerOrSelector","normalizeContainer","Element","createSSRApp","activeXDocument","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","F","NullProtoObject","ActiveXObject","domain","TEMPLATE_OPTIONS_NAME","DX_POLYMORPH_WIDGET_TEMPLATE","widgetName","widgetElement","widgetOptions","_tempTemplates","_defaultTemplates","_anonymousTemplateName","_createTemplateIfNeeded","skipImmediate","tempTemplate","_extractTemplates","anonymousTemplateMeta","_extractAnonymousTemplate","suitableTemplates","_createTemplate","$anonymousTemplate","$notJunkTemplateContent","isEmptyText","cachedTemplate","templateSourceResult","DOMComponent","createDefaultOptions","_customClass","_getSynchronizableOptionsForCreateComponent","_attachWindowResizeCallback","_initTemplateManager","instanceCustomRules","_classCustomRules","isCustomOption","_isDimensionChangeSupported","windowResizeCallBack","_windowResizeCallBack","_renderElementAttributes","_toggleRTLDirection","_renderVisibilityChange","_renderDimensions","_attachVisibilityChangeHandlers","_attachDimensionChangeHandlers","_isVisibilityChangeSupported","_getOptionValue","_isCssUpdateRequired","_isHidden","_checkVisibilityChanged","modelByElement","_isUpdateAllowed","_requireRefresh","_renderComponent","_detachWindowResizeCallback","synchronizableOptions","nestedComponentOptions","nestedComponentConfig","_extendConfig","optionChangedHandler","extendConfig","cssClass","renderRequired","_isInitializingRequired","_updateDOMComponent","_removeAttributes","_removeClasses","extractTemplates","anonymousTemplate","getTemplate","MAX_ALLOC","_normalizeEncoding","retried","normalizeEncoding","nenc","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckIncomplete","utf8CheckExtraBytes","utf8Text","utf8End","getDefaultAlignment","isRtlEnabled","getElementsFromPoint","msElementsFromPoint","elementsFromPoint","getBoundingRect","ripemd","ripemd160","createIteratorConstructor","setToStringTag","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","Sha1","rotl1","bignum","DBLCLICK_EVENT_NAME","DBLCLICK_NAMESPACE","NAMESPACED_CLICK_EVENT","DBLCLICK_TIMEOUT","DblClick","_handlerCount","_forgetLastClick","_firstClickTarget","_lastClickTimeStamp","timeBetweenClicks","isSimulated","isDouble","DataConverter","_dataStructure","_itemsCount","_visibleItemsCount","_indexByKey","_convertItemsToNodes","_getParentId","_convertItemToNode","_checkForDuplicateId","_itemHasChildren","_dataAccessors","_dataType","_getUniqueKey","isCorrectKey","getItemsCount","_rootValue","_makeObjectFromPrimitive","setChildrenKeys","getParentNode","setters","_convertToPublicNode","convertToPublicNodes","publicNodes","_getByKey","setDataAccessors","getByKey","currentElementKey","getVisibleItemsCount","updateIndexByKey","updateChildrenKeys","removeChildrenKeys","createPlainStructure","EXPANDED","SELECTED","DISABLED","DataAdapter","_defaultOptions","dataConverter","dataAccessors","_selectedNodesKeys","_expandedNodesKeys","_createInternalDataStructure","onNodeChanged","_initialDataStructure","_updateExpansion","_setChildrenSelection","_setParentSelection","_updateNodesKeysArray","_updateOneBranch","_setParentExpansion","_getDataBySelectionMode","_isNodeVisible","_toggleChildrenSelection","_iterateParents","newParentState","_calculateSelectedState","_setFieldState","_iterateChildren","recursive","processedKeys","nodeKey","itemsCount","selectedItemsCount","invisibleItemsCount","isChildInvisible","childState","_markChildren","_removeNode","_addNode","_updateFields","selectRecursive","isSingleModeUnselect","_isSingleModeUnselect","selectionState","lastSelectedKey","_filterDataStructure","_createCriteria","operation","filterValue","lookForParents","HierarchicalCollectionWidget","_initDynamicTemplates","_createDataAdapterAccessors","_getIconContainer","_getTextContainer","_getPopoutContainer","_addContentClasses","_itemsGetter","accessor","_compileAccessor","optionExpr","setterName","newAccessor","OVERLAY_CLASS","OVERLAY_WRAPPER_CLASS","OVERLAY_CONTENT_CLASS","OVERLAY_SHADER_CLASS","OVERLAY_MODAL_CLASS","INNER_OVERLAY_CLASS","RTL_DIRECTION_CLASS","ACTIONS","OVERLAY_STACK","PREVENT_SAFARI_SCROLLING_CLASS","TAB_KEY","firefoxDesktop","iOS","hasSafariAddressBar","safari","forceRepaint","_proxiedDocumentDownHandler","Overlay","allowedOffsets","_allowedOffsets","_changePosition","minWidth","minHeight","onHidden","onResizeStart","onResize","onResizeEnd","innerOverlay","_initActions","_initCloseOnOutsideClickHandler","_initTabTerminatorHandler","_initInnerOverlayClass","_toggleViewPortSubscription","_initHideTopOverlayHandler","_initTarget","_initContainer","pathParts","_hideTopOverlayHandler","_actions","_showAnimationProcessing","isAttachedTarget","isInnerOverlay","outsideClick","_outsideClickHandler","_isTopOverlay","overlayStack","_overlayStack","tabbableElements","_findTabbableBounds","_zIndexInitValue","_viewPortChangeHandle","_viewPortChangeHandler","_renderVisibilityAnimate","_getAnimationConfig","_parentHidden","_isParentHidden","_currentVisible","_isShown","showAnimation","_normalizeAnimation","startShowAnimation","completeShowAnimation","_isHidingActionCanceled","_renderVisibility","_isShowingActionCanceled","_toggleSafariScrolling","_stopShowTimer","_asyncShowTimeout","hideAnimation","startHideAnimation","completeHideAnimation","hidingArgs","_forceFocusLost","_toggleShading","_toggleSubscriptions","_that$_actions","_hideAnimationProcessing","shouldResetActiveElement","completeCallback","startCallback","_updateZIndexStackPosition","showingArgs","_moveFromContainer","_moveToContainer","pushToStack","_zIndex","_toggleTabTerminator","_proxiedTabTerminatorHandler","_tabKeyHandler","$elements","elementsCount","$firstTabbable","$lastTabbable","isTabOnLast","isShiftTabOnFirst","isEmptyTabList","isOutsideTarget","$focusElement","_toggleHideTopOverlayCallback","_toggleParentsScrollSubscription","subscribe","closeOnScroll","$parents","scrollEvent","_proxiedTargetParentsScrollHandler","_targetParentsScrollHandler","_$prevTargetParents","closeHandled","_appendContentToElement","shouldDeferRendering","isParentHidden","isHidden","whenContentRendered","_renderDrag","_renderResize","_renderScrollTerminator","$dragTarget","_getDragTarget","startEventName","updateEventName","_dragUpdateHandler","_resizable","handles","_resizeEndHandler","area","_getDragResizeContainer","_positionChangeHandled","$scrollTerminator","terminatorEventName","isWheel","isMouseMove","isScrollByWheel","cancelable","_prevOffset","isContainerDefined","_deltaSize","contentWidth","contentHeight","containerWidth","_isWindow","fullPageHeight","fullPageWidth","prevOffset","deltaSize","isAllowedDrag","shaderOffset","_getContainer","_detachWrapperToContainer","_attachWrapperToContainer","containerDefined","renderContainer","getSwatchContainer","_fixHeightAfterSafariAddressBarResizing","isDimensionChanged","_renderGeometryImpl","_renderWrapper","_fixWrapperPosition","_useFixedPosition","_shouldFixBodyPosition","_bodyScrollTop","wrapperWidth","wrapperHeight","isWindow","positionOf","_keyboardListenerId","_keyboardHandler","_deferShowTimer","_animateDeferred","showing","animateDeferred","ARABIC_COMMA","FORMAT_SEPARATORS","AM_PM_PATTERN","checkDigit","zeroCode","checkPatternContinue","patterns","isDigit","nextChar","isDigitChanged","getPatternStartIndex","defaultPattern","getDifference","processedIndexes","patternsFilter","replaceCharsCore","indexes","patternPositions","baseCharIndex","patternIndex","replaceChars","letterCount","ESCAPE_CHARS_REGEXP","escapeChars","escapeIndexes","isCurrentCharEscaped","isPrevCharEscaped","isNextCharEscaped","replacedPatterns","datePatterns","xorTest","calcIv","ck","_finID","toPad","ivBits","_ghash","_alen","_authTag","_called","rump","overrided","reverseArgs","useDecoder","stateProps","cstate","_useArgs","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_encodeChoice","_encodePrimitive","propertyKey","useLegacyTemplateEngine","PEMEncoder","watchChanges","rawData","fields","fieldsDispose","globalDispose","dataWithRawFields","resolvedData","missedFields","watchHandlers","BindableTemplate","_fields","_fieldsMap","_watchMethod","TextEditorButton","$placeMarker","_isRendered","_create","_addPlaceMarker","_shouldRender","functionToString","PADDING","padBuff","MONTHS","DAYS","PERIODS","QUARTERS","cutCaptions","captions","lengthByFormat","MAX_OCTET","CLASS_UNIVERSAL","PRIMITIVE_BIT","TAG_SEQ","TAG_INT","ENCODED_TAG_SEQ","ENCODED_TAG_INT","base64Url","signatureAsBuffer","maxEncodedParamLength","inputLength","seqLength","rLength","rOffset","sLength","sOffset","rPadding","sPadding","countPadding","needsSign","signatureBytes","rsBytes","shortLength","tagClass","1","2","SHA512","SHA384","SWIPE_START_EVENT","SWIPE_EVENT","SWIPE_END_EVENT","HorizontalStrategy","defaultItemSizeFunc","getBounds","calcOffsetRatio","endEventData","_savedEventData","_itemSizeFunc","isFastSwipe","FAST_SWIPE_SPEED_LIMIT","_tickData","VerticalStrategy","STRATEGIES","SwipeEmitter","TICK_INTERVAL","elastic","_getStrategy","_defaultItemSizeFunc","moveEventData","offsetRatio","isFast","_calcTargetOffset","bounds","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","MAINVERSION","MAINVERSIONLOOSE","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","PRERELEASE","PRERELEASELOOSE","BUILDIDENTIFIER","BUILD","FULL","FULLPLAIN","LOOSEPLAIN","LOOSE","GTLT","XRANGEIDENTIFIERLOOSE","XRANGEIDENTIFIER","XRANGEPLAIN","XRANGEPLAINLOOSE","XRANGE","XRANGELOOSE","COERCE","LONETILDE","TILDETRIM","tildeTrimReplace","TILDE","TILDELOOSE","LONECARET","CARETTRIM","caretTrimReplace","CARET","CARETLOOSE","COMPARATORLOOSE","COMPARATOR","COMPARATORTRIM","comparatorTrimReplace","HYPHENRANGE","HYPHENRANGELOOSE","STAR","loose","includePrerelease","SemVer","major","minor","prerelease","build","inc","version1","version2","defaultResult","compareMain","comparePre","compareIdentifiers","anum","bnum","rcompareIdentifiers","compareLoose","rcompare","rsort","neq","Comparator","semver","ANY","operator","Range","parseRange","toComparators","parseComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","pr","replaceCaret","replaceXRange","gtlt","xM","xm","anyX","hyphenReplace","$0","fM","fm","fp","fpr","fb","tM","tm","tp","tpr","tb","testSet","allowed","satisfies","maxSatisfying","maxSV","rangeObj","minSatisfying","minSV","minVersion","minver","comparators","comparator","compver","validRange","ltr","outside","gtr","hilo","gtfn","ltefn","ltfn","ecomp","high","low","intersects","r1","coerce","rangeTmp","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","comps","compRe","thisComparators","thisComparator","rangeComparators","rangeComparator","DERDecoder","PEMDecoder","lines","VueType","errors_1","TEMPLATE_PROP","Vue","asConfigurable","$vnode","hasTemplate","scopedSlots","slotName","$scopedSlots","childComponent","defaultSlot","templateName","getSlot","$on","$off","hasVModelValue","VMODEL_NAME","getVueVersion","currentVersion","POINTER_EVENTS_NAMESPACE","BaseStrategy","originalEvents","_eventName","_originalEvents","_isNoBubble","_getDelegateTarget","_setSelector","_selector","_getSelector","dxpointerdown","dxpointermove","dxpointerup","dxpointercancel","dxpointerover","dxpointerout","dxpointerenter","dxpointerleave","normalizeTouchEvent","pointerId","changedTouches","skipTouchWithSameIdentifier","pointerEvent","TouchStrategy","_pointerId","addEventsListener","Observer","eventMap","pointerEquals","onPointerAdding","getPointerIndex","removePointer","activateStrategy","isPrimary","MsPointerStrategy","resetObserver","normalizeMouseEvent","MouseStrategy","MouseAndTouchStrategy","EVENT_LOCK_TIMEOUT","isMouse","_skipNextEvents","_mouseLocked","_unlockMouseTimer","normalizer","getStrategy","support","pointerEvents","EventStrategy","over","webkitRegExp","ieRegExp","ie11RegExp","msEdge","mozillaRegExp","browserFromUA","browserName","browserVersion","isIE11","wrapToArray","inArray","uniqueValues","removeDuplicates","what","normalizeIndexes","indexParameterName","currentItem","needIndexCallback","indexedItems","parameterIndex","merge","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","_formatNumberCore","formatConfig","currencyPart","getCurrencySymbol","getOpenXmlCurrencyFormat","Emitter","_cancelCallback","_acceptCallback","_accept","_acceptRequestEvent","_getEmitterTarget","SCROLLABLE_NATIVE","SCROLLABLE_NATIVE_CLASS","SCROLLABLE_SCROLLBAR_SIMULATED","SCROLLABLE_SCROLLBARS_HIDDEN","HIDE_SCROLLBAR_TIMEOUT","NativeStrategy","scrollable","_useSimulatedScrollbar","_showScrollbar","_renderScrollbars","isFirstRender","_moveScrollbars","_scrollbars","_hideScrollbarTimeout","_renderScrollbar","expandable","isScrollingEvent","_eachScrollbar","scrollbar","_createActionArgs","_eventForUserAction","reachedLeft","_isReachedRight","_isReachedLeft","reachedRight","reachedTop","reachedBottom","_normalizeOffsetLeft","_hideScrollbars","_updateScrollbars","_componentContentSize","dimension","scrollableNativeRegexp","_removeScrollbars","_isScrolledInMaxDirection","throwIfNotStringOrBuffer","HashBase","_block","_blockSize","_blockOffset","_finalized","EDDSA","pointClass","keyFromSecret","hashInt","messagePrefix","s_","makeSignature","keyFromPublic","SG","RplusAh","intFromLE","normed","xIsOdd","replacement","feature","detection","POLYFILL","NATIVE","aesModes","desModes","keyLen","ivLen","encodeHtml","encodeRegExp","splitQuad","quadToObject","quad","placeholderReg","SPACE_REGEXP","arg1","arg2","arg3","ecVerify","dsaVerify","padNum","pubkey","unpacked","checkValue","montp","hasNegation","oldValueIsNaN","newValueIsNaN","cachedGetters","convertRulesToOptions","currentDevice","ruleOptions","deviceFilter","deviceMatch","normalizeOptions","getFieldName","getParentName","getNestedOptionValue","optionsObject","functionsAsIs","cachedSetters","optionsByReference","_changingCallback","_changedCallback","_namePreparedCallbacks","rulesOptions","fieldName","unwrapObservables","valueName","_prepareRelevantNames","_setPreparedValue","deprecatedOptions","_deprecatedCallback","_startChangeCallback","_endChangeCallback","_default","_deprecated","_deprecatedNames","_initDeprecatedNames","_optionManager","onRelevantNamesPrepared","_setRelevantNames","_cachedOptions","_rules","_initialOptions","_getByRules","_setByReference","normalizedName","_normalizeName","_setField","_clearField","fieldObject","previousFieldName","_notifyDeprecated","onChanging","onChanged","areFunctions","_initial","isGetter","aliasName","_postponedOperations","postponedPromise","completePromise","isInnerOption","defaultOptionsRules","applyRules","isInitial","_optionChangedCallbacks","_disposingCallbacks","eventsStrategy","_updateLockCount","postponedOperations","_createOptions","beginUpdate","_getOptionsByReference","_getDeprecatedOptions","_optionChanging","onDeprecated","_logDeprecatedOptionWarning","_notifyOptionChanged","onStartChange","onEndChange","endUpdate","addRules","onInitializing","_setOptionsByDevice","_createOptionChangedAction","_disposingAction","_createDisposingAction","_initializing","callPostponedOperations","_initializeComponent","_lockUpdate","_unlockUpdate","_commitUpdate","optionNames","getAliasesByName","_defaultActionArgs","_cancelOptionChange","actionSource","actionValue","_defaultActionConfig","actionFunc","hasEvent","beforeActionExecute","wrappedAction","onActionCreated","isDeprecated","stringTag","DECIMAL_BASE","roundByAbs","valueSign","adjustValue","precisionMultiplier","roundMultiplier","intermediateValue","valuePrecision","adjustedValue","$defineProperty","Attributes","XHR_ERROR_UNLOAD","normalizeBinaryCriterion","normalizeSortingInfo","errorMessageFromXhr","unloading","textStatusMessages","parsererror","textStatus","statusText","aggregators","processRequestResultLock","lockDeferred","lockCount","obtain","keysEqual","isUnaryOperation","isGroupOperator","isGroupCriterion","trivialPromise","rejectedPromise","throttle","lastArgs","throttleChanges","throttled","argsTag","funcTag","genTag","reIsUint","arrayMap","iteratee","baseFindIndex","predicate","fromRight","baseIndexOf","baseIsNaN","baseTimes","baseValues","overArg","nativeKeys","nativeMax","arrayLikeKeys","inherited","isArguments","skipIndexes","isIndex","baseKeys","isPrototype","collection","isArrayLike","isArrayLikeObject","isLength","_inheritsLoose","subClass","superClass","createErrorType","getMessage","NodeError","_Base","oneOf","this_len","determiner","loadMessages","LOADINDICATOR_CLASS","LOADINDICATOR_WRAPPER_CLASS","LOADINDICATOR_CONTENT_CLASS","LOADINDICATOR_ICON_CLASS","LOADINDICATOR_SEGMENT_CLASS","LOADINDICATOR_SEGMENT_INNER_CLASS","LOADINDICATOR_IMAGE_CLASS","LoadIndicator","_animatingSegmentCount","_animatingSegmentInner","obsoleteAndroid","viaImage","_renderIndicatorContent","_renderMarkup","_renderMarkupForImage","_renderMarkupForAnimation","animatingSegmentInner","$segment","_updateContentSizeForAnimation","minDimension","_removeMarkupForAnimation","_removeMarkupForImage","pVersionMajor","makeMap","expectsLowerCase","GLOBALS_WHITE_LISTED","isGloballyWhitelisted","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","normalizeStyle","parseStringStyle","listDelimiterRE","propertyDelimiterRE","normalizeClass","normalizeProps","HTML_TAGS","SVG_TAGS","isHTMLTag","isSVGTag","looseCompareArrays","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","toDisplayString","replacer","isMap","isSet","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE","isOn","toTypeString","toRawType","isIntegerKey","isReservedProp","cacheStringFunction","hit","camelizeRE","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","invokeArrayFns","fns","toPrimitive","POPUP_CLASS","POPUP_WRAPPER_CLASS","POPUP_FULL_SCREEN_CLASS","POPUP_FULL_SCREEN_WIDTH_CLASS","POPUP_NORMAL_CLASS","POPUP_CONTENT_CLASS","POPUP_DRAGGABLE_CLASS","POPUP_TITLE_CLASS","POPUP_TITLE_CLOSEBUTTON_CLASS","POPUP_BOTTOM_CLASS","POPUP_HAS_CLOSE_BUTTON_CLASS","POPUP_CONTENT_FLEX_HEIGHT_CLASS","POPUP_CONTENT_INHERIT_HEIGHT_CLASS","ALLOWED_TOOLBAR_ITEM_ALIASES","BUTTON_DEFAULT_TYPE","BUTTON_NORMAL_TYPE","BUTTON_TEXT_MODE","BUTTON_CONTAINED_MODE","IS_IE11","IS_OLD_SAFARI","HEIGHT_STRATEGIES","static","flex","getButtonPlace","Popup","titleTemplate","onTitleRendered","bottomTemplate","useDefaultToolbarButtons","useFlatToolbarButtons","_iosAnimation","_androidAnimation","_$popupContent","isFullscreen","_toggleFullScreenClass","_renderBottom","_getToolbarItems","titleText","_$title","$title","_renderTemplateByType","_executeTitleRenderAction","_hasCloseButton","additionalToolbarOptions","toolbarTemplate","toolbarOptions","useDefaultButtons","useFlatButtons","$toolbar","$titleElement","_getTitleRenderAction","titleElement","_titleRenderAction","_createTitleRenderAction","_getCloseButton","_getCloseButtonRenderer","__","_createToolbarItemAction","toolbarsItems","_toolbarItemClasses","currentPlatform","isShortcut","shortcut","_getToolbarItemByAlias","isLTROrder","_getLocalizationKey","itemType","itemConfig","itemClass","$toolbarItem","clickAction","_$bottom","$bottom","compactMode","_toggleClasses","topToolbar","_resetContentHeight","overlayContent","currentHeightStrategyClass","_chooseHeightStrategy","_getHeightCssStyles","_setHeightClasses","_heightStrategyChangeOffset","popupVerticalPaddings","isAutoWidth","_isAutoHeight","cssStyles","contentMaxHeight","contentMinHeight","popupHeightParts","_splitPopupHeight","toolbarsAndVerticalOffsetsHeight","footer","contentVerticalOffsets","popupVerticalOffsets","overlayHeight","maxHeightValue","minHeightValue","currentClass","excessClasses","_toggleSafariFullScreen","toggleFullScreenBeforeShown","_renderFullscreenWidthClass","refreshPosition","shouldRenderGeometry","E0001","E0002","E0003","E0004","E0005","E0006","E0007","E0008","E0009","E0010","E0011","E0012","E0013","E0014","E0015","E0017","E0018","E0020","E0021","E0022","E0023","E0024","E0025","E0100","E0101","E0102","E0103","E0110","E0120","E0121","W0000","W0001","W0002","W0003","W0004","W0005","W0006","W0007","W0008","W0009","W0010","W0011","W0012","W0013","W0014","W0015","W0016","SCROLLBAR","SCROLLABLE_SCROLLBAR_CLASS","SCROLLABLE_SCROLLBAR_ACTIVE_CLASS","SCROLLABLE_SCROLL_CLASS","SCROLLABLE_SCROLL_CONTENT_CLASS","HOVER_ENABLED_STATE","THUMB_MIN_SIZE","SCROLLBAR_VISIBLE","onHover","never","activeScrollbar","Scrollbar","visibilityMode","_isHovered","_renderThumb","_attachPointerDownHandler","_isHoverMode","_$thumb","isThumb","_prop","feedbackOn","feedbackOff","cursorEnter","_needScrollbar","cursorLeave","_adjustVisibility","_baseContainerToContentRatio","scrollBarLocation","_calculateScrollBarPosition","_thumbRatio","baseContainerSize","baseContentSize","_realContainerToContentRatio","thumbSize","containerToContentRatio","_normalizeSize","getConsoleMethod","logger","activeFeedback","INACTIVE_EVENT_NAME","ACTIVE_TIMEOUT","INACTIVE_TIMEOUT","FeedbackEvent","_timeout","_fire","_schedule","_timer","FeedbackEmitter","_active","_inactive","activeTimeout","inactiveTimeout","activeChildExists","childJustActivated","_initEvents","eventTarget","mouseEvent","deferFeedback","skipTimers","lockInactive","lock","configComponent","propsData","_setOption","_clearItemKeys","getSelectableItems","preserve","isDeselect","_loadFilteredData","remoteFilter","localFilter","filterLength","needLoadAllData","filteredItems","updateSelectedItemKeyHash","keyHashIndices","keyIndices","_isAnyItemSelected","_getFullSelectAllState","dataFilter","selectedItemsLength","disabledItemKeys","_getVisibleSelectAllState","hasSelectedItems","hasUnselectedItems","getItemData","isSelectableItem","isItemKeySelected","selectionFilter","needResetSelectionFilter","_addSelectionFilter","removeSelectedItem","addSelectedItem","setSelectedItems","isItemDataSelected","_getKeyExpr","keyField","_normalizeKey","_getFilterByKey","_findSubFilter","filterString","subFilter","_isLastSubFilter","_addFilterOperator","filterOperator","_denormalizeFilter","currentFilter","currentOperation","needAddFilter","_removeSameFilter","filterIndex","isKeyOperatorsAfterRemoved","_isKeyFilter","_hasKeyFiltersOnlyStartingFromIndex","_normalizeFilter","_removeFilterByIndex","_isSimpleKeyFilter","inverted","_filterIndex","_initSelectedItemKeyHash","_preserveSelectionUpdate","keyIndicesToRemoveMap","isBatchDeselect","_batchRemoveSelectedItems","_loadSelectedItemsCore","selectionFilterCreator","deselectedItems","_replaceSelectionUpdate","internalKeys","_warnOnIncorrectKeys","_isMultiSelectEnabled","_requestInProgress","_this$_lastLoadDeferr","_lastLoadDeferred","_concatRequestsItems","oldRequestItems","updatedKeys","added","removed","_collectLastRequestData","isDeselectAll","multiSelectEnabled","lastRequestData","_lastRequestData","_shouldMergeWithLastRequest","_updateKeysByLastRequestData","_this$_lastRequestDat","_this$_lastRequestDat2","currentKeys","_loadSelectedItems","ignoreDisabledItems","_getKeyHash","_indexOfSelectedItemKey","_getSelectedIndexByKey","ignoreIndicesMap","_getSelectedIndexByHash","_shiftSelectedKeyIndices","currentKeyIndex","currentKey","currentKeyHash","currentKeyIndices","_updateAddedItemKeys","_updateRemovedItemKeys","oldSelectedKeys","oldSelectedItems","_isItemSelectionInProgress","_this$_lastRequestDat3","shouldCheckPending","visibleOnly","_selectionStrategy","_focusedItemIndex","filterIsChanged","_keys","_addSelectedItem","_removeSelectedItem","_setSelectedItems","changeItemSelection","isSelectedItemsChanged","isSelectable","isDataItem","changeItemSelectionWhenShiftKeyPressed","_resetItemSelectionWhenShiftKeyPressed","clearSelectedItems","isKeysEqual","_shiftFocusedItemIndex","_resetFocusedItemIndex","itemIndexStep","focusedItem","focusedData","focusedKey","isFocusedItemSelected","isOnePage","_onePageSelectAll","ChildDefaultTemplate","NATIVE_SYMBOL","$toString","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","HIDDEN","SYMBOL","TO_PRIMITIVE","ObjectPrototype","$Symbol","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","callOnce","_wrappedHandler","NativePromise","speciesConstructor","NON_GENERIC","onFinally","blind","getr","blinder","unblinder","prime1","prime2","blinds","blinded","qinv","coefficient","exponent1","m2","exponent2","targetDraggable","sourceDraggable","DRAGGABLE","DRAGSTART_EVENT_NAME","DRAG_EVENT_NAME","DRAGEND_EVENT_NAME","DRAG_ENTER_EVENT_NAME","DRAGEND_LEAVE_EVENT_NAME","POINTERDOWN_EVENT_NAME","CLONE_CLASS","getMousePosition","GESTURE_COVER_CLASS","ScrollHelper","_preventScroll","_scrollValue","_overFlowAttr","_sizeAttr","_scrollSizeProp","_clientSizeProp","_limitProps","mousePosition","isScrollableFound","isTargetOverOverlayWrapper","isTargetOverOverlayContent","_trySetScrollable","_$scrollableAtPointer","_scrollSpeed","distanceToBorders","sensitivity","isScrollable","_calculateDistanceToBorders","_calculateScrollSpeed","$area","areaBoundingRect","maxSpeed","$scrollable","scrollableInstance","nextScrollPosition","_nextScrollPosition","dragMoveArgs","_dragMoveArgs","_dragMoveHandler","scrollableSize","ScrollAnimator","horizontalScrollHelper","_horizontalScrollHelper","verticalScrollHelper","_verticalScrollHelper","scrollByStep","Draggable","dragMove","dragEnter","dragLeave","dragEnd","sourceEvent","_getSourceDraggable","_fireRemoveEvent","onDragEnter","onDragLeave","onDrop","boundOffset","allowMoveByClick","autoScroll","scrollSpeed","scrollSensitivity","_scrollAnimator","_normalizeCursorOffset","_getNormalizedCursorOffset","_calculateElementOffset","elementOffset","dragElementOffset","$dragElement","dragElement","isCloned","_dragElementIsCloned","cursorOffset","normalizedCursorOffset","currentLocate","_initialLocate","initialOffset","_initPosition","_startPosition","_startAnimator","_stopAnimator","componentName","_getItemsSelector","itemsSelector","targetGroup","sourceGroup","_getScrollable","isOutsideScrollable","_getArea","_dragEndHandler","_dragEnterHandler","_dragLeaveHandler","_$dragElement","_getDragTemplateArgs","_createDragElement","_resetDragElement","_toggleDraggingClass","_resetSourceElement","_toggleDragSourceClass","_$sourceElement","_detachEventHandlers","_getDraggableElement","$sourceElement","_getSourceElement","_getAction","_getEventArgs","_isValidElement","dragStartArgs","_getDragStartArgs","_setSourceDraggable","_setGestureCoverCursor","isFixedPosition","areaOffset","_getAreaOffset","_getBoundOffset","areaWidth","areaHeight","elementWidth","elementHeight","startOffset_left","startOffset_top","startPosition","_updateScrollable","eventArgs","_getTargetDraggable","allObjects","updateScrollable","fromComponent","toComponent","fromData","toData","_revertItemToInitialPosition","dragEndEventArgs","dropEventArgs","needRevertPosition","_resetTargetDraggable","_resetSourceDraggable","_isTargetOverAnotherDraggable","$sourceDraggableElement","$targetDraggableElement","firstWidgetElement","isTargetOverItself","isTargetOverNestedDraggable","_fireDragEnterEvent","_setTargetDraggable","_fireDragLeaveEvent","currentGroup","rotr32","p32","monthRegExpGenerator","PATTERN_REGEXPS","countSuffix","parseNumber","caseInsensitiveIndexOf","monthPatternParser","monthNames","PATTERN_PARSERS","dayNames","periodNames","ORDERED_PATTERNS","PATTERN_SETTERS","datePartValues","hourPartValue","setHours","getSameCharCount","createPattern","getRegExpInfo","regexpText","stubText","addPreviousStub","isEscapeChar","regexpPart","isPossibleForParsingFormat","digitFieldSymbols","isDigitPattern","yearOrFractionalSecond","digitFieldSymbol","possibleForParsing","ambiguousDigitPatternsCount","getPatternSetters","setPatternPart","patternChar","partSetter","partParser","setPatternPartFromNow","getShortPatterns","fullPatterns","getMaxOrderedPatternIndex","getOrderedFormatPatterns","formatPatterns","otherPatterns","getParser","regExpInfo","regExpResult","maxPatternIndex","orderedFormatPatterns","regExpPattern","regExpText","getDevtoolsGlobalHook","getTarget","__VUE_DEVTOOLS_GLOBAL_HOOK__","getPublicElement","ERR_MISSING_ARGS","destroyer","closed","popCallback","streams","destroys","hLen2","dblen","nonZero","readableHwm","readableHighWaterMark","defaultHwm","needMoreData","fromListPartial","copyFromBufferString","copyFromBuffer","increasedAwaitDrain","INKRIPPLE_CLASS","INKRIPPLE_WAVE_CLASS","INKRIPPLE_SHOWING_CLASS","INKRIPPLE_HIDING_CLASS","DEFAULT_WAVE_SIZE_COEFFICIENT","MAX_WAVE_SIZE","ANIMATION_DURATION","HOLD_ANIMATION_DURATION","DEFAULT_WAVE_INDEX","initConfig","getDurations","getInkRipple","getWaves","inkRipple","$currentWave","getWaveStyleConfig","elementDiagonal","waveSize","$wave","hidingTimeout","hideSelectedWave","showingTimeout","showingWaveHandler","durationCss","showingScale","hidingScale","hidingOpacity","EVP_BytesToKey","keyBits","used","keyStart","ivStart","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","BaseComponent","DxComponent","children_processing_1","configuration_1","templates_manager_1","$_processChildren","initOptionChangedFunc","getConfig","getInnerChanges","$_templatesManager","isDirty","$_pendingOptions","name_2","$_applyConfigurationChanges","componentsCountChanged","resetOption","thisComponent","$_getIntegrationOptions","$_createEmitters","$_getWatchMethod","$_getExtraIntegrationOptions","name_3","valueGetter","valueChangeCallback","_children","$listeners","listenerName","cleanWidgetNode","removedNodes","isExtension","restoreNodes","childExtension","componentInstance","TO_STRING_TAG_SUPPORT","FunctionPrototype","FunctionPrototypeToString","nameRE","reverseEach","ACTION_SHEET_CLASS","ACTION_SHEET_CONTAINER_CLASS","ACTION_SHEET_POPUP_WRAPPER_CLASS","ACTION_SHEET_POPOVER_WRAPPER_CLASS","ACTION_SHEET_CANCEL_BUTTON_CLASS","ACTION_SHEET_ITEM_CLASS","ACTION_SHEET_ITEM_DATA_KEY","ACTION_SHEET_WITHOUT_TITLE_CLASS","ActionSheet","showCancelButton","cancelText","onCancelClick","_$itemContainer","_createItemContainer","_renderDisabled","_isPopoverMode","_createPopover","_createPopup","_renderPopupTitle","_mapPopupOption","_overlayConfig","angular","_popupContentReadyAction","_renderCancelButton","_$cancelButton","cancelClickAction","toolbar_1","configurationTemplate","namedTeplates","declaredTemplates","getChildren","componentChildren_1","configurationDefaultTemplate","clearConfiguration","newContent","getConfigurationOptions","$_updatedHandler","E1001","E1002","E1003","E1004","E1005","E1006","E1007","E1010","E1011","E1012","E1016","E1018","E1019","E1020","E1021","E1022","E1023","E1025","E1026","E1031","E1032","E1033","E1034","E1035","E1037","E1038","E1039","E1040","E1041","E1042","E1043","E1044","E1045","E1046","E1047","E1048","E1049","E1050","E1051","E1052","E1053","E1054","E1055","E1056","E1058","E1059","E1060","W1001","W1002","W1003","W1004","W1005","W1006","W1007","W1008","W1009","W1010","W1011","W1012","W1013","W1014","W1015","W1016","W1017","W1018","W1019","ArrayStore","initialArray","_array","AsyncCollectionWidget","_deferredItems","renderContentDeferred","itemDeferred","_postProcessRenderItems","TOOLBAR_BEFORE_CLASS","TOOLBAR_CENTER_CLASS","TOOLBAR_AFTER_CLASS","TOOLBAR_MINI_CLASS","TOOLBAR_ITEM_CLASS","TOOLBAR_LABEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ITEMS_CONTAINER_CLASS","TOOLBAR_GROUP_CLASS","TOOLBAR_COMPACT_CLASS","TOOLBAR_LABEL_SELECTOR","TOOLBAR_MULTILINE_CLASS","TEXT_BUTTON_MODE","DEFAULT_BUTTON_TYPE","TOOLBAR_ITEM_DATA_KEY","ToolbarBase","rawModel","renderAs","multiline","_$toolbarItemsContainer","_buttonClass","_arrangeItems","_applyCompactMode","_renderToolbar","_renderSections","_waitParentAnimationFinished","runCheck","_waitParentAnimationTimeout","readyToResolve","_renderItemsAsync","_checkWebFontForLabelsLoaded","sectionClass","$section","$labels","_$centerSection","beforeRect","_$beforeSection","afterRect","_$afterSection","_alignCenterSection","$label","labelOffset","widthBeforeSection","widthAfterSection","elemsAtSectionWidth","freeSpace","sectionMaxWidth","_alignSection","labelPaddings","isRTL","leftRect","rightRect","centerRect","marginRight","labels","_getCurrentLabelsPaddings","currentWidth","_getCurrentLabelsWidth","difference","_alignSectionLabels","expanding","getRealLabelWidth","currentLabelWidth","labelMaxWidth","possibleLabelWidth","itemContainer","$after","itemHasText","_renderGroupedItems","groupItems","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","c0_hi","c1_hi","c2_hi","s0_512_lo","c0_lo","c1_lo","c2_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","notify","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","WebKitMutationObserver","queueMicrotaskDescriptor","characterData","ARRAY16","zr","rotl","fn1","fn2","fn3","fn4","fn5","cr","dr","tl","bufferEq","origBufEqual","origSlowBufEqual","USE_SYMBOL_AS_UID","createWellKnownSymbol","withoutSetter","FAILS_ON_PRIMITIVES","finalSize","_finalSize","accum","assigned","lowBits","highBits","_hashType","_tag","_signType","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","boundFunction","filterReject","_importDER","recoveryParam","Position","place","getLength","octetLen","rmPadding","constructLength","octets","slen","backHalf","HOOK_SETUP","unwrapVariable","bracketsToDots","readPropValue","assignPropValue","prepareOptions","compileGetter","functionAsIs","hasDefaultValue","pathPart","combineGetters","compiledGetters","pathItem","ensurePropValueDefined","compileSetter","lastLevelIndex","levelIndex","propertyValue","isPropertyFunc","caseSensitive","localStorage","Sha384","forcibleWatcher","filteredCallback","CollectionItem","_rawData","_watchers","_renderVisible","exprGetter","watcher","_updateOwnerFocus","ownerComponent","nh","keyPair","fromPrivate","genKeyPair","drbg","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","canonical","sinv","_maxwellTrick","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","extendFromObject","overrideExistingValues","sourceValueIsArray","drawer_1","triggerVisibilityChangeEvent","changeHandlers","triggerShownEvent","triggerHidingEvent","triggerResizeEvent","modeModules","ECB","CFB","CFB8","CFB1","OFB","CTR","GCM","_importPrivate","privEnc","_importPublic","pubEnc","compact","derive","sum32_3","Kh","Ah","Bh","Dh","Eh","rh","sh","POPOVER_BOUNDARY_OFFSET","hasKey","keyOrKeys","findItems","childItems","collapsedItems","indexByKey","getItems","generateDataByKeyMap","_dataByKeyMap","_dataByKeyMapLength","dataByKeyMap","arrayLength","getCacheValue","getHasKeyCacheValue","setDataByKeyMapValue","cloneInstance","instanceWithoutPrototype","createObjectWithChanges","applyBatch","immutable","disableCache","getErrorResult","isBatch","errorCode","newTarget","scrollbarWidth","horzRe","vertRe","collisionRe","scaleRe","IS_SAFARI","normalizeOffset","normalizeCollision","getAlignFactor","align","inverseAlign","calculateOversize","myLocation","collisionSide","initMyLocation","atLocation","atAlign","atSize","myAlign","mySize","collisionResolvers","inverseData","flipfit","calculateScrollbarWidth","$scrollDiv","overflow","defaultPositionResult","calculatePosition","$what","currentOffset","visualViewport","ofRect","getOffsetWithoutScale","windowHeight","hZoomLevel","vZoomLevel","boundaryWidth","boundaryHeight","$boundary","boundaryPosition","preciser","precise","$startElement","_currentElement$getAt","_style$match","$currentElement","currentElement","typeOfObject","isExponential","isNumeric","isDefined","isEmptyObject","isRenderer","jquery","isDeferred","isEvent","ordinaryToPrimitive","exoticToPrim","COMPONENT_NAMES_DATA_KEY","ANONYMOUS_COMPONENT_DATA_KEY","componentNames","nextAnonymousComponent","getName","generatedName","attachInstanceToElement","disposeFn","getInstanceByElement","_extends","isSurrogatePair","htonl","zero8","join32","EVENT_NAME","EVENT_NAMESPACE","NATIVE_EVENT_NAME","PIXEL_MODE","DELTA_MUTLIPLIER","_wheelHandler","deltaMode","deltaZ","_normalizeDelta","touchPropsToHook","touchPropHook","EMPTY_EVENT_NAME","NATIVE_EVENTS_TO_SUBSCRIBE","mouseenter","mouseleave","pointerenter","pointerleave","NATIVE_EVENTS_TO_TRIGGER","focusin","focusout","NO_BUBBLE_EVENTS","forcePassiveFalseEventNames","matchesSafe","skipEvent","elementDataMap","guid","special","specialData","getField","callMethod","eventsEngine","normalizeOnArguments","iterate","handlersController","getHandlersController","addHandler","oneTimeHandler","normalizeOffArguments","removeHandler","normalizeTriggerArguments","extraParameters","callHandlers","isPropagationStopped","getParents","parentDataByEvent","callNativeMethod","applyForEach","itemArgs","detectPassiveEventHandlersSupport","isSupported","passiveEventHandlersSupported","elementData","eventNameParts","namespaces","eventNameIsDefined","handleObjects","nativeHandler","callHandler","secondaryTargetIsInside","handlerArgs","handleObject","wrappedHandler","nativeListenerOptions","firstHandlerForTheType","shouldAddNativeListener","getNativeHandler","removeByEventName","removedHandler","isSubset","lastHandlerForTheType","shouldRemoveNativeListener","elementDataIsEmpty","forceStop","handleCallback","isImmediatePropagationStopped","subscribeName","normalizeEventArguments","iterateEventNames","nativeMethodName","localName","calculateWhich","charCode","keyCode","EventClass","addProperty","eventInstance","propagationStopped","immediatePropagationStopped","beforeSetStrategy","afterSetStrategy","offArgs","TRANSLATOR_DATA_KEY","TRANSFORM_MATRIX_REGEX","TRANSLATE_REGEX","locate","getTranslate","isPercentValue","cacheTranslate","clearCache","getTranslateCss","xValueString","yValueString","transformValue","matrix","is3D","resetPosition","finishTransition","originalTransition","stylesConfig","parseTranslate","translateString","safer","Safer","kStringMaxLength","MAX_STRING_LENGTH","SHARED","SCROLL_INIT_EVENT","SCROLL_START_EVENT","SCROLL_MOVE_EVENT","SCROLL_END_EVENT","SCROLL_STOP_EVENT","SCROLL_CANCEL_EVENT","Locker","NAMESPACED_SCROLL_EVENT","_proxiedScroll","_scroll","TimeoutLocker","_prepare","_forget","_clearTimer","WheelLocker","_lastWheelDirection","_checkDirectionChanged","directionChange","PointerLocker","ios8_greater","android5_greater","_scrollFrame","_checkFrame","ScrollEmitter","FRAME_DURATION","_pointerLocker","_wheelLocker","skipCheck","_prevEventData","currentEventData","endEventDelta","velocity","velocityMultiplier","remoteQueryImpl","tasks","createTask","executorTask","_adapterFactory","_adapter","_taskQueue","_currentTask","_mergedSortArgs","rejectWithNotify","mergeSortTask","adapter","optimize","unmergedTasks","clientChain","queryImpl","remote","impl","getSessionStorage","maxTouchPoints","msMaxTouchPoints","pointerEnabled","transitionEndEventNames","webkitTransition","MozTransition","OTransition","msTransition","supportProp","isNativeScrollingSupported","isObsoleteAndroid","isNativeScrollDevice","detectTouchEvents","hasWindowProperty","detectPointerEvent","isPointerEnabled","canUsePointerEvent","touchEvents","touchPointersPresent","transitionEndEventName","nativeScrolling","EventsStrategy","_owner","addFn","originalAdd","TOTAL_COUNT","LOAD","BY_KEY","INSERT","REMOVE","ensureRequiredFuncOption","throwInvalidUserFuncResult","createUserFuncFailureHandler","promiseArguments","getResponseHeader","invokeUserLoad","userResult","userFunc","_loadFunc","invokeUserTotalCountFunc","_totalCountFunc","invokeUserByKeyFunc","_byKeyFunc","runRawLoad","userFuncOptions","continuation","__rawData","loadPromise","__rawDataPromise","_cacheRawData","runRawLoadWithQuery","countOnly","itemsQuery","totalCountQuery","rawDataQuery","waitList","runRawLoadWithKey","CustomStore","useDefaultSearch","_loadMode","cacheRawData","_insertFunc","_removeFunc","serverResponse","DxExtensionComponent","$includes","addToUnscopables","deferredConfig","_DeferredObj","_promise","fromPromise","whenFunc","contexts","resolvedCount","updateState","Deferred","when","EXISTS","_objectWithoutPropertiesLoose","excluded","sourceKeys","objectTag","isHostObject","funcProto","funcToString","objectCtorString","getPrototype","newPromiseCapability","promiseCapability","derDecodeTag","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","possibleEnd","numstr","printstr","identifiers","subident","mon","sec","_getDecoder","variable","DxToolbar","menuItemTemplate","locateInMenu","showText","DxConfiguration","ReporterError","rethrow","pathLen","elem","partial","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","removeEvent","eventPropName","TAG","EE","_isStdio","didOnEnd","Pebble","callbacks_1","includeAttrs","getAttrs","attrValue","defaultSlots","getComponentInstance","getComponentProps","getVModelValue","childExtenton","DxToolbarItem","DxShow","DxPosition","DxOffset","DxMy","DxHide","DxCollision","DxBoundaryOffset","DxAt","DxAnimation","DxPopup","toolbarItem","staggerDelay","ERROR_URL","baseErrors","makeError","combineMessage","formatMessage","formatDetails","details","getErrorUrl","__id","__details","$map","deviceDependentOptions","_renderSearch","searchBoxClassName","rootElementClassName","_$searchEditorElement","userEditorOptions","searchText","_valueChangeDeferred","_valueChangeTimeout","_cleanAria","activedescendant","createProperty","asyncWrite","writableHwm","writableHighWaterMark","defaultMessages","en","Yes","No","Cancel","Clear","Done","Loading","Select","Search","Back","OK","baseDictionary","getDataByLocale","localeData","newMessages","messageLocalization","_dictionary","messages","_localizablePrefix","localizablePrefix","localizeString","regex","escapeString","localizationKey","localizeNode","nodeItem","localizedValue","getMessagesByLocales","getDictionary","onlyNew","core","_getFormatterBase","Guid","_generate","ArrayIteratorMethods","ArrayValues","hoveredScrollable","activeScrollable","SCROLLABLE_SIMULATED","SCROLLABLE_SIMULATED_CURSOR","SCROLLABLE_SIMULATED_KEYBOARD","SCROLLABLE_SIMULATED_CLASS","SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE","ACCELERATION","OUT_BOUNDS_ACCELERATION","MIN_VELOCITY_LIMIT","SCROLL_LINE_HEIGHT","VALIDATE_WHEEL_TIMEOUT","BOUNCE_MIN_VELOCITY_LIMIT","BOUNCE_DURATION","BOUNCE_FRAMES","BOUNCE_ACCELERATION_SUM","KEY_CODES","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","TAB","InertiaAnimator","VELOCITY_LIMIT","_velocity","_scrollStep","_acceleration","BounceAnimator","_crossBoundOnNextStep","_bounceLocation","Scroller","_initAnimators","_initScrollbar","_topReached","_bottomReached","_axis","_scrollProp","_inertiaAnimator","_bounceAnimator","_scrollByThumb","_visibilityModeNormalize","_scrollbarVisible","_$scrollbar","prevLocation","_suppressBounce","_bounceEnabled","_boundLocation","_moveContentByTranslator","_scaleRatio","realDimension","_getRealDimension","baseDimension","_getBaseDimension","dimensionName","translateOffset","_maxScrollPropValue","_translateOffset","_hideScrollbar","_completeDeferred","_scrollToBounds","_bounceAction","_setupBounce","boundLocation","bounceDistance","nextLocation","_stopScrolling","_prepareThumbScrolling","scrollbarClicked","_isScrollbar","_moveToMouseLocation","_thumbScrolling","_isThumb","_crossThumbScrolling","_isAnyThumbScrolling","_isThumbScrollingHandler","mouseLocation","_containerToContentRatio","_startHandler","_moveHandler","_scrollBy","_scrollByHandler","_endHandler","_inertiaHandler","_resetThumbScrolling","_suppressInertia","_inertiaEnabled","_stopHandler","_disposeHandler","_resetScaleRatio","_updateLocation","locationChanged","_createActionsHandler","bounce","isOverflowHidden","containerScrollSize","_validateEvent","_isContent","_scrollByContent","_reachedMin","_reachedMax","_cursorEnterHandler","_cursorLeaveHandler","SimulatedStrategy","_createScrollers","_attachKeyboardHandler","_attachCursorHandlers","scrollbarVisible","isAnyThumbScrolling","_getPropByDirection","isThumbScrollingVertical","isThumbScrollingHorizontal","_suppressDirections","_prepareDirections","_eachScroller","_validDirections","_startAction","_saveActive","_resetActive","_adjustDistance","_tryGetDevicePixelRatio","_refreshCursorState","_endAction","_updateRtlConfig","_updateHandlerTimeout","_scrollByLine","_scrollByPage","_scrollToHome","_scrollToEnd","page","_wheelProp","_dimensionByProp","_createActionHandler","_createScrollerActions","actionHandler","scrollerX","scrollerY","deferreds","_hoverHandled","targetScrollable","touchDirection","verticalScroller","horizontalScroller","_isHorizontalAndRtlEnabled","_rtlConfig","scrollRight","windowPixelRatio","_getWindowDevicePixelRatio","skipUpdating","_validateWheel","_wheelDirection","reachedMin","reachedMax","contentGreaterThanContainer","locatedNotAtBound","scrollFromMin","scrollFromMax","validated","_validateWheelTimer","normalizeArray","allowAboveRoot","basename","matchedSlash","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","extname","startDot","startPart","preDotState","RESIZABLE","RESIZABLE_CLASS","RESIZABLE_RESIZING_CLASS","RESIZABLE_HANDLE_CLASS","RESIZABLE_HANDLE_TOP_CLASS","RESIZABLE_HANDLE_BOTTOM_CLASS","RESIZABLE_HANDLE_LEFT_CLASS","RESIZABLE_HANDLE_RIGHT_CLASS","RESIZABLE_HANDLE_CORNER_CLASS","DRAGSTART_START_EVENT_NAME","DRAGSTART_END_EVENT_NAME","Resizable","stepPrecision","roundStepValue","_renderHandles","_renderActions","_resizeStartAction","_resizeEndAction","_resizeAction","_handles","directions","handleName","_renderHandle","_dragHandler","handleElement","_toggleEventHandlers","shouldAttachEvents","_toggleResizingClass","_movingSides","_getMovingSides","_elementLocation","elementRect","_elementSize","_renderDragOffsets","handleWidth","handleHeight","handleOffset","_getAreaScrollOffset","scrollX","scrollY","_getBorderWidth","sides","_getOffset","_renderWidth","_renderHeight","steps","strictPrecision","_getStrictOffset","_getSimpleOffset","xPos","yPos","newXShift","newYShift","separatorOffset","isSmallOffset","newOffsetX","newOffsetY","hasCornerTopLeftClass","hasCornerTopRightClass","hasCornerBottomLeftClass","hasCornerBottomRightClass","_getAreaFromObject","_getAreaFromElement","isElement","areaElement","_correctAreaGeometry","areaBorderLeft","areaBorderTop","nn","PARENT_LOCALE_SEPARATOR","parentLocale","parentLocales","DEFAULT_LOCALE","currentLocale","isRootLocale","sizes","rmd160","saltLen","getDigest","ipad1","ipad2","shaFunc","rmd160Func","DK","block1","destPos","U","getNodeTypeOfComponent","saveComponentInstance","usedConfigurationProps","hasChildren","$_componentInstance","findConfigurationComponents","hasInlineTemplate","setAppContext","setCustomPluginsData","parentAppContext","childType","isConfiguration","CORRECT_PROTOTYPE_GETTER","SWATCH_CONTAINER_CLASS_PREFIX","swatchContainer","viewport","swatchClassRegex","swatchClass","viewportSwatchContainer","ECDH","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","otherPub","TOOLBAR_MENU_CONTAINER_CLASS","ToolbarStrategy","_toolbar","_widgetOptions","itemClickAction","_getMenuItemTemplate","_renderWidget","_menuContainer","_menuWidget","renderMenuItems","_hasVisibleMenuItems","optionGetter","overflowGetter","itemVisible","itemOverflow","_getMenuItems","_updateMenuVisibility","_renderMenuButtonContainer","$afterSection","_$menuButtonContainer","widgetOption","TOOLBAR_MENU_BUTTON_CLASS","ActionSheetStrategy","_$button","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","ToolbarMenu","_getSections","sectionName","_updateSections","$sections","isAction","menuTemplate","MENU_INVISIBLE_CLASS","DropDownMenuStrategy","topAndBottomOffset","isMenuVisible","actionSheet","dropDownMenu","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_AUTO_HIDE_TEXT_CLASS","TOOLBAR_HIDDEN_ITEM","Toolbar","submenuType","menuContainer","overflowMenuVisible","_menuStrategy","actionSheetItem","_hideOverflowItems","_getItemsWidth","overflowItems","itemsWidth","_isMenuItem","$hiddenItems","_restoreItems","$itemMarkup","_renderMenuStrategy","_requireDropDownStrategy","_isToolbarItem","_changeMenuOption","ARRAY_ITERATOR","kind","Arguments","accountingFormat","encodedCurrencySymbol","currencySymbol","encodeSymbols","af","am","as","bo","brx","ccp","ceb","dav","doi","dz","ebu","fil","gu","guz","haw","he","ii","ja","jv","kam","ki","kln","km","kn","ko","kok","ks","lkt","luo","luy","mai","mas","mer","mgh","ml","mni","mr","nd","ne","om","pa","pt","qu","sa","saq","sat","sd","seh","sn","su","ta","te","ti","ug","ur","yue","zu","detectCurrencySymbolRegex","getCurrencyFormatter","currency","_normalizeFormatConfig","minimumIntegerDigits","useGrouping","maximumFractionDigits","_getPrecisionConfig","minimumFractionDigits","_normalizeFormat","_getCurrencySymbolInfo","_extractCurrencySymbolInfo","currencyValueString","symbolInfo","targetCurrency","closestAccountingFormat","MAX_LARGE_NUMBER_POWER","NUMERIC_FORMATS","LargeNumberFormatPostfixes","LargeNumberFormatPowers","largenumber","thousands","millions","billions","trillions","numberLocalization","numericFormats","defaultLargeNumberFormatPostfixes","_parseNumberFormatString","formatObject","formatList","power","_calculateNumberPower","minPower","maxPower","_getNumberByPower","_formatNumber","powerPostfix","_formatNumberExponential","powString","_addZeroes","multiplier","_addGroupSeparators","_getSeparators","getDecimalSeparator","getThousandsSeparator","toStandard","digits","fromFirstDigit","toFirstDigit","fromLastDigit","regExp","getNegativeEtalonRegExp","separators","digitalRegExp","negativeEtalon","getSign","numberConfig","formatterConfig","cleanedText","_calcSignificantDigits","fractional","calcDigitsAfterLeadingZeros","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","redefineAll","setSpecies","anInstance","checkCorrectnessOfIteration","microtask","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromiseConstructorPrototype","newGenericPromiseCapability","DISPATCH_EVENT","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","isThenable","isReject","notified","chain","reactions","ok","exited","reaction","rejection","onHandleUnhandled","onUnhandled","IS_UNHANDLED","isUnhandled","internalReject","internalResolve","onFulfilled","onRejected","capability","$promiseResolve","alreadyCalled","race","CHECKBOX_CLASS","CHECKBOX_ICON_CLASS","CHECKBOX_CHECKED_CLASS","CHECKBOX_CONTAINER_CLASS","CHECKBOX_TEXT_CLASS","CHECKBOX_HAS_TEXT_CLASS","CHECKBOX_INDETERMINATE_CLASS","CHECKBOX_FEEDBACK_HIDE_TIMEOUT","CheckBox","_renderSubmitElement","_renderText","_$submitElement","textValue","_$text","indeterminate","REMOVE_EVENT_NAME","nodesByEvent","subscribeNodesDisposing","unsubscribeNodesDisposing","isInput","misc","ClickEmitter","_makeElementClickable","_blurPrevented","_startTarget","_eventOutOfElement","_clickAnimationFrame","_fireClickEvent","targetChanged","gestureDelta","boundsExceeded","useNativeClick","isNativeClickEvent","prevented","lastFiredEvent","onNodeRemove","eventAlreadyFired","DXCLICK_FIRED","leftButton","desktopDevice","blurPrevented","multiLevelGroup","arrangeSortingInfo","sortInfo","filteredGroup","isCountQuery","getNAF","getJSF","BaseCurve","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","_getDoubles","I","nafW","repr","nafPoints","_getNAFPoints","defW","wndWidth","comb","jsf","jb","encodeCompressed","FUNC_ERROR_TEXT","pendingTotal","_delta8","_delta32","getKeyWrapper","getSameNewByOld","newIndexByKey","findChanges","oldItems","isItemEquals","oldIndexByKey","addedCount","removeCount","itemCount","oldNextIndex","nextOldItem","isRemoved","oldIndex","api","Entity","_createNamed","Generated","_initNamed","PromiseCapability","$$resolve","$$reject","SORTABLE","PLACEHOLDER_CLASS","_config$to","_config$to2","stopAnimation","getScrollableBoundary","Sortable","_sourceScrollHandler","_handleSourceScroll","_sourceScrollableInfo","itemOrientation","dropFeedbackMode","allowDropInsideItem","moveItemOnDrop","onAdd","onRemove","onPlaceholderPrepared","dropInsideItem","itemPoints","fromIndexOffset","autoUpdate","draggableElementSize","_$placeholderElement","_isIndicateMode","_$modifiedItem","_modifiedItemMargin","_getPrevVisibleItem","_updateItemPoints","_subscribeToSourceScroll","_getElementIndex","_unsubscribeFromSourceScroll","sourceScrollableInfo","scrollProp","_correctItemPoints","lastItemPoint","_isVerticalOrientation","sourceElementSize","scrollSize","positionProp","lastPointPosition","freeSize","_getItems","marginBottom","$sortable","sortable","_isInsideTargetDraggable","$targetDraggable","validX","validY","cancelAdd","cancelRemove","isSourceDraggable","isInsideTargetDraggable","_fireAddEvent","_moveItem","_fireReorderEvent","itemPoint","axisName","cursorPosition","centerPosition","_updatePlaceholderPosition","isScrolling","_movePlaceholder","_createPlaceholder","$placeholderContainer","_allowReordering","_isValidPoint","visibleIndex","draggableVisibleIndex","_getItemPoints","itemWidth","visibleItemElements","visibleItemCount","$draggableItem","needCorrectLeftPosition","needCorrectTopPosition","forceUpdate","positionPropName","_normalizeToIndex","isAnotherDraggable","placeholderElement","_makeWidthCorrection","_$scrollable","scrollableWidth","offsetRight","_updatePlaceholderSizes","$placeholderElement","$prevTargetItemElement","$targetItemElement","_moveItemCore","$targetItem","prevItem","isDragSource","$fromElement","_optionChangedDropInsideItem","_optionChangedToIndex","_isPositionVisible","scrollContainer","clientRect","isVerticalOrientation","pageOffset","showPlaceholder","_moveItems","_updateDragSourceClass","_getActualFromIndex","_makeLeftCorrection","leftMargin","prevVisibleItemElement","_getDraggableElementSize","prevToIndex","prevPositions","animationConfig","minAssert","minUtils","m8","d1","d2","m14","m24","computer","i2ops","fnF","fnG","fnH","fnI","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","Widget","hoveredElement","onKeyboardHandled","_initContentReadyAction","innerWidget","getOptionsFromContainer","optionsContainer","syncOptions","_contentReadyAction","_renderHint","_isFocusable","_renderFocusTarget","_renderFocusState","_attachFeedbackEvents","_attachHoverEvents","_toggleIndependentState","_detachKeyboardEvents","_resetActiveState","_attachFocusEvents","_renderAccessKey","_detachFocusEvents","$focusTarget","_getKeyboardListeners","hasChildListeners","hasKeyboardEventHandler","shouldAttach","onlyChildProcessing","keyboardListeners","_hoverStartHandler","_hoverEndHandler","_hover","$previous","_findHoverTarget","newHoveredElement","_setWidgetOption","widgetOptionMap","_updatedHover","_isReady","DxDrawer","dataMap","strategyChanging","beforeCleanDataFunc","afterCleanDataFunc","setDataStrategy","cleanData","beforeCleanData","cleanDataRecursive","cleanSelf","childElements","getElementsByTagName","SPECIAL_HEIGHT_VALUES","getSizeByStyles","getElementBoxParams","beforeName","afterName","getBoxSizingOffset","boxParams","getSize","boundingClientRect","getContainerHeight","parseHeight","getHeightWithOffset","operationString","addOffsetToMaxHeight","addOffsetToMinHeight","getVerticalOffsets","withMargins","getVisibleHeight","ReflectOwnKeys","ReflectApply","ProcessEmitWarning","NumberIsNaN","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","newListener","onceWrapper","wrapFn","_onceWrap","wrapped","_listeners","evlistener","unwrapListeners","arrayClone","spliceOne","errorListener","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","setMaxListeners","getMaxListeners","doError","prependOnceListener","originalListener","rawListeners","wrapOverridden","baseProto","prevCallBase","clonePrototype","overridden","classObj","hasClassObjOwnProperty","isES6Class","_includedCtors","_includedPostCtors","subclassOf","parentClass","hasParentProperty","baseClass","copyStatic","destination","classImpl","includedCtors","includedPostCtors","HOVERSTART_NAMESPACE","HOVERSTART","POINTERENTER_NAMESPACED_EVENT_NAME","HOVEREND_NAMESPACE","HOVEREND","POINTERLEAVE_NAMESPACED_EVENT_NAME","Hover","_handlerArrayKeyPath","_eventNamespace","_originalEventName","HoverStart","HoverEnd","deciphers","_rand","getBytes","getByte","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINW,IAAK,CACH/pH,IAAK,EACLopH,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF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xC,OAAQ,WACJv0C,KAAK+2B,WAAWhM,KAAK,IAAM48U,GAAwBpjV,UAEvD45H,cAAe,WACX,OAAO,KAGf,eAAkBqpN,EAAWW,GACd,gB,kDC5YA,GACX,SAAU,SACV,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAA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","file":"js/chunk-vendors.618bcecc.js","sourcesContent":["/*!\n * devextreme-vue\n * Version: 21.1.5\n * Build date: Mon Aug 02 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setEmitOptionChangedFunc = exports.bindOptionWatchers = void 0;\nvar helpers_1 = require(\"./helpers\");\nvar Configuration = /** @class */ (function () {\n function Configuration(updateFunc, name, initialValues, expectedChildren, isCollectionItem, collectionItemIndex, ownerConfig) {\n this._updateFunc = updateFunc;\n this._name = name;\n this._initialValues = initialValues ? initialValues : {};\n this._nestedConfigurations = [];\n this._isCollectionItem = !!isCollectionItem;\n this._collectionItemIndex = collectionItemIndex;\n this._expectedChildren = expectedChildren || {};\n this._ownerConfig = ownerConfig;\n this._componentChanges = [];\n this.updateValue = this.updateValue.bind(this);\n }\n Object.defineProperty(Configuration.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"fullName\", {\n get: function () {\n return this._name && this._isCollectionItem\n ? this._name + \"[\" + this._collectionItemIndex + \"]\"\n : this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"componentsCountChanged\", {\n get: function () {\n return this._componentChanges;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.cleanComponentsCountChanged = function () {\n this._componentChanges = [];\n };\n Object.defineProperty(Configuration.prototype, \"fullPath\", {\n get: function () {\n return this._ownerConfig && this._ownerConfig.fullPath\n ? this._ownerConfig.fullPath + \".\" + this.fullName\n : this.fullName;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"ownerConfig\", {\n get: function () {\n return this._ownerConfig;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"options\", {\n get: function () {\n return this._options;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"initialValues\", {\n get: function () {\n return this._initialValues;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"expectedChildren\", {\n get: function () {\n return this._expectedChildren;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"nested\", {\n get: function () {\n return this._nestedConfigurations;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"prevNestedOptions\", {\n get: function () {\n return this._prevNestedConfigOptions;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"collectionItemIndex\", {\n get: function () {\n return this._collectionItemIndex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"isCollectionItem\", {\n get: function () {\n return this._isCollectionItem;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"updateFunc\", {\n get: function () {\n return this._updateFunc;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.init = function (options) {\n this._options = options ? options : [];\n };\n Object.defineProperty(Configuration.prototype, \"emitOptionChanged\", {\n set: function (handler) {\n this._emitOptionChanged = handler;\n },\n enumerable: false,\n configurable: true\n });\n Configuration.prototype.setPrevNestedOptions = function (value) {\n this._prevNestedConfigOptions = value;\n };\n Configuration.prototype.onOptionChanged = function (args) {\n if (helpers_1.isEqual(args.value, args.previousValue)) {\n return;\n }\n this._onOptionChanged(args.fullName.split(\".\"), args);\n };\n Configuration.prototype.cleanNested = function () {\n this._nestedConfigurations = [];\n };\n Configuration.prototype.createNested = function (name, initialValues, isCollectionItem, expectedChildren) {\n var expected = this._expectedChildren[name];\n var actualName = name;\n var actualIsCollectionItem = isCollectionItem;\n if (expected) {\n actualIsCollectionItem = expected.isCollectionItem;\n if (expected.optionName) {\n actualName = expected.optionName;\n }\n }\n var collectionItemIndex = -1;\n if (actualIsCollectionItem && actualName) {\n collectionItemIndex = this._nestedConfigurations.filter(function (c) { return c._name && c._name === actualName; }).length;\n }\n var configuration = new Configuration(this._updateFunc, actualName, initialValues, expectedChildren, actualIsCollectionItem, collectionItemIndex, this);\n this._nestedConfigurations.push(configuration);\n return configuration;\n };\n Configuration.prototype.updateValue = function (nestedName, value) {\n var fullName = [this.fullPath, nestedName].filter(function (n) { return n; }).join(\".\");\n this._updateFunc(fullName, value);\n };\n Configuration.prototype.getNestedOptionValues = function () {\n var values = {};\n this._nestedConfigurations.forEach(function (o) {\n if (!o._name) {\n return;\n }\n var nestedValue = __assign(__assign({}, o.initialValues), o.getNestedOptionValues());\n if (!nestedValue) {\n return;\n }\n if (!o._isCollectionItem) {\n values[o._name] = nestedValue;\n }\n else {\n var arr = values[o._name];\n if (!arr || !Array.isArray(arr)) {\n arr = [];\n values[o._name] = arr;\n }\n arr.push(nestedValue);\n }\n });\n return values;\n };\n Configuration.prototype.getOptionsToWatch = function () {\n var blackList = {};\n this._nestedConfigurations.forEach(function (c) { return c._name && (blackList[c._name] = true); });\n return this._options.filter(function (o) { return !blackList[o]; });\n };\n Configuration.prototype._onOptionChanged = function (optionRelPath, args) {\n if (optionRelPath.length === 0) {\n return;\n }\n var optionInfo = helpers_1.getOptionInfo(optionRelPath[0]);\n if (optionInfo.isCollection || optionRelPath.length > 1) {\n var nestedConfig = this._getNestedConfig(optionInfo.fullName);\n if (nestedConfig) {\n nestedConfig._onOptionChanged(optionRelPath.slice(1), args);\n return;\n }\n this._tryEmitOptionChanged(optionInfo.name, args.component.option(this.fullPath ? this.fullPath + \".\" + optionInfo.name : optionInfo.name));\n }\n else {\n this._tryEmitOptionChanged(optionInfo.name, args.value);\n }\n };\n Configuration.prototype._getNestedConfig = function (fullName) {\n for (var _i = 0, _a = this._nestedConfigurations; _i < _a.length; _i++) {\n var nestedConfig = _a[_i];\n if (nestedConfig.fullName === fullName) {\n return nestedConfig;\n }\n }\n return undefined;\n };\n Configuration.prototype._tryEmitOptionChanged = function (name, value) {\n if (this._emitOptionChanged) {\n this._emitOptionChanged(name, value);\n }\n };\n return Configuration;\n}());\nfunction bindOptionWatchers(config, vueInstance, innerChanges) {\n var targets = config && config.getOptionsToWatch();\n if (targets) {\n targets.forEach(function (optionName) {\n vueInstance.$watch(optionName, function (value) {\n if (!innerChanges.hasOwnProperty(optionName) ||\n innerChanges[optionName] !== value) {\n config.updateValue(optionName, value);\n }\n delete innerChanges[optionName];\n });\n });\n }\n}\nexports.bindOptionWatchers = bindOptionWatchers;\nfunction setEmitOptionChangedFunc(config, vueInstance, innerChanges) {\n config.emitOptionChanged = function (name, value) {\n if (!helpers_1.isEqual(value, vueInstance.$props[name])) {\n innerChanges[name] = value;\n vueInstance.$emit(\"update:\" + name, value);\n }\n };\n}\nexports.setEmitOptionChangedFunc = setEmitOptionChangedFunc;\nexports.default = Configuration;\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/**\r\n * DevExtreme (esm/data/abstract_store.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n processRequestResultLock\r\n} from \"./utils\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport storeHelper from \"./store_helper\";\r\nvar queryByOptions = storeHelper.queryByOptions;\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar storeImpl = {};\r\nvar Store = Class.inherit({\r\n ctor: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy = new EventsStrategy(this);\r\n each([\"onLoaded\", \"onLoading\", \"onInserted\", \"onInserting\", \"onUpdated\", \"onUpdating\", \"onPush\", \"onRemoved\", \"onRemoving\", \"onModified\", \"onModifying\"], (function(_, optionName) {\r\n if (optionName in options) {\r\n that.on(optionName.slice(2).toLowerCase(), options[optionName])\r\n }\r\n }));\r\n this._key = options.key;\r\n this._errorHandler = options.errorHandler;\r\n this._useDefaultSearch = true\r\n },\r\n _customLoadOptions: function() {\r\n return null\r\n },\r\n key: function() {\r\n return this._key\r\n },\r\n keyOf: function(obj) {\r\n if (!this._keyGetter) {\r\n this._keyGetter = compileGetter(this.key())\r\n }\r\n return this._keyGetter(obj)\r\n },\r\n _requireKey: function() {\r\n if (!this.key()) {\r\n throw errors.Error(\"E4005\")\r\n }\r\n },\r\n load: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy.fireEvent(\"loading\", [options]);\r\n return this._withLock(this._loadImpl(options)).done((function(result) {\r\n that._eventsStrategy.fireEvent(\"loaded\", [result, options])\r\n }))\r\n },\r\n _loadImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options).enumerate()\r\n },\r\n _withLock: function(task) {\r\n var result = new Deferred;\r\n task.done((function() {\r\n var that = this;\r\n var args = arguments;\r\n processRequestResultLock.promise().done((function() {\r\n result.resolveWith(that, args)\r\n }))\r\n })).fail((function() {\r\n result.rejectWith(this, arguments)\r\n }));\r\n return result\r\n },\r\n createQuery: abstract,\r\n totalCount: function(options) {\r\n return this._totalCountImpl(options)\r\n },\r\n _totalCountImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options, true).count()\r\n },\r\n byKey: function(key, extraOptions) {\r\n return this._addFailHandlers(this._withLock(this._byKeyImpl(key, extraOptions)))\r\n },\r\n _byKeyImpl: abstract,\r\n insert: function(values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"inserting\", [values]);\r\n return that._addFailHandlers(that._insertImpl(values).done((function(callbackValues, callbackKey) {\r\n that._eventsStrategy.fireEvent(\"inserted\", [callbackValues, callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _insertImpl: abstract,\r\n update: function(key, values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"updating\", [key, values]);\r\n return that._addFailHandlers(that._updateImpl(key, values).done((function() {\r\n that._eventsStrategy.fireEvent(\"updated\", [key, values]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _updateImpl: abstract,\r\n push: function(changes) {\r\n var beforePushArgs = {\r\n changes: changes,\r\n waitFor: []\r\n };\r\n this._eventsStrategy.fireEvent(\"beforePush\", [beforePushArgs]);\r\n when(...beforePushArgs.waitFor).done(() => {\r\n this._pushImpl(changes);\r\n this._eventsStrategy.fireEvent(\"push\", [changes])\r\n })\r\n },\r\n _pushImpl: noop,\r\n remove: function(key) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"removing\", [key]);\r\n return that._addFailHandlers(that._removeImpl(key).done((function(callbackKey) {\r\n that._eventsStrategy.fireEvent(\"removed\", [callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _removeImpl: abstract,\r\n _addFailHandlers: function(deferred) {\r\n return deferred.fail(this._errorHandler).fail(handleError)\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nStore.create = function(alias, options) {\r\n if (!(alias in storeImpl)) {\r\n throw errors.Error(\"E4020\", alias)\r\n }\r\n return new storeImpl[alias](options)\r\n};\r\nStore.registerClass = function(type, alias) {\r\n if (alias) {\r\n storeImpl[alias] = type\r\n }\r\n return type\r\n};\r\nStore.inherit = function(inheritor) {\r\n return function(members, alias) {\r\n var type = inheritor.apply(this, [members]);\r\n Store.registerClass(type, alias);\r\n return type\r\n }\r\n}(Store.inherit);\r\nexport default Store;\r\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n styleProp\r\n} from \"../../core/utils/style\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nimport {\r\n resetActiveElement,\r\n clearSelection\r\n} from \"../../core/utils/dom\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport {\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n needSkipEvent,\r\n createEvent,\r\n eventData,\r\n isDxMouseWheelEvent,\r\n eventDelta,\r\n isTouchEvent\r\n} from \"../utils/index\";\r\nimport Emitter from \"../core/emitter\";\r\nvar abs = Math.abs;\r\nvar SLEEP = 0;\r\nvar INITED = 1;\r\nvar STARTED = 2;\r\nvar TOUCH_BOUNDARY = 10;\r\nvar IMMEDIATE_TOUCH_BOUNDARY = 0;\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar supportPointerEvents = function() {\r\n return styleProp(\"pointer-events\")\r\n};\r\nvar setGestureCover = callOnce((function() {\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (!supportPointerEvents() || !isDesktop) {\r\n return noop\r\n }\r\n var $cover = $(\"
\").addClass(\"dx-gesture-cover\").css(\"pointerEvents\", \"none\");\r\n eventsEngine.subscribeGlobal($cover, \"dxmousewheel\", (function(e) {\r\n e.preventDefault()\r\n }));\r\n ready((function() {\r\n $cover.appendTo(\"body\")\r\n }));\r\n return function(toggle, cursor) {\r\n $cover.css(\"pointerEvents\", toggle ? \"all\" : \"none\");\r\n toggle && $cover.css(\"cursor\", cursor)\r\n }\r\n}));\r\nvar gestureCover = function(toggle, cursor) {\r\n var gestureCoverStrategy = setGestureCover();\r\n gestureCoverStrategy(toggle, cursor)\r\n};\r\nvar GestureEmitter = Emitter.inherit({\r\n gesture: true,\r\n configure: function(data) {\r\n this.getElement().css(\"msTouchAction\", data.immediate ? \"pinch-zoom\" : \"\");\r\n this.callBase(data)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return this._stage !== STARTED\r\n },\r\n getDirection: function() {\r\n return this.direction\r\n },\r\n _cancel: function() {\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false);\r\n this._stage = SLEEP\r\n },\r\n start: function(e) {\r\n if (e._needSkipEvent || needSkipEvent(e)) {\r\n this._cancel(e);\r\n return\r\n }\r\n this._startEvent = createEvent(e);\r\n this._startEventData = eventData(e);\r\n this._stage = INITED;\r\n this._init(e);\r\n this._setupImmediateTimer()\r\n },\r\n _setupImmediateTimer: function() {\r\n clearTimeout(this._immediateTimer);\r\n this._immediateAccepted = false;\r\n if (!this.immediate) {\r\n return\r\n }\r\n this._immediateTimer = setTimeout(function() {\r\n this._immediateAccepted = true\r\n }.bind(this), IMMEDIATE_TIMEOUT)\r\n },\r\n move: function(e) {\r\n if (this._stage === INITED && this._directionConfirmed(e)) {\r\n this._stage = STARTED;\r\n this._resetActiveElement();\r\n this._toggleGestureCover(true);\r\n this._clearSelection(e);\r\n this._adjustStartEvent(e);\r\n this._start(this._startEvent);\r\n if (this._stage === SLEEP) {\r\n return\r\n }\r\n this._requestAccept(e);\r\n this._move(e);\r\n this._forgetAccept()\r\n } else if (this._stage === STARTED) {\r\n this._clearSelection(e);\r\n this._move(e)\r\n }\r\n },\r\n _directionConfirmed: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n var deltaX = abs(delta.x);\r\n var deltaY = abs(delta.y);\r\n var horizontalMove = this._validateMove(touchBoundary, deltaX, deltaY);\r\n var verticalMove = this._validateMove(touchBoundary, deltaY, deltaX);\r\n var direction = this.getDirection(e);\r\n var bothAccepted = \"both\" === direction && (horizontalMove || verticalMove);\r\n var horizontalAccepted = \"horizontal\" === direction && horizontalMove;\r\n var verticalAccepted = \"vertical\" === direction && verticalMove;\r\n return bothAccepted || horizontalAccepted || verticalAccepted || this._immediateAccepted\r\n },\r\n _validateMove: function(touchBoundary, mainAxis, crossAxis) {\r\n return mainAxis && mainAxis >= touchBoundary && (this.immediate ? mainAxis >= crossAxis : true)\r\n },\r\n _getTouchBoundary: function(e) {\r\n return this.immediate || isDxMouseWheelEvent(e) ? IMMEDIATE_TOUCH_BOUNDARY : TOUCH_BOUNDARY\r\n },\r\n _adjustStartEvent: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n this._startEvent.pageX += sign(delta.x) * touchBoundary;\r\n this._startEvent.pageY += sign(delta.y) * touchBoundary\r\n },\r\n _resetActiveElement: function() {\r\n if (\"ios\" === devices.real().platform && this.getElement().find(\":focus\").length) {\r\n resetActiveElement()\r\n }\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n },\r\n _toggleGestureCoverImpl: function(toggle) {\r\n var isStarted = this._stage === STARTED;\r\n if (isStarted) {\r\n gestureCover(toggle, this.getElement().css(\"cursor\"))\r\n }\r\n },\r\n _clearSelection: function(e) {\r\n if (isDxMouseWheelEvent(e) || isTouchEvent(e)) {\r\n return\r\n }\r\n clearSelection()\r\n },\r\n end: function(e) {\r\n this._toggleGestureCover(false);\r\n if (this._stage === STARTED) {\r\n this._end(e)\r\n } else if (this._stage === INITED) {\r\n this._stop(e)\r\n }\r\n this._stage = SLEEP\r\n },\r\n dispose: function() {\r\n clearTimeout(this._immediateTimer);\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false)\r\n },\r\n _init: noop,\r\n _start: noop,\r\n _move: noop,\r\n _stop: noop,\r\n _end: noop\r\n});\r\nGestureEmitter.initialTouchBoundary = TOUCH_BOUNDARY;\r\nGestureEmitter.touchBoundary = function(newBoundary) {\r\n if (isDefined(newBoundary)) {\r\n TOUCH_BOUNDARY = newBoundary;\r\n return\r\n }\r\n return TOUCH_BOUNDARY\r\n};\r\nexport default GestureEmitter;\r\n","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","/**\r\n * DevExtreme (esm/events/utils/add_namespace.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../core/errors\";\r\nvar addNamespace = (eventNames, namespace) => {\r\n if (!namespace) {\r\n throw errors.Error(\"E0017\")\r\n }\r\n if (Array.isArray(eventNames)) {\r\n return eventNames.map(eventName => addNamespace(eventName, namespace)).join(\" \")\r\n }\r\n if (-1 !== eventNames.indexOf(\" \")) {\r\n return addNamespace(eventNames.split(/\\s+/g), namespace)\r\n }\r\n return \"\".concat(eventNames, \".\").concat(namespace)\r\n};\r\nexport default addNamespace;\r\n","/**\r\n * DevExtreme (esm/events/utils/index.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport mappedAddNamespace from \"./add_namespace\";\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../../ui/widget/selectors\";\r\nvar KEY_MAP = {\r\n backspace: \"backspace\",\r\n tab: \"tab\",\r\n enter: \"enter\",\r\n escape: \"escape\",\r\n pageup: \"pageUp\",\r\n pagedown: \"pageDown\",\r\n end: \"end\",\r\n home: \"home\",\r\n arrowleft: \"leftArrow\",\r\n arrowup: \"upArrow\",\r\n arrowright: \"rightArrow\",\r\n arrowdown: \"downArrow\",\r\n delete: \"del\",\r\n \" \": \"space\",\r\n f: \"F\",\r\n a: \"A\",\r\n \"*\": \"asterisk\",\r\n \"-\": \"minus\",\r\n alt: \"alt\",\r\n control: \"control\",\r\n shift: \"shift\",\r\n left: \"leftArrow\",\r\n up: \"upArrow\",\r\n right: \"rightArrow\",\r\n down: \"downArrow\",\r\n multiply: \"asterisk\",\r\n spacebar: \"space\",\r\n del: \"del\",\r\n subtract: \"minus\",\r\n esc: \"escape\"\r\n};\r\nvar LEGACY_KEY_CODES = {\r\n 8: \"backspace\",\r\n 9: \"tab\",\r\n 13: \"enter\",\r\n 27: \"escape\",\r\n 33: \"pageUp\",\r\n 34: \"pageDown\",\r\n 35: \"end\",\r\n 36: \"home\",\r\n 37: \"leftArrow\",\r\n 38: \"upArrow\",\r\n 39: \"rightArrow\",\r\n 40: \"downArrow\",\r\n 46: \"del\",\r\n 32: \"space\",\r\n 70: \"F\",\r\n 65: \"A\",\r\n 106: \"asterisk\",\r\n 109: \"minus\",\r\n 189: \"minus\",\r\n 173: \"minus\",\r\n 16: \"shift\",\r\n 17: \"control\",\r\n 18: \"alt\"\r\n};\r\nvar EVENT_SOURCES_REGEX = {\r\n dx: /^dx/i,\r\n mouse: /(mouse|wheel)/i,\r\n touch: /^touch/i,\r\n keyboard: /^key/i,\r\n pointer: /^(ms)?pointer/i\r\n};\r\nvar fixMethod = e => e;\r\nvar copyEvent = originalEvent => fixMethod(eventsEngine.Event(originalEvent, originalEvent), originalEvent);\r\nvar isDxEvent = e => \"dx\" === eventSource(e);\r\nvar isNativeMouseEvent = e => \"mouse\" === eventSource(e);\r\nvar isNativeTouchEvent = e => \"touch\" === eventSource(e);\r\nexport var eventSource = _ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n var result = \"other\";\r\n each(EVENT_SOURCES_REGEX, (function(key) {\r\n if (this.test(type)) {\r\n result = key;\r\n return false\r\n }\r\n }));\r\n return result\r\n};\r\nexport var isPointerEvent = e => \"pointer\" === eventSource(e);\r\nexport var isMouseEvent = e => isNativeMouseEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"mouse\" === e.pointerType;\r\nexport var isDxMouseWheelEvent = e => e && \"dxmousewheel\" === e.type;\r\nexport var isTouchEvent = e => isNativeTouchEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"touch\" === e.pointerType;\r\nexport var isKeyboardEvent = e => \"keyboard\" === eventSource(e);\r\nexport var isFakeClickEvent = _ref2 => {\r\n var {\r\n screenX: screenX,\r\n offsetX: offsetX,\r\n pageX: pageX\r\n } = _ref2;\r\n return 0 === screenX && !offsetX && 0 === pageX\r\n};\r\nexport var eventData = _ref3 => {\r\n var {\r\n pageX: pageX,\r\n pageY: pageY,\r\n timeStamp: timeStamp\r\n } = _ref3;\r\n return {\r\n x: pageX,\r\n y: pageY,\r\n time: timeStamp\r\n }\r\n};\r\nexport var eventDelta = (from, to) => ({\r\n x: to.x - from.x,\r\n y: to.y - from.y,\r\n time: to.time - from.time || 1\r\n});\r\nexport var hasTouches = e => {\r\n var {\r\n originalEvent: originalEvent,\r\n pointers: pointers\r\n } = e;\r\n if (isNativeTouchEvent(e)) {\r\n return (originalEvent.touches || []).length\r\n }\r\n if (isDxEvent(e)) {\r\n return (pointers || []).length\r\n }\r\n return 0\r\n};\r\nvar skipEvents = false;\r\nexport var forceSkipEvents = () => skipEvents = true;\r\nexport var stopEventsSkipping = () => skipEvents = false;\r\nexport var needSkipEvent = e => {\r\n if (skipEvents) {\r\n return true\r\n }\r\n var {\r\n target: target\r\n } = e;\r\n var $target = $(target);\r\n var isDropDown = $target.is(\".dx-dropdownlist-popup-wrapper *, .dx-dropdownlist-popup-wrapper\");\r\n var isContentEditable = (null === target || void 0 === target ? void 0 : target.isContentEditable) || (null === target || void 0 === target ? void 0 : target.hasAttribute(\"contenteditable\"));\r\n var touchInEditable = $target.is(\"input, textarea, select\") || isContentEditable;\r\n if ($target.is(\".dx-skip-gesture-event *, .dx-skip-gesture-event\") && !isDropDown) {\r\n return true\r\n }\r\n if (isDxMouseWheelEvent(e)) {\r\n var isTextArea = $target.is(\"textarea\") && $target.hasClass(\"dx-texteditor-input\");\r\n if (isTextArea || isContentEditable) {\r\n return false\r\n }\r\n var isInputFocused = $target.is(\"input[type='number'], textarea, select\") && $target.is(\":focus\");\r\n return isInputFocused\r\n }\r\n if (isMouseEvent(e)) {\r\n return touchInEditable || e.which > 1\r\n }\r\n if (isTouchEvent(e)) {\r\n return touchInEditable && focused($target)\r\n }\r\n};\r\nexport var setEventFixMethod = func => fixMethod = func;\r\nexport var createEvent = (originalEvent, args) => {\r\n var event = copyEvent(originalEvent);\r\n args && extend(event, args);\r\n return event\r\n};\r\nexport var fireEvent = props => {\r\n var {\r\n originalEvent: originalEvent,\r\n delegateTarget: delegateTarget\r\n } = props;\r\n var event = createEvent(originalEvent, props);\r\n eventsEngine.trigger(delegateTarget || event.target, event);\r\n return event\r\n};\r\nexport var normalizeKeyName = _ref4 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref4;\r\n var isKeySupported = !!key;\r\n key = isKeySupported ? key : which;\r\n if (key) {\r\n if (isKeySupported) {\r\n key = KEY_MAP[key.toLowerCase()] || key\r\n } else {\r\n key = LEGACY_KEY_CODES[key] || String.fromCharCode(key)\r\n }\r\n return key\r\n }\r\n};\r\nexport var getChar = _ref5 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref5;\r\n return key || String.fromCharCode(which)\r\n};\r\nexport var addNamespace = mappedAddNamespace;\r\nexport var isCommandKeyPressed = _ref6 => {\r\n var {\r\n ctrlKey: ctrlKey,\r\n metaKey: metaKey\r\n } = _ref6;\r\n return ctrlKey || metaKey\r\n};\r\n","/**\n * lodash 3.0.3 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && objectToString.call(value) == boolTag);\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 * @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\nmodule.exports = isBoolean;\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\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","/**\r\n * DevExtreme (esm/core/utils/dependency_injector.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport Class from \"../class\";\r\nexport default function(object) {\r\n var BaseClass = Class.inherit(object);\r\n var InjectedClass = BaseClass;\r\n var instance = new InjectedClass(object);\r\n var initialFields = {};\r\n var injectFields = function(injectionObject, initial) {\r\n each(injectionObject, (function(key) {\r\n if (isFunction(instance[key])) {\r\n if (initial || !object[key]) {\r\n object[key] = function() {\r\n return instance[key].apply(object, arguments)\r\n }\r\n }\r\n } else {\r\n if (initial) {\r\n initialFields[key] = object[key]\r\n }\r\n object[key] = instance[key]\r\n }\r\n }))\r\n };\r\n injectFields(object, true);\r\n object.inject = function(injectionObject) {\r\n InjectedClass = InjectedClass.inherit(injectionObject);\r\n instance = new InjectedClass;\r\n injectFields(injectionObject)\r\n };\r\n object.resetInjection = function() {\r\n extend(object, initialFields);\r\n InjectedClass = BaseClass;\r\n instance = new BaseClass\r\n };\r\n return object\r\n}\r\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\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 $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","/**\r\n * DevExtreme (esm/ui/button.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n render\r\n} from \"./widget/utils.ink_ripple\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n isMaterial,\r\n current\r\n} from \"./themes\";\r\nimport Action from \"../core/action\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport {\r\n active as activeEvents,\r\n click as clickEvent,\r\n dxClick as dxClickEvent\r\n} from \"../events/short\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../core/templates/function_template\";\r\nimport {\r\n getImageContainer,\r\n getImageSourceType\r\n} from \"../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nclass Button extends Widget {\r\n constructor() {\r\n super(...arguments);\r\n this._feedbackHideTimeout = 100\r\n }\r\n _$content() {\r\n return this.$element().find(\".dx-button-content\")\r\n }\r\n _$submitInput() {\r\n return this.$element().find(\".dx-button-submit-input\")\r\n }\r\n _attachActiveEvents(active, inactive) {\r\n var $el = this._eventBindingTarget();\r\n var selector = this._activeStateUnit;\r\n activeEvents.off($el, {\r\n namespace: \"inkRipple\",\r\n selector: selector\r\n });\r\n activeEvents.on($el, new Action(active), new Action(inactive, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }), {\r\n showTimeout: this._feedbackShowTimeout,\r\n hideTimeout: this._feedbackHideTimeout,\r\n selector: selector,\r\n namespace: \"inkRipple\"\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: () => isMaterial(current()),\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n }\r\n _executeClickAction(event) {\r\n this._clickAction({\r\n validationGroup: this._validationGroupConfig,\r\n event: event\r\n })\r\n }\r\n _findGroup() {\r\n var $element = this.$element();\r\n var model = this._modelByElement($element);\r\n var {\r\n validationGroup: validationGroup\r\n } = this.option();\r\n return validationGroup || ValidationEngine.findGroup($element, model)\r\n }\r\n _getContentData() {\r\n var {\r\n icon: icon,\r\n text: text,\r\n type: type,\r\n _templateData: _templateData\r\n } = this.option();\r\n return extend({\r\n icon: \"back\" === type && !icon ? \"back\" : icon,\r\n text: text\r\n }, _templateData)\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n hoverStateEnabled: true,\r\n onClick: null,\r\n type: \"normal\",\r\n text: \"\",\r\n icon: \"\",\r\n iconPosition: \"left\",\r\n validationGroup: void 0,\r\n activeStateEnabled: true,\r\n template: \"content\",\r\n useSubmitBehavior: false,\r\n useInkRipple: false,\r\n _templateData: {},\r\n stylingMode: \"contained\"\r\n })\r\n }\r\n _getSubmitAction() {\r\n var needValidate = true;\r\n var validationStatus = \"valid\";\r\n return this._createAction(_ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n if (needValidate) {\r\n var validationGroup = this._validationGroupConfig;\r\n if (validationGroup) {\r\n var {\r\n status: status,\r\n complete: complete\r\n } = validationGroup.validate();\r\n validationStatus = status;\r\n if (\"pending\" === status) {\r\n needValidate = false;\r\n this.option(\"disabled\", true);\r\n complete.then(_ref2 => {\r\n var {\r\n status: status\r\n } = _ref2;\r\n this.option(\"disabled\", false);\r\n validationStatus = status;\r\n \"valid\" === validationStatus && this._submitInput().click();\r\n needValidate = true\r\n })\r\n }\r\n }\r\n }\r\n \"valid\" !== validationStatus && event.preventDefault();\r\n event.stopPropagation()\r\n })\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(\"dx-button\");\r\n this._renderType();\r\n this._renderStylingMode();\r\n this._renderInkRipple();\r\n this._renderClick();\r\n this._updateAriaLabel();\r\n super._initMarkup();\r\n this._updateContent();\r\n this.setAria(\"role\", \"button\")\r\n }\r\n _getAnonymousTemplateName() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n }\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new FunctionTemplate(_ref3 => {\r\n var {\r\n model: model = {},\r\n container: container\r\n } = _ref3;\r\n var {\r\n text: text,\r\n icon: icon\r\n } = model;\r\n var {\r\n iconPosition: iconPosition\r\n } = this.option();\r\n var $icon = getImageContainer(icon);\r\n var $textContainer = text && $(\"\").text(text).addClass(\"dx-button-text\");\r\n var $container = $(container);\r\n $container.append($textContainer);\r\n if (\"left\" === iconPosition) {\r\n $container.prepend($icon)\r\n } else {\r\n $icon.addClass(\"dx-icon-right\");\r\n $container.append($icon)\r\n }\r\n })\r\n });\r\n super._initTemplates()\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"onClick\":\r\n this._updateClick();\r\n break;\r\n case \"icon\":\r\n case \"text\":\r\n this._updateContent();\r\n this._updateAriaLabel();\r\n break;\r\n case \"type\":\r\n this._updateType();\r\n this._updateContent();\r\n break;\r\n case \"_templateData\":\r\n break;\r\n case \"template\":\r\n case \"iconPosition\":\r\n this._updateContent();\r\n break;\r\n case \"stylingMode\":\r\n this._updateStylingMode();\r\n break;\r\n case \"useSubmitBehavior\":\r\n this._updateSubmitInput();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderClick() {\r\n var $el = this.$element();\r\n dxClickEvent.off($el, {\r\n namespace: this.NAME\r\n });\r\n dxClickEvent.on($el, event => this._executeClickAction(event), {\r\n namespace: this.NAME\r\n });\r\n this._updateClick()\r\n }\r\n _renderInkRipple() {\r\n var {\r\n text: text,\r\n icon: icon,\r\n type: type,\r\n useInkRipple: useInkRipple\r\n } = this.option();\r\n if (useInkRipple) {\r\n var isOnlyIconButton = !text && icon || \"back\" === type;\r\n var _inkRipple = render(isOnlyIconButton ? {\r\n waveSizeCoefficient: 1,\r\n useHoldAnimation: false,\r\n isCentered: true\r\n } : {});\r\n var changeWaveVisibility = (event, visible) => {\r\n var {\r\n activeStateEnabled: activeStateEnabled,\r\n useInkRipple: useInkRipple\r\n } = this.option();\r\n if (useInkRipple && activeStateEnabled && !this._disposed) {\r\n var config = {\r\n element: this._$content(),\r\n event: event\r\n };\r\n visible ? _inkRipple.showWave(config) : _inkRipple.hideWave(config)\r\n }\r\n };\r\n this._attachActiveEvents(_ref4 => {\r\n var {\r\n event: event\r\n } = _ref4;\r\n return changeWaveVisibility(event, true)\r\n }, _ref5 => {\r\n var {\r\n event: event\r\n } = _ref5;\r\n return changeWaveVisibility(event)\r\n })\r\n }\r\n }\r\n _renderStylingMode() {\r\n var $element = this.$element();\r\n var {\r\n stylingMode: stylingMode\r\n } = this.option();\r\n if (-1 === [\"contained\", \"text\", \"outlined\"].indexOf(stylingMode)) {\r\n stylingMode = this._getDefaultOptions().stylingMode\r\n }\r\n $element.addClass(\"dx-button-mode-\".concat(stylingMode))\r\n }\r\n _renderSubmitInput() {\r\n var {\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.option();\r\n if (useSubmitBehavior) {\r\n var submitAction = this._getSubmitAction();\r\n var $content = this._$content();\r\n $(\"\").attr(\"type\", \"submit\").attr(\"tabindex\", -1).addClass(\"dx-button-submit-input\").appendTo($content);\r\n clickEvent.on(this._$submitInput(), event => submitAction({\r\n event: event\r\n }))\r\n }\r\n }\r\n _renderType() {\r\n var {\r\n type: type\r\n } = this.option();\r\n var $element = this.$element();\r\n type && $element.addClass(\"dx-button-\".concat(type))\r\n }\r\n _submitInput() {\r\n return this._$submitInput().get(0)\r\n }\r\n _supportedKeys() {\r\n var click = e => {\r\n e.preventDefault();\r\n this._executeClickAction(e)\r\n };\r\n return extend(super._supportedKeys(), {\r\n space: click,\r\n enter: click\r\n })\r\n }\r\n _updateAriaLabel() {\r\n var ariaTarget = this._getAriaTarget();\r\n var {\r\n icon: icon,\r\n text: text\r\n } = this.option();\r\n if (!text) {\r\n if (\"image\" === getImageSourceType(icon)) {\r\n icon = -1 === icon.indexOf(\"base64\") ? icon.replace(/.+\\/([^.]+)\\..+$/, \"$1\") : \"Base64\"\r\n }\r\n text = icon || \"\"\r\n }\r\n ariaTarget.attr(\"aria-label\", text || null)\r\n }\r\n _updateClick() {\r\n this._clickAction = this._createActionByOption(\"onClick\", {\r\n excludeValidators: [\"readOnly\"],\r\n afterExecute: () => {\r\n var {\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.option();\r\n useSubmitBehavior && setTimeout(() => this._submitInput().click())\r\n }\r\n })\r\n }\r\n _updateContent() {\r\n var $element = this.$element();\r\n var $content = this._$content();\r\n var data = this._getContentData();\r\n var {\r\n template: template,\r\n iconPosition: iconPosition\r\n } = this.option();\r\n var {\r\n icon: icon,\r\n text: text\r\n } = data;\r\n $content.length ? $content.empty() : $content = $(\"
\").addClass(\"dx-button-content\").appendTo($element);\r\n $element.toggleClass(\"dx-button-has-icon\", !!icon).toggleClass(\"dx-button-icon-right\", !!icon && \"left\" !== iconPosition).toggleClass(\"dx-button-has-text\", !!text);\r\n var $template = $(this._getTemplateByOption(\"template\").render({\r\n model: data,\r\n container: getPublicElement($content),\r\n transclude: this._templateManager.anonymousTemplateName === template\r\n }));\r\n if ($template.hasClass(\"dx-template-wrapper\")) {\r\n $template.addClass(\"dx-button-content\");\r\n $content.replaceWith($template)\r\n }\r\n this._updateSubmitInput()\r\n }\r\n _updateSubmitInput() {\r\n var {\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.option();\r\n var $submitInput = this._$submitInput();\r\n if (!useSubmitBehavior && $submitInput.length) {\r\n $submitInput.remove()\r\n } else if (useSubmitBehavior && !$submitInput.length) {\r\n this._renderSubmitInput()\r\n }\r\n }\r\n _updateStylingMode() {\r\n var $element = this.$element();\r\n [\"contained\", \"text\", \"outlined\"].map(mode => \"dx-button-mode-\".concat(mode)).forEach(className => {\r\n $element.removeClass(className)\r\n });\r\n this._renderStylingMode()\r\n }\r\n _updateType() {\r\n var $element = this.$element();\r\n [\"back\", \"danger\", \"default\", \"normal\", \"success\"].map(type => \"dx-button-\".concat(type)).forEach(className => {\r\n $element.removeClass(className)\r\n });\r\n this._renderType()\r\n }\r\n get _validationGroupConfig() {\r\n return ValidationEngine.getGroupConfig(this._findGroup())\r\n }\r\n}\r\nregisterComponent(\"dxButton\", Button);\r\nexport default Button;\r\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","/**\r\n * DevExtreme (esm/core/component_registrator_callbacks.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/component_registrator.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport callbacks from \"./component_registrator_callbacks\";\r\nimport errors from \"./errors\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nvar registerComponent = function(name, namespace, componentClass) {\r\n if (!componentClass) {\r\n componentClass = namespace\r\n } else {\r\n namespace[name] = componentClass\r\n }\r\n publicComponentName(componentClass, name);\r\n callbacks.fire(name, componentClass)\r\n};\r\nvar registerRendererComponent = function(name, componentClass) {\r\n $.fn[name] = function(options) {\r\n var isMemberInvoke = \"string\" === typeof options;\r\n var result;\r\n if (isMemberInvoke) {\r\n var memberName = options;\r\n var memberArgs = [].slice.call(arguments).slice(1);\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (!instance) {\r\n throw errors.Error(\"E0009\", name)\r\n }\r\n var member = instance[memberName];\r\n var memberValue = member.apply(instance, memberArgs);\r\n if (void 0 === result) {\r\n result = memberValue\r\n }\r\n }))\r\n } else {\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (instance) {\r\n instance.option(options)\r\n } else {\r\n new componentClass(this, options)\r\n }\r\n }));\r\n result = this\r\n }\r\n return result\r\n }\r\n};\r\ncallbacks.add(registerRendererComponent);\r\nexport default registerComponent;\r\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/**\r\n * DevExtreme (esm/data/array_query.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n errors,\r\n handleError as handleDataError\r\n} from \"./errors\";\r\nimport {\r\n aggregators,\r\n isGroupCriterion,\r\n isUnaryOperation,\r\n normalizeBinaryCriterion,\r\n isConjunctiveOperator as isConjunctiveOperatorChecker\r\n} from \"./utils\";\r\nvar Iterator = Class.inherit({\r\n toArray: function() {\r\n var result = [];\r\n this.reset();\r\n while (this.next()) {\r\n result.push(this.current())\r\n }\r\n return result\r\n },\r\n countable: function() {\r\n return false\r\n }\r\n});\r\nvar ArrayIterator = Iterator.inherit({\r\n ctor: function(array) {\r\n this.array = array;\r\n this.index = -1\r\n },\r\n next: function() {\r\n if (this.index + 1 < this.array.length) {\r\n this.index++;\r\n return true\r\n }\r\n return false\r\n },\r\n current: function() {\r\n return this.array[this.index]\r\n },\r\n reset: function() {\r\n this.index = -1\r\n },\r\n toArray: function() {\r\n return this.array.slice(0)\r\n },\r\n countable: function() {\r\n return true\r\n },\r\n count: function() {\r\n return this.array.length\r\n }\r\n});\r\nvar WrappedIterator = Iterator.inherit({\r\n ctor: function(iter) {\r\n this.iter = iter\r\n },\r\n next: function() {\r\n return this.iter.next()\r\n },\r\n current: function() {\r\n return this.iter.current()\r\n },\r\n reset: function() {\r\n return this.iter.reset()\r\n }\r\n});\r\nvar MapIterator = WrappedIterator.inherit({\r\n ctor: function(iter, mapper) {\r\n this.callBase(iter);\r\n this.index = -1;\r\n this.mapper = mapper\r\n },\r\n current: function() {\r\n return this.mapper(this.callBase(), this.index)\r\n },\r\n next: function() {\r\n var hasNext = this.callBase();\r\n if (hasNext) {\r\n this.index++\r\n }\r\n return hasNext\r\n }\r\n});\r\nvar defaultCompare = function(xValue, yValue) {\r\n xValue = toComparable(xValue);\r\n yValue = toComparable(yValue);\r\n if (null === xValue && null !== yValue) {\r\n return -1\r\n }\r\n if (null !== xValue && null === yValue) {\r\n return 1\r\n }\r\n if (void 0 === xValue && void 0 !== yValue) {\r\n return 1\r\n }\r\n if (void 0 !== xValue && void 0 === yValue) {\r\n return -1\r\n }\r\n if (xValue < yValue) {\r\n return -1\r\n }\r\n if (xValue > yValue) {\r\n return 1\r\n }\r\n return 0\r\n};\r\nvar SortIterator = Iterator.inherit({\r\n ctor: function(iter, getter, desc, compare) {\r\n if (!(iter instanceof MapIterator)) {\r\n iter = new MapIterator(iter, this._wrap)\r\n }\r\n this.iter = iter;\r\n this.rules = [{\r\n getter: getter,\r\n desc: desc,\r\n compare: compare\r\n }]\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n var result = new SortIterator(this.sortedIter || this.iter, getter, desc, compare);\r\n if (!this.sortedIter) {\r\n result.rules = this.rules.concat(result.rules)\r\n }\r\n return result\r\n },\r\n next: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.next()\r\n },\r\n current: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.current()\r\n },\r\n reset: function() {\r\n delete this.sortedIter\r\n },\r\n countable: function() {\r\n return this.sortedIter || this.iter.countable()\r\n },\r\n count: function() {\r\n if (this.sortedIter) {\r\n return this.sortedIter.count()\r\n }\r\n return this.iter.count()\r\n },\r\n _ensureSorted: function() {\r\n var that = this;\r\n if (that.sortedIter) {\r\n return\r\n }\r\n each(that.rules, (function() {\r\n this.getter = compileGetter(this.getter)\r\n }));\r\n that.sortedIter = new MapIterator(new ArrayIterator(this.iter.toArray().sort((function(x, y) {\r\n return that._compare(x, y)\r\n }))), that._unwrap)\r\n },\r\n _wrap: function(record, index) {\r\n return {\r\n index: index,\r\n value: record\r\n }\r\n },\r\n _unwrap: function(wrappedItem) {\r\n return wrappedItem.value\r\n },\r\n _compare: function(x, y) {\r\n var xIndex = x.index;\r\n var yIndex = y.index;\r\n x = x.value;\r\n y = y.value;\r\n if (x === y) {\r\n return xIndex - yIndex\r\n }\r\n for (var i = 0, rulesCount = this.rules.length; i < rulesCount; i++) {\r\n var rule = this.rules[i];\r\n var xValue = rule.getter(x);\r\n var yValue = rule.getter(y);\r\n var compare = rule.compare || defaultCompare;\r\n var compareResult = compare(xValue, yValue);\r\n if (compareResult) {\r\n return rule.desc ? -compareResult : compareResult\r\n }\r\n }\r\n return xIndex - yIndex\r\n }\r\n});\r\nvar compileCriteria = function() {\r\n var toString = function(value) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n };\r\n\r\n function compileEquals(getter, value, negate) {\r\n return function(obj) {\r\n obj = toComparable(getter(obj));\r\n var result = function(value) {\r\n return \"\" === value || 0 === value || false === value\r\n }(value) ? obj === value : obj == value;\r\n if (negate) {\r\n result = !result\r\n }\r\n return result\r\n }\r\n }\r\n return function(crit) {\r\n if (isFunction(crit)) {\r\n return crit\r\n }\r\n if (isGroupCriterion(crit)) {\r\n return function(crit) {\r\n var ops = [];\r\n var isConjunctiveOperator = false;\r\n var isConjunctiveNextOperator = false;\r\n each(crit, (function() {\r\n if (Array.isArray(this) || isFunction(this)) {\r\n if (ops.length > 1 && isConjunctiveOperator !== isConjunctiveNextOperator) {\r\n throw new errors.Error(\"E4019\")\r\n }\r\n ops.push(compileCriteria(this));\r\n isConjunctiveOperator = isConjunctiveNextOperator;\r\n isConjunctiveNextOperator = true\r\n } else {\r\n isConjunctiveNextOperator = isConjunctiveOperatorChecker(this)\r\n }\r\n }));\r\n return function(d) {\r\n var result = isConjunctiveOperator;\r\n for (var i = 0; i < ops.length; i++) {\r\n if (ops[i](d) !== isConjunctiveOperator) {\r\n result = !isConjunctiveOperator;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n }(crit)\r\n }\r\n if (isUnaryOperation(crit)) {\r\n return function(crit) {\r\n var op = crit[0];\r\n var criteria = compileCriteria(crit[1]);\r\n if (\"!\" === op) {\r\n return function(obj) {\r\n return !criteria(obj)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n return function(crit) {\r\n crit = normalizeBinaryCriterion(crit);\r\n var getter = compileGetter(crit[0]);\r\n var op = crit[1];\r\n var value = crit[2];\r\n value = toComparable(value);\r\n switch (op.toLowerCase()) {\r\n case \"=\":\r\n return compileEquals(getter, value);\r\n case \"<>\":\r\n return compileEquals(getter, value, true);\r\n case \">\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) > value\r\n };\r\n case \"<\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) < value\r\n };\r\n case \">=\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) >= value\r\n };\r\n case \"<=\":\r\n return function(obj) {\r\n return toComparable(getter(obj)) <= value\r\n };\r\n case \"startswith\":\r\n return function(obj) {\r\n return 0 === toComparable(toString(getter(obj))).indexOf(value)\r\n };\r\n case \"endswith\":\r\n return function(obj) {\r\n var getterValue = toComparable(toString(getter(obj)));\r\n var searchValue = toString(value);\r\n if (getterValue.length < searchValue.length) {\r\n return false\r\n }\r\n var index = getterValue.lastIndexOf(value);\r\n return -1 !== index && index === getterValue.length - value.length\r\n };\r\n case \"contains\":\r\n return function(obj) {\r\n return toComparable(toString(getter(obj))).indexOf(value) > -1\r\n };\r\n case \"notcontains\":\r\n return function(obj) {\r\n return -1 === toComparable(toString(getter(obj))).indexOf(value)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n}();\r\nvar FilterIterator = WrappedIterator.inherit({\r\n ctor: function(iter, criteria) {\r\n this.callBase(iter);\r\n this.criteria = compileCriteria(criteria)\r\n },\r\n next: function() {\r\n while (this.iter.next()) {\r\n if (this.criteria(this.current())) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n});\r\nvar GroupIterator = Iterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.iter = iter;\r\n this.getter = getter\r\n },\r\n next: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.next()\r\n },\r\n current: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.current()\r\n },\r\n reset: function() {\r\n delete this.groupedIter\r\n },\r\n countable: function() {\r\n return !!this.groupedIter\r\n },\r\n count: function() {\r\n return this.groupedIter.count()\r\n },\r\n _ensureGrouped: function() {\r\n if (this.groupedIter) {\r\n return\r\n }\r\n var hash = {};\r\n var keys = [];\r\n var iter = this.iter;\r\n var getter = compileGetter(this.getter);\r\n iter.reset();\r\n while (iter.next()) {\r\n var current = iter.current();\r\n var key = getter(current);\r\n if (key in hash) {\r\n hash[key].push(current)\r\n } else {\r\n hash[key] = [current];\r\n keys.push(key)\r\n }\r\n }\r\n this.groupedIter = new ArrayIterator(map(keys, (function(key) {\r\n return {\r\n key: key,\r\n items: hash[key]\r\n }\r\n })))\r\n }\r\n});\r\nvar SelectIterator = WrappedIterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.callBase(iter);\r\n this.getter = compileGetter(getter)\r\n },\r\n current: function() {\r\n return this.getter(this.callBase())\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return this.iter.count()\r\n }\r\n});\r\nvar SliceIterator = WrappedIterator.inherit({\r\n ctor: function(iter, skip, take) {\r\n this.callBase(iter);\r\n this.skip = Math.max(0, skip);\r\n this.take = Math.max(0, take);\r\n this.pos = 0\r\n },\r\n next: function() {\r\n if (this.pos >= this.skip + this.take) {\r\n return false\r\n }\r\n while (this.pos < this.skip && this.iter.next()) {\r\n this.pos++\r\n }\r\n this.pos++;\r\n return this.iter.next()\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this.pos = 0\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return Math.min(this.iter.count() - this.skip, this.take)\r\n }\r\n});\r\nvar arrayQueryImpl = function arrayQueryImpl(iter, queryOptions) {\r\n queryOptions = queryOptions || {};\r\n if (!(iter instanceof Iterator)) {\r\n iter = new ArrayIterator(iter)\r\n }\r\n var handleError = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleDataError(error)\r\n };\r\n var aggregateCore = function(aggregator) {\r\n var d = (new Deferred).fail(handleError);\r\n var seed;\r\n var step = aggregator.step;\r\n var finalize = aggregator.finalize;\r\n try {\r\n iter.reset();\r\n if (\"seed\" in aggregator) {\r\n seed = aggregator.seed\r\n } else {\r\n seed = iter.next() ? iter.current() : NaN\r\n }\r\n var accumulator = seed;\r\n while (iter.next()) {\r\n accumulator = step(accumulator, iter.current())\r\n }\r\n d.resolve(finalize ? finalize(accumulator) : accumulator)\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n };\r\n var standardAggregate = function(name) {\r\n return aggregateCore(aggregators[name])\r\n };\r\n var select = function(getter) {\r\n if (!isFunction(getter) && !Array.isArray(getter)) {\r\n getter = [].slice.call(arguments)\r\n }\r\n return chainQuery(new SelectIterator(iter, getter))\r\n };\r\n var selectProp = function(name) {\r\n return select(compileGetter(name))\r\n };\r\n\r\n function chainQuery(iter) {\r\n return arrayQueryImpl(iter, queryOptions)\r\n }\r\n return {\r\n toArray: function() {\r\n return iter.toArray()\r\n },\r\n enumerate: function() {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.toArray())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n },\r\n sortBy: function(getter, desc, compare) {\r\n return chainQuery(new SortIterator(iter, getter, desc, compare))\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n if (iter instanceof SortIterator) {\r\n return chainQuery(iter.thenBy(getter, desc, compare))\r\n }\r\n throw errors.Error(\"E4004\")\r\n },\r\n filter: function(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n criteria = [].slice.call(arguments)\r\n }\r\n return chainQuery(new FilterIterator(iter, criteria))\r\n },\r\n slice: function(skip, take) {\r\n if (void 0 === take) {\r\n take = Number.MAX_VALUE\r\n }\r\n return chainQuery(new SliceIterator(iter, skip, take))\r\n },\r\n select: select,\r\n groupBy: function(getter) {\r\n return chainQuery(new GroupIterator(iter, getter))\r\n },\r\n aggregate: function(seed, step, finalize) {\r\n if (arguments.length < 2) {\r\n return aggregateCore({\r\n step: arguments[0]\r\n })\r\n }\r\n return aggregateCore({\r\n seed: seed,\r\n step: step,\r\n finalize: finalize\r\n })\r\n },\r\n count: function() {\r\n if (iter.countable()) {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.count())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n }\r\n return standardAggregate(\"count\")\r\n },\r\n sum: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).sum()\r\n }\r\n return standardAggregate(\"sum\")\r\n },\r\n min: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).min()\r\n }\r\n return standardAggregate(\"min\")\r\n },\r\n max: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).max()\r\n }\r\n return standardAggregate(\"max\")\r\n },\r\n avg: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).avg()\r\n }\r\n return standardAggregate(\"avg\")\r\n }\r\n }\r\n};\r\nexport default arrayQueryImpl;\r\n","module.exports = require('./lib/_stream_duplex.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","/**\r\n * DevExtreme (esm/core/utils/object.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric,\r\n isPlainObject,\r\n isObject\r\n} from \"./type\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar clone = function() {\r\n function Clone() {}\r\n return function(obj) {\r\n Clone.prototype = obj;\r\n return new Clone\r\n }\r\n}();\r\nvar orderEach = function(map, func) {\r\n var keys = [];\r\n var key;\r\n var i;\r\n for (key in map) {\r\n if (Object.prototype.hasOwnProperty.call(map, key)) {\r\n keys.push(key)\r\n }\r\n }\r\n keys.sort((function(x, y) {\r\n var isNumberX = isNumeric(x);\r\n var isNumberY = isNumeric(y);\r\n if (isNumberX && isNumberY) {\r\n return x - y\r\n }\r\n if (isNumberX && !isNumberY) {\r\n return -1\r\n }\r\n if (!isNumberX && isNumberY) {\r\n return 1\r\n }\r\n if (x < y) {\r\n return -1\r\n }\r\n if (x > y) {\r\n return 1\r\n }\r\n return 0\r\n }));\r\n for (i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n func(key, map[key])\r\n }\r\n};\r\nvar assignValueToProperty = function(target, property, value, assignByReference) {\r\n if (!assignByReference && variableWrapper.isWrapped(target[property])) {\r\n variableWrapper.assign(target[property], value)\r\n } else {\r\n target[property] = value\r\n }\r\n};\r\nvar deepExtendArraySafe = function deepExtendArraySafe(target, changes, extendComplexObject, assignByReference) {\r\n var prevValue;\r\n var newValue;\r\n for (var name in changes) {\r\n prevValue = target[name];\r\n newValue = changes[name];\r\n if (\"__proto__\" === name || \"constructor\" === name || target === newValue) {\r\n continue\r\n }\r\n if (isPlainObject(newValue)) {\r\n var goDeeper = extendComplexObject ? isObject(prevValue) : isPlainObject(prevValue);\r\n newValue = deepExtendArraySafe(goDeeper ? prevValue : {}, newValue, extendComplexObject, assignByReference)\r\n }\r\n if (void 0 !== newValue && prevValue !== newValue) {\r\n assignValueToProperty(target, name, newValue, assignByReference)\r\n }\r\n }\r\n return target\r\n};\r\nexport {\r\n clone,\r\n orderEach,\r\n deepExtendArraySafe\r\n};\r\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","/**\r\n * DevExtreme (esm/core/templates/empty_template.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class EmptyTemplate extends TemplateBase {\r\n _renderCore() {\r\n return $()\r\n }\r\n}\r\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.base.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n findTemplates\r\n} from \"../../core/utils/template_manager\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport Action from \"../../core/action\";\r\nimport Guid from \"../../core/guid\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport CollectionWidgetItem from \"./item\";\r\nimport {\r\n focusable\r\n} from \"../widget/selectors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nvar COLLECTION_CLASS = \"dx-collection\";\r\nvar ITEM_CLASS = \"dx-item\";\r\nvar CONTENT_CLASS_POSTFIX = \"-content\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar ITEM_DATA_KEY = \"dxItemData\";\r\nvar ITEM_INDEX_KEY = \"dxItemIndex\";\r\nvar ITEM_TEMPLATE_ID_PREFIX = \"tmpl-\";\r\nvar ITEMS_OPTIONS_NAME = \"dxItem\";\r\nvar SELECTED_ITEM_CLASS = \"dx-item-selected\";\r\nvar ITEM_RESPONSE_WAIT_CLASS = \"dx-item-response-wait\";\r\nvar EMPTY_COLLECTION = \"dx-empty-collection\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar ITEM_PATH_REGEX = /^([^.]+\\[\\d+\\]\\.)+([\\w.]+)$/;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"item\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_PAGE_UP = \"pageup\";\r\nvar FOCUS_PAGE_DOWN = \"pagedown\";\r\nvar FOCUS_LAST = \"last\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar CollectionWidget = Widget.inherit({\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _supportedKeys: function() {\r\n var enter = function(e) {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n this._itemClickHandler(extend({}, e, {\r\n target: $itemElement.get(0),\r\n currentTarget: $itemElement.get(0)\r\n }))\r\n };\r\n var move = function(location, e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._moveFocus(location, e)\r\n }\r\n };\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n enter.call(this, e)\r\n },\r\n enter: enter,\r\n leftArrow: move.bind(this, FOCUS_LEFT),\r\n rightArrow: move.bind(this, FOCUS_RIGHT),\r\n upArrow: move.bind(this, FOCUS_UP),\r\n downArrow: move.bind(this, FOCUS_DOWN),\r\n pageUp: move.bind(this, FOCUS_UP),\r\n pageDown: move.bind(this, FOCUS_DOWN),\r\n home: move.bind(this, FOCUS_FIRST),\r\n end: move.bind(this, FOCUS_LAST)\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectOnFocus: false,\r\n loopItemFocus: true,\r\n items: [],\r\n itemTemplate: \"item\",\r\n onItemRendered: null,\r\n onItemClick: null,\r\n onItemHold: null,\r\n itemHoldTimeout: 750,\r\n onItemContextMenu: null,\r\n onFocusedItemChanged: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n dataSource: null,\r\n _itemAttributes: {},\r\n itemTemplateProperty: \"template\",\r\n focusOnSelectedItem: true,\r\n focusedElement: null,\r\n displayExpr: void 0,\r\n disabledExpr: function(data) {\r\n return data ? data.disabled : void 0\r\n },\r\n visibleExpr: function(data) {\r\n return data ? data.visible : void 0\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this._compileDisplayGetter();\r\n this.callBase();\r\n this._cleanRenderedItems();\r\n this._refreshDataSource()\r\n },\r\n _compileDisplayGetter: function() {\r\n var displayExpr = this.option(\"displayExpr\");\r\n this._displayGetter = displayExpr ? compileGetter(this.option(\"displayExpr\")) : void 0\r\n },\r\n _initTemplates: function() {\r\n this._initItemsFromMarkup();\r\n this._initDefaultItemTemplate();\r\n this.callBase()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initDefaultItemTemplate: function() {\r\n var fieldsMap = this._getFieldsMap();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n if (fieldsMap && isFunction(fieldsMap.text)) {\r\n data = fieldsMap.text(data)\r\n }\r\n $container.text(String(ensureDefined(data, \"\")))\r\n }\r\n }.bind(this), this._getBindableFields(), this.option(\"integrationOptions.watchMethod\"), fieldsMap)\r\n })\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\"]\r\n },\r\n _getFieldsMap: function() {\r\n if (this._displayGetter) {\r\n return {\r\n text: this._displayGetter\r\n }\r\n }\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n if (isDefined(data.text)) {\r\n $container.text(data.text)\r\n }\r\n if (isDefined(data.html)) {\r\n $container.html(data.html)\r\n }\r\n },\r\n _initItemsFromMarkup: function() {\r\n var rawItems = findTemplates(this.$element(), ITEMS_OPTIONS_NAME);\r\n if (!rawItems.length || this.option(\"items\").length) {\r\n return\r\n }\r\n var items = rawItems.map(_ref => {\r\n var {\r\n element: element,\r\n options: options\r\n } = _ref;\r\n var isTemplateRequired = /\\S/.test(element.innerHTML) && !options.template;\r\n if (isTemplateRequired) {\r\n options.template = this._prepareItemTemplate(element)\r\n } else {\r\n $(element).remove()\r\n }\r\n return options\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _prepareItemTemplate: function(item) {\r\n var templateId = ITEM_TEMPLATE_ID_PREFIX + new Guid;\r\n var $template = $(item).detach().clone().removeAttr(\"data-options\").addClass(TEMPLATE_WRAPPER_CLASS);\r\n this._saveTemplate(templateId, $template);\r\n return templateId\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _cleanRenderedItems: function() {\r\n this._renderedItemsCount = 0\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if (-1 === inArray(e.target, this._focusTarget())) {\r\n return\r\n }\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n this._setFocusedItem($focusedElement)\r\n } else {\r\n var $activeItem = this._getActiveItem();\r\n if ($activeItem.length) {\r\n this.option(\"focusedElement\", getPublicElement($activeItem))\r\n }\r\n }\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n var $target = $(this.option(\"focusedElement\"));\r\n this._updateFocusedItemState($target, false)\r\n },\r\n _getActiveItem: function(last) {\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n return $focusedElement\r\n }\r\n var index = this.option(\"focusOnSelectedItem\") ? this.option(\"selectedIndex\") : 0;\r\n var activeElements = this._getActiveElement();\r\n var lastIndex = activeElements.length - 1;\r\n if (index < 0) {\r\n index = last ? lastIndex : 0\r\n }\r\n return activeElements.eq(index)\r\n },\r\n _moveFocus: function(location) {\r\n var $items = this._getAvailableItems();\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_PAGE_UP:\r\n case FOCUS_UP:\r\n $newTarget = this._prevItem($items);\r\n break;\r\n case FOCUS_PAGE_DOWN:\r\n case FOCUS_DOWN:\r\n $newTarget = this._nextItem($items);\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._prevItem($items) : this._nextItem($items);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._nextItem($items) : this._prevItem($items);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n break;\r\n default:\r\n return false\r\n }\r\n if (0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n },\r\n _getVisibleItems: function($itemElements) {\r\n $itemElements = $itemElements || this._itemElements();\r\n return $itemElements.filter(\":visible\")\r\n },\r\n _getAvailableItems: function($itemElements) {\r\n return this._getVisibleItems($itemElements).not(\".dx-state-disabled\")\r\n },\r\n _prevItem: function($items) {\r\n var $target = this._getActiveItem();\r\n var targetIndex = $items.index($target);\r\n var $last = $items.last();\r\n var $item = $($items[targetIndex - 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $last\r\n }\r\n return $item\r\n },\r\n _nextItem: function($items) {\r\n var $target = this._getActiveItem(true);\r\n var targetIndex = $items.index($target);\r\n var $first = $items.first();\r\n var $item = $($items[targetIndex + 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $first\r\n }\r\n return $item\r\n },\r\n _selectFocusedItem: function($target) {\r\n this.selectItem($target)\r\n },\r\n _updateFocusedItemState: function(target, isFocused, needCleanItemId) {\r\n var $target = $(target);\r\n if ($target.length) {\r\n this._refreshActiveDescendant();\r\n this._refreshItemId($target, needCleanItemId);\r\n this._toggleFocusClass(isFocused, $target)\r\n }\r\n this._updateParentActiveDescendant()\r\n },\r\n _refreshActiveDescendant: function($target) {\r\n this.setAria(\"activedescendant\", isDefined(this.option(\"focusedElement\")) ? this.getFocusedItemId() : null, $target)\r\n },\r\n _refreshItemId: function($target, needCleanItemId) {\r\n if (!needCleanItemId && this.option(\"focusedElement\")) {\r\n this.setAria(\"id\", this.getFocusedItemId(), $target)\r\n } else {\r\n this.setAria(\"id\", null, $target)\r\n }\r\n },\r\n _setFocusedItem: function($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n this._updateFocusedItemState($target, true);\r\n this.onFocusedItemChanged(this.getFocusedItemId());\r\n if (this.option(\"selectOnFocus\")) {\r\n this._selectFocusedItem($target)\r\n }\r\n },\r\n _findItemElementByItem: function(item) {\r\n var result = $();\r\n var that = this;\r\n this.itemElements().each((function() {\r\n var $item = $(this);\r\n if ($item.data(that._itemDataKey()) === item) {\r\n result = $item;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n _getIndexByItem: function(item) {\r\n return this.option(\"items\").indexOf(item)\r\n },\r\n _itemOptionChanged: function(item, property, value, oldValue) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n if (!this.constructor.ItemClass.getInstance($item).setDataField(property, value)) {\r\n this._refreshItem($item, item)\r\n }\r\n var isDisabling = \"disabled\" === property && value;\r\n if (isDisabling) {\r\n this._resetItemFocus($item)\r\n }\r\n },\r\n _resetItemFocus($item) {\r\n if ($item.is(this.option(\"focusedElement\"))) {\r\n this.option(\"focusedElement\", null)\r\n }\r\n },\r\n _refreshItem: function($item) {\r\n var itemData = this._getItemData($item);\r\n var index = $item.data(this._itemIndexKey());\r\n this._renderItem(this._renderedItemsCount + index, itemData, null, $item)\r\n },\r\n _updateParentActiveDescendant: noop,\r\n _optionChanged: function(args) {\r\n if (\"items\" === args.name) {\r\n var matches = args.fullName.match(ITEM_PATH_REGEX);\r\n if (matches && matches.length) {\r\n var property = matches[matches.length - 1];\r\n var itemPath = args.fullName.replace(\".\" + property, \"\");\r\n var item = this.option(itemPath);\r\n this._itemOptionChanged(item, property, args.value, args.previousValue);\r\n return\r\n }\r\n }\r\n switch (args.name) {\r\n case \"items\":\r\n case \"_itemAttributes\":\r\n case \"itemTemplateProperty\":\r\n case \"useItemTextAsTitle\":\r\n this._cleanRenderedItems();\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n this._refreshDataSource();\r\n this._renderEmptyMessage();\r\n break;\r\n case \"noDataText\":\r\n this._renderEmptyMessage();\r\n break;\r\n case \"itemTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"onItemRendered\":\r\n this._createItemRenderAction();\r\n break;\r\n case \"onItemClick\":\r\n break;\r\n case \"onItemHold\":\r\n case \"itemHoldTimeout\":\r\n this._attachHoldEvent();\r\n break;\r\n case \"onItemContextMenu\":\r\n this._attachContextMenuEvent();\r\n break;\r\n case \"onFocusedItemChanged\":\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n break;\r\n case \"selectOnFocus\":\r\n case \"loopItemFocus\":\r\n case \"focusOnSelectedItem\":\r\n break;\r\n case \"focusedElement\":\r\n this._updateFocusedItemState(args.previousValue, false, true);\r\n this._setFocusedItem($(args.value));\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDefaultItemTemplate();\r\n this._invalidate();\r\n break;\r\n case \"visibleExpr\":\r\n case \"disabledExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _invalidate: function() {\r\n this.option(\"focusedElement\", null);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _loadNextPage: function() {\r\n var dataSource = this._dataSource;\r\n this._expectNextPageLoading();\r\n dataSource.pageIndex(1 + dataSource.pageIndex());\r\n return dataSource.load()\r\n },\r\n _expectNextPageLoading: function() {\r\n this._startIndexForAppendedItems = 0\r\n },\r\n _expectLastItemLoading: function() {\r\n this._startIndexForAppendedItems = -1\r\n },\r\n _forgetNextPageLoading: function() {\r\n this._startIndexForAppendedItems = null\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && items && this._shouldAppendItems()) {\r\n this._renderedItemsCount = items.length;\r\n if (!this._isLastPage() || -1 !== this._startIndexForAppendedItems) {\r\n this.option().items = items.concat(newItems.slice(this._startIndexForAppendedItems))\r\n }\r\n this._forgetNextPageLoading();\r\n this._refreshContent()\r\n } else {\r\n this.option(\"items\", newItems.slice())\r\n }\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n this.option(\"items\", this.option(\"items\"))\r\n },\r\n _shouldAppendItems: function() {\r\n return null != this._startIndexForAppendedItems && this._allowDynamicItemsAppend()\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return false\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n this._cleanItemContainer()\r\n },\r\n _cleanItemContainer: function() {\r\n $(this._itemContainer()).empty()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._itemFocusTimeout)\r\n },\r\n _refresh: function() {\r\n this._cleanRenderedItems();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemContainer: function() {\r\n return this.$element()\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemContentClass: function() {\r\n return this._itemClass() + CONTENT_CLASS_POSTFIX\r\n },\r\n _selectedItemClass: function() {\r\n return SELECTED_ITEM_CLASS\r\n },\r\n _itemResponseWaitClass: function() {\r\n return ITEM_RESPONSE_WAIT_CLASS\r\n },\r\n _itemSelector: function() {\r\n return \".\" + this._itemClass()\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _itemIndexKey: function() {\r\n return ITEM_INDEX_KEY\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().find(this._itemSelector())\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n this.$element().addClass(COLLECTION_CLASS);\r\n this._prepareContent()\r\n },\r\n _prepareContent: deferRenderer((function() {\r\n this._renderContentImpl()\r\n })),\r\n _renderContent: function() {\r\n this._fireContentReadyAction()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent()\r\n },\r\n _attachClickEvent: function() {\r\n var itemSelector = this._itemSelector();\r\n var clickEventNamespace = addNamespace(clickEventName, this.NAME);\r\n var pointerDownEventNamespace = addNamespace(pointerEvents.down, this.NAME);\r\n var that = this;\r\n var pointerDownAction = new Action((function(args) {\r\n var event = args.event;\r\n that._itemPointerDownHandler(event)\r\n }));\r\n eventsEngine.off(this._itemContainer(), clickEventNamespace, itemSelector);\r\n eventsEngine.off(this._itemContainer(), pointerDownEventNamespace, itemSelector);\r\n eventsEngine.on(this._itemContainer(), clickEventNamespace, itemSelector, function(e) {\r\n this._itemClickHandler(e)\r\n }.bind(this));\r\n eventsEngine.on(this._itemContainer(), pointerDownEventNamespace, itemSelector, (function(e) {\r\n pointerDownAction.execute({\r\n element: $(e.target),\r\n event: e\r\n })\r\n }))\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n this._itemDXEventHandler(e, \"onItemClick\", args, config)\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n this._itemFocusHandler = function() {\r\n clearTimeout(this._itemFocusTimeout);\r\n this._itemFocusHandler = null;\r\n if (e.isDefaultPrevented()) {\r\n return\r\n }\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n var $closestFocusable = this._closestFocusable($target);\r\n if ($closestItem.length && $closestFocusable && -1 !== inArray($closestFocusable.get(0), this._focusTarget())) {\r\n this.option(\"focusedElement\", getPublicElement($closestItem))\r\n }\r\n }.bind(this);\r\n this._itemFocusTimeout = setTimeout(this._forcePointerDownFocus.bind(this))\r\n },\r\n _closestFocusable: function($target) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n } else {\r\n $target = $target.parent();\r\n while ($target.length && !domAdapter.isDocument($target.get(0))) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n }\r\n $target = $target.parent()\r\n }\r\n }\r\n },\r\n _forcePointerDownFocus: function() {\r\n this._itemFocusHandler && this._itemFocusHandler()\r\n },\r\n _updateFocusState: function() {\r\n this.callBase.apply(this, arguments);\r\n this._forcePointerDownFocus()\r\n },\r\n _attachHoldEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(holdEvent.name, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, {\r\n timeout: this._getHoldTimeout()\r\n }, this._itemHoldHandler.bind(this))\r\n },\r\n _getHoldTimeout: function() {\r\n return this.option(\"itemHoldTimeout\")\r\n },\r\n _shouldFireHoldEvent: function() {\r\n return this.hasActionSubscription(\"onItemHold\")\r\n },\r\n _itemHoldHandler: function(e) {\r\n if (this._shouldFireHoldEvent()) {\r\n this._itemDXEventHandler(e, \"onItemHold\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _attachContextMenuEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, this._itemContextMenuHandler.bind(this))\r\n },\r\n _shouldFireContextMenuEvent: function() {\r\n return this.hasActionSubscription(\"onItemContextMenu\")\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n if (this._shouldFireContextMenuEvent()) {\r\n this._itemDXEventHandler(e, \"onItemContextMenu\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _renderContentImpl: function() {\r\n var items = this.option(\"items\") || [];\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (items.length) {\r\n each(items, function(index, itemData) {\r\n this._renderItem(this._renderedItemsCount + index, itemData)\r\n }.bind(this))\r\n }\r\n this._renderEmptyMessage()\r\n },\r\n _renderItem: function(index, itemData, $container, $itemToReplace) {\r\n $container = $container || this._itemContainer();\r\n var $itemFrame = this._renderItemFrame(index, itemData, $container, $itemToReplace);\r\n this._setElementData($itemFrame, itemData, index);\r\n $itemFrame.attr(this.option(\"_itemAttributes\"));\r\n this._attachItemClickEvent(itemData, $itemFrame);\r\n var $itemContent = this._getItemContent($itemFrame);\r\n var renderContentPromise = this._renderItemContent({\r\n index: index,\r\n itemData: itemData,\r\n container: getPublicElement($itemContent),\r\n contentClass: this._itemContentClass(),\r\n defaultTemplateName: this.option(\"itemTemplate\")\r\n });\r\n var that = this;\r\n when(renderContentPromise).done((function($itemContent) {\r\n that._postprocessRenderItem({\r\n itemElement: $itemFrame,\r\n itemContent: $itemContent,\r\n itemData: itemData,\r\n itemIndex: index\r\n });\r\n that._executeItemRenderAction(index, itemData, getPublicElement($itemFrame))\r\n }));\r\n return $itemFrame\r\n },\r\n _getItemContent: function($itemFrame) {\r\n var $itemContent = $itemFrame.find(\".\" + ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n $itemContent.removeClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n return $itemContent\r\n },\r\n _attachItemClickEvent: function(itemData, $itemElement) {\r\n if (!itemData || !itemData.onClick) {\r\n return\r\n }\r\n eventsEngine.on($itemElement, clickEventName, function(e) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _renderItemContent: function(args) {\r\n var itemTemplateName = this._getItemTemplateName(args);\r\n var itemTemplate = this._getTemplate(itemTemplateName);\r\n this._addItemContentClasses(args);\r\n var $templateResult = $(this._createItemByTemplate(itemTemplate, args));\r\n if (!$templateResult.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n return args.container\r\n }\r\n return this._renderItemContentByNode(args, $templateResult)\r\n },\r\n _renderItemContentByNode: function(args, $node) {\r\n $(args.container).replaceWith($node);\r\n args.container = getPublicElement($node);\r\n this._addItemContentClasses(args);\r\n return $node\r\n },\r\n _addItemContentClasses: function(args) {\r\n var classes = [ITEM_CLASS + CONTENT_CLASS_POSTFIX, args.contentClass];\r\n $(args.container).addClass(classes.join(\" \"))\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n $itemFrame.appendTo($container)\r\n },\r\n _renderItemFrame: function(index, itemData, $container, $itemToReplace) {\r\n var $itemFrame = $(\"
\");\r\n new this.constructor.ItemClass($itemFrame, this._itemOptions(), itemData || {});\r\n if ($itemToReplace && $itemToReplace.length) {\r\n $itemToReplace.replaceWith($itemFrame)\r\n } else {\r\n this._appendItemToContainer.call(this, $container, $itemFrame, index)\r\n }\r\n if (this.option(\"useItemTextAsTitle\")) {\r\n var displayValue = this._displayGetter ? this._displayGetter(itemData) : itemData;\r\n $itemFrame.attr(\"title\", displayValue)\r\n }\r\n return $itemFrame\r\n },\r\n _itemOptions: function() {\r\n var that = this;\r\n return {\r\n watchMethod: function() {\r\n return that.option(\"integrationOptions.watchMethod\")\r\n },\r\n owner: that,\r\n fieldGetter: function(field) {\r\n var expr = that.option(field + \"Expr\");\r\n var getter = compileGetter(expr);\r\n return getter\r\n }\r\n }\r\n },\r\n _postprocessRenderItem: noop,\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: index,\r\n itemData: itemData\r\n })\r\n },\r\n _setElementData: function(element, data, index) {\r\n element.addClass([ITEM_CLASS, this._itemClass()].join(\" \")).data(this._itemDataKey(), data).data(this._itemIndexKey(), index)\r\n },\r\n _createItemRenderAction: function() {\r\n return this._itemRenderAction = this._createActionByOption(\"onItemRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n })\r\n },\r\n _getItemRenderAction: function() {\r\n return this._itemRenderAction || this._createItemRenderAction()\r\n },\r\n _getItemTemplateName: function(args) {\r\n var data = args.itemData;\r\n var templateProperty = args.templateProperty || this.option(\"itemTemplateProperty\");\r\n var template = data && data[templateProperty];\r\n return template || args.defaultTemplateName\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index\r\n })\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._itemContainer()\r\n },\r\n _renderEmptyMessage: function(items) {\r\n items = items || this.option(\"items\");\r\n var noDataText = this.option(\"noDataText\");\r\n var hideNoData = !noDataText || items && items.length || this._isDataSourceLoading();\r\n if (hideNoData && this._$noData) {\r\n this._$noData.remove();\r\n this._$noData = null;\r\n this.setAria(\"label\", void 0)\r\n }\r\n if (!hideNoData) {\r\n this._$noData = this._$noData || $(\"
\").addClass(\"dx-empty-message\");\r\n this._$noData.appendTo(this._emptyMessageContainer()).html(noDataText);\r\n this.setAria(\"label\", noDataText)\r\n }\r\n this.$element().toggleClass(EMPTY_COLLECTION, !hideNoData)\r\n },\r\n _itemDXEventHandler: function(dxEvent, handlerOptionName, actionArgs, actionConfig) {\r\n this._itemEventHandler(dxEvent.target, handlerOptionName, extend(actionArgs, {\r\n event: dxEvent\r\n }), actionConfig)\r\n },\r\n _itemEventHandler: function(initiator, handlerOptionName, actionArgs, actionConfig) {\r\n var action = this._createActionByOption(handlerOptionName, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerByHandler: function(initiator, handler, actionArgs, actionConfig) {\r\n var action = this._createAction(handler, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = this._closestItemElement($(initiator));\r\n var args = extend({}, actionArgs);\r\n return action(extend(actionArgs, this._extendActionArgs($itemElement), args))\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n return {\r\n itemElement: getPublicElement($itemElement),\r\n itemIndex: this._itemElements().index($itemElement),\r\n itemData: this._getItemData($itemElement)\r\n }\r\n },\r\n _closestItemElement: function($element) {\r\n return $($element).closest(this._itemSelector())\r\n },\r\n _getItemData: function(itemElement) {\r\n return $(itemElement).data(this._itemDataKey())\r\n },\r\n _getSummaryItemsWidth: function(items, includeMargin) {\r\n var result = 0;\r\n if (items) {\r\n each(items, (function(_, item) {\r\n result += $(item).outerWidth(includeMargin || false)\r\n }))\r\n }\r\n return result\r\n },\r\n getFocusedItemId: function() {\r\n if (!this._focusedItemId) {\r\n this._focusedItemId = \"dx-\" + new Guid\r\n }\r\n return this._focusedItemId\r\n },\r\n itemElements: function() {\r\n return this._itemElements()\r\n },\r\n itemsContainer: function() {\r\n return this._itemContainer()\r\n }\r\n}).include(DataHelperMixin);\r\nCollectionWidget.ItemClass = CollectionWidgetItem;\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport BaseCollectionWidget from \"./ui.collection_widget.base\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport PlainEditStrategy from \"./ui.collection_widget.edit.strategy.plain\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../../data/data_source/utils\";\r\nimport Selection from \"../selection/selection\";\r\nimport {\r\n when,\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nvar ITEM_DELETING_DATA_KEY = \"dxItemDeleting\";\r\nvar NOT_EXISTING_INDEX = -1;\r\nvar indexExists = function(index) {\r\n return index !== NOT_EXISTING_INDEX\r\n};\r\nvar CollectionWidget = BaseCollectionWidget.inherit({\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectionMode: \"none\",\r\n selectionRequired: false,\r\n selectionByClick: true,\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n maxFilterLengthInRequest: 1500,\r\n keyExpr: null,\r\n selectedIndex: NOT_EXISTING_INDEX,\r\n selectedItem: null,\r\n onSelectionChanged: null,\r\n onItemReordered: null,\r\n onItemDeleting: null,\r\n onItemDeleted: null\r\n })\r\n },\r\n ctor: function(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options)\r\n },\r\n _init: function() {\r\n this._initEditStrategy();\r\n this.callBase();\r\n this._initKeyGetter();\r\n this._initSelectionModule()\r\n },\r\n _initKeyGetter: function() {\r\n this._keyGetter = compileGetter(this.option(\"keyExpr\"))\r\n },\r\n _getKeysByItems: function(selectedItems) {\r\n return this._editStrategy.getKeysByItems(selectedItems)\r\n },\r\n _getItemsByKeys: function(selectedItemKeys, selectedItems) {\r\n return this._editStrategy.getItemsByKeys(selectedItemKeys, selectedItems)\r\n },\r\n _getKeyByIndex: function(index) {\r\n return this._editStrategy.getKeyByIndex(index)\r\n },\r\n _getIndexByKey: function(key) {\r\n return this._editStrategy.getIndexByKey(key)\r\n },\r\n _getIndexByItemData: function(itemData) {\r\n return this._editStrategy.getIndexByItemData(itemData)\r\n },\r\n _isKeySpecified: function() {\r\n return !!(this._dataSource && this._dataSource.key())\r\n },\r\n _getCombinedFilter: function() {\r\n return this._dataSource && this._dataSource.filter()\r\n },\r\n key: function() {\r\n if (this.option(\"keyExpr\")) {\r\n return this.option(\"keyExpr\")\r\n }\r\n return this._dataSource && this._dataSource.key()\r\n },\r\n keyOf: function(item) {\r\n var key = item;\r\n var store = this._dataSource && this._dataSource.store();\r\n if (this.option(\"keyExpr\")) {\r\n key = this._keyGetter(item)\r\n } else if (store) {\r\n key = store.keyOf(item)\r\n }\r\n return key\r\n },\r\n _nullValueSelectionSupported: function() {\r\n return false\r\n },\r\n _initSelectionModule: function() {\r\n var that = this;\r\n var itemsGetter = that._editStrategy.itemsGetter;\r\n this._selection = new Selection({\r\n allowNullValue: this._nullValueSelectionSupported(),\r\n mode: this.option(\"selectionMode\"),\r\n maxFilterLengthInRequest: this.option(\"maxFilterLengthInRequest\"),\r\n equalByReference: !this._isKeySpecified(),\r\n onSelectionChanged: function(args) {\r\n if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n that.option(\"selectedItems\", that._getItemsByKeys(args.selectedItemKeys, args.selectedItems));\r\n that._updateSelectedItems(args)\r\n }\r\n },\r\n filter: that._getCombinedFilter.bind(that),\r\n totalCount: function() {\r\n var items = that.option(\"items\");\r\n var dataSource = that._dataSource;\r\n return dataSource && dataSource.totalCount() >= 0 ? dataSource.totalCount() : items.length\r\n },\r\n key: that.key.bind(that),\r\n keyOf: that.keyOf.bind(that),\r\n load: function(options) {\r\n if (that._dataSource) {\r\n var loadOptions = that._dataSource.loadOptions();\r\n options.customQueryParams = loadOptions.customQueryParams;\r\n options.userData = that._dataSource._userData\r\n }\r\n var store = that._dataSource && that._dataSource.store();\r\n if (store) {\r\n return store.load(options).done((function(loadResult) {\r\n if (that._disposed) {\r\n return\r\n }\r\n var items = normalizeLoadResult(loadResult).data;\r\n that._dataSource._applyMapFunction(items)\r\n }))\r\n } else {\r\n return (new Deferred).resolve(this.plainItems())\r\n }\r\n },\r\n dataFields: function() {\r\n return that._dataSource && that._dataSource.select()\r\n },\r\n plainItems: itemsGetter.bind(that._editStrategy)\r\n })\r\n },\r\n _initEditStrategy: function() {\r\n var Strategy = PlainEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n },\r\n _getSelectedItemIndices: function(keys) {\r\n var that = this;\r\n var indices = [];\r\n keys = keys || this._selection.getSelectedItemKeys();\r\n that._editStrategy.beginCache();\r\n each(keys, (function(_, key) {\r\n var selectedIndex = that._getIndexByKey(key);\r\n if (indexExists(selectedIndex)) {\r\n indices.push(selectedIndex)\r\n }\r\n }));\r\n that._editStrategy.endCache();\r\n return indices\r\n },\r\n _initMarkup: function() {\r\n this._rendering = true;\r\n if (!this._dataSource || !this._dataSource.isLoading()) {\r\n this._syncSelectionOptions().done(() => this._normalizeSelectedItems())\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._rendering = false\r\n },\r\n _fireContentReadyAction: function() {\r\n this._rendering = false;\r\n this._rendered = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _syncSelectionOptions: function(byOption) {\r\n byOption = byOption || this._chooseSelectOption();\r\n var selectedItem;\r\n var selectedIndex;\r\n var selectedItemKeys;\r\n var selectedItems;\r\n switch (byOption) {\r\n case \"selectedIndex\":\r\n selectedItem = this._editStrategy.getItemDataByIndex(this.option(\"selectedIndex\"));\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n break;\r\n case \"selectedItems\":\r\n selectedItems = this.option(\"selectedItems\") || [];\r\n selectedIndex = selectedItems.length ? this._editStrategy.getIndexByItemData(selectedItems[0]) : NOT_EXISTING_INDEX;\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItems[0]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems(selectedItems));\r\n break;\r\n case \"selectedItem\":\r\n selectedItem = this.option(\"selectedItem\");\r\n selectedIndex = this._editStrategy.getIndexByItemData(selectedItem);\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", NOT_EXISTING_INDEX)\r\n }\r\n break;\r\n case \"selectedItemKeys\":\r\n selectedItemKeys = this.option(\"selectedItemKeys\");\r\n if (this.option(\"selectionRequired\")) {\r\n var selectedItemIndex = this._getIndexByKey(selectedItemKeys[0]);\r\n if (!indexExists(selectedItemIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n }\r\n return this._selection.setSelection(selectedItemKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _chooseSelectOption: function() {\r\n var optionName = \"selectedIndex\";\r\n var isOptionDefined = function(optionName) {\r\n var optionValue = this.option(optionName);\r\n var length = isDefined(optionValue) && optionValue.length;\r\n return length || optionName in this._userOptions\r\n }.bind(this);\r\n if (isOptionDefined(\"selectedItems\")) {\r\n optionName = \"selectedItems\"\r\n } else if (isOptionDefined(\"selectedItem\")) {\r\n optionName = \"selectedItem\"\r\n } else if (isOptionDefined(\"selectedItemKeys\")) {\r\n optionName = \"selectedItemKeys\"\r\n }\r\n return optionName\r\n },\r\n _compareKeys: function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _normalizeSelectedItems: function() {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n } else if (\"single\" === this.option(\"selectionMode\")) {\r\n var newSelection = this.option(\"selectedItems\");\r\n if (newSelection.length > 1 || !newSelection.length && this.option(\"selectionRequired\") && this.option(\"items\") && this.option(\"items\").length) {\r\n var currentSelection = this._selection.getSelectedItems();\r\n var normalizedSelection = void 0 === newSelection[0] ? currentSelection[0] : newSelection[0];\r\n if (void 0 === normalizedSelection) {\r\n normalizedSelection = this._editStrategy.itemsGetter()[0]\r\n }\r\n if (this.option(\"grouped\") && normalizedSelection && normalizedSelection.items) {\r\n normalizedSelection.items = [normalizedSelection.items[0]]\r\n }\r\n this._selection.setSelection(this._getKeysByItems([normalizedSelection]));\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [normalizedSelection]);\r\n return this._syncSelectionOptions(\"selectedItems\")\r\n } else {\r\n this._selection.setSelection(this._getKeysByItems(newSelection))\r\n }\r\n } else {\r\n var newKeys = this._getKeysByItems(this.option(\"selectedItems\"));\r\n var oldKeys = this._selection.getSelectedItemKeys();\r\n if (!this._compareKeys(oldKeys, newKeys)) {\r\n this._selection.setSelection(newKeys)\r\n }\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _itemClickHandler: function(e) {\r\n this._createAction(function(e) {\r\n this._itemSelectHandler(e.event)\r\n }.bind(this), {\r\n validatingTargetName: \"itemElement\"\r\n })({\r\n itemElement: $(e.currentTarget),\r\n event: e\r\n });\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (!this.option(\"selectionByClick\")) {\r\n return\r\n }\r\n var $itemElement = e.currentTarget;\r\n if (this.isItemSelected($itemElement)) {\r\n this.unselectItem(e.currentTarget)\r\n } else {\r\n this.selectItem(e.currentTarget)\r\n }\r\n },\r\n _selectedItemElement: function(index) {\r\n return this._itemElements().eq(index)\r\n },\r\n _postprocessRenderItem: function(args) {\r\n if (\"none\" !== this.option(\"selectionMode\")) {\r\n var $itemElement = $(args.itemElement);\r\n var normalizedItemIndex = this._editStrategy.getNormalizedIndex($itemElement);\r\n var isItemSelected = this._isItemSelected(normalizedItemIndex);\r\n this._processSelectableItem($itemElement, isItemSelected)\r\n }\r\n },\r\n _processSelectableItem: function($itemElement, isSelected) {\r\n $itemElement.toggleClass(this._selectedItemClass(), isSelected);\r\n this._setAriaSelected($itemElement, String(isSelected))\r\n },\r\n _updateSelectedItems: function(args) {\r\n var that = this;\r\n var addedItemKeys = args.addedItemKeys;\r\n var removedItemKeys = args.removedItemKeys;\r\n if (that._rendered && (addedItemKeys.length || removedItemKeys.length)) {\r\n var selectionChangePromise = that._selectionChangePromise;\r\n if (!that._rendering) {\r\n var addedSelection = [];\r\n var normalizedIndex;\r\n var removedSelection = [];\r\n that._editStrategy.beginCache();\r\n for (var i = 0; i < addedItemKeys.length; i++) {\r\n normalizedIndex = that._getIndexByKey(addedItemKeys[i]);\r\n addedSelection.push(normalizedIndex);\r\n that._addSelection(normalizedIndex)\r\n }\r\n for (var _i = 0; _i < removedItemKeys.length; _i++) {\r\n normalizedIndex = that._getIndexByKey(removedItemKeys[_i]);\r\n removedSelection.push(normalizedIndex);\r\n that._removeSelection(normalizedIndex)\r\n }\r\n that._editStrategy.endCache();\r\n that._updateSelection(addedSelection, removedSelection)\r\n }\r\n when(selectionChangePromise).done((function() {\r\n that._fireSelectionChangeEvent(args.addedItems, args.removedItems)\r\n }))\r\n }\r\n },\r\n _fireSelectionChangeEvent: function(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _updateSelection: noop,\r\n _setAriaSelected: function($target, value) {\r\n this.setAria(\"selected\", value, $target)\r\n },\r\n _removeSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, false);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", false)\r\n }\r\n },\r\n _addSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, true);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", true)\r\n }\r\n },\r\n _isItemSelected: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n return this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n if (!args.value || Array.isArray(args.value) && !args.value.length) {\r\n this.option(\"selectedItemKeys\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n case \"selectedItems\":\r\n case \"selectedItemKeys\":\r\n this._syncSelectionOptions(args.name).done(() => this._normalizeSelectedItems());\r\n break;\r\n case \"keyExpr\":\r\n this._initKeyGetter();\r\n break;\r\n case \"selectionRequired\":\r\n this._normalizeSelectedItems();\r\n break;\r\n case \"selectionByClick\":\r\n case \"onSelectionChanged\":\r\n case \"onItemDeleting\":\r\n case \"onItemDeleted\":\r\n case \"onItemReordered\":\r\n case \"maxFilterLengthInRequest\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearSelectedItems: function() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n },\r\n _waitDeletingPrepare: function($itemElement) {\r\n if ($itemElement.data(ITEM_DELETING_DATA_KEY)) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, true);\r\n var deferred = new Deferred;\r\n var deletingActionArgs = {\r\n cancel: false\r\n };\r\n var deletePromise = this._itemEventHandler($itemElement, \"onItemDeleting\", deletingActionArgs, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n when(deletePromise).always(function(value) {\r\n var deletePromiseExists = !deletePromise;\r\n var deletePromiseResolved = !deletePromiseExists && \"resolved\" === deletePromise.state();\r\n var argumentsSpecified = !!arguments.length;\r\n var shouldDelete = deletePromiseExists || deletePromiseResolved && !argumentsSpecified || deletePromiseResolved && value;\r\n when(fromPromise(deletingActionArgs.cancel)).always((function() {\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, false)\r\n })).done((function(cancel) {\r\n shouldDelete && !cancel ? deferred.resolve() : deferred.reject()\r\n })).fail(deferred.reject)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _deleteItemFromDS: function($item) {\r\n if (!this._dataSource) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var deferred = new Deferred;\r\n var disabledState = this.option(\"disabled\");\r\n var dataStore = this._dataSource.store();\r\n this.option(\"disabled\", true);\r\n if (!dataStore.remove) {\r\n throw errors.Error(\"E1011\")\r\n }\r\n dataStore.remove(dataStore.keyOf(this._getItemData($item))).done((function(key) {\r\n if (void 0 !== key) {\r\n deferred.resolve()\r\n } else {\r\n deferred.reject()\r\n }\r\n })).fail((function() {\r\n deferred.reject()\r\n }));\r\n deferred.always(function() {\r\n this.option(\"disabled\", disabledState)\r\n }.bind(this));\r\n return deferred\r\n },\r\n _tryRefreshLastPage: function() {\r\n var deferred = new Deferred;\r\n if (this._isLastPage() || this.option(\"grouped\")) {\r\n deferred.resolve()\r\n } else {\r\n this._refreshLastPage().done((function() {\r\n deferred.resolve()\r\n }))\r\n }\r\n return deferred.promise()\r\n },\r\n _refreshLastPage: function() {\r\n this._expectLastItemLoading();\r\n return this._dataSource.load()\r\n },\r\n _updateSelectionAfterDelete: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n this._selection.deselect([key])\r\n },\r\n _updateIndicesAfterIndex: function(index) {\r\n var itemElements = this._itemElements();\r\n for (var i = index + 1; i < itemElements.length; i++) {\r\n $(itemElements[i]).data(this._itemIndexKey(), i - 1)\r\n }\r\n },\r\n _simulateOptionChange: function(optionName) {\r\n var optionValue = this.option(optionName);\r\n if (optionValue instanceof DataSource) {\r\n return\r\n }\r\n this._optionChangedAction({\r\n name: optionName,\r\n fullName: optionName,\r\n value: optionValue\r\n })\r\n },\r\n isItemSelected: function(itemElement) {\r\n return this._isItemSelected(this._editStrategy.getNormalizedIndex(itemElement))\r\n },\r\n selectItem: function(itemElement) {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n return\r\n }\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (this._selection.isItemSelected(key)) {\r\n return\r\n }\r\n if (\"single\" === this.option(\"selectionMode\")) {\r\n this._selection.setSelection([key])\r\n } else {\r\n var selectedItemKeys = this.option(\"selectedItemKeys\") || [];\r\n this._selection.setSelection([...selectedItemKeys, key], [key])\r\n }\r\n },\r\n unselectItem: function(itemElement) {\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var selectedItemKeys = this._selection.getSelectedItemKeys();\r\n if (this.option(\"selectionRequired\") && selectedItemKeys.length <= 1) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (!this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })) {\r\n return\r\n }\r\n this._selection.deselect([key])\r\n },\r\n _deleteItemElementByIndex: function(index) {\r\n this._updateSelectionAfterDelete(index);\r\n this._updateIndicesAfterIndex(index);\r\n this._editStrategy.deleteItemAtIndex(index)\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n var changingOption = this._dataSource ? \"dataSource\" : \"items\";\r\n this._simulateOptionChange(changingOption);\r\n this._itemEventHandler($item, \"onItemDeleted\", deletedActionArgs, {\r\n beforeExecute: function() {\r\n $item.remove()\r\n },\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._renderEmptyMessage()\r\n },\r\n deleteItem: function(itemElement) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var index = this._editStrategy.getNormalizedIndex(itemElement);\r\n var itemResponseWaitClass = this._itemResponseWaitClass();\r\n if (indexExists(index)) {\r\n this._waitDeletingPrepare($item).done((function() {\r\n $item.addClass(itemResponseWaitClass);\r\n var deletedActionArgs = that._extendActionArgs($item);\r\n that._deleteItemFromDS($item).done((function() {\r\n that._deleteItemElementByIndex(index);\r\n that._afterItemElementDeleted($item, deletedActionArgs);\r\n that._tryRefreshLastPage().done((function() {\r\n deferred.resolveWith(that)\r\n }))\r\n })).fail((function() {\r\n $item.removeClass(itemResponseWaitClass);\r\n deferred.rejectWith(that)\r\n }))\r\n })).fail((function() {\r\n deferred.rejectWith(that)\r\n }))\r\n } else {\r\n deferred.rejectWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n var strategy = this._editStrategy;\r\n var $movingItem = strategy.getItemElement(itemElement);\r\n var $destinationItem = strategy.getItemElement(toItemElement);\r\n var movingIndex = strategy.getNormalizedIndex(itemElement);\r\n var destinationIndex = strategy.getNormalizedIndex(toItemElement);\r\n var changingOption = this._dataSource ? \"dataSource\" : \"items\";\r\n var canMoveItems = indexExists(movingIndex) && indexExists(destinationIndex) && movingIndex !== destinationIndex;\r\n if (canMoveItems) {\r\n deferred.resolveWith(this)\r\n } else {\r\n deferred.rejectWith(this)\r\n }\r\n return deferred.promise().done((function() {\r\n $destinationItem[strategy.itemPlacementFunc(movingIndex, destinationIndex)]($movingItem);\r\n strategy.moveItemAtIndexToIndex(movingIndex, destinationIndex);\r\n this._updateIndicesAfterIndex(movingIndex);\r\n that.option(\"selectedItems\", that._getItemsByKeys(that._selection.getSelectedItemKeys(), that._selection.getSelectedItems()));\r\n if (\"items\" === changingOption) {\r\n that._simulateOptionChange(changingOption)\r\n }\r\n that._itemEventHandler($movingItem, \"onItemReordered\", {\r\n fromIndex: strategy.getIndex(movingIndex),\r\n toIndex: strategy.getIndex(destinationIndex)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }))\r\n }\r\n});\r\nexport default CollectionWidget;\r\n","/*global module*/\nvar Buffer = require('buffer').Buffer;\n\nmodule.exports = function toString(obj) {\n if (typeof obj === 'string')\n return obj;\n if (typeof obj === 'number' || Buffer.isBuffer(obj))\n return obj.toString();\n return JSON.stringify(obj);\n};\n","var JsonWebTokenError = require('./lib/JsonWebTokenError');\nvar NotBeforeError = require('./lib/NotBeforeError');\nvar TokenExpiredError = require('./lib/TokenExpiredError');\nvar decode = require('./decode');\nvar timespan = require('./lib/timespan');\nvar PS_SUPPORTED = require('./lib/psSupported');\nvar jws = require('jws');\n\nvar PUB_KEY_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512'];\nvar RSA_KEY_ALGS = ['RS256', 'RS384', 'RS512'];\nvar HS_ALGS = ['HS256', 'HS384', 'HS512'];\n\nif (PS_SUPPORTED) {\n PUB_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n RSA_KEY_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nmodule.exports = function (jwtString, secretOrPublicKey, options, callback) {\n if ((typeof options === 'function') && !callback) {\n callback = options;\n options = {};\n }\n\n if (!options) {\n options = {};\n }\n\n //clone this object since we are going to mutate it.\n options = Object.assign({}, options);\n\n var done;\n\n if (callback) {\n done = callback;\n } else {\n done = function(err, data) {\n if (err) throw err;\n return data;\n };\n }\n\n if (options.clockTimestamp && typeof options.clockTimestamp !== 'number') {\n return done(new JsonWebTokenError('clockTimestamp must be a number'));\n }\n\n if (options.nonce !== undefined && (typeof options.nonce !== 'string' || options.nonce.trim() === '')) {\n return done(new JsonWebTokenError('nonce must be a non-empty string'));\n }\n\n var clockTimestamp = options.clockTimestamp || Math.floor(Date.now() / 1000);\n\n if (!jwtString){\n return done(new JsonWebTokenError('jwt must be provided'));\n }\n\n if (typeof jwtString !== 'string') {\n return done(new JsonWebTokenError('jwt must be a string'));\n }\n\n var parts = jwtString.split('.');\n\n if (parts.length !== 3){\n return done(new JsonWebTokenError('jwt malformed'));\n }\n\n var decodedToken;\n\n try {\n decodedToken = decode(jwtString, { complete: true });\n } catch(err) {\n return done(err);\n }\n\n if (!decodedToken) {\n return done(new JsonWebTokenError('invalid token'));\n }\n\n var header = decodedToken.header;\n var getSecret;\n\n if(typeof secretOrPublicKey === 'function') {\n if(!callback) {\n return done(new JsonWebTokenError('verify must be called asynchronous if secret or public key is provided as a callback'));\n }\n\n getSecret = secretOrPublicKey;\n }\n else {\n getSecret = function(header, secretCallback) {\n return secretCallback(null, secretOrPublicKey);\n };\n }\n\n return getSecret(header, function(err, secretOrPublicKey) {\n if(err) {\n return done(new JsonWebTokenError('error in secret or public key callback: ' + err.message));\n }\n\n var hasSignature = parts[2].trim() !== '';\n\n if (!hasSignature && secretOrPublicKey){\n return done(new JsonWebTokenError('jwt signature is required'));\n }\n\n if (hasSignature && !secretOrPublicKey) {\n return done(new JsonWebTokenError('secret or public key must be provided'));\n }\n\n if (!hasSignature && !options.algorithms) {\n options.algorithms = ['none'];\n }\n\n if (!options.algorithms) {\n options.algorithms = ~secretOrPublicKey.toString().indexOf('BEGIN CERTIFICATE') ||\n ~secretOrPublicKey.toString().indexOf('BEGIN PUBLIC KEY') ? PUB_KEY_ALGS :\n ~secretOrPublicKey.toString().indexOf('BEGIN RSA PUBLIC KEY') ? RSA_KEY_ALGS : HS_ALGS;\n\n }\n\n if (!~options.algorithms.indexOf(decodedToken.header.alg)) {\n return done(new JsonWebTokenError('invalid algorithm'));\n }\n\n var valid;\n\n try {\n valid = jws.verify(jwtString, decodedToken.header.alg, secretOrPublicKey);\n } catch (e) {\n return done(e);\n }\n\n if (!valid) {\n return done(new JsonWebTokenError('invalid signature'));\n }\n\n var payload = decodedToken.payload;\n\n if (typeof payload.nbf !== 'undefined' && !options.ignoreNotBefore) {\n if (typeof payload.nbf !== 'number') {\n return done(new JsonWebTokenError('invalid nbf value'));\n }\n if (payload.nbf > clockTimestamp + (options.clockTolerance || 0)) {\n return done(new NotBeforeError('jwt not active', new Date(payload.nbf * 1000)));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && !options.ignoreExpiration) {\n if (typeof payload.exp !== 'number') {\n return done(new JsonWebTokenError('invalid exp value'));\n }\n if (clockTimestamp >= payload.exp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('jwt expired', new Date(payload.exp * 1000)));\n }\n }\n\n if (options.audience) {\n var audiences = Array.isArray(options.audience) ? options.audience : [options.audience];\n var target = Array.isArray(payload.aud) ? payload.aud : [payload.aud];\n\n var match = target.some(function (targetAudience) {\n return audiences.some(function (audience) {\n return audience instanceof RegExp ? audience.test(targetAudience) : audience === targetAudience;\n });\n });\n\n if (!match) {\n return done(new JsonWebTokenError('jwt audience invalid. expected: ' + audiences.join(' or ')));\n }\n }\n\n if (options.issuer) {\n var invalid_issuer =\n (typeof options.issuer === 'string' && payload.iss !== options.issuer) ||\n (Array.isArray(options.issuer) && options.issuer.indexOf(payload.iss) === -1);\n\n if (invalid_issuer) {\n return done(new JsonWebTokenError('jwt issuer invalid. expected: ' + options.issuer));\n }\n }\n\n if (options.subject) {\n if (payload.sub !== options.subject) {\n return done(new JsonWebTokenError('jwt subject invalid. expected: ' + options.subject));\n }\n }\n\n if (options.jwtid) {\n if (payload.jti !== options.jwtid) {\n return done(new JsonWebTokenError('jwt jwtid invalid. expected: ' + options.jwtid));\n }\n }\n\n if (options.nonce) {\n if (payload.nonce !== options.nonce) {\n return done(new JsonWebTokenError('jwt nonce invalid. expected: ' + options.nonce));\n }\n }\n\n if (options.maxAge) {\n if (typeof payload.iat !== 'number') {\n return done(new JsonWebTokenError('iat required when maxAge is specified'));\n }\n\n var maxAgeTimestamp = timespan(options.maxAge, payload.iat);\n if (typeof maxAgeTimestamp === 'undefined') {\n return done(new JsonWebTokenError('\"maxAge\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n if (clockTimestamp >= maxAgeTimestamp + (options.clockTolerance || 0)) {\n return done(new TokenExpiredError('maxAge exceeded', new Date(maxAgeTimestamp * 1000)));\n }\n }\n\n if (options.complete === true) {\n var signature = decodedToken.signature;\n\n return done(null, {\n header: header,\n payload: payload,\n signature: signature\n });\n }\n\n return done(null, payload);\n });\n};\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","/**\r\n * DevExtreme (esm/core/templates/template_engine_registry.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../utils/type\";\r\nimport errors from \"../errors\";\r\nvar templateEngines = {};\r\nvar currentTemplateEngine;\r\nexport function registerTemplateEngine(name, templateEngine) {\r\n templateEngines[name] = templateEngine\r\n}\r\nexport function setTemplateEngine(templateEngine) {\r\n if (isString(templateEngine)) {\r\n currentTemplateEngine = templateEngines[templateEngine];\r\n if (!currentTemplateEngine) {\r\n throw errors.Error(\"E0020\", templateEngine)\r\n }\r\n } else {\r\n currentTemplateEngine = templateEngine\r\n }\r\n}\r\nexport function getCurrentTemplateEngine() {\r\n return currentTemplateEngine\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template_engines.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extractTemplateMarkup\r\n} from \"../utils/dom\";\r\nimport {\r\n registerTemplateEngine\r\n} from \"./template_engine_registry\";\r\nregisterTemplateEngine(\"jquery-tmpl\", {\r\n compile: element => extractTemplateMarkup(element),\r\n render: (template, data) => jQuery.tmpl(template, data)\r\n});\r\nregisterTemplateEngine(\"jsrender\", {\r\n compile: element => (jQuery ? jQuery : jsrender).templates(extractTemplateMarkup(element)),\r\n render: (template, data) => template.render(data)\r\n});\r\nregisterTemplateEngine(\"mustache\", {\r\n compile: element => extractTemplateMarkup(element),\r\n render: (template, data) => Mustache.render(template, data)\r\n});\r\nregisterTemplateEngine(\"hogan\", {\r\n compile: element => Hogan.compile(extractTemplateMarkup(element)),\r\n render: (template, data) => template.render(data)\r\n});\r\nregisterTemplateEngine(\"underscore\", {\r\n compile: element => _.template(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\nregisterTemplateEngine(\"handlebars\", {\r\n compile: element => Handlebars.compile(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\nregisterTemplateEngine(\"doT\", {\r\n compile: element => doT.template(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\n","/**\r\n * DevExtreme (esm/core/templates/template.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nimport {\r\n getCurrentTemplateEngine,\r\n registerTemplateEngine,\r\n setTemplateEngine\r\n} from \"./template_engine_registry\";\r\nimport \"./template_engines\";\r\nregisterTemplateEngine(\"default\", {\r\n compile: element => normalizeTemplateElement(element),\r\n render: (template, model, index) => template.clone()\r\n});\r\nsetTemplateEngine(\"default\");\r\nexport class Template extends TemplateBase {\r\n constructor(element) {\r\n super();\r\n this._element = element\r\n }\r\n _renderCore(options) {\r\n var transclude = options.transclude;\r\n if (!transclude && !this._compiledTemplate) {\r\n this._compiledTemplate = getCurrentTemplateEngine().compile(this._element)\r\n }\r\n return $(\"
\").append(transclude ? this._element : getCurrentTemplateEngine().render(this._compiledTemplate, options.model, options.index)).contents()\r\n }\r\n source() {\r\n return $(this._element).clone()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/template_manager.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport devices from \"../devices\";\r\nimport Errors from \"../errors\";\r\nimport $ from \"../renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../templates/child_default_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../templates/empty_template\";\r\nimport {\r\n Template\r\n} from \"../templates/template\";\r\nimport {\r\n TemplateBase\r\n} from \"../templates/template_base\";\r\nimport {\r\n groupBy\r\n} from \"./array\";\r\nimport {\r\n findBestMatches\r\n} from \"./common\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"./dom\";\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction,\r\n isRenderer\r\n} from \"./type\";\r\nexport var findTemplates = (element, name) => {\r\n var templates = $(element).contents().filter(\"[\".concat(\"data-options\", '*=\"').concat(name, '\"]'));\r\n return [].slice.call(templates).map(element => {\r\n var optionsString = $(element).attr(\"data-options\") || \"\";\r\n return {\r\n element: element,\r\n options: config().optionsParser(optionsString)[name]\r\n }\r\n }).filter(template => !!template.options)\r\n};\r\nexport var suitableTemplatesByName = rawTemplates => {\r\n var templatesMap = groupBy(rawTemplates, template => template.options.name);\r\n if (templatesMap[void 0]) {\r\n throw Errors.Error(\"E0023\")\r\n }\r\n var result = {};\r\n Object.keys(templatesMap).forEach(name => {\r\n var _findBestMatches$;\r\n var suitableTemplate = null === (_findBestMatches$ = findBestMatches(devices.current(), templatesMap[name], template => template.options)[0]) || void 0 === _findBestMatches$ ? void 0 : _findBestMatches$.element;\r\n if (suitableTemplate) {\r\n result[name] = suitableTemplate\r\n }\r\n });\r\n return result\r\n};\r\nexport var addOneRenderedCall = template => {\r\n var render = template.render.bind(template);\r\n return extend({}, template, {\r\n render(options) {\r\n var templateResult = render(options);\r\n options && options.onRendered && options.onRendered();\r\n return templateResult\r\n }\r\n })\r\n};\r\nexport var getNormalizedTemplateArgs = options => {\r\n var args = [];\r\n if (\"model\" in options) {\r\n args.push(options.model)\r\n }\r\n if (\"index\" in options) {\r\n args.push(options.index)\r\n }\r\n args.push(options.container);\r\n return args\r\n};\r\nexport var validateTemplateSource = templateSource => \"string\" === typeof templateSource ? normalizeTemplateElement(templateSource) : templateSource;\r\nexport var templateKey = templateSource => isRenderer(templateSource) && templateSource[0] || templateSource;\r\nexport var defaultCreateElement = element => new Template(element);\r\nexport var acquireIntegrationTemplate = (templateSource, templates, isAsyncTemplate, skipTemplates) => {\r\n var integrationTemplate = null;\r\n if (!skipTemplates || -1 === skipTemplates.indexOf(templateSource)) {\r\n integrationTemplate = templates[templateSource];\r\n if (integrationTemplate && !(integrationTemplate instanceof TemplateBase) && !isAsyncTemplate) {\r\n integrationTemplate = addOneRenderedCall(integrationTemplate)\r\n }\r\n }\r\n return integrationTemplate\r\n};\r\nexport var acquireTemplate = (templateSource, createTemplate, templates, isAsyncTemplate, skipTemplates, defaultTemplates) => {\r\n if (null == templateSource) {\r\n return new EmptyTemplate\r\n }\r\n if (templateSource instanceof ChildDefaultTemplate) {\r\n return defaultTemplates[templateSource.name]\r\n }\r\n if (templateSource instanceof TemplateBase) {\r\n return templateSource\r\n }\r\n if (isFunction(templateSource.render) && !isRenderer(templateSource)) {\r\n return isAsyncTemplate ? templateSource : addOneRenderedCall(templateSource)\r\n }\r\n if (templateSource.nodeType || isRenderer(templateSource)) {\r\n return createTemplate($(templateSource))\r\n }\r\n return acquireIntegrationTemplate(templateSource, templates, isAsyncTemplate, skipTemplates) || defaultTemplates[templateSource] || createTemplate(templateSource)\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/first_day_of_week_data.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n \"af-NA\": 1,\r\n agq: 1,\r\n ak: 1,\r\n ar: 6,\r\n \"ar-EH\": 1,\r\n \"ar-ER\": 1,\r\n \"ar-KM\": 1,\r\n \"ar-LB\": 1,\r\n \"ar-MA\": 1,\r\n \"ar-MR\": 1,\r\n \"ar-PS\": 1,\r\n \"ar-SO\": 1,\r\n \"ar-SS\": 1,\r\n \"ar-TD\": 1,\r\n \"ar-TN\": 1,\r\n asa: 1,\r\n ast: 1,\r\n az: 1,\r\n \"az-Cyrl\": 1,\r\n bas: 1,\r\n be: 1,\r\n bem: 1,\r\n bez: 1,\r\n bg: 1,\r\n bm: 1,\r\n br: 1,\r\n bs: 1,\r\n \"bs-Cyrl\": 1,\r\n ca: 1,\r\n ce: 1,\r\n cgg: 1,\r\n ckb: 6,\r\n cs: 1,\r\n cy: 1,\r\n da: 1,\r\n de: 1,\r\n dje: 1,\r\n dsb: 1,\r\n dua: 1,\r\n dyo: 1,\r\n ee: 1,\r\n el: 1,\r\n \"en-001\": 1,\r\n \"en-AE\": 6,\r\n \"en-BI\": 1,\r\n \"en-MP\": 1,\r\n \"en-SD\": 6,\r\n eo: 1,\r\n es: 1,\r\n et: 1,\r\n eu: 1,\r\n ewo: 1,\r\n fa: 6,\r\n ff: 1,\r\n \"ff-Adlm\": 1,\r\n fi: 1,\r\n fo: 1,\r\n fr: 1,\r\n \"fr-DJ\": 6,\r\n \"fr-DZ\": 6,\r\n \"fr-SY\": 6,\r\n fur: 1,\r\n fy: 1,\r\n ga: 1,\r\n gd: 1,\r\n gl: 1,\r\n gsw: 1,\r\n gv: 1,\r\n ha: 1,\r\n hr: 1,\r\n hsb: 1,\r\n hu: 1,\r\n hy: 1,\r\n ia: 1,\r\n ig: 1,\r\n is: 1,\r\n it: 1,\r\n jgo: 1,\r\n jmc: 1,\r\n ka: 1,\r\n kab: 6,\r\n kde: 1,\r\n kea: 1,\r\n khq: 1,\r\n kk: 1,\r\n kkj: 1,\r\n kl: 1,\r\n \"ko-KP\": 1,\r\n ksb: 1,\r\n ksf: 1,\r\n ksh: 1,\r\n ku: 1,\r\n kw: 1,\r\n ky: 1,\r\n lag: 1,\r\n lb: 1,\r\n lg: 1,\r\n ln: 1,\r\n lrc: 6,\r\n lt: 1,\r\n lu: 1,\r\n lv: 1,\r\n \"mas-TZ\": 1,\r\n mfe: 1,\r\n mg: 1,\r\n mgo: 1,\r\n mi: 1,\r\n mk: 1,\r\n mn: 1,\r\n ms: 1,\r\n mua: 1,\r\n mzn: 6,\r\n naq: 1,\r\n nds: 1,\r\n nl: 1,\r\n nmg: 1,\r\n nnh: 1,\r\n no: 1,\r\n nus: 1,\r\n nyn: 1,\r\n os: 1,\r\n pcm: 1,\r\n pl: 1,\r\n ps: 6,\r\n \"pt-AO\": 1,\r\n \"pt-CH\": 1,\r\n \"pt-CV\": 1,\r\n \"pt-GQ\": 1,\r\n \"pt-GW\": 1,\r\n \"pt-LU\": 1,\r\n \"pt-ST\": 1,\r\n \"pt-TL\": 1,\r\n \"qu-BO\": 1,\r\n \"qu-EC\": 1,\r\n rm: 1,\r\n rn: 1,\r\n ro: 1,\r\n rof: 1,\r\n ru: 1,\r\n rw: 1,\r\n rwk: 1,\r\n sah: 1,\r\n sbp: 1,\r\n se: 1,\r\n ses: 1,\r\n sg: 1,\r\n shi: 1,\r\n \"shi-Latn\": 1,\r\n si: 1,\r\n sk: 1,\r\n sl: 1,\r\n smn: 1,\r\n so: 1,\r\n \"so-DJ\": 6,\r\n sq: 1,\r\n sr: 1,\r\n \"sr-Latn\": 1,\r\n sv: 1,\r\n sw: 1,\r\n \"ta-LK\": 1,\r\n \"ta-MY\": 1,\r\n teo: 1,\r\n tg: 1,\r\n \"ti-ER\": 1,\r\n tk: 1,\r\n to: 1,\r\n tr: 1,\r\n tt: 1,\r\n twq: 1,\r\n tzm: 1,\r\n uk: 1,\r\n uz: 1,\r\n \"uz-Arab\": 6,\r\n \"uz-Cyrl\": 1,\r\n vai: 1,\r\n \"vai-Latn\": 1,\r\n vi: 1,\r\n vun: 1,\r\n wae: 1,\r\n wo: 1,\r\n xog: 1,\r\n yav: 1,\r\n yi: 1,\r\n yo: 1,\r\n zgh: 1\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/date.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport localizationCoreUtils from \"../core\";\r\nvar SYMBOLS_TO_REMOVE_REGEX = /[\\u200E\\u200F]/g;\r\nvar getIntlFormatter = format => date => {\r\n if (!format.timeZoneName) {\r\n var year = date.getFullYear();\r\n var recognizableAsTwentyCentury = String(year).length < 3;\r\n var temporaryYearValue = recognizableAsTwentyCentury ? year + 400 : year;\r\n var utcDate = new Date(Date.UTC(temporaryYearValue, date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));\r\n if (recognizableAsTwentyCentury) {\r\n utcDate.setFullYear(year)\r\n }\r\n var utcFormat = extend({\r\n timeZone: \"UTC\"\r\n }, format);\r\n return formatDateTime(utcDate, utcFormat)\r\n }\r\n return formatDateTime(date, format)\r\n};\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.DateTimeFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\n\r\nfunction formatDateTime(date, format) {\r\n return getFormatter(format)(date).replace(SYMBOLS_TO_REMOVE_REGEX, \"\")\r\n}\r\nvar formatNumber = number => new Intl.NumberFormat(localizationCoreUtils.locale()).format(number);\r\nvar getAlternativeNumeralsMap = (() => {\r\n var numeralsMapCache = {};\r\n return locale => {\r\n if (!(locale in numeralsMapCache)) {\r\n if (\"0\" === formatNumber(0)) {\r\n numeralsMapCache[locale] = false;\r\n return false\r\n }\r\n numeralsMapCache[locale] = {};\r\n for (var i = 0; i < 10; ++i) {\r\n numeralsMapCache[locale][formatNumber(i)] = i\r\n }\r\n }\r\n return numeralsMapCache[locale]\r\n }\r\n})();\r\nvar normalizeNumerals = dateString => {\r\n var alternativeNumeralsMap = getAlternativeNumeralsMap(localizationCoreUtils.locale());\r\n if (!alternativeNumeralsMap) {\r\n return dateString\r\n }\r\n return dateString.split(\"\").map(sign => sign in alternativeNumeralsMap ? String(alternativeNumeralsMap[sign]) : sign).join(\"\")\r\n};\r\nvar removeLeadingZeroes = str => str.replace(/(\\D)0+(\\d)/g, \"$1$2\");\r\nvar dateStringEquals = (actual, expected) => removeLeadingZeroes(actual) === removeLeadingZeroes(expected);\r\nvar normalizeMonth = text => text.replace(\"d\\u2019\", \"de \");\r\nvar intlFormats = {\r\n day: {\r\n day: \"numeric\"\r\n },\r\n dayofweek: {\r\n weekday: \"long\"\r\n },\r\n longdate: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n longdatelongtime: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n longtime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n month: {\r\n month: \"long\"\r\n },\r\n monthandday: {\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n monthandyear: {\r\n year: \"numeric\",\r\n month: \"long\"\r\n },\r\n shortdate: {},\r\n shorttime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n shortyear: {\r\n year: \"2-digit\"\r\n },\r\n year: {\r\n year: \"numeric\"\r\n }\r\n};\r\nObject.defineProperty(intlFormats, \"shortdateshorttime\", {\r\n get: function() {\r\n var defaultOptions = Intl.DateTimeFormat(localizationCoreUtils.locale()).resolvedOptions();\r\n return {\r\n year: defaultOptions.year,\r\n month: defaultOptions.month,\r\n day: defaultOptions.day,\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n }\r\n }\r\n});\r\nvar getIntlFormat = format => \"string\" === typeof format && intlFormats[format.toLowerCase()];\r\nvar monthNameStrategies = {\r\n standalone: function(monthIndex, monthFormat) {\r\n var date = new Date(1999, monthIndex, 13, 1);\r\n var dateString = getIntlFormatter({\r\n month: monthFormat\r\n })(date);\r\n return dateString\r\n },\r\n format: function(monthIndex, monthFormat) {\r\n var date = new Date(0, monthIndex, 13, 1);\r\n var dateString = normalizeMonth(getIntlFormatter({\r\n day: \"numeric\",\r\n month: monthFormat\r\n })(date));\r\n var parts = dateString.split(\" \").filter(part => part.indexOf(\"13\") < 0);\r\n if (1 === parts.length) {\r\n return parts[0]\r\n } else if (2 === parts.length) {\r\n return parts[0].length > parts[1].length ? parts[0] : parts[1]\r\n }\r\n return monthNameStrategies.standalone(monthIndex, monthFormat)\r\n }\r\n};\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n getMonthNames: function(format, type) {\r\n var monthFormat = {\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"];\r\n type = \"format\" === type ? type : \"standalone\";\r\n return Array.apply(null, new Array(12)).map((_, monthIndex) => monthNameStrategies[type](monthIndex, monthFormat))\r\n },\r\n getDayNames: function(format) {\r\n var result = (format => Array.apply(null, new Array(7)).map((_, dayIndex) => getIntlFormatter({\r\n weekday: format\r\n })(new Date(0, 0, dayIndex))))({\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n short: \"narrow\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"]);\r\n return result\r\n },\r\n getPeriodNames: function() {\r\n var hour12Formatter = getIntlFormatter({\r\n hour: \"numeric\",\r\n hour12: true\r\n });\r\n return [1, 13].map(hours => {\r\n var hourNumberText = formatNumber(1);\r\n var timeParts = hour12Formatter(new Date(0, 0, 1, hours)).split(hourNumberText);\r\n if (2 !== timeParts.length) {\r\n return \"\"\r\n }\r\n var biggerPart = timeParts[0].length > timeParts[1].length ? timeParts[0] : timeParts[1];\r\n return biggerPart.trim()\r\n })\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n if (\"function\" !== typeof _format && !_format.formatter) {\r\n _format = _format.type || _format\r\n }\r\n var intlFormat = getIntlFormat(_format);\r\n if (intlFormat) {\r\n return getIntlFormatter(intlFormat)(date)\r\n }\r\n var formatType = typeof _format;\r\n if (_format.formatter || \"function\" === formatType || \"string\" === formatType) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getIntlFormatter(_format)(date)\r\n },\r\n parse: function(dateString, format) {\r\n var formatter;\r\n if (format && !format.parser && \"string\" === typeof dateString) {\r\n dateString = normalizeMonth(dateString);\r\n formatter = date => normalizeMonth(this.format(date, format))\r\n }\r\n return this.callBase(dateString, formatter || format)\r\n },\r\n _parseDateBySimpleFormat: function(dateString, format) {\r\n dateString = normalizeNumerals(dateString);\r\n var formatParts = this.getFormatParts(format);\r\n var dateParts = dateString.split(/\\D+/).filter(part => part.length > 0);\r\n if (formatParts.length !== dateParts.length) {\r\n return\r\n }\r\n var dateArgs = this._generateDateArgs(formatParts, dateParts);\r\n var constructValidDate = ampmShift => {\r\n var parsedDate = ((dateArgs, ampmShift) => {\r\n var hoursShift = ampmShift ? 12 : 0;\r\n return new Date(dateArgs.year, dateArgs.month, dateArgs.day, (dateArgs.hours + hoursShift) % 24, dateArgs.minutes, dateArgs.seconds)\r\n })(dateArgs, ampmShift);\r\n if (dateStringEquals(normalizeNumerals(this.format(parsedDate, format)), dateString)) {\r\n return parsedDate\r\n }\r\n };\r\n return constructValidDate(false) || constructValidDate(true)\r\n },\r\n _generateDateArgs: function(formatParts, dateParts) {\r\n var currentDate = new Date;\r\n var dateArgs = {\r\n year: currentDate.getFullYear(),\r\n month: currentDate.getMonth(),\r\n day: currentDate.getDate(),\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n };\r\n formatParts.forEach((formatPart, index) => {\r\n var datePart = dateParts[index];\r\n var parsed = parseInt(datePart, 10);\r\n if (\"month\" === formatPart) {\r\n parsed -= 1\r\n }\r\n dateArgs[formatPart] = parsed\r\n });\r\n return dateArgs\r\n },\r\n formatUsesMonthName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.month\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n formatUsesDayName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.weekday\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getTimeSeparator: function() {\r\n return normalizeNumerals(formatDateTime(new Date(2001, 1, 1, 11, 11), {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false\r\n })).replace(/\\d/g, \"\")\r\n },\r\n getFormatParts: function(format) {\r\n if (\"string\" === typeof format) {\r\n return this.callBase(format)\r\n }\r\n var intlFormat = extend({}, intlFormats[format.toLowerCase()]);\r\n var date = new Date(2001, 2, 4, 5, 6, 7);\r\n var formattedDate = getIntlFormatter(intlFormat)(date);\r\n formattedDate = normalizeNumerals(formattedDate);\r\n return [{\r\n name: \"year\",\r\n value: 1\r\n }, {\r\n name: \"month\",\r\n value: 3\r\n }, {\r\n name: \"day\",\r\n value: 4\r\n }, {\r\n name: \"hours\",\r\n value: 5\r\n }, {\r\n name: \"minutes\",\r\n value: 6\r\n }, {\r\n name: \"seconds\",\r\n value: 7\r\n }].map(part => ({\r\n name: part.name,\r\n index: formattedDate.indexOf(part.value)\r\n })).filter(part => part.index > -1).sort((a, b) => a.index - b.index).map(part => part.name)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/date.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n inArray\r\n} from \"../core/utils/array\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getFormatter as getLDMLDateFormatter\r\n} from \"./ldml/date.formatter\";\r\nimport {\r\n getFormat as getLDMLDateFormat\r\n} from \"./ldml/date.format\";\r\nimport {\r\n getParser as getLDMLDateParser\r\n} from \"./ldml/date.parser\";\r\nimport defaultDateNames from \"./default_date_names\";\r\nimport firstDayOfWeekData from \"./cldr-data/first_day_of_week_data\";\r\nimport localizationCore from \"./core\";\r\nimport numberLocalization from \"./number\";\r\nimport intlDateLocalization from \"./intl/date\";\r\nvar DEFAULT_DAY_OF_WEEK_INDEX = 0;\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar FORMATS_TO_PATTERN_MAP = {\r\n shortdate: \"M/d/y\",\r\n shorttime: \"h:mm a\",\r\n longdate: \"EEEE, MMMM d, y\",\r\n longtime: \"h:mm:ss a\",\r\n monthandday: \"MMMM d\",\r\n monthandyear: \"MMMM y\",\r\n quarterandyear: \"QQQ y\",\r\n day: \"d\",\r\n year: \"y\",\r\n shortdateshorttime: \"M/d/y, h:mm a\",\r\n longdatelongtime: \"EEEE, MMMM d, y, h:mm:ss a\",\r\n month: \"LLLL\",\r\n shortyear: \"yy\",\r\n dayofweek: \"EEEE\",\r\n quarter: \"QQQ\",\r\n hour: \"HH\",\r\n minute: \"mm\",\r\n second: \"ss\",\r\n millisecond: \"SSS\",\r\n \"datetime-local\": \"yyyy-MM-ddTHH':'mm':'ss\"\r\n};\r\nvar possiblePartPatterns = {\r\n year: [\"y\", \"yy\", \"yyyy\"],\r\n day: [\"d\", \"dd\"],\r\n month: [\"M\", \"MM\", \"MMM\", \"MMMM\"],\r\n hours: [\"H\", \"HH\", \"h\", \"hh\", \"ah\"],\r\n minutes: [\"m\", \"mm\"],\r\n seconds: [\"s\", \"ss\"],\r\n milliseconds: [\"S\", \"SS\", \"SSS\"]\r\n};\r\nvar dateLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _getPatternByFormat: function(format) {\r\n return FORMATS_TO_PATTERN_MAP[format.toLowerCase()]\r\n },\r\n _expandPattern: function(pattern) {\r\n return this._getPatternByFormat(pattern) || pattern\r\n },\r\n formatUsesMonthName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"MMMM\")\r\n },\r\n formatUsesDayName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"EEEE\")\r\n },\r\n getFormatParts: function(format) {\r\n var pattern = this._getPatternByFormat(format) || format;\r\n var result = [];\r\n each(pattern.split(/\\W+/), (_, formatPart) => {\r\n each(possiblePartPatterns, (partName, possiblePatterns) => {\r\n if (inArray(formatPart, possiblePatterns) > -1) {\r\n result.push(partName)\r\n }\r\n })\r\n });\r\n return result\r\n },\r\n getMonthNames: function(format) {\r\n return defaultDateNames.getMonthNames(format)\r\n },\r\n getDayNames: function(format) {\r\n return defaultDateNames.getDayNames(format)\r\n },\r\n getQuarterNames: function(format) {\r\n return defaultDateNames.getQuarterNames(format)\r\n },\r\n getPeriodNames: function(format) {\r\n return defaultDateNames.getPeriodNames(format)\r\n },\r\n getTimeSeparator: function() {\r\n return \":\"\r\n },\r\n is24HourFormat: function(format) {\r\n var amTime = new Date(2017, 0, 20, 11, 0, 0, 0);\r\n var pmTime = new Date(2017, 0, 20, 23, 0, 0, 0);\r\n var amTimeFormatted = this.format(amTime, format);\r\n var pmTimeFormatted = this.format(pmTime, format);\r\n for (var i = 0; i < amTimeFormatted.length; i++) {\r\n if (amTimeFormatted[i] !== pmTimeFormatted[i]) {\r\n return !isNaN(parseInt(amTimeFormatted[i]))\r\n }\r\n }\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n var formatter;\r\n if (\"function\" === typeof _format) {\r\n formatter = _format\r\n } else if (_format.formatter) {\r\n formatter = _format.formatter\r\n } else {\r\n _format = _format.type || _format;\r\n if (isString(_format)) {\r\n _format = FORMATS_TO_PATTERN_MAP[_format.toLowerCase()] || _format;\r\n return numberLocalization.convertDigits(getLDMLDateFormatter(_format, this)(date))\r\n }\r\n }\r\n if (!formatter) {\r\n return\r\n }\r\n return formatter(date)\r\n },\r\n parse: function(text, format) {\r\n var that = this;\r\n var ldmlFormat;\r\n var formatter;\r\n if (!text) {\r\n return\r\n }\r\n if (!format) {\r\n return this.parse(text, \"shortdate\")\r\n }\r\n if (format.parser) {\r\n return format.parser(text)\r\n }\r\n if (\"string\" === typeof format && !FORMATS_TO_PATTERN_MAP[format.toLowerCase()]) {\r\n ldmlFormat = format\r\n } else {\r\n formatter = value => {\r\n var text = that.format(value, format);\r\n return numberLocalization.convertDigits(text, true)\r\n };\r\n try {\r\n ldmlFormat = getLDMLDateFormat(formatter)\r\n } catch (e) {}\r\n }\r\n if (ldmlFormat) {\r\n text = numberLocalization.convertDigits(text, true);\r\n return getLDMLDateParser(ldmlFormat, this)(text)\r\n }\r\n errors.log(\"W0012\");\r\n var result = new Date(text);\r\n if (!result || isNaN(result.getTime())) {\r\n return\r\n }\r\n return result\r\n },\r\n firstDayOfWeekIndex: function() {\r\n var index = localizationCore.getValueByClosestLocale(locale => firstDayOfWeekData[locale]);\r\n return void 0 === index ? DEFAULT_DAY_OF_WEEK_INDEX : index\r\n }\r\n});\r\nif (hasIntl) {\r\n dateLocalization.inject(intlDateLocalization)\r\n}\r\nexport default dateLocalization;\r\n","/*!\n * devextreme-vue\n * Version: 21.1.5\n * Build date: Mon Aug 02 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initDxExtensionComponent = void 0;\nvar vue_1 = require(\"vue\");\nvar component_1 = require(\"./component\");\nvar vue_helper_1 = require(\"./vue-helper\");\nfunction initDxExtensionComponent() {\n return vue_1.defineComponent({\n extends: component_1.initBaseComponent(),\n created: function () {\n var nodeOptions = vue_helper_1.getNodeOptions(this);\n nodeOptions.$_isExtension = true;\n nodeOptions.$_attachTo = this.attachTo.bind(this);\n },\n mounted: function () {\n this.$el.setAttribute(\"isExtension\", \"true\");\n var componentOptions = vue_helper_1.getNodeOptions(this);\n if (componentOptions && componentOptions.$_hasOwner) {\n return;\n }\n this.attachTo(this.$el);\n },\n methods: {\n attachTo: function (element) {\n this.$_createWidget(element);\n }\n }\n });\n}\nexports.initDxExtensionComponent = initDxExtensionComponent;\n","module.exports = require('./browser/algorithms.json')\n","/*!\n * devextreme-vue\n * Version: 21.1.5\n * Build date: Mon Aug 02 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pullAllChildren = exports.isFragment = void 0;\nvar vue_helper_1 = require(\"./vue-helper\");\nfunction pullAllChildren(directChildren, allChildren, config) {\n if (!directChildren || directChildren.length === 0) {\n return;\n }\n pullConfigComponents(directChildren, allChildren, config);\n}\nexports.pullAllChildren = pullAllChildren;\nfunction isFragment(node) {\n var patchFlag = node.patchFlag;\n return patchFlag === 128 /* KEYED_FRAGMENT */\n || patchFlag === 256 /* UNKEYED_FRAGMENT */\n || patchFlag === 64 /* STABLE_FRAGMENT */;\n}\nexports.isFragment = isFragment;\nfunction pullConfigComponents(children, nodes, ownerConfig) {\n children.forEach(function (node) {\n if (isFragment(node) && Array.isArray(node.children)) {\n pullConfigComponents(node.children, nodes, ownerConfig);\n }\n if (!isFragment(node)) {\n nodes.push(node);\n }\n if (!node) {\n return;\n }\n var componentInfo = vue_helper_1.getComponentInfo(node);\n if (!componentInfo || !componentInfo.$_optionName) {\n return;\n }\n var componentChildren = vue_helper_1.configurationChildren(node);\n var initialValues = __assign(__assign({}, componentInfo.$_predefinedProps), vue_helper_1.getNormalizedProps(node.props || {}));\n var config = ownerConfig.createNested(componentInfo.$_optionName, initialValues, componentInfo.$_isCollectionItem, componentInfo.$_expectedChildren);\n node.$_config = config;\n node.$_innerChanges = {};\n if (componentChildren) {\n pullConfigComponents(componentChildren, nodes, config);\n }\n });\n}\n","/**\r\n * DevExtreme (esm/core/utils/callbacks.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar Callback = function(options) {\r\n this._options = options || {};\r\n this._list = [];\r\n this._queue = [];\r\n this._firing = false;\r\n this._fired = false;\r\n this._firingIndexes = []\r\n};\r\nCallback.prototype._fireCore = function(context, args) {\r\n var firingIndexes = this._firingIndexes;\r\n var list = this._list;\r\n var stopOnFalse = this._options.stopOnFalse;\r\n var step = firingIndexes.length;\r\n for (firingIndexes[step] = 0; firingIndexes[step] < list.length; firingIndexes[step]++) {\r\n var result = list[firingIndexes[step]].apply(context, args);\r\n if (false === result && stopOnFalse) {\r\n break\r\n }\r\n }\r\n firingIndexes.pop()\r\n};\r\nCallback.prototype.add = function(fn) {\r\n if (\"function\" === typeof fn && (!this._options.unique || !this.has(fn))) {\r\n this._list.push(fn)\r\n }\r\n return this\r\n};\r\nCallback.prototype.remove = function(fn) {\r\n var list = this._list;\r\n var firingIndexes = this._firingIndexes;\r\n var index = list.indexOf(fn);\r\n if (index > -1) {\r\n list.splice(index, 1);\r\n if (this._firing && firingIndexes.length) {\r\n for (var step = 0; step < firingIndexes.length; step++) {\r\n if (index <= firingIndexes[step]) {\r\n firingIndexes[step]--\r\n }\r\n }\r\n }\r\n }\r\n return this\r\n};\r\nCallback.prototype.has = function(fn) {\r\n var list = this._list;\r\n return fn ? list.indexOf(fn) > -1 : !!list.length\r\n};\r\nCallback.prototype.empty = function(fn) {\r\n this._list = [];\r\n return this\r\n};\r\nCallback.prototype.fireWith = function(context, args) {\r\n var queue = this._queue;\r\n args = args || [];\r\n args = args.slice ? args.slice() : args;\r\n if (this._options.syncStrategy) {\r\n this._firing = true;\r\n this._fireCore(context, args)\r\n } else {\r\n queue.push([context, args]);\r\n if (this._firing) {\r\n return\r\n }\r\n this._firing = true;\r\n while (queue.length) {\r\n var memory = queue.shift();\r\n this._fireCore(memory[0], memory[1])\r\n }\r\n }\r\n this._firing = false;\r\n this._fired = true;\r\n return this\r\n};\r\nCallback.prototype.fire = function() {\r\n this.fireWith(this, arguments)\r\n};\r\nCallback.prototype.fired = function() {\r\n return this._fired\r\n};\r\nvar Callbacks = function(options) {\r\n return new Callback(options)\r\n};\r\nexport default Callbacks;\r\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.animation.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nexport var animation = {\r\n moveTo(config) {\r\n var $element = config.$element;\r\n var position = config.position;\r\n var direction = config.direction || \"left\";\r\n var toConfig = {};\r\n var animationType;\r\n switch (direction) {\r\n case \"right\":\r\n toConfig.transform = \"translate(\" + position + \"px, 0px)\";\r\n animationType = \"custom\";\r\n break;\r\n case \"left\":\r\n toConfig.left = position;\r\n animationType = \"slide\";\r\n break;\r\n case \"top\":\r\n case \"bottom\":\r\n toConfig.top = position;\r\n animationType = \"slide\"\r\n }\r\n fx.animate($element, {\r\n type: animationType,\r\n to: toConfig,\r\n duration: config.duration,\r\n complete: config.complete\r\n })\r\n },\r\n margin(config) {\r\n var $element = config.$element;\r\n var margin = config.margin;\r\n var direction = config.direction || \"left\";\r\n var toConfig = {};\r\n toConfig[\"margin\" + camelize(direction, true)] = margin;\r\n fx.animate($element, {\r\n to: toConfig,\r\n duration: config.duration,\r\n complete: config.complete\r\n })\r\n },\r\n fade($element, config, duration, completeAction) {\r\n fx.animate($element, {\r\n type: \"fade\",\r\n to: config.to,\r\n from: config.from,\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n size(config) {\r\n var $element = config.$element;\r\n var size = config.size;\r\n var direction = config.direction || \"left\";\r\n var marginTop = config.marginTop || 0;\r\n var duration = config.duration;\r\n var toConfig = {};\r\n if (\"right\" === direction || \"left\" === direction) {\r\n toConfig.width = size\r\n } else {\r\n toConfig.height = size\r\n }\r\n if (\"bottom\" === direction) {\r\n toConfig.marginTop = marginTop\r\n }\r\n fx.animate($element, {\r\n to: toConfig,\r\n duration: duration,\r\n complete: config.complete\r\n })\r\n },\r\n complete($element) {\r\n fx.stop($element, true)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.rendering.strategy.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n animation\r\n} from \"./ui.drawer.animation\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nclass DrawerStrategy {\r\n constructor(drawer) {\r\n this._drawer = drawer\r\n }\r\n getDrawerInstance() {\r\n return this._drawer\r\n }\r\n renderPanelContent(whenPanelContentRendered) {\r\n var drawer = this.getDrawerInstance();\r\n var template = drawer._getTemplate(drawer.option(\"template\"));\r\n if (template) {\r\n template.render({\r\n container: drawer.content(),\r\n onRendered: () => {\r\n whenPanelContentRendered.resolve()\r\n }\r\n })\r\n }\r\n }\r\n renderPosition(changePositionUsingFxAnimation, animationDuration) {\r\n var whenPositionAnimationCompleted = new Deferred;\r\n var whenShaderAnimationCompleted = new Deferred;\r\n var drawer = this.getDrawerInstance();\r\n if (changePositionUsingFxAnimation) {\r\n when.apply($, [whenPositionAnimationCompleted, whenShaderAnimationCompleted]).done(() => {\r\n drawer._animationCompleteHandler()\r\n })\r\n }\r\n this._internalRenderPosition(changePositionUsingFxAnimation, whenPositionAnimationCompleted);\r\n if (!changePositionUsingFxAnimation) {\r\n drawer.resizeViewContent()\r\n }\r\n this.renderShaderVisibility(changePositionUsingFxAnimation, animationDuration, whenShaderAnimationCompleted)\r\n }\r\n _getPanelOffset(isDrawerOpened) {\r\n var drawer = this.getDrawerInstance();\r\n var size = drawer.isHorizontalDirection() ? drawer.getRealPanelWidth() : drawer.getRealPanelHeight();\r\n if (isDrawerOpened) {\r\n return -(size - drawer.getMaxSize())\r\n } else {\r\n return -(size - drawer.getMinSize())\r\n }\r\n }\r\n _getPanelSize(isDrawerOpened) {\r\n return isDrawerOpened ? this.getDrawerInstance().getMaxSize() : this.getDrawerInstance().getMinSize()\r\n }\r\n renderShaderVisibility(changePositionUsingFxAnimation, duration, whenAnimationCompleted) {\r\n var drawer = this.getDrawerInstance();\r\n var isShaderVisible = drawer.option(\"opened\");\r\n var fadeConfig = isShaderVisible ? {\r\n from: 0,\r\n to: 1\r\n } : {\r\n from: 1,\r\n to: 0\r\n };\r\n if (changePositionUsingFxAnimation) {\r\n animation.fade($(drawer._$shader), fadeConfig, duration, () => {\r\n this._drawer._toggleShaderVisibility(isShaderVisible);\r\n whenAnimationCompleted.resolve()\r\n })\r\n } else {\r\n drawer._toggleShaderVisibility(isShaderVisible);\r\n drawer._$shader.css(\"opacity\", fadeConfig.to)\r\n }\r\n }\r\n getPanelContent() {\r\n return $(this.getDrawerInstance().content())\r\n }\r\n setPanelSize(calcFromRealPanelSize) {\r\n this.refreshPanelElementSize(calcFromRealPanelSize)\r\n }\r\n refreshPanelElementSize(calcFromRealPanelSize) {\r\n var drawer = this.getDrawerInstance();\r\n var panelSize = this._getPanelSize(drawer.option(\"opened\"));\r\n if (drawer.isHorizontalDirection()) {\r\n $(drawer.content()).width(calcFromRealPanelSize ? drawer.getRealPanelWidth() : panelSize)\r\n } else {\r\n $(drawer.content()).height(calcFromRealPanelSize ? drawer.getRealPanelHeight() : panelSize)\r\n }\r\n }\r\n isViewContentFirst() {\r\n return false\r\n }\r\n onPanelContentRendered() {}\r\n}\r\nexport default DrawerStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.rendering.strategy.push.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n animation\r\n} from \"./ui.drawer.animation\";\r\nimport DrawerStrategy from \"./ui.drawer.rendering.strategy\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nclass PushStrategy extends DrawerStrategy {\r\n _internalRenderPosition(changePositionUsingFxAnimation, whenAnimationCompleted) {\r\n var drawer = this.getDrawerInstance();\r\n var openedPanelSize = this._getPanelSize(true);\r\n var contentPosition = this._getPanelSize(drawer.option(\"opened\")) * drawer._getPositionCorrection();\r\n $(drawer.content()).css(drawer.isHorizontalDirection() ? \"width\" : \"height\", openedPanelSize);\r\n if (drawer.getMinSize()) {\r\n var paddingCssPropertyName = \"padding\";\r\n switch (drawer.calcTargetPosition()) {\r\n case \"left\":\r\n paddingCssPropertyName += \"Right\";\r\n break;\r\n case \"right\":\r\n paddingCssPropertyName += \"Left\";\r\n break;\r\n case \"top\":\r\n paddingCssPropertyName += \"Bottom\";\r\n break;\r\n case \"bottom\":\r\n paddingCssPropertyName += \"Top\"\r\n }\r\n $(drawer.viewContent()).css(paddingCssPropertyName, drawer.getMinSize())\r\n }\r\n if (changePositionUsingFxAnimation) {\r\n animation.moveTo({\r\n $element: $(drawer.viewContent()),\r\n position: contentPosition,\r\n direction: drawer.calcTargetPosition(),\r\n duration: drawer.option(\"animationDuration\"),\r\n complete: () => {\r\n whenAnimationCompleted.resolve()\r\n }\r\n })\r\n } else if (drawer.isHorizontalDirection()) {\r\n move($(drawer.viewContent()), {\r\n left: contentPosition\r\n })\r\n } else {\r\n move($(drawer.viewContent()), {\r\n top: contentPosition\r\n })\r\n }\r\n }\r\n onPanelContentRendered() {\r\n $(this.getDrawerInstance().viewContent()).addClass(\"dx-theme-background-color\")\r\n }\r\n}\r\nexport default PushStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.rendering.strategy.shrink.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n animation\r\n} from \"./ui.drawer.animation\";\r\nimport DrawerStrategy from \"./ui.drawer.rendering.strategy\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nclass ShrinkStrategy extends DrawerStrategy {\r\n _internalRenderPosition(changePositionUsingFxAnimation, whenAnimationCompleted) {\r\n var drawer = this.getDrawerInstance();\r\n var direction = drawer.calcTargetPosition();\r\n var $panel = $(drawer.content());\r\n var panelSize = this._getPanelSize(drawer.option(\"opened\"));\r\n var panelOffset = this._getPanelOffset(drawer.option(\"opened\"));\r\n var revealMode = drawer.option(\"revealMode\");\r\n if (changePositionUsingFxAnimation) {\r\n if (\"slide\" === revealMode) {\r\n animation.margin({\r\n complete: () => {\r\n whenAnimationCompleted.resolve()\r\n },\r\n $element: $panel,\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: direction,\r\n margin: panelOffset\r\n })\r\n } else if (\"expand\" === revealMode) {\r\n animation.size({\r\n complete: () => {\r\n whenAnimationCompleted.resolve()\r\n },\r\n $element: $panel,\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: direction,\r\n size: panelSize\r\n })\r\n }\r\n } else if (\"slide\" === revealMode) {\r\n $panel.css(\"margin\" + camelize(direction, true), panelOffset)\r\n } else if (\"expand\" === revealMode) {\r\n $panel.css(drawer.isHorizontalDirection() ? \"width\" : \"height\", panelSize)\r\n }\r\n }\r\n isViewContentFirst(position, isRtl) {\r\n return (isRtl ? \"left\" === position : \"right\" === position) || \"bottom\" === position\r\n }\r\n}\r\nexport default ShrinkStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.rendering.strategy.overlap.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n animation\r\n} from \"./ui.drawer.animation\";\r\nimport DrawerStrategy from \"./ui.drawer.rendering.strategy\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nclass OverlapStrategy extends DrawerStrategy {\r\n renderPanelContent(whenPanelContentRendered) {\r\n delete this._initialPosition;\r\n var drawer = this.getDrawerInstance();\r\n var {\r\n opened: opened,\r\n minSize: minSize\r\n } = drawer.option();\r\n drawer._overlay = drawer._createComponent(drawer.content(), Overlay, {\r\n shading: false,\r\n container: drawer.getOverlayTarget(),\r\n position: this._getOverlayPosition(),\r\n width: opened ? \"auto\" : minSize || 0,\r\n height: \"100%\",\r\n templatesRenderAsynchronously: drawer.option(\"templatesRenderAsynchronously\"),\r\n animation: {\r\n show: {\r\n duration: 0\r\n }\r\n },\r\n onPositioned: function(e) {\r\n this._fixOverlayPosition(e.component.$content())\r\n }.bind(this),\r\n contentTemplate: drawer.option(\"template\"),\r\n onContentReady: args => {\r\n whenPanelContentRendered.resolve();\r\n this._processOverlayZIndex(args.component.content())\r\n },\r\n visible: true,\r\n propagateOutsideClick: true\r\n })\r\n }\r\n _fixOverlayPosition($overlayContent) {\r\n var position = ensureDefined(this._initialPosition, {\r\n left: 0,\r\n top: 0\r\n });\r\n move($overlayContent, position);\r\n if (\"right\" === this.getDrawerInstance().calcTargetPosition()) {\r\n $overlayContent.css(\"left\", \"auto\")\r\n }\r\n if (\"bottom\" === this.getDrawerInstance().calcTargetPosition()) {\r\n $overlayContent.css(\"top\", \"auto\");\r\n $overlayContent.css(\"bottom\", \"0px\")\r\n }\r\n }\r\n _getOverlayPosition() {\r\n var drawer = this.getDrawerInstance();\r\n var panelPosition = drawer.calcTargetPosition();\r\n var result = {};\r\n switch (panelPosition) {\r\n case \"left\":\r\n result = {\r\n my: \"top left\",\r\n at: \"top left\"\r\n };\r\n break;\r\n case \"right\":\r\n result = {\r\n my: drawer.option(\"rtlEnabled\") ? \"top left\" : \"top right\",\r\n at: \"top right\"\r\n };\r\n break;\r\n case \"top\":\r\n case \"bottom\":\r\n result = {\r\n my: panelPosition,\r\n at: panelPosition\r\n }\r\n }\r\n result.of = drawer.getOverlayTarget();\r\n return result\r\n }\r\n refreshPanelElementSize(calcFromRealPanelSize) {\r\n var drawer = this.getDrawerInstance();\r\n var overlay = drawer.getOverlay();\r\n if (drawer.isHorizontalDirection()) {\r\n overlay.option(\"height\", \"100%\");\r\n overlay.option(\"width\", calcFromRealPanelSize ? drawer.getRealPanelWidth() : this._getPanelSize(drawer.option(\"opened\")))\r\n } else {\r\n overlay.option(\"width\", overlay.option(\"container\").width());\r\n overlay.option(\"height\", calcFromRealPanelSize ? drawer.getRealPanelHeight() : this._getPanelSize(drawer.option(\"opened\")))\r\n }\r\n }\r\n onPanelContentRendered() {\r\n this._updateViewContentStyles()\r\n }\r\n _updateViewContentStyles() {\r\n var drawer = this.getDrawerInstance();\r\n $(drawer.viewContent()).css(\"padding\" + camelize(drawer.calcTargetPosition(), true), drawer.option(\"minSize\"));\r\n $(drawer.viewContent()).css(\"transform\", \"inherit\")\r\n }\r\n _internalRenderPosition(changePositionUsingFxAnimation, whenAnimationCompleted) {\r\n var drawer = this.getDrawerInstance();\r\n var $panel = $(drawer.content());\r\n var $panelOverlayContent = drawer.getOverlay().$content();\r\n var revealMode = drawer.option(\"revealMode\");\r\n var targetPanelPosition = drawer.calcTargetPosition();\r\n var panelSize = this._getPanelSize(drawer.option(\"opened\"));\r\n var panelOffset = this._getPanelOffset(drawer.option(\"opened\")) * drawer._getPositionCorrection();\r\n var marginTop = drawer.getRealPanelHeight() - panelSize;\r\n this._updateViewContentStyles();\r\n if (changePositionUsingFxAnimation) {\r\n if (\"slide\" === revealMode) {\r\n this._initialPosition = drawer.isHorizontalDirection() ? {\r\n left: panelOffset\r\n } : {\r\n top: panelOffset\r\n };\r\n animation.moveTo({\r\n complete: () => {\r\n whenAnimationCompleted.resolve()\r\n },\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: targetPanelPosition,\r\n $element: $panel,\r\n position: panelOffset\r\n })\r\n } else if (\"expand\" === revealMode) {\r\n this._initialPosition = {\r\n left: 0\r\n };\r\n move($panelOverlayContent, this._initialPosition);\r\n animation.size({\r\n complete: () => {\r\n whenAnimationCompleted.resolve()\r\n },\r\n duration: drawer.option(\"animationDuration\"),\r\n direction: targetPanelPosition,\r\n $element: $panelOverlayContent,\r\n size: panelSize,\r\n marginTop: marginTop\r\n })\r\n }\r\n } else if (\"slide\" === revealMode) {\r\n this._initialPosition = drawer.isHorizontalDirection() ? {\r\n left: panelOffset\r\n } : {\r\n top: panelOffset\r\n };\r\n move($panel, this._initialPosition)\r\n } else if (\"expand\" === revealMode) {\r\n this._initialPosition = {\r\n left: 0\r\n };\r\n move($panelOverlayContent, this._initialPosition);\r\n if (drawer.isHorizontalDirection()) {\r\n $($panelOverlayContent).css(\"width\", panelSize)\r\n } else {\r\n $($panelOverlayContent).css(\"height\", panelSize);\r\n if (\"bottom\" === targetPanelPosition) {\r\n $($panelOverlayContent).css(\"marginTop\", marginTop)\r\n }\r\n }\r\n }\r\n }\r\n getPanelContent() {\r\n return $(this.getDrawerInstance().getOverlay().content())\r\n }\r\n _processOverlayZIndex($element) {\r\n var styles = $($element).get(0).style;\r\n var zIndex = styles.zIndex || 1;\r\n this.getDrawerInstance().setZIndex(zIndex)\r\n }\r\n isViewContentFirst(position) {\r\n return \"right\" === position || \"bottom\" === position\r\n }\r\n}\r\nexport default OverlapStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/drawer/ui.drawer.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport PushStrategy from \"./ui.drawer.rendering.strategy.push\";\r\nimport ShrinkStrategy from \"./ui.drawer.rendering.strategy.shrink\";\r\nimport OverlapStrategy from \"./ui.drawer.rendering.strategy.overlap\";\r\nimport {\r\n animation\r\n} from \"./ui.drawer.animation\";\r\nimport {\r\n name as CLICK_EVENT_NAME\r\n} from \"../../events/click\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nvar DRAWER_CLASS = \"dx-drawer\";\r\nvar DRAWER_WRAPPER_CLASS = \"dx-drawer-wrapper\";\r\nvar DRAWER_PANEL_CONTENT_CLASS = \"dx-drawer-panel-content\";\r\nvar DRAWER_VIEW_CONTENT_CLASS = \"dx-drawer-content\";\r\nvar DRAWER_SHADER_CLASS = \"dx-drawer-shader\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar OPENED_STATE_CLASS = \"dx-drawer-opened\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar PANEL_TEMPLATE_NAME = \"panel\";\r\nvar Drawer = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n position: \"left\",\r\n opened: false,\r\n minSize: null,\r\n maxSize: null,\r\n shading: false,\r\n template: PANEL_TEMPLATE_NAME,\r\n openedStateMode: \"shrink\",\r\n revealMode: \"slide\",\r\n animationEnabled: true,\r\n animationDuration: 400,\r\n closeOnOutsideClick: false,\r\n contentTemplate: ANONYMOUS_TEMPLATE_NAME,\r\n target: void 0\r\n })\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n target: {\r\n since: \"20.1\",\r\n message: \"Functionality associated with this option is not intended for the Drawer widget.\"\r\n }\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initStrategy();\r\n this.$element().addClass(DRAWER_CLASS);\r\n this._whenAnimationCompleted = void 0;\r\n this._whenPanelContentRendered = void 0;\r\n this._whenPanelContentRefreshed = void 0;\r\n this._$wrapper = $(\"
\").addClass(DRAWER_WRAPPER_CLASS);\r\n this._$viewContentWrapper = $(\"
\").addClass(DRAWER_VIEW_CONTENT_CLASS);\r\n this._$wrapper.append(this._$viewContentWrapper);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _initStrategy() {\r\n switch (this.option(\"openedStateMode\")) {\r\n case \"push\":\r\n this._strategy = new PushStrategy(this);\r\n break;\r\n case \"shrink\":\r\n this._strategy = new ShrinkStrategy(this);\r\n break;\r\n case \"overlap\":\r\n this._strategy = new OverlapStrategy(this);\r\n break;\r\n default:\r\n this._strategy = new PushStrategy(this)\r\n }\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates() {\r\n var defaultTemplates = {};\r\n defaultTemplates[PANEL_TEMPLATE_NAME] = new EmptyTemplate;\r\n defaultTemplates[ANONYMOUS_TEMPLATE_NAME] = new EmptyTemplate;\r\n this._templateManager.addDefaultTemplates(defaultTemplates);\r\n this.callBase()\r\n },\r\n _viewContentWrapperClickHandler(e) {\r\n var closeOnOutsideClick = this.option(\"closeOnOutsideClick\");\r\n if (isFunction(closeOnOutsideClick)) {\r\n closeOnOutsideClick = closeOnOutsideClick(e)\r\n }\r\n if (closeOnOutsideClick && this.option(\"opened\")) {\r\n this.stopAnimations();\r\n if (this.option(\"shading\")) {\r\n e.preventDefault()\r\n }\r\n this.hide()\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._toggleOpenedStateClass(this.option(\"opened\"));\r\n this._renderPanelContentWrapper();\r\n this._refreshOpenedStateModeClass();\r\n this._refreshRevealModeClass();\r\n this._renderShader();\r\n this._whenPanelContentRendered = new Deferred;\r\n this._strategy.renderPanelContent(this._whenPanelContentRendered);\r\n this._strategy.onPanelContentRendered();\r\n this._renderViewContent();\r\n eventsEngine.off(this._$viewContentWrapper, CLICK_EVENT_NAME);\r\n eventsEngine.on(this._$viewContentWrapper, CLICK_EVENT_NAME, this._viewContentWrapperClickHandler.bind(this));\r\n this._refreshPositionClass();\r\n this._refreshWrapperChildrenOrder()\r\n },\r\n _render() {\r\n this._initMinMaxSize();\r\n this.callBase();\r\n this._whenPanelContentRendered.always(() => {\r\n this._initMinMaxSize();\r\n this._strategy.refreshPanelElementSize(\"slide\" === this.option(\"revealMode\") || !this.isHorizontalDirection());\r\n this._renderPosition(this.option(\"opened\"), true);\r\n this._removePanelManualPosition()\r\n })\r\n },\r\n _removePanelManualPosition() {\r\n if (this._$panelContentWrapper.attr(\"manualposition\")) {\r\n this._$panelContentWrapper.removeAttr(\"manualPosition\");\r\n this._$panelContentWrapper.css({\r\n position: \"\",\r\n top: \"\",\r\n left: \"\",\r\n right: \"\",\r\n bottom: \"\"\r\n })\r\n }\r\n },\r\n _renderPanelContentWrapper() {\r\n this._$panelContentWrapper = $(\"
\").addClass(DRAWER_PANEL_CONTENT_CLASS);\r\n var position = this.calcTargetPosition();\r\n if (\"push\" === this.option(\"openedStateMode\") && [\"top\", \"bottom\"].indexOf(position) > -1) {\r\n this._$panelContentWrapper.addClass(DRAWER_PANEL_CONTENT_CLASS + \"-push-top-or-bottom\")\r\n }\r\n if (\"overlap\" !== this.option(\"openedStateMode\") && !this.option(\"opened\") && !this.option(\"minSize\")) {\r\n this._$panelContentWrapper.attr(\"manualposition\", true);\r\n this._$panelContentWrapper.css({\r\n position: \"absolute\",\r\n top: \"-10000px\",\r\n left: \"-10000px\",\r\n right: \"auto\",\r\n bottom: \"auto\"\r\n })\r\n }\r\n this._$wrapper.append(this._$panelContentWrapper)\r\n },\r\n _refreshOpenedStateModeClass(prevOpenedStateMode) {\r\n if (prevOpenedStateMode) {\r\n this.$element().removeClass(DRAWER_CLASS + \"-\" + prevOpenedStateMode)\r\n }\r\n this.$element().addClass(DRAWER_CLASS + \"-\" + this.option(\"openedStateMode\"))\r\n },\r\n _refreshPositionClass(prevPosition) {\r\n if (prevPosition) {\r\n this.$element().removeClass(DRAWER_CLASS + \"-\" + prevPosition)\r\n }\r\n this.$element().addClass(DRAWER_CLASS + \"-\" + this.calcTargetPosition())\r\n },\r\n _refreshWrapperChildrenOrder() {\r\n var position = this.calcTargetPosition();\r\n if (this._strategy.isViewContentFirst(position, this.option(\"rtlEnabled\"))) {\r\n this._$wrapper.prepend(this._$viewContentWrapper)\r\n } else {\r\n this._$wrapper.prepend(this._$panelContentWrapper)\r\n }\r\n },\r\n _refreshRevealModeClass(prevRevealMode) {\r\n if (prevRevealMode) {\r\n this.$element().removeClass(DRAWER_CLASS + \"-\" + prevRevealMode)\r\n }\r\n this.$element().addClass(DRAWER_CLASS + \"-\" + this.option(\"revealMode\"))\r\n },\r\n _renderViewContent() {\r\n var contentTemplateOption = this.option(\"contentTemplate\");\r\n var contentTemplate = this._getTemplate(contentTemplateOption);\r\n if (contentTemplate) {\r\n var $viewTemplate = contentTemplate.render({\r\n container: this.viewContent(),\r\n noModel: true,\r\n transclude: this._templateManager.anonymousTemplateName === contentTemplateOption\r\n });\r\n if ($viewTemplate.hasClass(\"ng-scope\")) {\r\n $(this._$viewContentWrapper).children().not(\".\".concat(DRAWER_SHADER_CLASS)).replaceWith($viewTemplate)\r\n }\r\n }\r\n },\r\n _renderShader() {\r\n this._$shader = this._$shader || $(\"
\").addClass(DRAWER_SHADER_CLASS);\r\n this._$shader.appendTo(this.viewContent());\r\n this._toggleShaderVisibility(this.option(\"opened\"))\r\n },\r\n _initSize() {\r\n this._initMinMaxSize()\r\n },\r\n _initMinMaxSize() {\r\n var realPanelSize = this.isHorizontalDirection() ? this.getRealPanelWidth() : this.getRealPanelHeight();\r\n this._maxSize = this.option(\"maxSize\") || realPanelSize;\r\n this._minSize = this.option(\"minSize\") || 0\r\n },\r\n calcTargetPosition() {\r\n var position = this.option(\"position\");\r\n var rtl = this.option(\"rtlEnabled\");\r\n var result = position;\r\n if (\"before\" === position) {\r\n result = rtl ? \"right\" : \"left\"\r\n } else if (\"after\" === position) {\r\n result = rtl ? \"left\" : \"right\"\r\n }\r\n return result\r\n },\r\n getOverlayTarget() {\r\n return this._options.silent(\"target\") || this._$wrapper\r\n },\r\n getOverlay() {\r\n return this._overlay\r\n },\r\n getMaxSize() {\r\n return this._maxSize\r\n },\r\n getMinSize() {\r\n return this._minSize\r\n },\r\n getRealPanelWidth() {\r\n if (hasWindow()) {\r\n if (isDefined(this.option(\"templateSize\"))) {\r\n return this.option(\"templateSize\")\r\n } else {\r\n return getBoundingRect(this._getPanelTemplateElement()).width\r\n }\r\n } else {\r\n return 0\r\n }\r\n },\r\n getRealPanelHeight() {\r\n if (hasWindow()) {\r\n if (isDefined(this.option(\"templateSize\"))) {\r\n return this.option(\"templateSize\")\r\n } else {\r\n return getBoundingRect(this._getPanelTemplateElement()).height\r\n }\r\n } else {\r\n return 0\r\n }\r\n },\r\n _getPanelTemplateElement() {\r\n var $panelContent = this._strategy.getPanelContent();\r\n var $result = $panelContent;\r\n if ($panelContent.children().length) {\r\n $result = $panelContent.children().eq(0);\r\n if ($panelContent.hasClass(\"dx-overlay-content\") && $result.hasClass(\"dx-template-wrapper\") && $result.children().length) {\r\n $result = $result.children().eq(0)\r\n }\r\n }\r\n return $result.get(0)\r\n },\r\n getElementHeight($element) {\r\n var $children = $element.children();\r\n return $children.length ? getBoundingRect($children.eq(0).get(0)).height : getBoundingRect($element.get(0)).height\r\n },\r\n isHorizontalDirection() {\r\n var position = this.calcTargetPosition();\r\n return \"left\" === position || \"right\" === position\r\n },\r\n stopAnimations(jumpToEnd) {\r\n fx.stop(this._$shader, jumpToEnd);\r\n fx.stop($(this.content()), jumpToEnd);\r\n fx.stop($(this.viewContent()), jumpToEnd);\r\n var overlay = this.getOverlay();\r\n if (overlay) {\r\n fx.stop($(overlay.$content()), jumpToEnd)\r\n }\r\n },\r\n setZIndex(zIndex) {\r\n this._$shader.css(\"zIndex\", zIndex - 1);\r\n this._$panelContentWrapper.css(\"zIndex\", zIndex)\r\n },\r\n resizeContent() {\r\n this.resizeViewContent\r\n },\r\n resizeViewContent() {\r\n triggerResizeEvent(this.viewContent())\r\n },\r\n _isInvertedPosition() {\r\n var position = this.calcTargetPosition();\r\n return \"right\" === position || \"bottom\" === position\r\n },\r\n _renderPosition(isDrawerOpened, disableAnimation, jumpToEnd) {\r\n this.stopAnimations(jumpToEnd);\r\n if (!hasWindow()) {\r\n return\r\n }\r\n $(this.viewContent()).css(\"paddingLeft\", 0);\r\n $(this.viewContent()).css(\"paddingRight\", 0);\r\n $(this.viewContent()).css(\"paddingTop\", 0);\r\n $(this.viewContent()).css(\"paddingBottom\", 0);\r\n var animationEnabled = this.option(\"animationEnabled\");\r\n if (true === disableAnimation) {\r\n animationEnabled = false\r\n }\r\n if (isDrawerOpened) {\r\n this._toggleShaderVisibility(isDrawerOpened)\r\n }\r\n this._strategy.renderPosition(animationEnabled, this.option(\"animationDuration\"))\r\n },\r\n _animationCompleteHandler() {\r\n this.resizeViewContent();\r\n if (this._whenAnimationCompleted) {\r\n this._whenAnimationCompleted.resolve()\r\n }\r\n },\r\n _getPositionCorrection() {\r\n return this._isInvertedPosition() ? -1 : 1\r\n },\r\n _dispose() {\r\n animation.complete($(this.viewContent()));\r\n this.callBase()\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged() {\r\n this._initMinMaxSize();\r\n this._strategy.refreshPanelElementSize(\"slide\" === this.option(\"revealMode\"));\r\n this._renderPosition(this.option(\"opened\"), true)\r\n },\r\n _toggleShaderVisibility(visible) {\r\n if (this.option(\"shading\")) {\r\n this._$shader.toggleClass(INVISIBLE_STATE_CLASS, !visible);\r\n this._$shader.css(\"visibility\", visible ? \"visible\" : \"hidden\")\r\n } else {\r\n this._$shader.toggleClass(INVISIBLE_STATE_CLASS, true)\r\n }\r\n },\r\n _toggleOpenedStateClass(opened) {\r\n this.$element().toggleClass(OPENED_STATE_CLASS, opened)\r\n },\r\n _refreshPanel() {\r\n $(this.viewContent()).css(\"left\", 0);\r\n $(this.viewContent()).css(\"transform\", \"translate(0px, 0px)\");\r\n $(this.viewContent()).removeClass(\"dx-theme-background-color\");\r\n this._removePanelContentWrapper();\r\n this._removeOverlay();\r\n this._renderPanelContentWrapper();\r\n this._refreshWrapperChildrenOrder();\r\n this._whenPanelContentRefreshed = new Deferred;\r\n this._strategy.renderPanelContent(this._whenPanelContentRefreshed);\r\n this._strategy.onPanelContentRendered();\r\n if (hasWindow()) {\r\n this._whenPanelContentRefreshed.always(() => {\r\n this._strategy.refreshPanelElementSize(\"slide\" === this.option(\"revealMode\"));\r\n this._renderPosition(this.option(\"opened\"), true, true);\r\n this._removePanelManualPosition()\r\n })\r\n }\r\n },\r\n _clean() {\r\n this._cleanFocusState();\r\n this._removePanelContentWrapper();\r\n this._removeOverlay()\r\n },\r\n _removePanelContentWrapper() {\r\n if (this._$panelContentWrapper) {\r\n this._$panelContentWrapper.remove()\r\n }\r\n },\r\n _removeOverlay() {\r\n if (this._overlay) {\r\n this._overlay.dispose();\r\n delete this._overlay;\r\n delete this._$panelContentWrapper\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"opened\":\r\n this._renderPosition(this.option(\"opened\"));\r\n this._toggleOpenedStateClass(args.value);\r\n break;\r\n case \"position\":\r\n this._refreshPositionClass(args.previousValue);\r\n this._refreshWrapperChildrenOrder();\r\n this._invalidate();\r\n break;\r\n case \"contentTemplate\":\r\n case \"template\":\r\n this._invalidate();\r\n break;\r\n case \"openedStateMode\":\r\n case \"target\":\r\n this._initStrategy();\r\n this._refreshOpenedStateModeClass(args.previousValue);\r\n this._refreshPanel();\r\n break;\r\n case \"minSize\":\r\n case \"maxSize\":\r\n this._initMinMaxSize();\r\n this._renderPosition(this.option(\"opened\"), true);\r\n break;\r\n case \"revealMode\":\r\n this._refreshRevealModeClass(args.previousValue);\r\n this._refreshPanel();\r\n break;\r\n case \"shading\":\r\n this._toggleShaderVisibility(this.option(\"opened\"));\r\n break;\r\n case \"animationEnabled\":\r\n case \"animationDuration\":\r\n case \"closeOnOutsideClick\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n content() {\r\n return getPublicElement(this._$panelContentWrapper)\r\n },\r\n viewContent() {\r\n return getPublicElement(this._$viewContentWrapper)\r\n },\r\n show() {\r\n return this.toggle(true)\r\n },\r\n hide() {\r\n return this.toggle(false)\r\n },\r\n toggle(opened) {\r\n var targetOpened = void 0 === opened ? !this.option(\"opened\") : opened;\r\n this._whenAnimationCompleted = new Deferred;\r\n this.option(\"opened\", targetOpened);\r\n return this._whenAnimationCompleted.promise()\r\n }\r\n});\r\nregisterComponent(\"dxDrawer\", Drawer);\r\nexport default Drawer;\r\n","export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","module.exports = {\n decode: require('./decode'),\n verify: require('./verify'),\n sign: require('./sign'),\n JsonWebTokenError: require('./lib/JsonWebTokenError'),\n NotBeforeError: require('./lib/NotBeforeError'),\n TokenExpiredError: require('./lib/TokenExpiredError'),\n};\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","/**\r\n * DevExtreme (esm/core/utils/ready_callbacks.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport injector from \"./dependency_injector\";\r\nimport {\r\n hasWindow\r\n} from \"./window\";\r\nimport callOnce from \"./call_once\";\r\nvar callbacks = [];\r\nvar isReady = () => \"complete\" === domAdapter.getReadyState() || \"loading\" !== domAdapter.getReadyState() && !domAdapter.getDocumentElement().doScroll;\r\nvar subscribeReady = callOnce(() => {\r\n var removeListener = domAdapter.listen(domAdapter.getDocument(), \"DOMContentLoaded\", () => {\r\n readyCallbacks.fire();\r\n removeListener()\r\n })\r\n});\r\nvar readyCallbacks = {\r\n add: callback => {\r\n var windowExists = hasWindow();\r\n if (windowExists && isReady()) {\r\n callback()\r\n } else {\r\n callbacks.push(callback);\r\n windowExists && subscribeReady()\r\n }\r\n },\r\n fire: () => {\r\n callbacks.forEach(callback => callback());\r\n callbacks = []\r\n }\r\n};\r\nexport default injector(readyCallbacks);\r\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\nvar JWS_REGEX = /^[a-zA-Z0-9\\-_]+?\\.[a-zA-Z0-9\\-_]+?\\.([a-zA-Z0-9\\-_]+)?$/;\n\nfunction isObject(thing) {\n return Object.prototype.toString.call(thing) === '[object Object]';\n}\n\nfunction safeJsonParse(thing) {\n if (isObject(thing))\n return thing;\n try { return JSON.parse(thing); }\n catch (e) { return undefined; }\n}\n\nfunction headerFromJWS(jwsSig) {\n var encodedHeader = jwsSig.split('.', 1)[0];\n return safeJsonParse(Buffer.from(encodedHeader, 'base64').toString('binary'));\n}\n\nfunction securedInputFromJWS(jwsSig) {\n return jwsSig.split('.', 2).join('.');\n}\n\nfunction signatureFromJWS(jwsSig) {\n return jwsSig.split('.')[2];\n}\n\nfunction payloadFromJWS(jwsSig, encoding) {\n encoding = encoding || 'utf8';\n var payload = jwsSig.split('.')[1];\n return Buffer.from(payload, 'base64').toString(encoding);\n}\n\nfunction isValidJws(string) {\n return JWS_REGEX.test(string) && !!headerFromJWS(string);\n}\n\nfunction jwsVerify(jwsSig, algorithm, secretOrKey) {\n if (!algorithm) {\n var err = new Error(\"Missing algorithm parameter for jws.verify\");\n err.code = \"MISSING_ALGORITHM\";\n throw err;\n }\n jwsSig = toString(jwsSig);\n var signature = signatureFromJWS(jwsSig);\n var securedInput = securedInputFromJWS(jwsSig);\n var algo = jwa(algorithm);\n return algo.verify(securedInput, signature, secretOrKey);\n}\n\nfunction jwsDecode(jwsSig, opts) {\n opts = opts || {};\n jwsSig = toString(jwsSig);\n\n if (!isValidJws(jwsSig))\n return null;\n\n var header = headerFromJWS(jwsSig);\n\n if (!header)\n return null;\n\n var payload = payloadFromJWS(jwsSig);\n if (header.typ === 'JWT' || opts.json)\n payload = JSON.parse(payload, opts.encoding);\n\n return {\n header: header,\n payload: payload,\n signature: signatureFromJWS(jwsSig)\n };\n}\n\nfunction VerifyStream(opts) {\n opts = opts || {};\n var secretOrKey = opts.secret||opts.publicKey||opts.key;\n var secretStream = new DataStream(secretOrKey);\n this.readable = true;\n this.algorithm = opts.algorithm;\n this.encoding = opts.encoding;\n this.secret = this.publicKey = this.key = secretStream;\n this.signature = new DataStream(opts.signature);\n this.secret.once('close', function () {\n if (!this.signature.writable && this.readable)\n this.verify();\n }.bind(this));\n\n this.signature.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.verify();\n }.bind(this));\n}\nutil.inherits(VerifyStream, Stream);\nVerifyStream.prototype.verify = function verify() {\n try {\n var valid = jwsVerify(this.signature.buffer, this.algorithm, this.key.buffer);\n var obj = jwsDecode(this.signature.buffer, this.encoding);\n this.emit('done', valid, obj);\n this.emit('data', valid);\n this.emit('end');\n this.readable = false;\n return valid;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nVerifyStream.decode = jwsDecode;\nVerifyStream.isValid = isValidJws;\nVerifyStream.verify = jwsVerify;\n\nmodule.exports = VerifyStream;\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","/**\r\n * DevExtreme (esm/ui/load_panel.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport LoadIndicator from \"./load_indicator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isMaterial\r\n} from \"./themes\";\r\nvar LOADPANEL_CLASS = \"dx-loadpanel\";\r\nvar LOADPANEL_WRAPPER_CLASS = \"dx-loadpanel-wrapper\";\r\nvar LOADPANEL_INDICATOR_CLASS = \"dx-loadpanel-indicator\";\r\nvar LOADPANEL_MESSAGE_CLASS = \"dx-loadpanel-message\";\r\nvar LOADPANEL_CONTENT_CLASS = \"dx-loadpanel-content\";\r\nvar LOADPANEL_CONTENT_WRAPPER_CLASS = \"dx-loadpanel-content-wrapper\";\r\nvar LOADPANEL_PANE_HIDDEN_CLASS = \"dx-loadpanel-pane-hidden\";\r\nvar LoadPanel = Overlay.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n escape: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n message: messageLocalization.format(\"Loading\"),\r\n width: 222,\r\n height: 90,\r\n animation: null,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true,\r\n delay: 0,\r\n templatesRenderAsynchronously: false,\r\n hideTopOverlayHandler: null,\r\n resizeEnabled: false,\r\n focusStateEnabled: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n shadingColor: \"transparent\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n message: \"\",\r\n width: 60,\r\n height: 60,\r\n maxHeight: 60,\r\n maxWidth: 60\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADPANEL_CLASS);\r\n this.$wrapper().addClass(LOADPANEL_WRAPPER_CLASS)\r\n },\r\n _renderContentImpl: function() {\r\n this.callBase();\r\n this.$content().addClass(LOADPANEL_CONTENT_CLASS);\r\n this._$loadPanelContentWrapper = $(\"
\").addClass(LOADPANEL_CONTENT_WRAPPER_CLASS);\r\n this._$loadPanelContentWrapper.appendTo(this.$content());\r\n this._togglePaneVisible();\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage()\r\n },\r\n _show: function() {\r\n var delay = this.option(\"delay\");\r\n if (!delay) {\r\n return this.callBase()\r\n }\r\n var deferred = new Deferred;\r\n var callBase = this.callBase.bind(this);\r\n this._clearShowTimeout();\r\n this._showTimeout = setTimeout((function() {\r\n callBase().done((function() {\r\n deferred.resolve()\r\n }))\r\n }), delay);\r\n return deferred.promise()\r\n },\r\n _hide: function() {\r\n this._clearShowTimeout();\r\n return this.callBase()\r\n },\r\n _clearShowTimeout: function() {\r\n clearTimeout(this._showTimeout)\r\n },\r\n _renderMessage: function() {\r\n if (!this._$loadPanelContentWrapper) {\r\n return\r\n }\r\n var message = this.option(\"message\");\r\n if (!message) {\r\n return\r\n }\r\n var $message = $(\"
\").addClass(LOADPANEL_MESSAGE_CLASS).text(message);\r\n this._$loadPanelContentWrapper.append($message)\r\n },\r\n _renderLoadIndicator: function() {\r\n if (!this._$loadPanelContentWrapper || !this.option(\"showIndicator\")) {\r\n return\r\n }\r\n if (!this._$indicator) {\r\n this._$indicator = $(\"
\").addClass(LOADPANEL_INDICATOR_CLASS).appendTo(this._$loadPanelContentWrapper)\r\n }\r\n this._createComponent(this._$indicator, LoadIndicator, {\r\n indicatorSrc: this.option(\"indicatorSrc\")\r\n })\r\n },\r\n _cleanPreviousContent: function() {\r\n this.$content().find(\".\" + LOADPANEL_MESSAGE_CLASS).remove();\r\n this.$content().find(\".\" + LOADPANEL_INDICATOR_CLASS).remove();\r\n delete this._$indicator\r\n },\r\n _togglePaneVisible: function() {\r\n this.$content().toggleClass(LOADPANEL_PANE_HIDDEN_CLASS, !this.option(\"showPane\"))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"delay\":\r\n break;\r\n case \"message\":\r\n case \"showIndicator\":\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage();\r\n break;\r\n case \"showPane\":\r\n this._togglePaneVisible();\r\n break;\r\n case \"indicatorSrc\":\r\n this._renderLoadIndicator();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose: function() {\r\n this._clearShowTimeout();\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxLoadPanel\", LoadPanel);\r\nexport default LoadPanel;\r\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","/**\r\n * DevExtreme (esm/core/utils/queue.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction createQueue(discardPendingTasks) {\r\n var _tasks = [];\r\n var _busy = false;\r\n\r\n function exec() {\r\n while (_tasks.length) {\r\n _busy = true;\r\n var task = _tasks.shift();\r\n var result = task();\r\n if (void 0 === result) {\r\n continue\r\n }\r\n if (result.then) {\r\n when(result).always(exec);\r\n return\r\n }\r\n throw errors.Error(\"E0015\")\r\n }\r\n _busy = false\r\n }\r\n return {\r\n add: function(task, removeTaskCallback) {\r\n if (!discardPendingTasks) {\r\n _tasks.push(task)\r\n } else {\r\n if (_tasks[0] && removeTaskCallback) {\r\n removeTaskCallback(_tasks[0])\r\n }\r\n _tasks = [task]\r\n }\r\n if (!_busy) {\r\n exec()\r\n }\r\n },\r\n busy: function() {\r\n return _busy\r\n }\r\n }\r\n}\r\nexport {\r\n createQueue as create\r\n};\r\nexport var enqueue = createQueue().add;\r\n","/**\r\n * DevExtreme (esm/data/data_source/operation_manager.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n CANCELED_TOKEN\r\n} from \"./utils\";\r\nexport default class OperationManager {\r\n constructor() {\r\n this._counter = -1;\r\n this._deferreds = {}\r\n }\r\n add(deferred) {\r\n this._counter++;\r\n this._deferreds[this._counter] = deferred;\r\n return this._counter\r\n }\r\n remove(operationId) {\r\n return delete this._deferreds[operationId]\r\n }\r\n cancel(operationId) {\r\n if (operationId in this._deferreds) {\r\n this._deferreds[operationId].reject(CANCELED_TOKEN);\r\n return true\r\n }\r\n return false\r\n }\r\n cancelAll() {\r\n while (this._counter > -1) {\r\n this.cancel(this._counter);\r\n this._counter--\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/data_source/data_source.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isNumeric,\r\n isBoolean,\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n throttleChanges\r\n} from \"../utils\";\r\nimport {\r\n applyBatch\r\n} from \"../array_utils\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport {\r\n errors\r\n} from \"../errors\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/array\";\r\nimport {\r\n create\r\n} from \"../../core/utils/queue\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport OperationManager from \"./operation_manager\";\r\nimport {\r\n normalizeDataSourceOptions,\r\n normalizeStoreLoadOptionAccessorArguments,\r\n CANCELED_TOKEN,\r\n isPending,\r\n normalizeLoadResult,\r\n mapDataRespectingGrouping\r\n} from \"./utils\";\r\nexport var DataSource = Class.inherit({\r\n ctor(options) {\r\n var _options$reshapeOnPus;\r\n options = normalizeDataSourceOptions(options);\r\n this._eventsStrategy = new EventsStrategy(this, {\r\n syncStrategy: true\r\n });\r\n this._store = options.store;\r\n this._changedTime = 0;\r\n var needThrottling = 0 !== options.pushAggregationTimeout;\r\n if (needThrottling) {\r\n var throttlingTimeout = void 0 === options.pushAggregationTimeout ? () => 5 * this._changedTime : options.pushAggregationTimeout;\r\n var pushDeferred;\r\n var lastPushWaiters;\r\n var throttlingPushHandler = throttleChanges(changes => {\r\n pushDeferred.resolve();\r\n var storePushPending = when(...lastPushWaiters);\r\n storePushPending.done(() => this._onPush(changes));\r\n lastPushWaiters = void 0;\r\n pushDeferred = void 0\r\n }, throttlingTimeout);\r\n this._onPushHandler = args => {\r\n this._aggregationTimeoutId = throttlingPushHandler(args.changes);\r\n if (!pushDeferred) {\r\n pushDeferred = new Deferred\r\n }\r\n lastPushWaiters = args.waitFor;\r\n args.waitFor.push(pushDeferred.promise())\r\n };\r\n this._store.on(\"beforePush\", this._onPushHandler)\r\n } else {\r\n this._onPushHandler = changes => this._onPush(changes);\r\n this._store.on(\"push\", this._onPushHandler)\r\n }\r\n this._storeLoadOptions = this._extractLoadOptions(options);\r\n this._mapFunc = options.map;\r\n this._postProcessFunc = options.postProcess;\r\n this._pageIndex = void 0 !== options.pageIndex ? options.pageIndex : 0;\r\n this._pageSize = void 0 !== options.pageSize ? options.pageSize : 20;\r\n this._loadingCount = 0;\r\n this._loadQueue = this._createLoadQueue();\r\n this._searchValue = \"searchValue\" in options ? options.searchValue : null;\r\n this._searchOperation = options.searchOperation || \"contains\";\r\n this._searchExpr = options.searchExpr;\r\n this._paginate = options.paginate;\r\n this._reshapeOnPush = null !== (_options$reshapeOnPus = options.reshapeOnPush) && void 0 !== _options$reshapeOnPus ? _options$reshapeOnPus : false;\r\n each([\"onChanged\", \"onLoadError\", \"onLoadingChanged\", \"onCustomizeLoadResult\", \"onCustomizeStoreLoadOptions\"], (_, optionName) => {\r\n if (optionName in options) {\r\n this.on(optionName.substr(2, 1).toLowerCase() + optionName.substr(3), options[optionName])\r\n }\r\n });\r\n this._operationManager = new OperationManager;\r\n this._init()\r\n },\r\n _init() {\r\n this._items = [];\r\n this._userData = {};\r\n this._totalCount = -1;\r\n this._isLoaded = false;\r\n if (!isDefined(this._paginate)) {\r\n this._paginate = !this.group()\r\n }\r\n this._isLastPage = !this._paginate\r\n },\r\n dispose() {\r\n var _this$_delayedLoadTas;\r\n this._store.off(\"beforePush\", this._onPushHandler);\r\n this._store.off(\"push\", this._onPushHandler);\r\n this._eventsStrategy.dispose();\r\n clearTimeout(this._aggregationTimeoutId);\r\n delete this._store;\r\n null === (_this$_delayedLoadTas = this._delayedLoadTask) || void 0 === _this$_delayedLoadTas ? void 0 : _this$_delayedLoadTas.abort();\r\n this._operationManager.cancelAll();\r\n this._disposed = true\r\n },\r\n _extractLoadOptions(options) {\r\n var result = {};\r\n var names = [\"sort\", \"filter\", \"select\", \"group\", \"requireTotalCount\"];\r\n var customNames = this._store._customLoadOptions();\r\n if (customNames) {\r\n names = names.concat(customNames)\r\n }\r\n each(names, (function() {\r\n result[this] = options[this]\r\n }));\r\n return result\r\n },\r\n loadOptions() {\r\n return this._storeLoadOptions\r\n },\r\n items() {\r\n return this._items\r\n },\r\n pageIndex(newIndex) {\r\n if (!isNumeric(newIndex)) {\r\n return this._pageIndex\r\n }\r\n this._pageIndex = newIndex;\r\n this._isLastPage = !this._paginate\r\n },\r\n paginate(value) {\r\n if (!isBoolean(value)) {\r\n return this._paginate\r\n }\r\n if (this._paginate !== value) {\r\n this._paginate = value;\r\n this.pageIndex(0)\r\n }\r\n },\r\n pageSize(value) {\r\n if (!isNumeric(value)) {\r\n return this._pageSize\r\n }\r\n this._pageSize = value\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n generateStoreLoadOptionAccessor(optionName) {\r\n return args => {\r\n var normalizedArgs = normalizeStoreLoadOptionAccessorArguments(args);\r\n if (void 0 === normalizedArgs) {\r\n return this._storeLoadOptions[optionName]\r\n }\r\n this._storeLoadOptions[optionName] = normalizedArgs\r\n }\r\n },\r\n sort() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"sort\")(args)\r\n },\r\n filter() {\r\n var newFilter = normalizeStoreLoadOptionAccessorArguments(arguments);\r\n if (void 0 === newFilter) {\r\n return this._storeLoadOptions.filter\r\n }\r\n this._storeLoadOptions.filter = newFilter;\r\n this.pageIndex(0)\r\n },\r\n group() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"group\")(args)\r\n },\r\n select() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"select\")(args)\r\n },\r\n requireTotalCount(value) {\r\n if (!isBoolean(value)) {\r\n return this._storeLoadOptions.requireTotalCount\r\n }\r\n this._storeLoadOptions.requireTotalCount = value\r\n },\r\n searchValue(value) {\r\n if (arguments.length < 1) {\r\n return this._searchValue\r\n }\r\n this._searchValue = value;\r\n this.pageIndex(0)\r\n },\r\n searchOperation(op) {\r\n if (!isString(op)) {\r\n return this._searchOperation\r\n }\r\n this._searchOperation = op;\r\n this.pageIndex(0)\r\n },\r\n searchExpr(expr) {\r\n var argc = arguments.length;\r\n if (0 === argc) {\r\n return this._searchExpr\r\n }\r\n if (argc > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n this._searchExpr = expr;\r\n this.pageIndex(0)\r\n },\r\n store() {\r\n return this._store\r\n },\r\n key() {\r\n var _this$_store;\r\n return null === (_this$_store = this._store) || void 0 === _this$_store ? void 0 : _this$_store.key()\r\n },\r\n totalCount() {\r\n return this._totalCount\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._loadingCount > 0\r\n },\r\n beginLoading() {\r\n this._changeLoadingCount(1)\r\n },\r\n endLoading() {\r\n this._changeLoadingCount(-1)\r\n },\r\n _createLoadQueue: () => create(),\r\n _changeLoadingCount(increment) {\r\n var oldLoading = this.isLoading();\r\n this._loadingCount += increment;\r\n var newLoading = this.isLoading();\r\n if (oldLoading ^ newLoading) {\r\n this._eventsStrategy.fireEvent(\"loadingChanged\", [newLoading])\r\n }\r\n },\r\n _scheduleLoadCallbacks(deferred) {\r\n this.beginLoading();\r\n deferred.always(() => {\r\n this.endLoading()\r\n })\r\n },\r\n _scheduleFailCallbacks(deferred) {\r\n var _this = this;\r\n deferred.fail((function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n if (args[0] === CANCELED_TOKEN) {\r\n return\r\n }\r\n _this._eventsStrategy.fireEvent(\"loadError\", args)\r\n }))\r\n },\r\n _fireChanged(args) {\r\n var date = new Date;\r\n this._eventsStrategy.fireEvent(\"changed\", args);\r\n this._changedTime = new Date - date\r\n },\r\n _scheduleChangedCallbacks(deferred) {\r\n deferred.done(() => this._fireChanged())\r\n },\r\n loadSingle(propName, propValue) {\r\n var d = new Deferred;\r\n var key = this.key();\r\n var store = this._store;\r\n var options = this._createStoreLoadOptions();\r\n this._scheduleFailCallbacks(d);\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = key\r\n }\r\n delete options.skip;\r\n delete options.group;\r\n delete options.refresh;\r\n delete options.pageIndex;\r\n delete options.searchString;\r\n (() => {\r\n if (propName === key || store instanceof CustomStore && !store._byKeyViaLoad()) {\r\n return store.byKey(propValue, options)\r\n }\r\n options.take = 1;\r\n options.filter = options.filter ? [options.filter, [propName, propValue]] : [propName, propValue];\r\n return store.load(options)\r\n })().fail(d.reject).done(data => {\r\n if (!isDefined(data) || isEmpty(data)) {\r\n d.reject(new errors.Error(\"E4009\"))\r\n } else {\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n d.resolve(this._applyMapFunction(data)[0])\r\n }\r\n });\r\n return d.promise()\r\n },\r\n load() {\r\n var d = new Deferred;\r\n var loadTask = () => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(d)) {\r\n return\r\n }\r\n return this._loadFromStore(loadOperation, d)\r\n };\r\n this._scheduleLoadCallbacks(d);\r\n this._scheduleFailCallbacks(d);\r\n this._scheduleChangedCallbacks(d);\r\n var loadOperation = this._createLoadOperation(d);\r\n this._eventsStrategy.fireEvent(\"customizeStoreLoadOptions\", [loadOperation]);\r\n this._loadQueue.add(() => {\r\n if (\"number\" === typeof loadOperation.delay) {\r\n this._delayedLoadTask = executeAsync(loadTask, loadOperation.delay)\r\n } else {\r\n loadTask()\r\n }\r\n return d.promise()\r\n });\r\n return d.promise({\r\n operationId: loadOperation.operationId\r\n })\r\n },\r\n _onPush(changes) {\r\n if (this._reshapeOnPush) {\r\n this.load()\r\n } else {\r\n this._eventsStrategy.fireEvent(\"changing\", [{\r\n changes: changes\r\n }]);\r\n var group = this.group();\r\n var items = this.items();\r\n var groupLevel = 0;\r\n var dataSourceChanges = this.paginate() || group ? changes.filter(item => \"update\" === item.type) : changes;\r\n if (group) {\r\n groupLevel = Array.isArray(group) ? group.length : 1\r\n }\r\n if (this._mapFunc) {\r\n dataSourceChanges.forEach(item => {\r\n if (\"insert\" === item.type) {\r\n item.data = this._mapFunc(item.data)\r\n }\r\n })\r\n }\r\n applyBatch({\r\n keyInfo: this.store(),\r\n data: items,\r\n changes: dataSourceChanges,\r\n groupCount: groupLevel,\r\n useInsertIndex: true\r\n });\r\n this._fireChanged([{\r\n changes: changes\r\n }])\r\n }\r\n },\r\n _createLoadOperation(deferred) {\r\n var operationId = this._operationManager.add(deferred);\r\n var storeLoadOptions = this._createStoreLoadOptions();\r\n deferred.always(() => this._operationManager.remove(operationId));\r\n return {\r\n operationId: operationId,\r\n storeLoadOptions: storeLoadOptions\r\n }\r\n },\r\n reload() {\r\n var store = this.store();\r\n if (store instanceof CustomStore) {\r\n store.clearRawDataCache()\r\n }\r\n this._init();\r\n return this.load()\r\n },\r\n cancel(operationId) {\r\n return this._operationManager.cancel(operationId)\r\n },\r\n cancelAll() {\r\n return this._operationManager.cancelAll()\r\n },\r\n _addSearchOptions(storeLoadOptions) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (this.store()._useDefaultSearch) {\r\n this._addSearchFilter(storeLoadOptions)\r\n } else {\r\n storeLoadOptions.searchOperation = this._searchOperation;\r\n storeLoadOptions.searchValue = this._searchValue;\r\n storeLoadOptions.searchExpr = this._searchExpr\r\n }\r\n },\r\n _createStoreLoadOptions() {\r\n var result = extend({}, this._storeLoadOptions);\r\n this._addSearchOptions(result);\r\n if (this._paginate) {\r\n if (this._pageSize) {\r\n result.skip = this._pageIndex * this._pageSize;\r\n result.take = this._pageSize\r\n }\r\n }\r\n result.userData = this._userData;\r\n return result\r\n },\r\n _addSearchFilter(storeLoadOptions) {\r\n var value = this._searchValue;\r\n var op = this._searchOperation;\r\n var selector = this._searchExpr;\r\n var searchFilter = [];\r\n if (!value) {\r\n return\r\n }\r\n if (!selector) {\r\n selector = \"this\"\r\n }\r\n if (!Array.isArray(selector)) {\r\n selector = [selector]\r\n }\r\n each(selector, (function(i, item) {\r\n if (searchFilter.length) {\r\n searchFilter.push(\"or\")\r\n }\r\n searchFilter.push([item, op, value])\r\n }));\r\n if (storeLoadOptions.filter) {\r\n storeLoadOptions.filter = [searchFilter, storeLoadOptions.filter]\r\n } else {\r\n storeLoadOptions.filter = searchFilter\r\n }\r\n },\r\n _loadFromStore(loadOptions, pendingDeferred) {\r\n var handleSuccess = (data, extra) => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(pendingDeferred)) {\r\n return\r\n }\r\n var loadResult = extend(normalizeLoadResult(data, extra), loadOptions);\r\n this._eventsStrategy.fireEvent(\"customizeLoadResult\", [loadResult]);\r\n when(loadResult.data).done(data => {\r\n loadResult.data = data;\r\n this._processStoreLoadResult(loadResult, pendingDeferred)\r\n }).fail(pendingDeferred.reject)\r\n };\r\n if (loadOptions.data) {\r\n return (new Deferred).resolve(loadOptions.data).done(handleSuccess)\r\n }\r\n return this.store().load(loadOptions.storeLoadOptions).done(handleSuccess).fail(pendingDeferred.reject)\r\n },\r\n _processStoreLoadResult(loadResult, pendingDeferred) {\r\n var data = loadResult.data;\r\n var extra = loadResult.extra;\r\n var storeLoadOptions = loadResult.storeLoadOptions;\r\n var resolvePendingDeferred = () => {\r\n this._isLoaded = true;\r\n this._totalCount = isFinite(extra.totalCount) ? extra.totalCount : -1;\r\n return pendingDeferred.resolve(data, extra)\r\n };\r\n if (this._disposed) {\r\n return\r\n }\r\n data = this._applyPostProcessFunction(this._applyMapFunction(data));\r\n if (!isPlainObject(extra)) {\r\n extra = {}\r\n }\r\n this._items = data;\r\n if (!data.length || !this._paginate || this._pageSize && data.length < this._pageSize) {\r\n this._isLastPage = true\r\n }\r\n if (storeLoadOptions.requireTotalCount && !isFinite(extra.totalCount)) {\r\n (() => {\r\n this.store().totalCount(storeLoadOptions).done((function(count) {\r\n extra.totalCount = count;\r\n resolvePendingDeferred()\r\n })).fail(pendingDeferred.reject)\r\n })()\r\n } else {\r\n resolvePendingDeferred()\r\n }\r\n },\r\n _applyMapFunction(data) {\r\n if (this._mapFunc) {\r\n return mapDataRespectingGrouping(data, this._mapFunc, this.group())\r\n }\r\n return data\r\n },\r\n _applyPostProcessFunction(data) {\r\n if (this._postProcessFunc) {\r\n return this._postProcessFunc(data)\r\n }\r\n return data\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","/**\r\n * DevExtreme (esm/core/utils/icon.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SVG_ICON_CLASS = \"dx-svg-icon\";\r\nexport var getImageSourceType = source => {\r\n if (!source || \"string\" !== typeof source) {\r\n return false\r\n }\r\n if (/^\\s*]*>(.|\\r?\\n)*?<\\/svg>\\s*$/i.test(source)) {\r\n return \"svg\"\r\n }\r\n if (/data:.*base64|\\.|[^<\\s]\\//.test(source)) {\r\n return \"image\"\r\n }\r\n if (/^[\\w-_]+$/.test(source)) {\r\n return \"dxIcon\"\r\n }\r\n if (/^\\s?([\\w-_]\\s?)+$/.test(source)) {\r\n return \"fontIcon\"\r\n }\r\n return false\r\n};\r\nexport var getImageContainer = source => {\r\n switch (getImageSourceType(source)) {\r\n case \"image\":\r\n return $(\"\").attr(\"src\", source).addClass(ICON_CLASS);\r\n case \"fontIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(source));\r\n case \"dxIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(ICON_CLASS, \"-\").concat(source));\r\n case \"svg\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(SVG_ICON_CLASS)).append(source);\r\n default:\r\n return null\r\n }\r\n};\r\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/**\r\n * DevExtreme (esm/core/utils/html_parser.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n merge\r\n} from \"./array\";\r\nimport domAdapter from \"../dom_adapter\";\r\nvar isTagName = /<([a-z][^/\\0>\\x20\\t\\r\\n\\f]+)/i;\r\nvar tagWrappers = {\r\n default: {\r\n tagsCount: 0,\r\n startTags: \"\",\r\n endTags: \"\"\r\n },\r\n thead: {\r\n tagsCount: 1,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n td: {\r\n tagsCount: 3,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n col: {\r\n tagsCount: 2,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n tr: {\r\n tagsCount: 2,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n }\r\n};\r\ntagWrappers.tbody = tagWrappers.colgroup = tagWrappers.caption = tagWrappers.tfoot = tagWrappers.thead;\r\ntagWrappers.th = tagWrappers.td;\r\nexport var parseHTML = function(html) {\r\n if (\"string\" !== typeof html) {\r\n return null\r\n }\r\n var fragment = domAdapter.createDocumentFragment();\r\n var container = fragment.appendChild(domAdapter.createElement(\"div\"));\r\n var tags = isTagName.exec(html);\r\n var firstRootTag = tags && tags[1].toLowerCase();\r\n var tagWrapper = tagWrappers[firstRootTag] || tagWrappers.default;\r\n container.innerHTML = tagWrapper.startTags + html + tagWrapper.endTags;\r\n for (var i = 0; i < tagWrapper.tagsCount; i++) {\r\n container = container.lastChild\r\n }\r\n return merge([], container.childNodes)\r\n};\r\nexport var isTablePart = function(html) {\r\n var tags = isTagName.exec(html);\r\n return tags && tags[1] in tagWrappers\r\n};\r\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.base.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport devices from \"../../core/devices\";\r\nimport ListItem from \"./item\";\r\nimport Button from \"../button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"../scroll_view/ui.scrollable.device\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.live_update\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\r\nvar LIST_CLASS = \"dx-list\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTOR = \".\" + LIST_ITEM_CLASS;\r\nvar LIST_ITEM_ICON_CONTAINER_CLASS = \"dx-list-item-icon-container\";\r\nvar LIST_ITEM_ICON_CLASS = \"dx-list-item-icon\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar LIST_GROUP_HEADER_CLASS = \"dx-list-group-header\";\r\nvar LIST_GROUP_BODY_CLASS = \"dx-list-group-body\";\r\nvar LIST_COLLAPSIBLE_GROUPS_CLASS = \"dx-list-collapsible-groups\";\r\nvar LIST_GROUP_COLLAPSED_CLASS = \"dx-list-group-collapsed\";\r\nvar LIST_GROUP_HEADER_INDICATOR_CLASS = \"dx-list-group-header-indicator\";\r\nvar LIST_HAS_NEXT_CLASS = \"dx-has-next\";\r\nvar LIST_NEXT_BUTTON_CLASS = \"dx-list-next-button\";\r\nvar WRAP_ITEM_TEXT_CLASS = \"dx-wrap-item-text\";\r\nvar SELECT_ALL_ITEM_SELECTOR = \".dx-list-select-all\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar LIST_FEEDBACK_SHOW_TIMEOUT = 70;\r\nvar groupItemsGetter = compileGetter(\"items\");\r\nvar _scrollView;\r\nexport var ListBase = CollectionWidget.inherit({\r\n _activeStateUnit: [LIST_ITEM_SELECTOR, SELECT_ALL_ITEM_SELECTOR].join(\",\"),\r\n _supportedKeys: function() {\r\n var that = this;\r\n var moveFocusPerPage = function(direction) {\r\n var $item = getEdgeVisibleItem(direction);\r\n var isFocusedItem = $item.is(that.option(\"focusedElement\"));\r\n if (isFocusedItem) {\r\n ! function($item, direction) {\r\n var resultPosition = $item.position().top;\r\n if (\"prev\" === direction) {\r\n resultPosition = $item.position().top - that.$element().height() + $item.outerHeight()\r\n }\r\n that.scrollTo(resultPosition)\r\n }($item, direction);\r\n $item = getEdgeVisibleItem(direction)\r\n }\r\n that.option(\"focusedElement\", getPublicElement($item));\r\n that.scrollToItem($item)\r\n };\r\n\r\n function getEdgeVisibleItem(direction) {\r\n var scrollTop = that.scrollTop();\r\n var containerHeight = that.$element().height();\r\n var $item = $(that.option(\"focusedElement\"));\r\n var isItemVisible = true;\r\n if (!$item.length) {\r\n return $()\r\n }\r\n while (isItemVisible) {\r\n var $nextItem = $item[direction]();\r\n if (!$nextItem.length) {\r\n break\r\n }\r\n var nextItemLocation = $nextItem.position().top + $nextItem.outerHeight() / 2;\r\n isItemVisible = nextItemLocation < containerHeight + scrollTop && nextItemLocation > scrollTop;\r\n if (isItemVisible) {\r\n $item = $nextItem\r\n }\r\n }\r\n return $item\r\n }\r\n return extend(this.callBase(), {\r\n leftArrow: noop,\r\n rightArrow: noop,\r\n pageUp: function() {\r\n moveFocusPerPage(\"prev\");\r\n return false\r\n },\r\n pageDown: function() {\r\n moveFocusPerPage(\"next\");\r\n return false\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n pullRefreshEnabled: false,\r\n scrollingEnabled: true,\r\n showScrollbar: \"onScroll\",\r\n useNativeScrolling: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n pullingDownText: messageLocalization.format(\"dxList-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxList-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxList-refreshingText\"),\r\n pageLoadingText: messageLocalization.format(\"dxList-pageLoadingText\"),\r\n onScroll: null,\r\n onPullRefresh: null,\r\n onPageLoading: null,\r\n pageLoadMode: \"scrollBottom\",\r\n nextButtonText: messageLocalization.format(\"dxList-nextButtonText\"),\r\n onItemSwipe: null,\r\n grouped: false,\r\n onGroupRendered: null,\r\n collapsibleGroups: false,\r\n groupTemplate: \"group\",\r\n indicateLoading: true,\r\n activeStateEnabled: true,\r\n _itemAttributes: {\r\n role: \"option\"\r\n },\r\n _listAttributes: {\r\n role: \"listbox\"\r\n },\r\n useInkRipple: false,\r\n wrapItemText: false,\r\n _swipeEnabled: true,\r\n _revertPageOnEmptyLoad: false,\r\n showChevronExpr: function(data) {\r\n return data ? data.showChevron : void 0\r\n },\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !nativeScrolling && !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n showScrollbar: \"onHover\",\r\n pageLoadMode: \"nextButton\"\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n pageLoadingText: \"\",\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateLoadingState(true)\r\n }\r\n },\r\n _itemClass: function() {\r\n return LIST_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return LIST_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _saveSelectionChangeEvent: function(e) {\r\n this._selectionChangeEventInstance = e\r\n },\r\n _getSelectionChangeEvent: function() {\r\n return this._selectionChangeEventInstance\r\n },\r\n _refreshItemElements: function() {\r\n if (!this.option(\"grouped\")) {\r\n this._itemElementsCache = this._itemContainer().children(this._itemSelector())\r\n } else {\r\n this._itemElementsCache = this._itemContainer().children(\".\" + LIST_GROUP_CLASS).children(\".\" + LIST_GROUP_BODY_CLASS).children(this._itemSelector())\r\n }\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var promise = this.callBase(itemElement, toItemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n deleteItem: function(itemElement) {\r\n var promise = this.callBase(itemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n _itemElements: function() {\r\n return this._itemElementsCache\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return true\r\n },\r\n _resetDataSourcePageIndex: function() {\r\n var currentDataSource = this.getDataSource();\r\n if (currentDataSource && 0 !== currentDataSource.pageIndex()) {\r\n currentDataSource.pageIndex(0);\r\n currentDataSource.load()\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._resetDataSourcePageIndex();\r\n this._$container = this.$element();\r\n this._initScrollView();\r\n this._feedbackShowTimeout = LIST_FEEDBACK_SHOW_TIMEOUT;\r\n this._createGroupRenderAction()\r\n },\r\n _scrollBottomMode: function() {\r\n return \"scrollBottom\" === this.option(\"pageLoadMode\")\r\n },\r\n _nextButtonMode: function() {\r\n return \"nextButton\" === this.option(\"pageLoadMode\")\r\n },\r\n _dataSourceOptions: function() {\r\n var scrollBottom = this._scrollBottomMode();\r\n var nextButton = this._nextButtonMode();\r\n return extend(this.callBase(), {\r\n paginate: ensureDefined(scrollBottom || nextButton, true)\r\n })\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _getGroupContainerByIndex: function(groupIndex) {\r\n return this._itemContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex).find(\".\".concat(LIST_GROUP_BODY_CLASS))\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _initScrollView: function() {\r\n var scrollingEnabled = this.option(\"scrollingEnabled\");\r\n var pullRefreshEnabled = scrollingEnabled && this.option(\"pullRefreshEnabled\");\r\n var autoPagingEnabled = scrollingEnabled && this._scrollBottomMode() && !!this._dataSource;\r\n this._scrollView = this._createComponent(this.$element(), getScrollView(), {\r\n disabled: this.option(\"disabled\") || !scrollingEnabled,\r\n onScroll: this._scrollHandler.bind(this),\r\n onPullDown: pullRefreshEnabled ? this._pullDownHandler.bind(this) : null,\r\n onReachBottom: autoPagingEnabled ? this._scrollBottomHandler.bind(this) : null,\r\n showScrollbar: this.option(\"showScrollbar\"),\r\n useNative: this.option(\"useNativeScrolling\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n pullingDownText: this.option(\"pullingDownText\"),\r\n pulledDownText: this.option(\"pulledDownText\"),\r\n refreshingText: this.option(\"refreshingText\"),\r\n reachBottomText: this.option(\"pageLoadingText\"),\r\n useKeyboard: false\r\n });\r\n this._$container = $(this._scrollView.content());\r\n if (this.option(\"wrapItemText\")) {\r\n this._$container.addClass(WRAP_ITEM_TEXT_CLASS)\r\n }\r\n this._createScrollViewActions()\r\n },\r\n _createScrollViewActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._pullRefreshAction = this._createActionByOption(\"onPullRefresh\");\r\n this._pageLoadingAction = this._createActionByOption(\"onPageLoading\")\r\n },\r\n _scrollHandler: function(e) {\r\n this._scrollAction && this._scrollAction(e)\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n group: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n if (data.key) {\r\n $container.text(data.key)\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n }), [\"key\"], this.option(\"integrationOptions.watchMethod\"))\r\n });\r\n this.callBase()\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n this.callBase(data, $container);\r\n if (data.icon) {\r\n var $icon = getImageContainer(data.icon).addClass(LIST_ITEM_ICON_CLASS);\r\n var $iconContainer = $(\"
\").addClass(LIST_ITEM_ICON_CONTAINER_CLASS);\r\n $iconContainer.append($icon);\r\n $container.prepend($iconContainer)\r\n }\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\", \"icon\"]\r\n },\r\n _updateLoadingState: function(tryLoadMore) {\r\n var isDataLoaded = !tryLoadMore || this._isLastPage();\r\n var scrollBottomMode = this._scrollBottomMode();\r\n var stopLoading = isDataLoaded || !scrollBottomMode;\r\n var hideLoadIndicator = stopLoading && !this._isDataSourceLoading();\r\n if (stopLoading || this._scrollViewIsFull()) {\r\n this._scrollView.release(hideLoadIndicator);\r\n this._toggleNextButton(this._shouldRenderNextButton() && !this._isLastPage());\r\n this._loadIndicationSuppressed(false)\r\n } else {\r\n this._infiniteDataLoading()\r\n }\r\n },\r\n _shouldRenderNextButton: function() {\r\n return this._nextButtonMode() && this._dataSource && this._dataSource.isLoaded()\r\n },\r\n _isDataSourceFirstLoadCompleted: function(newValue) {\r\n if (isDefined(newValue)) {\r\n this._isFirstLoadCompleted = newValue\r\n }\r\n return this._isFirstLoadCompleted\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n if (this._loadIndicationSuppressed()) {\r\n return\r\n }\r\n if (isLoading && this.option(\"indicateLoading\")) {\r\n this._showLoadingIndicatorTimer = setTimeout(function() {\r\n var isEmpty = !this._itemElements().length;\r\n var shouldIndicateLoading = !isEmpty || this._isDataSourceFirstLoadCompleted();\r\n if (shouldIndicateLoading) {\r\n var _this$_scrollView;\r\n null === (_this$_scrollView = this._scrollView) || void 0 === _this$_scrollView ? void 0 : _this$_scrollView.startLoading()\r\n }\r\n }.bind(this))\r\n } else {\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this._scrollView && this._scrollView.finishLoading()\r\n }\r\n if (!isLoading) {\r\n this._isDataSourceFirstLoadCompleted(false)\r\n }\r\n },\r\n _dataSourceChangedHandler: function() {\r\n if (!this._shouldAppendItems() && hasWindow()) {\r\n this._scrollView && this._scrollView.scrollTo(0)\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._isDataSourceFirstLoadCompleted(true)\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._fireContentReadyAction()\r\n },\r\n _hideLoadingIfLoadIndicationOff: function() {\r\n if (!this.option(\"indicateLoading\")) {\r\n this._dataSourceLoadingChangedHandler(false)\r\n }\r\n },\r\n _loadIndicationSuppressed: function(value) {\r\n if (!arguments.length) {\r\n return this._isLoadIndicationSuppressed\r\n }\r\n this._isLoadIndicationSuppressed = value\r\n },\r\n _scrollViewIsFull: function() {\r\n return !this._scrollView || this._scrollView.isFull()\r\n },\r\n _pullDownHandler: function(e) {\r\n this._pullRefreshAction(e);\r\n if (this._dataSource && !this._isDataSourceLoading()) {\r\n this._clearSelectedItems();\r\n this._dataSource.pageIndex(0);\r\n this._dataSource.reload()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _infiniteDataLoading: function() {\r\n var isElementVisible = this.$element().is(\":visible\");\r\n if (isElementVisible && !this._scrollViewIsFull() && !this._isDataSourceLoading() && !this._isLastPage()) {\r\n clearTimeout(this._loadNextPageTimer);\r\n this._loadNextPageTimer = setTimeout(() => {\r\n this._loadNextPage().done(this._setPreviousPageIfNewIsEmpty.bind(this))\r\n })\r\n }\r\n },\r\n _setPreviousPageIfNewIsEmpty: function(result) {\r\n if (this.option(\"_revertPageOnEmptyLoad\")) {\r\n var dataSource = this.getDataSource();\r\n var pageIndex = null === dataSource || void 0 === dataSource ? void 0 : dataSource.pageIndex();\r\n if (0 === (null === result || void 0 === result ? void 0 : result.length) && pageIndex > 0) {\r\n this._fireContentReadyAction();\r\n dataSource.pageIndex(pageIndex - 1)\r\n }\r\n }\r\n },\r\n _scrollBottomHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n if (!this._isDataSourceLoading() && !this._isLastPage()) {\r\n this._loadNextPage()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (this.option(\"grouped\")) {\r\n each(items, this._renderGroup.bind(this));\r\n this._attachGroupCollapseEvent();\r\n this._renderEmptyMessage();\r\n if (isMaterial()) {\r\n this.attachGroupHeaderInkRippleEvents()\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n _attachGroupCollapseEvent: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n var collapsibleGroups = this.option(\"collapsibleGroups\");\r\n $element.toggleClass(LIST_COLLAPSIBLE_GROUPS_CLASS, collapsibleGroups);\r\n eventsEngine.off($element, eventName, selector);\r\n if (collapsibleGroups) {\r\n eventsEngine.on($element, eventName, selector, function(e) {\r\n this._createAction(function(e) {\r\n var $group = $(e.event.currentTarget).parent();\r\n this._collapseGroupHandler($group);\r\n if (this.option(\"focusStateEnabled\")) {\r\n this.option(\"focusedElement\", getPublicElement($group.find(\".\" + LIST_ITEM_CLASS).eq(0)))\r\n }\r\n }.bind(this), {\r\n validatingTargetName: \"element\"\r\n })({\r\n event: e\r\n })\r\n }.bind(this))\r\n }\r\n },\r\n _collapseGroupHandler: function($group, toggle) {\r\n var deferred = new Deferred;\r\n if ($group.hasClass(LIST_GROUP_COLLAPSED_CLASS) === toggle) {\r\n return deferred.resolve()\r\n }\r\n var $groupBody = $group.children(\".\" + LIST_GROUP_BODY_CLASS);\r\n var startHeight = $groupBody.outerHeight();\r\n var endHeight = 0 === startHeight ? $groupBody.height(\"auto\").outerHeight() : 0;\r\n $group.toggleClass(LIST_GROUP_COLLAPSED_CLASS, toggle);\r\n fx.animate($groupBody, {\r\n type: \"custom\",\r\n from: {\r\n height: startHeight\r\n },\r\n to: {\r\n height: endHeight\r\n },\r\n duration: 200,\r\n complete: function() {\r\n this.updateDimensions();\r\n this._updateLoadingState();\r\n deferred.resolve()\r\n }.bind(this)\r\n });\r\n return deferred.promise()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n if (this._initialized) {\r\n this._renderEmptyMessage();\r\n this._updateLoadingState()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._itemElementsCache = $();\r\n this.$element().addClass(LIST_CLASS);\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.setAria(\"role\", this.option(\"_listAttributes\").role)\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n var that = this;\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n if (isMaterial()) {\r\n this._inkRippleTimer = setTimeout((function() {\r\n that._inkRipple.showWave(config)\r\n }), LIST_FEEDBACK_SHOW_TIMEOUT / 2)\r\n } else {\r\n that._inkRipple.showWave(config)\r\n }\r\n } else {\r\n clearTimeout(this._inkRippleTimer);\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _postprocessRenderItem: function(args) {\r\n this._refreshItemElements();\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"_swipeEnabled\")) {\r\n this._attachSwipeEvent($(args.itemElement))\r\n }\r\n },\r\n _attachSwipeEvent: function($itemElement) {\r\n var endEventName = addNamespace(swipeEventEnd, this.NAME);\r\n eventsEngine.on($itemElement, endEventName, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n this._itemDXEventHandler(e, \"onItemSwipe\", {\r\n direction: e.offset < 0 ? \"left\" : \"right\"\r\n })\r\n },\r\n _nextButtonHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var source = this._dataSource;\r\n if (source && !source.isLoading()) {\r\n this._scrollView.toggleLoading(true);\r\n this._$nextButton.detach();\r\n this._loadIndicationSuppressed(true);\r\n this._loadNextPage()\r\n }\r\n },\r\n _renderGroup: function(index, group) {\r\n var $groupElement = $(\"
\").addClass(LIST_GROUP_CLASS).appendTo(this._itemContainer());\r\n var $groupHeaderElement = $(\"
\").addClass(LIST_GROUP_HEADER_CLASS).appendTo($groupElement);\r\n var groupTemplateName = this.option(\"groupTemplate\");\r\n var groupTemplate = this._getTemplate(group.template || groupTemplateName, group, index, $groupHeaderElement);\r\n var renderArgs = {\r\n index: index,\r\n itemData: group,\r\n container: getPublicElement($groupHeaderElement)\r\n };\r\n this._createItemByTemplate(groupTemplate, renderArgs);\r\n if (isMaterial()) {\r\n $(\"
\").addClass(LIST_GROUP_HEADER_INDICATOR_CLASS).prependTo($groupHeaderElement)\r\n }\r\n this._renderingGroupIndex = index;\r\n var $groupBody = $(\"
\").addClass(LIST_GROUP_BODY_CLASS).appendTo($groupElement);\r\n each(groupItemsGetter(group) || [], function(index, item) {\r\n this._renderItem(index, item, $groupBody)\r\n }.bind(this));\r\n this._groupRenderAction({\r\n groupElement: getPublicElement($groupElement),\r\n groupIndex: index,\r\n groupData: group\r\n })\r\n },\r\n downInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), true, e)\r\n },\r\n upInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), false)\r\n },\r\n attachGroupHeaderInkRippleEvents: function() {\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n this._downInkRippleHandler = this._downInkRippleHandler || this.downInkRippleHandler.bind(this);\r\n this._upInkRippleHandler = this._upInkRippleHandler || this.upInkRippleHandler.bind(this);\r\n var downArguments = [$element, \"dxpointerdown\", selector, this._downInkRippleHandler];\r\n var upArguments = [$element, \"dxpointerup dxpointerout\", selector, this._upInkRippleHandler];\r\n eventsEngine.off(...downArguments);\r\n eventsEngine.on(...downArguments);\r\n eventsEngine.off(...upArguments);\r\n eventsEngine.on(...upArguments)\r\n },\r\n _createGroupRenderAction: function() {\r\n this._groupRenderAction = this._createActionByOption(\"onGroupRendered\")\r\n },\r\n _clean: function() {\r\n clearTimeout(this._inkRippleTimer);\r\n if (this._$nextButton) {\r\n this._$nextButton.remove();\r\n this._$nextButton = null\r\n }\r\n delete this._inkRipple;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _dispose: function() {\r\n this._isDataSourceFirstLoadCompleted(false);\r\n clearTimeout(this._holdTimer);\r\n clearTimeout(this._loadNextPageTimer);\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this.callBase()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(value);\r\n this._scrollView.option(\"disabled\", value || !this.option(\"scrollingEnabled\"))\r\n },\r\n _toggleNextButton: function(value) {\r\n var dataSource = this._dataSource;\r\n var $nextButton = this._getNextButton();\r\n this.$element().toggleClass(LIST_HAS_NEXT_CLASS, value);\r\n if (value && dataSource && dataSource.isLoaded()) {\r\n $nextButton.appendTo(this._itemContainer())\r\n }\r\n if (!value) {\r\n $nextButton.detach()\r\n }\r\n },\r\n _getNextButton: function() {\r\n if (!this._$nextButton) {\r\n this._$nextButton = this._createNextButton()\r\n }\r\n return this._$nextButton\r\n },\r\n _createNextButton: function() {\r\n var $result = $(\"
\").addClass(LIST_NEXT_BUTTON_CLASS);\r\n var $button = $(\"
\").appendTo($result);\r\n this._createComponent($button, Button, {\r\n text: this.option(\"nextButtonText\"),\r\n onClick: this._nextButtonHandler.bind(this),\r\n type: isMaterial() ? \"default\" : void 0,\r\n integrationOptions: {}\r\n });\r\n return $result\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _refresh: function() {\r\n if (!hasWindow()) {\r\n this.callBase()\r\n } else {\r\n var scrollTop = this._scrollView.scrollTop();\r\n this.callBase();\r\n scrollTop && this._scrollView.scrollTo(scrollTop)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"pageLoadMode\":\r\n this._toggleNextButton(args.value);\r\n this._initScrollView();\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initScrollView();\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"items\":\r\n this.callBase(args);\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"pageLoadingText\":\r\n case \"showScrollbar\":\r\n case \"bounceEnabled\":\r\n case \"scrollByContent\":\r\n case \"scrollByThumb\":\r\n case \"useNativeScrolling\":\r\n case \"scrollingEnabled\":\r\n case \"pullRefreshEnabled\":\r\n this._initScrollView();\r\n this._updateLoadingState();\r\n break;\r\n case \"nextButtonText\":\r\n case \"onItemSwipe\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"onScroll\":\r\n case \"onPullRefresh\":\r\n case \"onPageLoading\":\r\n this._createScrollViewActions();\r\n break;\r\n case \"grouped\":\r\n case \"collapsibleGroups\":\r\n case \"groupTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"wrapItemText\":\r\n this._$container.toggleClass(WRAP_ITEM_TEXT_CLASS, args.value);\r\n break;\r\n case \"onGroupRendered\":\r\n this._createGroupRenderAction();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._scrollView.update();\r\n break;\r\n case \"indicateLoading\":\r\n this._hideLoadingIfLoadIndicationOff();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n this._scrollView.update();\r\n break;\r\n case \"rtlEnabled\":\r\n this._initScrollView();\r\n this.callBase(args);\r\n break;\r\n case \"showChevronExpr\":\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"_swipeEnabled\":\r\n case \"_revertPageOnEmptyLoad\":\r\n case \"_listAttributes\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n if (!this.option(\"grouped\")) {\r\n return this.callBase($itemElement)\r\n }\r\n var $group = $itemElement.closest(\".\" + LIST_GROUP_CLASS);\r\n var $item = $group.find(\".\" + LIST_ITEM_CLASS);\r\n return extend(this.callBase($itemElement), {\r\n itemIndex: {\r\n group: $group.index(),\r\n item: $item.index($itemElement)\r\n }\r\n })\r\n },\r\n expandGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, false).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n collapseGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, true).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred\r\n },\r\n updateDimensions: function() {\r\n var that = this;\r\n var deferred = new Deferred;\r\n if (that._scrollView) {\r\n that._scrollView.update().done((function() {\r\n !that._scrollViewIsFull() && that._updateLoadingState(true);\r\n deferred.resolveWith(that)\r\n }))\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reload: function() {\r\n this.callBase();\r\n this.scrollTo(0);\r\n this._pullDownHandler()\r\n },\r\n repaint: function() {\r\n this.scrollTo(0);\r\n this.callBase()\r\n },\r\n scrollTop: function() {\r\n return this._scrollView.scrollOffset().top\r\n },\r\n clientHeight: function() {\r\n return this._scrollView.clientHeight()\r\n },\r\n scrollHeight: function() {\r\n return this._scrollView.scrollHeight()\r\n },\r\n scrollBy: function(distance) {\r\n this._scrollView.scrollBy(distance)\r\n },\r\n scrollTo: function(location) {\r\n this._scrollView.scrollTo(location)\r\n },\r\n scrollToItem: function(itemElement) {\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n this._scrollView.scrollToElement($item)\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions()\r\n }\r\n}).include(DataConverterMixin);\r\nListBase.ItemClass = ListItem;\r\n\r\nfunction getScrollView() {\r\n return _scrollView || ScrollView\r\n}\r\nexport function setScrollView(value) {\r\n _scrollView = value\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/item.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nvar LIST_ITEM_BADGE_CONTAINER_CLASS = \"dx-list-item-badge-container\";\r\nvar LIST_ITEM_BADGE_CLASS = \"dx-list-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar LIST_ITEM_CHEVRON_CONTAINER_CLASS = \"dx-list-item-chevron-container\";\r\nvar LIST_ITEM_CHEVRON_CLASS = \"dx-list-item-chevron\";\r\nvar ListItem = CollectionWidgetItem.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this));\r\n this._startWatcher(\"showChevron\", this._renderShowChevron.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + LIST_ITEM_BADGE_CONTAINER_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"
\").addClass(LIST_ITEM_BADGE_CONTAINER_CLASS).append($(\"
\").addClass(LIST_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge));\r\n var $chevron = this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).first();\r\n $chevron.length > 0 ? $badge.insertBefore($chevron) : $badge.appendTo(this._$element)\r\n },\r\n _renderShowChevron: function(showChevron) {\r\n this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).remove();\r\n if (!showChevron) {\r\n return\r\n }\r\n var $chevronContainer = $(\"
\").addClass(LIST_ITEM_CHEVRON_CONTAINER_CLASS);\r\n var $chevron = $(\"
\").addClass(LIST_ITEM_CHEVRON_CLASS);\r\n $chevronContainer.append($chevron).appendTo(this._$element)\r\n }\r\n});\r\nexport default ListItem;\r\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","/**\r\n * DevExtreme (esm/ui/themes.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport Promise from \"../core/polyfills/promise\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n parseHTML\r\n} from \"../core/utils/html_parser\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n value as viewPortValue,\r\n changeCallback,\r\n originalViewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n themeReadyCallback\r\n} from \"./themes_callback\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar window = getWindow();\r\nvar ready = readyCallbacks.add;\r\nvar viewPort = viewPortValue;\r\nvar viewPortChanged = changeCallback;\r\nvar initDeferred = new Deferred;\r\nvar DX_LINK_SELECTOR = \"link[rel=dx-theme]\";\r\nvar THEME_ATTR = \"data-theme\";\r\nvar ACTIVE_ATTR = \"data-active\";\r\nvar DX_HAIRLINES_CLASS = \"dx-hairlines\";\r\nvar ANY_THEME = \"any\";\r\nvar context;\r\nvar $activeThemeLink;\r\nvar knownThemes;\r\nvar currentThemeName;\r\nvar pendingThemeName;\r\nvar defaultTimeout = 15e3;\r\nvar THEME_MARKER_PREFIX = \"dx.\";\r\n\r\nfunction readThemeMarker() {\r\n if (!hasWindow()) {\r\n return null\r\n }\r\n var element = $(\"
\", context).addClass(\"dx-theme-marker\").appendTo(context.documentElement);\r\n var result;\r\n try {\r\n result = window.getComputedStyle(element.get(0)).fontFamily;\r\n if (!result) {\r\n return null\r\n }\r\n result = result.replace(/[\"']/g, \"\");\r\n if (result.substr(0, THEME_MARKER_PREFIX.length) !== THEME_MARKER_PREFIX) {\r\n return null\r\n }\r\n return result.substr(THEME_MARKER_PREFIX.length)\r\n } finally {\r\n element.remove()\r\n }\r\n}\r\nexport function waitForThemeLoad(themeName) {\r\n var waitStartTime;\r\n var timerId;\r\n var intervalCleared = true;\r\n pendingThemeName = themeName;\r\n\r\n function handleLoaded() {\r\n pendingThemeName = null;\r\n clearInterval(timerId);\r\n intervalCleared = true;\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty();\r\n initDeferred.resolve()\r\n }\r\n if (isPendingThemeLoaded() || !defaultTimeout) {\r\n handleLoaded()\r\n } else {\r\n if (!intervalCleared) {\r\n if (pendingThemeName) {\r\n pendingThemeName = themeName\r\n }\r\n return\r\n }\r\n waitStartTime = Date.now();\r\n intervalCleared = false;\r\n timerId = setInterval((function() {\r\n var isLoaded = isPendingThemeLoaded();\r\n var isTimeout = !isLoaded && Date.now() - waitStartTime > defaultTimeout;\r\n if (isTimeout) {\r\n errors.log(\"W0004\", pendingThemeName)\r\n }\r\n if (isLoaded || isTimeout) {\r\n handleLoaded()\r\n }\r\n }), 10)\r\n }\r\n}\r\nexport function isPendingThemeLoaded() {\r\n if (!pendingThemeName) {\r\n return true\r\n }\r\n var anyThemePending = pendingThemeName === ANY_THEME;\r\n if (\"resolved\" === initDeferred.state() && anyThemePending) {\r\n return true\r\n }\r\n var themeMarker = readThemeMarker();\r\n if (themeMarker && anyThemePending) {\r\n return true\r\n }\r\n return themeMarker === pendingThemeName\r\n}\r\n\r\nfunction processMarkup() {\r\n var $allThemeLinks = $(DX_LINK_SELECTOR, context);\r\n if (!$allThemeLinks.length) {\r\n return\r\n }\r\n knownThemes = {};\r\n $activeThemeLink = $(parseHTML(\"\"), context);\r\n $allThemeLinks.each((function() {\r\n var link = $(this, context);\r\n var fullThemeName = link.attr(THEME_ATTR);\r\n var url = link.attr(\"href\");\r\n var isActive = \"true\" === link.attr(ACTIVE_ATTR);\r\n knownThemes[fullThemeName] = {\r\n url: url,\r\n isActive: isActive\r\n }\r\n }));\r\n $allThemeLinks.last().after($activeThemeLink);\r\n $allThemeLinks.remove()\r\n}\r\n\r\nfunction resolveFullThemeName(desiredThemeName) {\r\n var desiredThemeParts = desiredThemeName ? desiredThemeName.split(\".\") : [];\r\n var result = null;\r\n if (knownThemes) {\r\n if (desiredThemeName in knownThemes) {\r\n return desiredThemeName\r\n }\r\n each(knownThemes, (function(knownThemeName, themeData) {\r\n var knownThemeParts = knownThemeName.split(\".\");\r\n if (desiredThemeParts[0] && knownThemeParts[0] !== desiredThemeParts[0]) {\r\n return\r\n }\r\n if (desiredThemeParts[1] && desiredThemeParts[1] !== knownThemeParts[1]) {\r\n return\r\n }\r\n if (desiredThemeParts[2] && desiredThemeParts[2] !== knownThemeParts[2]) {\r\n return\r\n }\r\n if (!result || themeData.isActive) {\r\n result = knownThemeName\r\n }\r\n if (themeData.isActive) {\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n}\r\n\r\nfunction initContext(newContext) {\r\n try {\r\n if (newContext !== context) {\r\n knownThemes = null\r\n }\r\n } catch (x) {\r\n knownThemes = null\r\n }\r\n context = newContext\r\n}\r\nexport function init(options) {\r\n options = options || {};\r\n initContext(options.context || domAdapter.getDocument());\r\n if (!context) {\r\n return\r\n }\r\n processMarkup();\r\n currentThemeName = void 0;\r\n current(options)\r\n}\r\nexport function current(options) {\r\n if (!arguments.length) {\r\n currentThemeName = currentThemeName || readThemeMarker();\r\n return currentThemeName\r\n }\r\n detachCssClasses(viewPort());\r\n options = options || {};\r\n if (\"string\" === typeof options) {\r\n options = {\r\n theme: options\r\n }\r\n }\r\n var isAutoInit = options._autoInit;\r\n var loadCallback = options.loadCallback;\r\n var currentThemeData;\r\n currentThemeName = resolveFullThemeName(options.theme || currentThemeName);\r\n if (currentThemeName) {\r\n currentThemeData = knownThemes[currentThemeName]\r\n }\r\n if (loadCallback) {\r\n themeReadyCallback.add(loadCallback)\r\n }\r\n if (currentThemeData) {\r\n $activeThemeLink.attr(\"href\", knownThemes[currentThemeName].url);\r\n if (themeReadyCallback.has() || \"resolved\" !== initDeferred.state() || options._forceTimeout) {\r\n waitForThemeLoad(currentThemeName)\r\n }\r\n } else if (isAutoInit) {\r\n if (hasWindow()) {\r\n waitForThemeLoad(ANY_THEME)\r\n }\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty()\r\n } else {\r\n throw errors.Error(\"E0021\", currentThemeName)\r\n }\r\n initDeferred.done(() => attachCssClasses(originalViewPort(), currentThemeName))\r\n}\r\n\r\nfunction getCssClasses(themeName) {\r\n themeName = themeName || current();\r\n var result = [];\r\n var themeNameParts = themeName && themeName.split(\".\");\r\n if (themeNameParts) {\r\n result.push(\"dx-theme-\" + themeNameParts[0], \"dx-theme-\" + themeNameParts[0] + \"-typography\");\r\n if (themeNameParts.length > 1) {\r\n result.push(\"dx-color-scheme-\" + themeNameParts[1] + (isMaterial(themeName) ? \"-\" + themeNameParts[2] : \"\"))\r\n }\r\n }\r\n return result\r\n}\r\nvar themeClasses;\r\nexport function attachCssClasses(element, themeName) {\r\n themeClasses = getCssClasses(themeName).join(\" \");\r\n $(element).addClass(themeClasses);\r\n ! function() {\r\n var pixelRatio = hasWindow() && window.devicePixelRatio;\r\n if (!pixelRatio || pixelRatio < 2) {\r\n return\r\n }\r\n var $tester = $(\"
\");\r\n $tester.css(\"border\", \".5px solid transparent\");\r\n $(\"body\").append($tester);\r\n if (1 === $tester.outerHeight()) {\r\n $(element).addClass(DX_HAIRLINES_CLASS);\r\n themeClasses += \" \" + DX_HAIRLINES_CLASS\r\n }\r\n $tester.remove()\r\n }()\r\n}\r\nexport function detachCssClasses(element) {\r\n $(element).removeClass(themeClasses)\r\n}\r\n\r\nfunction themeReady(callback) {\r\n themeReadyCallback.add(callback)\r\n}\r\n\r\nfunction isTheme(themeRegExp, themeName) {\r\n if (!themeName) {\r\n themeName = currentThemeName || readThemeMarker()\r\n }\r\n return new RegExp(themeRegExp).test(themeName)\r\n}\r\nexport function isMaterial(themeName) {\r\n return isTheme(\"material\", themeName)\r\n}\r\nexport function isGeneric(themeName) {\r\n return isTheme(\"generic\", themeName)\r\n}\r\nexport function isDark(themeName) {\r\n return isTheme(\"dark\", themeName)\r\n}\r\nexport function isWebFontLoaded(text, fontWeight) {\r\n var document = domAdapter.getDocument();\r\n var testElement = document.createElement(\"span\");\r\n testElement.style.position = \"absolute\";\r\n testElement.style.top = \"-9999px\";\r\n testElement.style.left = \"-9999px\";\r\n testElement.style.visibility = \"hidden\";\r\n testElement.style.fontFamily = \"Arial\";\r\n testElement.style.fontSize = \"250px\";\r\n testElement.style.fontWeight = fontWeight;\r\n testElement.innerHTML = text;\r\n document.body.appendChild(testElement);\r\n var etalonFontWidth = testElement.offsetWidth;\r\n testElement.style.fontFamily = \"Roboto, RobotoFallback, Arial\";\r\n var testedFontWidth = testElement.offsetWidth;\r\n testElement.parentNode.removeChild(testElement);\r\n return etalonFontWidth !== testedFontWidth\r\n}\r\nexport function waitWebFont(text, fontWeight) {\r\n return new Promise(resolve => {\r\n var clear = () => {\r\n clearInterval(intervalId);\r\n clearTimeout(timeoutId);\r\n resolve()\r\n };\r\n var intervalId = setInterval(() => {\r\n if (isWebFontLoaded(text, fontWeight)) {\r\n clear()\r\n }\r\n }, 15);\r\n var timeoutId = setTimeout(clear, 2e3)\r\n })\r\n}\r\n\r\nfunction autoInit() {\r\n init({\r\n _autoInit: true,\r\n _forceTimeout: true\r\n });\r\n if ($(DX_LINK_SELECTOR, context).length) {\r\n throw errors.Error(\"E0022\")\r\n }\r\n}\r\nif (hasWindow()) {\r\n autoInit()\r\n} else {\r\n ready(autoInit)\r\n}\r\nviewPortChanged.add((function(viewPort, prevViewPort) {\r\n initDeferred.done((function() {\r\n detachCssClasses(prevViewPort);\r\n attachCssClasses(viewPort)\r\n }))\r\n}));\r\ndevices.changed.add((function() {\r\n init({\r\n _autoInit: true\r\n })\r\n}));\r\nexport {\r\n themeReady as ready\r\n};\r\nexport function resetTheme() {\r\n $activeThemeLink && $activeThemeLink.attr(\"href\", \"about:blank\");\r\n currentThemeName = null;\r\n pendingThemeName = null;\r\n initDeferred = new Deferred\r\n}\r\nexport function initialized(callback) {\r\n initDeferred.done(callback)\r\n}\r\nexport function setDefaultTimeout(timeout) {\r\n defaultTimeout = timeout\r\n}\r\nexport default {\r\n setDefaultTimeout: setDefaultTimeout,\r\n initialized: initialized,\r\n resetTheme: resetTheme,\r\n ready: themeReady,\r\n waitWebFont: waitWebFont,\r\n isWebFontLoaded: isWebFontLoaded,\r\n isDark: isDark,\r\n isGeneric: isGeneric,\r\n isMaterial: isMaterial,\r\n detachCssClasses: detachCssClasses,\r\n attachCssClasses: attachCssClasses,\r\n current: current,\r\n waitForThemeLoad: waitForThemeLoad,\r\n isPendingThemeLoaded: isPendingThemeLoaded\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/themes_callback.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nexport var themeReadyCallback = new Callbacks;\r\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.base.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n asyncNoop,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined,\r\n isPrimitive,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport CheckBox from \"../check_box\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport fx from \"../../animation/fx\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n fromPromise,\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport errors from \"../widget/ui.errors\";\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-node\");\r\nvar NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container\");\r\nvar NODE_LOAD_INDICATOR_CLASS = \"\".concat(NODE_CLASS, \"-loadindicator\");\r\nvar OPENED_NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container-opened\");\r\nvar IS_LEAF = \"\".concat(NODE_CLASS, \"-is-leaf\");\r\nvar ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-item\");\r\nvar ITEM_WITH_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-with-checkbox\");\r\nvar ITEM_WITHOUT_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-without-checkbox\");\r\nvar ITEM_DATA_KEY = \"\".concat(ITEM_CLASS, \"-data\");\r\nvar TOGGLE_ITEM_VISIBILITY_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility\");\r\nvar LOAD_INDICATOR_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator\");\r\nvar LOAD_INDICATOR_WRAPPER_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator-wrapper\");\r\nvar TOGGLE_ITEM_VISIBILITY_OPENED_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility-opened\");\r\nvar SELECT_ALL_ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-select-all-item\");\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar SELECTED_ITEM_CLASS = \"dx-state-selected\";\r\nvar EXPAND_EVENT_NAMESPACE = \"dxTreeView_expand\";\r\nvar DATA_ITEM_ID = \"data-item-id\";\r\nvar TreeViewBase = HierarchicalCollectionWidget.inherit({\r\n _supportedKeys: function(e) {\r\n var click = e => {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.target = $itemElement;\r\n e.currentTarget = $itemElement;\r\n this._itemClickHandler(e, $itemElement.children(\".\" + ITEM_CLASS));\r\n var expandEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var expandByClick = expandEventName === addNamespace(clickEventName, EXPAND_EVENT_NAMESPACE);\r\n if (expandByClick) {\r\n this._expandEventHandler(e)\r\n }\r\n };\r\n var select = e => {\r\n e.preventDefault();\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n var checkboxInstance = this._getCheckBoxInstance($focusedElement);\r\n if (!checkboxInstance.option(\"disabled\")) {\r\n var currentState = checkboxInstance.option(\"value\");\r\n this._updateItemSelection(!currentState, $focusedElement.find(\".\" + ITEM_CLASS).get(0), true)\r\n }\r\n };\r\n var toggleExpandedNestedItems = function(state, e) {\r\n if (!this.option(\"expandAllEnabled\")) {\r\n return\r\n }\r\n e.preventDefault();\r\n var $rootElement = $(this.option(\"focusedElement\"));\r\n if (!$rootElement.length) {\r\n return\r\n }\r\n var rootItem = this._getItemData($rootElement.find(\".\".concat(ITEM_CLASS)));\r\n this._toggleExpandedNestedItems([rootItem], state)\r\n };\r\n return extend(this.callBase(), {\r\n enter: this._showCheckboxes() ? select : click,\r\n space: this._showCheckboxes() ? select : click,\r\n asterisk: toggleExpandedNestedItems.bind(this, true),\r\n minus: toggleExpandedNestedItems.bind(this, false)\r\n })\r\n },\r\n _toggleExpandedNestedItems: function(items, state) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i];\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n this._toggleExpandedState(node, state);\r\n this._toggleExpandedNestedItems(item.items, state)\r\n }\r\n },\r\n _getNodeElement: function(node, cache) {\r\n var key = this._encodeString(node.internalFields.key);\r\n if (cache) {\r\n if (!cache.$nodeByKey) {\r\n cache.$nodeByKey = {};\r\n this.$element().find(\".\".concat(NODE_CLASS)).each((function() {\r\n var $node = $(this);\r\n var key = $node.attr(DATA_ITEM_ID);\r\n cache.$nodeByKey[key] = $node\r\n }))\r\n }\r\n return cache.$nodeByKey[key] || $()\r\n }\r\n var element = this.$element().get(0).querySelector(\"[\".concat(DATA_ITEM_ID, '=\"').concat(key, '\"]'));\r\n return $(element)\r\n },\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _widgetClass: function() {\r\n return WIDGET_CLASS\r\n },\r\n _getDefaultOptions: function() {\r\n var defaultOptions = extend(this.callBase(), {\r\n animationEnabled: true,\r\n dataStructure: \"tree\",\r\n deferRendering: true,\r\n expandAllEnabled: false,\r\n hasItemsExpr: \"hasItems\",\r\n selectNodesRecursive: true,\r\n expandNodesRecursive: true,\r\n showCheckBoxesMode: \"none\",\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n onItemSelectionChanged: null,\r\n onItemExpanded: null,\r\n onItemCollapsed: null,\r\n scrollDirection: \"vertical\",\r\n virtualModeEnabled: false,\r\n rootValue: 0,\r\n focusStateEnabled: false,\r\n selectionMode: \"multiple\",\r\n expandEvent: \"dblclick\",\r\n selectByClick: false,\r\n createChildren: null,\r\n onSelectAllValueChanged: null\r\n });\r\n return extend(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n },\r\n _initSelectedItems: noop,\r\n _syncSelectionOptions: asyncNoop,\r\n _fireSelectionChanged: function() {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n when(selectionChangePromise).done(function() {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })()\r\n }.bind(this))\r\n },\r\n _createSelectAllValueChangedAction: function() {\r\n this._selectAllValueChangedAction = this._createActionByOption(\"onSelectAllValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _fireSelectAllValueChanged: function(value) {\r\n this._selectAllValueChangedAction({\r\n value: value\r\n })\r\n },\r\n _checkBoxModeChange: function(value, previousValue) {\r\n if (\"none\" === previousValue || \"none\" === value) {\r\n this.repaint();\r\n return\r\n }\r\n var selectAllExists = this._$selectAllItem && this._$selectAllItem.length;\r\n switch (value) {\r\n case \"selectAll\":\r\n if (!selectAllExists) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem()\r\n }\r\n break;\r\n case \"normal\":\r\n if (selectAllExists) {\r\n this._$selectAllItem.remove();\r\n delete this._$selectAllItem\r\n }\r\n }\r\n },\r\n _removeSelection: function() {\r\n var that = this;\r\n each(this._dataAdapter.getFullData(), (function(_, node) {\r\n if (!that._hasChildren(node)) {\r\n return\r\n }\r\n that._dataAdapter.toggleSelection(node.internalFields.key, false, true)\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"selectAllText\":\r\n if (this._$selectAllItem) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"text\", value)\r\n }\r\n break;\r\n case \"showCheckBoxesMode\":\r\n this._checkBoxModeChange(value, previousValue);\r\n break;\r\n case \"scrollDirection\":\r\n this._scrollableContainer.option(\"direction\", value);\r\n break;\r\n case \"items\":\r\n delete this._$selectAllItem;\r\n this.callBase(args);\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initDataAdapter();\r\n this._filter = {};\r\n break;\r\n case \"hasItemsExpr\":\r\n this._initAccessors();\r\n this.repaint();\r\n break;\r\n case \"expandEvent\":\r\n this._initExpandEvent();\r\n break;\r\n case \"deferRendering\":\r\n case \"dataStructure\":\r\n case \"rootValue\":\r\n case \"createChildren\":\r\n case \"expandNodesRecursive\":\r\n case \"onItemSelectionChanged\":\r\n case \"onItemExpanded\":\r\n case \"onItemCollapsed\":\r\n case \"expandAllEnabled\":\r\n case \"animationEnabled\":\r\n case \"virtualModeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n case \"selectionMode\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n this._createSelectAllValueChangedAction();\r\n break;\r\n case \"selectNodesRecursive\":\r\n this._dataAdapter.setOption(\"recursiveSelection\", args.value);\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _initDataSource: function() {\r\n if (this._useCustomChildrenLoader()) {\r\n this._loadChildrenByCustomLoader(null).done(function(newItems) {\r\n if (newItems && newItems.length) {\r\n this.option(\"items\", newItems)\r\n }\r\n }.bind(this))\r\n } else {\r\n this.callBase();\r\n this._isVirtualMode() && this._initVirtualMode()\r\n }\r\n },\r\n _initVirtualMode: function() {\r\n var filter = this._filter;\r\n if (!filter.custom) {\r\n filter.custom = this._dataSource.filter()\r\n }\r\n if (!filter.internal) {\r\n filter.internal = [this.option(\"parentIdExpr\"), this.option(\"rootValue\")]\r\n }\r\n },\r\n _useCustomChildrenLoader: function() {\r\n return isFunction(this.option(\"createChildren\")) && this._isDataStructurePlain()\r\n },\r\n _loadChildrenByCustomLoader: function(parentNode) {\r\n var invocationResult = this.option(\"createChildren\").call(this, parentNode);\r\n if (Array.isArray(invocationResult)) {\r\n return (new Deferred).resolve(invocationResult).promise()\r\n }\r\n if (invocationResult && isFunction(invocationResult.then)) {\r\n return fromPromise(invocationResult)\r\n }\r\n return (new Deferred).resolve([]).promise()\r\n },\r\n _combineFilter: function() {\r\n if (!this._filter.custom || !this._filter.custom.length) {\r\n return this._filter.internal\r\n }\r\n return [this._filter.custom, this._filter.internal]\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._renderEmptyMessage()\r\n },\r\n _init: function() {\r\n this._filter = {};\r\n this.callBase();\r\n this._initStoreChangeHandlers()\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && this._isVirtualMode() && items.length) {\r\n return\r\n }\r\n this.option(\"items\", newItems)\r\n },\r\n _removeTreeViewLoadIndicator: function() {\r\n if (!this._treeViewLoadIndicator) {\r\n return\r\n }\r\n this._treeViewLoadIndicator.remove();\r\n this._treeViewLoadIndicator = null\r\n },\r\n _createTreeViewLoadIndicator: function() {\r\n this._treeViewLoadIndicator = $(\"
\").addClass(LOAD_INDICATOR_CLASS);\r\n this._createComponent(this._treeViewLoadIndicator, LoadIndicator, {});\r\n return this._treeViewLoadIndicator\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n var resultFilter;\r\n if (this._isVirtualMode()) {\r\n resultFilter = this._combineFilter();\r\n this._dataSource.filter(resultFilter)\r\n }\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this.option(\"items\", []);\r\n var $wrapper = $(\"
\").addClass(LOAD_INDICATOR_WRAPPER_CLASS);\r\n this._createTreeViewLoadIndicator().appendTo($wrapper);\r\n this.itemsContainer().append($wrapper);\r\n if (this._isVirtualMode() && this._dataSource.filter() !== resultFilter) {\r\n this._dataSource.filter([])\r\n }\r\n } else {\r\n this._removeTreeViewLoadIndicator()\r\n }\r\n },\r\n _initStoreChangeHandlers: function() {\r\n if (\"plain\" !== this.option(\"dataStructure\")) {\r\n return\r\n }\r\n this._dataSource && this._dataSource.store().on(\"inserted\", newItem => {\r\n this.option().items = this.option(\"items\").concat(newItem);\r\n this._dataAdapter.addItem(newItem);\r\n if (!this._dataAdapter.isFiltered(newItem)) {\r\n return\r\n }\r\n this._updateLevel(this._parentIdGetter(newItem))\r\n }).on(\"removed\", removedKey => {\r\n var node = this._dataAdapter.getNodeByKey(removedKey);\r\n if (isDefined(node)) {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(node.internalFields.key)] = 0;\r\n this._markChildrenItemsToRemove(node);\r\n this._removeItems();\r\n this._dataAdapter.removeItem(removedKey);\r\n this._updateLevel(this._parentIdGetter(node))\r\n }\r\n })\r\n },\r\n _markChildrenItemsToRemove: function(node) {\r\n var keys = node.internalFields.childrenKeys;\r\n each(keys, (_, key) => {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(key)] = 0;\r\n this._markChildrenItemsToRemove(this._dataAdapter.getNodeByKey(key))\r\n })\r\n },\r\n _removeItems: function() {\r\n var items = extend(true, [], this.option(\"items\"));\r\n var counter = 0;\r\n each(items, (index, item) => {\r\n if (!item) {\r\n this.option(\"items\").splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _updateLevel: function(parentId) {\r\n var $container = this._getContainerByParentKey(parentId);\r\n this._renderItems($container, this._dataAdapter.getChildrenNodes(parentId))\r\n },\r\n _getOldContainer: function($itemElement) {\r\n if ($itemElement.length) {\r\n return $itemElement.children(\".\".concat(NODE_CONTAINER_CLASS))\r\n }\r\n if (this._scrollableContainer) {\r\n return this._scrollableContainer.$content().children()\r\n }\r\n return $()\r\n },\r\n _getContainerByParentKey: function(parentId) {\r\n var node = this._dataAdapter.getNodeByKey(parentId);\r\n var $itemElement = node ? this._getNodeElement(node) : [];\r\n this._getOldContainer($itemElement).remove();\r\n var $container = this._renderNodeContainer($itemElement);\r\n if (this._isRootLevel(parentId)) {\r\n if (!this._scrollableContainer) {\r\n this._renderScrollableContainer()\r\n }\r\n this._scrollableContainer.$content().append($container)\r\n }\r\n return $container\r\n },\r\n _isRootLevel: function(parentId) {\r\n return parentId === this.option(\"rootValue\")\r\n },\r\n _getAccessors: function() {\r\n var accessors = this.callBase();\r\n accessors.push(\"hasItems\");\r\n return accessors\r\n },\r\n _getDataAdapterOptions: function() {\r\n return {\r\n rootValue: this.option(\"rootValue\"),\r\n multipleSelection: !this._isSingleSelection(),\r\n recursiveSelection: this._isRecursiveSelection(),\r\n recursiveExpansion: this.option(\"expandNodesRecursive\"),\r\n selectionRequired: this.option(\"selectionRequired\"),\r\n dataType: this.option(\"dataStructure\"),\r\n sort: this._dataSource && this._dataSource.sort()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._renderScrollableContainer();\r\n this._renderEmptyMessage(this._dataAdapter.getRootNodes());\r\n this.callBase();\r\n this.setAria(\"role\", \"tree\")\r\n },\r\n _renderContentImpl: function() {\r\n var $nodeContainer = this._renderNodeContainer();\r\n this._scrollableContainer.$content().append($nodeContainer);\r\n if (!this.option(\"items\") || !this.option(\"items\").length) {\r\n return\r\n }\r\n this._renderItems($nodeContainer, this._dataAdapter.getRootNodes());\r\n this._initExpandEvent();\r\n if (this._selectAllEnabled()) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem($nodeContainer)\r\n }\r\n },\r\n _isVirtualMode: function() {\r\n return this.option(\"virtualModeEnabled\") && this._isDataStructurePlain() && !!this.option(\"dataSource\")\r\n },\r\n _isDataStructurePlain: function() {\r\n return \"plain\" === this.option(\"dataStructure\")\r\n },\r\n _fireContentReadyAction: function() {\r\n var dataSource = this.getDataSource();\r\n var skipContentReadyAction = dataSource && !dataSource.isLoaded();\r\n if (this._scrollableContainer && hasWindow()) {\r\n this._scrollableContainer.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (this._scrollableContainer && hasWindow()) {\r\n this._scrollableContainer.update()\r\n }\r\n },\r\n _renderScrollableContainer: function() {\r\n this._scrollableContainer = this._createComponent($(\"
\").appendTo(this.$element()), Scrollable, {\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer: function($parent) {\r\n var $container = $(\"
    \").addClass(NODE_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"group\", $container);\r\n if ($parent && $parent.length) {\r\n var itemData = this._getItemData($parent.children(\".\" + ITEM_CLASS));\r\n if (this._expandedGetter(itemData)) {\r\n $container.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n $container.appendTo($parent)\r\n }\r\n return $container\r\n },\r\n _createDOMElement: function($nodeContainer, node) {\r\n var $node = $(\"
  • \").addClass(NODE_CLASS).attr(DATA_ITEM_ID, this._encodeString(node.internalFields.key)).prependTo($nodeContainer);\r\n this.setAria({\r\n role: \"treeitem\",\r\n label: this._displayGetter(node.internalFields.item) || \"\",\r\n expanded: node.internalFields.expanded || false,\r\n level: this._getLevel($nodeContainer)\r\n }, $node);\r\n return $node\r\n },\r\n _getLevel: function($nodeContainer) {\r\n var parent = $nodeContainer.parent();\r\n return parent.hasClass(\"dx-scrollable-content\") ? 1 : parseInt(parent.attr(\"aria-level\")) + 1\r\n },\r\n _showCheckboxes: function() {\r\n return \"none\" !== this.option(\"showCheckBoxesMode\")\r\n },\r\n _selectAllEnabled: function() {\r\n return \"selectAll\" === this.option(\"showCheckBoxesMode\") && !this._isSingleSelection()\r\n },\r\n _renderItems: function($nodeContainer, nodes) {\r\n var length = nodes.length - 1;\r\n for (var i = length; i >= 0; i--) {\r\n this._renderItem(i, nodes[i], $nodeContainer)\r\n }\r\n this._renderedItemsCount += nodes.length\r\n },\r\n _renderItem: function(nodeIndex, node, $nodeContainer) {\r\n var $node = this._createDOMElement($nodeContainer, node);\r\n var nodeData = node.internalFields;\r\n var showCheckBox = this._showCheckboxes();\r\n $node.addClass(showCheckBox ? ITEM_WITH_CHECKBOX_CLASS : ITEM_WITHOUT_CHECKBOX_CLASS);\r\n $node.toggleClass(INVISIBLE_STATE_CLASS, false === nodeData.item.visible);\r\n showCheckBox && this._renderCheckBox($node, node);\r\n this.setAria(\"selected\", nodeData.selected, $node);\r\n this._toggleSelectedClass($node, nodeData.selected);\r\n this.callBase(this._renderedItemsCount + nodeIndex, nodeData.item, $node);\r\n if (false !== nodeData.item.visible) {\r\n this._renderChildren($node, node)\r\n }\r\n },\r\n _setAriaSelected: function() {},\r\n _renderChildren: function($node, node) {\r\n if (!this._hasChildren(node)) {\r\n this._addLeafClass($node);\r\n return\r\n }\r\n this._renderToggleItemVisibilityIcon($node, node);\r\n if (this.option(\"deferRendering\") && !node.internalFields.expanded) {\r\n return\r\n }\r\n this._loadSublevel(node).done(childNodes => {\r\n this._renderSublevel($node, this._getActualNode(node), childNodes)\r\n })\r\n },\r\n _getActualNode: function(cachedNode) {\r\n return this._dataAdapter.getNodeByKey(cachedNode.internalFields.key)\r\n },\r\n _hasChildren: function(node) {\r\n if (this._isVirtualMode() || this._useCustomChildrenLoader()) {\r\n return false !== this._hasItemsGetter(node.internalFields.item)\r\n }\r\n return this.callBase(node)\r\n },\r\n _loadSublevel: function(node) {\r\n var deferred = new Deferred;\r\n var childrenNodes = this._getChildNodes(node);\r\n if (childrenNodes.length) {\r\n deferred.resolve(childrenNodes)\r\n } else {\r\n this._loadNestedItems(node).done(items => {\r\n deferred.resolve(this._dataAdapter.getNodesByItems(items))\r\n })\r\n }\r\n return deferred.promise()\r\n },\r\n _renderSublevel: function($node, node, childNodes) {\r\n var $nestedNodeContainer = this._renderNodeContainer($node, node);\r\n var childNodesByChildrenKeys = childNodes.filter(childNode => -1 !== node.internalFields.childrenKeys.indexOf(childNode.internalFields.key));\r\n this._renderItems($nestedNodeContainer, childNodesByChildrenKeys);\r\n if (childNodesByChildrenKeys.length && !node.internalFields.selected) {\r\n var firstChild = childNodesByChildrenKeys[0];\r\n this._updateParentsState(firstChild, this._getNodeElement(firstChild))\r\n }\r\n this._normalizeIconState($node, childNodesByChildrenKeys.length);\r\n if (node.internalFields.expanded) {\r\n $nestedNodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n },\r\n _executeItemRenderAction: function(itemIndex, itemData, itemElement) {\r\n var node = this._getNode(itemElement);\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: itemIndex,\r\n itemData: itemData,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _addLeafClass: function($node) {\r\n $node.addClass(IS_LEAF)\r\n },\r\n _expandEventHandler: function(e) {\r\n var $nodeElement = $(e.currentTarget.parentNode);\r\n if (!$nodeElement.hasClass(IS_LEAF)) {\r\n this._toggleExpandedState(e.currentTarget, void 0, e)\r\n }\r\n },\r\n _initExpandEvent: function() {\r\n var expandedEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var $itemsContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n eventsEngine.off($itemsContainer, \".\" + EXPAND_EVENT_NAMESPACE, itemSelector);\r\n eventsEngine.on($itemsContainer, expandedEventName, itemSelector, this._expandEventHandler.bind(this))\r\n },\r\n _getEventNameByOption: function(name) {\r\n var event = \"click\" === name ? clickEventName : dblclickEvent;\r\n return addNamespace(event, EXPAND_EVENT_NAMESPACE)\r\n },\r\n _getNode: function(identifier) {\r\n if (!isDefined(identifier)) {\r\n return null\r\n }\r\n if (identifier.internalFields) {\r\n return identifier\r\n }\r\n if (isPrimitive(identifier)) {\r\n return this._dataAdapter.getNodeByKey(identifier)\r\n }\r\n var itemElement = $(identifier).get(0);\r\n if (!itemElement) {\r\n return null\r\n }\r\n if (domAdapter.isElementNode(itemElement)) {\r\n return this._getNodeByElement(itemElement)\r\n }\r\n return this._dataAdapter.getNodeByItem(itemElement)\r\n },\r\n _getNodeByElement: function(itemElement) {\r\n var $node = $(itemElement).closest(\".\" + NODE_CLASS);\r\n var key = this._decodeString($node.attr(DATA_ITEM_ID));\r\n return this._dataAdapter.getNodeByKey(key)\r\n },\r\n _toggleExpandedState: function(itemElement, state, e) {\r\n var node = this._getNode(itemElement);\r\n if (!node) {\r\n return (new Deferred).reject().promise()\r\n }\r\n if (node.internalFields.disabled) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var currentState = node.internalFields.expanded;\r\n if (currentState === state) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n if (this._hasChildren(node)) {\r\n var $node = this._getNodeElement(node);\r\n if ($node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS, \":not(.\").concat(INVISIBLE_STATE_CLASS, \")\")).length) {\r\n return (new Deferred).reject().promise()\r\n }\r\n this._createLoadIndicator($node)\r\n }\r\n if (!isDefined(state)) {\r\n state = !currentState\r\n }\r\n this._dataAdapter.toggleExpansion(node.internalFields.key, state);\r\n return this._updateExpandedItemsUI(node, state, e)\r\n },\r\n _createLoadIndicator: function($node) {\r\n var $icon = $node.children(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if ($icon.hasClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS) || $nodeContainer.not(\":empty\").length) {\r\n return\r\n }\r\n this._createComponent($(\"
    \").addClass(NODE_LOAD_INDICATOR_CLASS), LoadIndicator, {}).$element().appendTo($node);\r\n $icon.hide()\r\n },\r\n _renderToggleItemVisibilityIcon: function($node, node) {\r\n var $icon = $(\"
    \").addClass(TOGGLE_ITEM_VISIBILITY_CLASS).appendTo($node);\r\n if (node.internalFields.expanded) {\r\n $icon.addClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS);\r\n $node.parent().addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n if (node.internalFields.disabled) {\r\n $icon.addClass(DISABLED_STATE_CLASS)\r\n }\r\n this._renderToggleItemVisibilityIconClick($icon, node)\r\n },\r\n _renderToggleItemVisibilityIconClick: function($icon, node) {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off($icon, eventName);\r\n eventsEngine.on($icon, eventName, e => {\r\n this._toggleExpandedState(node.internalFields.key, void 0, e)\r\n })\r\n },\r\n _updateExpandedItemsUI: function(node, state, e) {\r\n var $node = this._getNodeElement(node);\r\n var isHiddenNode = !$node.length || state && $node.is(\":hidden\");\r\n if (this.option(\"expandNodesRecursive\") && isHiddenNode) {\r\n var parentNode = this._getNode(node.internalFields.parentKey);\r\n if (parentNode) {\r\n this._updateExpandedItemsUI(parentNode, state, e)\r\n }\r\n }\r\n var $icon = $node.children(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n $icon.toggleClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS, state);\r\n var nodeContainerExists = $nodeContainer.length > 0;\r\n var completionCallback = new Deferred;\r\n if (!state || nodeContainerExists && !$nodeContainer.is(\":empty\")) {\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n if (0 === node.internalFields.childrenKeys.length && (this._isVirtualMode() || this._useCustomChildrenLoader())) {\r\n this._loadNestedItemsWithUpdate(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n this._renderSublevel($node, node, this._getChildNodes(node));\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n },\r\n _loadNestedItemsWithUpdate: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n this._loadNestedItems(node).done(items => {\r\n var actualNodeData = this._getActualNode(node);\r\n this._renderSublevel($node, actualNodeData, this._dataAdapter.getNodesByItems(items));\r\n if (!items || !items.length) {\r\n return\r\n }\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(actualNodeData, state, e, completionCallback)\r\n })\r\n },\r\n _loadNestedItems: function(node) {\r\n if (this._useCustomChildrenLoader()) {\r\n var publicNode = this._dataAdapter.getPublicNode(node);\r\n return this._loadChildrenByCustomLoader(publicNode).done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n }\r\n if (!this._isVirtualMode()) {\r\n return (new Deferred).resolve([]).promise()\r\n }\r\n this._filter.internal = [this.option(\"parentIdExpr\"), node.internalFields.key];\r\n this._dataSource.filter(this._combineFilter());\r\n return this._dataSource.load().done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n },\r\n _areNodesExists: function(newItems, items) {\r\n var keyOfRootItem = this.keyOf(newItems[0]);\r\n var fullData = this._dataAdapter.getFullData();\r\n return !!this._dataAdapter.getNodeByKey(keyOfRootItem, fullData)\r\n },\r\n _appendItems: function(newItems) {\r\n this.option().items = this.option(\"items\").concat(newItems);\r\n this._initDataAdapter()\r\n },\r\n _animateNodeContainer: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if (node && completionCallback && 0 === $nodeContainer.length) {\r\n completionCallback.resolve()\r\n }\r\n $nodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS);\r\n var nodeHeight = $nodeContainer.height();\r\n fx.stop($nodeContainer, true);\r\n fx.animate($nodeContainer, {\r\n type: \"custom\",\r\n duration: this.option(\"animationEnabled\") ? 400 : 0,\r\n from: {\r\n maxHeight: state ? 0 : nodeHeight\r\n },\r\n to: {\r\n maxHeight: state ? nodeHeight : 0\r\n },\r\n complete: function() {\r\n $nodeContainer.css(\"maxHeight\", \"none\");\r\n $nodeContainer.toggleClass(OPENED_NODE_CONTAINER_CLASS, state);\r\n this.setAria(\"expanded\", state, $node);\r\n this._scrollableContainer.update();\r\n this._fireExpandedStateUpdatedEvent(state, node, e);\r\n if (completionCallback) {\r\n completionCallback.resolve()\r\n }\r\n }.bind(this)\r\n })\r\n },\r\n _fireExpandedStateUpdatedEvent: function(isExpanded, node, e) {\r\n if (!this._hasChildren(node)) {\r\n return\r\n }\r\n var optionName = isExpanded ? \"onItemExpanded\" : \"onItemCollapsed\";\r\n if (isDefined(e)) {\r\n this._itemDXEventHandler(e, optionName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n } else {\r\n var target = this._getNodeElement(node);\r\n this._itemEventHandler(target, optionName, {\r\n event: e,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n }\r\n },\r\n _normalizeIconState: function($node, hasNewItems) {\r\n var $loadIndicator = $node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS));\r\n $loadIndicator.length && LoadIndicator.getInstance($loadIndicator).option(\"visible\", false);\r\n if (hasNewItems) {\r\n var $icon = $node.find(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $icon.show();\r\n return\r\n }\r\n $node.find(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS).removeClass(TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $node.addClass(IS_LEAF)\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._scrollableContainer ? this._scrollableContainer.content() : this.callBase()\r\n },\r\n _renderContent: function() {\r\n var items = this.option(\"items\");\r\n if (items && items.length) {\r\n this._contentAlreadyRendered = true\r\n }\r\n this.callBase()\r\n },\r\n _renderSelectAllItem: function($container) {\r\n $container = $container || this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n this._$selectAllItem = $(\"
    \").addClass(SELECT_ALL_ITEM_CLASS);\r\n var value = this._dataAdapter.isAllSelected();\r\n this._createComponent(this._$selectAllItem, CheckBox, {\r\n value: value,\r\n text: this.option(\"selectAllText\"),\r\n onValueChanged: this._onSelectAllCheckboxValueChanged.bind(this)\r\n });\r\n this._toggleSelectedClass(this._$selectAllItem, value);\r\n $container.before(this._$selectAllItem)\r\n },\r\n _onSelectAllCheckboxValueChanged: function(args) {\r\n this._toggleSelectAll(args);\r\n this._fireSelectAllValueChanged(args.value)\r\n },\r\n _toggleSelectAll: function(args) {\r\n this._dataAdapter.toggleSelectAll(args.value);\r\n this._updateItemsUI();\r\n this._fireSelectionChanged()\r\n },\r\n _renderCheckBox: function($node, node) {\r\n var $checkbox = $(\"
    \").appendTo($node);\r\n this._createComponent($checkbox, CheckBox, {\r\n value: node.internalFields.selected,\r\n onValueChanged: this._changeCheckboxValue.bind(this),\r\n focusStateEnabled: false,\r\n disabled: this._disabledGetter(node)\r\n })\r\n },\r\n _toggleSelectedClass: function($node, value) {\r\n $node.toggleClass(SELECTED_ITEM_CLASS, !!value)\r\n },\r\n _toggleNodeDisabledState: function(node, state) {\r\n var $node = this._getNodeElement(node);\r\n var $item = $node.find(\".\" + ITEM_CLASS).eq(0);\r\n this._dataAdapter.toggleNodeDisabledState(node.internalFields.key, state);\r\n $item.toggleClass(DISABLED_STATE_CLASS, !!state);\r\n if (this._showCheckboxes()) {\r\n var checkbox = this._getCheckBoxInstance($node);\r\n checkbox.option(\"disabled\", !!state)\r\n }\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n if (property === this.option(\"disabledExpr\")) {\r\n this._toggleNodeDisabledState(node, value)\r\n }\r\n },\r\n _changeCheckboxValue: function(e) {\r\n var $node = $(e.element).parent(\".\" + NODE_CLASS);\r\n var $item = $node.children(\".\" + ITEM_CLASS);\r\n var item = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n var value = e.value;\r\n if (node && node.internalFields.selected === value) {\r\n return\r\n }\r\n this._updateItemSelection(value, item, e.event)\r\n },\r\n _isSingleSelection: function() {\r\n return \"single\" === this.option(\"selectionMode\")\r\n },\r\n _isRecursiveSelection: function() {\r\n return this.option(\"selectNodesRecursive\") && \"single\" !== this.option(\"selectionMode\")\r\n },\r\n _isLastSelectedBranch: function(publicNode, selectedNodesKeys, deep) {\r\n var keyIndex = selectedNodesKeys.indexOf(publicNode.key);\r\n if (keyIndex >= 0) {\r\n selectedNodesKeys.splice(keyIndex, 1)\r\n }\r\n if (deep) {\r\n each(publicNode.children, function(_, childNode) {\r\n this._isLastSelectedBranch(childNode, selectedNodesKeys, true)\r\n }.bind(this))\r\n }\r\n if (publicNode.parent) {\r\n this._isLastSelectedBranch(publicNode.parent, selectedNodesKeys)\r\n }\r\n return 0 === selectedNodesKeys.length\r\n },\r\n _isLastRequired: function(node) {\r\n var selectionRequired = this.option(\"selectionRequired\");\r\n var isSingleMode = this._isSingleSelection();\r\n var selectedNodesKeys = this.getSelectedNodeKeys();\r\n if (!selectionRequired) {\r\n return\r\n }\r\n if (isSingleMode) {\r\n return 1 === selectedNodesKeys.length\r\n } else {\r\n return this._isLastSelectedBranch(node.internalFields.publicNode, selectedNodesKeys.slice(), true)\r\n }\r\n },\r\n _updateItemSelection: function(value, itemElement, dxEvent) {\r\n var node = this._getNode(itemElement);\r\n if (!node || false === node.visible) {\r\n return false\r\n }\r\n if (node.internalFields.selected === value) {\r\n return true\r\n }\r\n if (!value && this._isLastRequired(node)) {\r\n if (this._showCheckboxes()) {\r\n var $node = this._getNodeElement(node);\r\n this._getCheckBoxInstance($node).option(\"value\", true)\r\n }\r\n return false\r\n }\r\n if (value && this._isSingleSelection()) {\r\n var selectedKeys = this.getSelectedNodeKeys();\r\n each(selectedKeys, (index, key) => {\r\n this._dataAdapter.toggleSelection(key, false);\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(this._getNode(key))\r\n })\r\n }\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value);\r\n var isAllSelected = this._dataAdapter.isAllSelected();\r\n var needFireSelectAllChanged = this._selectAllEnabled() && this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\") !== isAllSelected;\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(node, dxEvent);\r\n this._fireSelectionChanged();\r\n if (needFireSelectAllChanged) {\r\n this._fireSelectAllValueChanged(isAllSelected)\r\n }\r\n return true\r\n },\r\n _fireItemSelectionChanged: function(node, dxEvent) {\r\n var initiator = dxEvent || this._findItemElementByItem(node.internalFields.item);\r\n var handler = dxEvent ? this._itemDXEventHandler : this._itemEventHandler;\r\n handler.call(this, initiator, \"onItemSelectionChanged\", {\r\n node: this._dataAdapter.getPublicNode(node),\r\n itemData: node.internalFields.item\r\n })\r\n },\r\n _getCheckBoxInstance: function($node) {\r\n return $node.children(\".dx-checkbox\").dxCheckBox(\"instance\")\r\n },\r\n _updateItemsUI: function() {\r\n var cache = {};\r\n each(this._dataAdapter.getData(), (_, node) => {\r\n var $node = this._getNodeElement(node, cache);\r\n var nodeSelection = node.internalFields.selected;\r\n if (!$node.length) {\r\n return\r\n }\r\n this._toggleSelectedClass($node, nodeSelection);\r\n this.setAria(\"selected\", nodeSelection, $node);\r\n if (this._showCheckboxes()) {\r\n this._getCheckBoxInstance($node).option(\"value\", nodeSelection)\r\n }\r\n });\r\n if (this._selectAllEnabled()) {\r\n var selectAllCheckbox = this._$selectAllItem.dxCheckBox(\"instance\");\r\n selectAllCheckbox.option(\"onValueChanged\", void 0);\r\n selectAllCheckbox.option(\"value\", this._dataAdapter.isAllSelected());\r\n selectAllCheckbox.option(\"onValueChanged\", this._onSelectAllCheckboxValueChanged.bind(this))\r\n }\r\n },\r\n _updateParentsState: function(node, $node) {\r\n if (!$node) {\r\n return\r\n }\r\n var parentNode = this._dataAdapter.getNodeByKey(node.internalFields.parentKey);\r\n var $parentNode = $($node.parents(\".\" + NODE_CLASS)[0]);\r\n if (this._showCheckboxes()) {\r\n var parentValue = parentNode.internalFields.selected;\r\n this._getCheckBoxInstance($parentNode).option(\"value\", parentValue);\r\n this._toggleSelectedClass($parentNode, parentValue)\r\n }\r\n if (parentNode.internalFields.parentKey !== this.option(\"rootValue\")) {\r\n this._updateParentsState(parentNode, $parentNode)\r\n }\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = $(initiator).closest(\".\" + NODE_CLASS).children(\".\" + ITEM_CLASS);\r\n return action(extend(this._extendActionArgs($itemElement), actionArgs))\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n this._createEventHandler(\"onItemContextMenu\", e)\r\n },\r\n _itemHoldHandler: function(e) {\r\n this._createEventHandler(\"onItemHold\", e)\r\n },\r\n _createEventHandler: function(eventName, e) {\r\n var node = this._getNodeByElement(e.currentTarget);\r\n this._itemDXEventHandler(e, eventName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _attachClickEvent: function() {\r\n var clickSelector = \".\" + this._itemClass();\r\n var pointerDownSelector = \".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS;\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var pointerDownEvent = addNamespace(pointerEvents.down, this.NAME);\r\n var $itemContainer = this._itemContainer();\r\n var that = this;\r\n eventsEngine.off($itemContainer, eventName, clickSelector);\r\n eventsEngine.off($itemContainer, pointerDownEvent, pointerDownSelector);\r\n eventsEngine.on($itemContainer, eventName, clickSelector, (function(e) {\r\n that._itemClickHandler(e, $(this))\r\n }));\r\n eventsEngine.on($itemContainer, pointerDownEvent, pointerDownSelector, (function(e) {\r\n that._itemPointerDownHandler(e)\r\n }))\r\n },\r\n _itemClickHandler: function(e, $item) {\r\n var itemData = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n this._itemDXEventHandler(e, \"onItemClick\", {\r\n node: this._dataAdapter.getPublicNode(node)\r\n });\r\n if (this.option(\"selectByClick\") && !e.isDefaultPrevented()) {\r\n this._updateItemSelection(!node.internalFields.selected, itemData, e)\r\n }\r\n },\r\n _updateSelectionToFirstItem: function($items, startIndex) {\r\n var itemIndex = startIndex;\r\n while (itemIndex >= 0) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex--\r\n }\r\n },\r\n _updateSelectionToLastItem: function($items, startIndex) {\r\n var length = $items.length;\r\n var itemIndex = startIndex;\r\n while (itemIndex < length) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex++\r\n }\r\n },\r\n _focusInHandler: function(e) {\r\n this._updateFocusState(e, true);\r\n if (this.option(\"focusedElement\")) {\r\n clearTimeout(this._setFocusedItemTimeout);\r\n this._setFocusedItemTimeout = setTimeout(() => {\r\n this._setFocusedItem($(this.option(\"focusedElement\")))\r\n });\r\n return\r\n }\r\n var $activeItem = this._getActiveItem();\r\n this.option(\"focusedElement\", getPublicElement($activeItem.closest(\".\" + NODE_CLASS)))\r\n },\r\n _setFocusedItem: function($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n if (!$target.children().hasClass(DISABLED_STATE_CLASS)) {\r\n this.callBase($target)\r\n }\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n var $target = $(e.target).closest(\".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS);\r\n if (!$target.length) {\r\n return\r\n }\r\n var itemElement = $target.hasClass(DISABLED_STATE_CLASS) ? null : $target;\r\n this.option(\"focusedElement\", getPublicElement(itemElement))\r\n },\r\n _findNonDisabledNodes: function($nodes) {\r\n return $nodes.not((function() {\r\n return $(this).children(\".\" + ITEM_CLASS).hasClass(DISABLED_STATE_CLASS)\r\n }))\r\n },\r\n _moveFocus: function(location, e) {\r\n var FOCUS_UP = \"up\";\r\n var FOCUS_DOWN = \"down\";\r\n var FOCUS_FIRST = \"first\";\r\n var FOCUS_LAST = \"last\";\r\n var FOCUS_LEFT = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n var FOCUS_RIGHT = this.option(\"rtlEnabled\") ? \"left\" : \"right\";\r\n this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).each((function() {\r\n fx.stop(this, true)\r\n }));\r\n var $items = this._findNonDisabledNodes(this._nodeElements());\r\n if (!$items || !$items.length) {\r\n return\r\n }\r\n switch (location) {\r\n case FOCUS_UP:\r\n var $prevItem = this._prevItem($items);\r\n this.option(\"focusedElement\", getPublicElement($prevItem));\r\n var prevItemElement = this._getNodeItemElement($prevItem);\r\n this._scrollableContainer.scrollToElement(prevItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, prevItemElement)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n var $nextItem = this._nextItem($items);\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n var nextItemElement = this._getNodeItemElement($nextItem);\r\n this._scrollableContainer.scrollToElement(nextItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, nextItemElement)\r\n }\r\n break;\r\n case FOCUS_FIRST:\r\n var $firstItem = $items.first();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToFirstItem($items, $items.index(this._prevItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($firstItem));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement($firstItem));\r\n break;\r\n case FOCUS_LAST:\r\n var $lastItem = $items.last();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToLastItem($items, $items.index(this._nextItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($lastItem));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement($lastItem));\r\n break;\r\n case FOCUS_RIGHT:\r\n this._expandFocusedContainer();\r\n break;\r\n case FOCUS_LEFT:\r\n this._collapseFocusedContainer();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n },\r\n _getNodeItemElement: function($node) {\r\n return $node.find(\".\" + ITEM_CLASS).get(0)\r\n },\r\n _nodeElements: function() {\r\n return this.$element().find(\".\" + NODE_CLASS).not(\":hidden\")\r\n },\r\n _expandFocusedContainer: function() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length || $focusedNode.hasClass(IS_LEAF)) {\r\n return\r\n }\r\n var $node = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if ($node.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var $nextItem = this._nextItem(this._findNonDisabledNodes(this._nodeElements()));\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement($nextItem));\r\n return\r\n }\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, true)\r\n },\r\n _getClosestNonDisabledNode: function($node) {\r\n do {\r\n $node = $node.parent().closest(\".\" + NODE_CLASS)\r\n } while ($node.children(\".dx-treeview-item.dx-state-disabled\").length);\r\n return $node\r\n },\r\n _collapseFocusedContainer: function() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length) {\r\n return\r\n }\r\n var nodeElement = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if (!$focusedNode.hasClass(IS_LEAF) && nodeElement.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, false)\r\n } else {\r\n var collapsedNode = this._getClosestNonDisabledNode($focusedNode);\r\n collapsedNode.length && this.option(\"focusedElement\", getPublicElement(collapsedNode));\r\n this._scrollableContainer.scrollToElement(this._getNodeItemElement(collapsedNode))\r\n }\r\n },\r\n _encodeString: function(value) {\r\n return isString(value) ? encodeURI(value) : value\r\n },\r\n _decodeString: function(value) {\r\n return isString(value) ? decodeURI(value) : value\r\n },\r\n updateDimensions: function() {\r\n var deferred = new Deferred;\r\n if (this._scrollableContainer) {\r\n this._scrollableContainer.update().done(() => {\r\n deferred.resolveWith(this)\r\n })\r\n } else {\r\n deferred.resolveWith(this)\r\n }\r\n return deferred.promise()\r\n },\r\n selectItem: function(itemElement) {\r\n return this._updateItemSelection(true, itemElement)\r\n },\r\n unselectItem: function(itemElement) {\r\n return this._updateItemSelection(false, itemElement)\r\n },\r\n expandItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, true)\r\n },\r\n collapseItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, false)\r\n },\r\n getNodes: function() {\r\n return this._dataAdapter.getTreeNodes()\r\n },\r\n getSelectedNodes: function() {\r\n return this.getSelectedNodeKeys().map(key => {\r\n var node = this._dataAdapter.getNodeByKey(key);\r\n return this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n getSelectedNodesKeys: function() {\r\n errors.log(\"W0002\", \"dxTreeView\", \"getSelectedNodesKeys\", \"20.1\", \"Use the 'getSelectedNodeKeys' method instead\");\r\n return this.getSelectedNodeKeys()\r\n },\r\n getSelectedNodeKeys: function() {\r\n return this._dataAdapter.getSelectedNodesKeys()\r\n },\r\n selectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", true)\r\n } else {\r\n this._toggleSelectAll({\r\n value: true\r\n })\r\n }\r\n },\r\n unselectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", false)\r\n } else {\r\n this._toggleSelectAll({\r\n value: false\r\n })\r\n }\r\n },\r\n expandAll: function() {\r\n var dataAdapter = this._dataAdapter;\r\n each(dataAdapter.getData(), (_, node) => dataAdapter.toggleExpansion(node.internalFields.key, true));\r\n this.repaint()\r\n },\r\n collapseAll: function() {\r\n each(this._dataAdapter.getExpandedNodesKeys(), function(_, key) {\r\n this._toggleExpandedState(key, false)\r\n }.bind(this))\r\n },\r\n scrollToItem: function(keyOrItemOrElement) {\r\n var node = this._getNode(keyOrItemOrElement);\r\n if (!node) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var nodeKeysToExpand = [];\r\n var parentNode = node.internalFields.publicNode.parent;\r\n while (null != parentNode) {\r\n if (!parentNode.expanded) {\r\n nodeKeysToExpand.push(parentNode.key)\r\n }\r\n parentNode = parentNode.parent\r\n }\r\n var scrollCallback = new Deferred;\r\n this._expandNodes(nodeKeysToExpand.reverse()).always(() => {\r\n var $element = this._getNodeElement(node);\r\n if ($element && $element.length) {\r\n this._scrollableContainer.scrollToElementTopLeft($element);\r\n scrollCallback.resolve()\r\n } else {\r\n scrollCallback.reject()\r\n }\r\n });\r\n return scrollCallback.promise()\r\n },\r\n _expandNodes: function(keysToExpand) {\r\n if (!keysToExpand || 0 === keysToExpand.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var resultCallback = new Deferred;\r\n var callbacksByNodes = keysToExpand.map(key => this.expandItem(key));\r\n when.apply($, callbacksByNodes).done(() => resultCallback.resolve()).fail(() => resultCallback.reject());\r\n return resultCallback.promise()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._setFocusedItemTimeout)\r\n }\r\n});\r\nexport default TreeViewBase;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.search.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport searchBoxMixin from \"../widget/ui.search_box_mixin\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport TreeViewBase from \"./ui.tree_view.base\";\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-node-container\");\r\nvar TreeViewSearch = TreeViewBase.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"\".concat(WIDGET_CLASS, \"-\").concat(className)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchValue\":\r\n if (this._showCheckboxes() && this._isRecursiveSelection()) {\r\n this._removeSelection()\r\n }\r\n this._initDataAdapter();\r\n this._updateSearch();\r\n this._repaintContainer();\r\n break;\r\n case \"searchExpr\":\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"searchMode\":\r\n this.option(\"expandNodesRecursive\") ? this._updateDataAdapter() : this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateDataAdapter: function() {\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", false);\r\n this._initDataAdapter();\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", true)\r\n },\r\n _getDataAdapterOptions: function() {\r\n return extend(this.callBase(), {\r\n searchValue: this.option(\"searchValue\"),\r\n searchMode: this.option(\"searchMode\") || \"contains\",\r\n searchExpr: this.option(\"searchExpr\")\r\n })\r\n },\r\n _updateSearch: function() {\r\n if (this._searchEditor) {\r\n var editorOptions = this._getSearchEditorOptions();\r\n this._searchEditor.option(editorOptions)\r\n }\r\n },\r\n _repaintContainer: function() {\r\n var $container = this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n var rootNodes;\r\n if ($container.length) {\r\n $container.empty();\r\n rootNodes = this._dataAdapter.getRootNodes();\r\n this._renderEmptyMessage(rootNodes);\r\n this._renderItems($container, rootNodes);\r\n this._fireContentReadyAction()\r\n }\r\n },\r\n _itemContainer: function(isSearchMode) {\r\n if (this._scrollableContainer && isSearchMode) {\r\n return $(this._scrollableContainer.content())\r\n }\r\n return this.callBase()\r\n },\r\n _addWidgetClass: function() {\r\n this.$element().addClass(this._widgetClass())\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeSearchBox()\r\n }\r\n});\r\nregisterComponent(\"dxTreeView\", TreeViewSearch);\r\nexport default TreeViewSearch;\r\n","var timespan = require('./lib/timespan');\nvar PS_SUPPORTED = require('./lib/psSupported');\nvar jws = require('jws');\nvar includes = require('lodash.includes');\nvar isBoolean = require('lodash.isboolean');\nvar isInteger = require('lodash.isinteger');\nvar isNumber = require('lodash.isnumber');\nvar isPlainObject = require('lodash.isplainobject');\nvar isString = require('lodash.isstring');\nvar once = require('lodash.once');\n\nvar SUPPORTED_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'none']\nif (PS_SUPPORTED) {\n SUPPORTED_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nvar sign_options_schema = {\n expiresIn: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"expiresIn\" should be a number of seconds or string representing a timespan' },\n notBefore: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"notBefore\" should be a number of seconds or string representing a timespan' },\n audience: { isValid: function(value) { return isString(value) || Array.isArray(value); }, message: '\"audience\" must be a string or array' },\n algorithm: { isValid: includes.bind(null, SUPPORTED_ALGS), message: '\"algorithm\" must be a valid string enum value' },\n header: { isValid: isPlainObject, message: '\"header\" must be an object' },\n encoding: { isValid: isString, message: '\"encoding\" must be a string' },\n issuer: { isValid: isString, message: '\"issuer\" must be a string' },\n subject: { isValid: isString, message: '\"subject\" must be a string' },\n jwtid: { isValid: isString, message: '\"jwtid\" must be a string' },\n noTimestamp: { isValid: isBoolean, message: '\"noTimestamp\" must be a boolean' },\n keyid: { isValid: isString, message: '\"keyid\" must be a string' },\n mutatePayload: { isValid: isBoolean, message: '\"mutatePayload\" must be a boolean' }\n};\n\nvar registered_claims_schema = {\n iat: { isValid: isNumber, message: '\"iat\" should be a number of seconds' },\n exp: { isValid: isNumber, message: '\"exp\" should be a number of seconds' },\n nbf: { isValid: isNumber, message: '\"nbf\" should be a number of seconds' }\n};\n\nfunction validate(schema, allowUnknown, object, parameterName) {\n if (!isPlainObject(object)) {\n throw new Error('Expected \"' + parameterName + '\" to be a plain object.');\n }\n Object.keys(object)\n .forEach(function(key) {\n var validator = schema[key];\n if (!validator) {\n if (!allowUnknown) {\n throw new Error('\"' + key + '\" is not allowed in \"' + parameterName + '\"');\n }\n return;\n }\n if (!validator.isValid(object[key])) {\n throw new Error(validator.message);\n }\n });\n}\n\nfunction validateOptions(options) {\n return validate(sign_options_schema, false, options, 'options');\n}\n\nfunction validatePayload(payload) {\n return validate(registered_claims_schema, true, payload, 'payload');\n}\n\nvar options_to_payload = {\n 'audience': 'aud',\n 'issuer': 'iss',\n 'subject': 'sub',\n 'jwtid': 'jti'\n};\n\nvar options_for_objects = [\n 'expiresIn',\n 'notBefore',\n 'noTimestamp',\n 'audience',\n 'issuer',\n 'subject',\n 'jwtid',\n];\n\nmodule.exports = function (payload, secretOrPrivateKey, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n } else {\n options = options || {};\n }\n\n var isObjectPayload = typeof payload === 'object' &&\n !Buffer.isBuffer(payload);\n\n var header = Object.assign({\n alg: options.algorithm || 'HS256',\n typ: isObjectPayload ? 'JWT' : undefined,\n kid: options.keyid\n }, options.header);\n\n function failure(err) {\n if (callback) {\n return callback(err);\n }\n throw err;\n }\n\n if (!secretOrPrivateKey && options.algorithm !== 'none') {\n return failure(new Error('secretOrPrivateKey must have a value'));\n }\n\n if (typeof payload === 'undefined') {\n return failure(new Error('payload is required'));\n } else if (isObjectPayload) {\n try {\n validatePayload(payload);\n }\n catch (error) {\n return failure(error);\n }\n if (!options.mutatePayload) {\n payload = Object.assign({},payload);\n }\n } else {\n var invalid_options = options_for_objects.filter(function (opt) {\n return typeof options[opt] !== 'undefined';\n });\n\n if (invalid_options.length > 0) {\n return failure(new Error('invalid ' + invalid_options.join(',') + ' option for ' + (typeof payload ) + ' payload'));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && typeof options.expiresIn !== 'undefined') {\n return failure(new Error('Bad \"options.expiresIn\" option the payload already has an \"exp\" property.'));\n }\n\n if (typeof payload.nbf !== 'undefined' && typeof options.notBefore !== 'undefined') {\n return failure(new Error('Bad \"options.notBefore\" option the payload already has an \"nbf\" property.'));\n }\n\n try {\n validateOptions(options);\n }\n catch (error) {\n return failure(error);\n }\n\n var timestamp = payload.iat || Math.floor(Date.now() / 1000);\n\n if (options.noTimestamp) {\n delete payload.iat;\n } else if (isObjectPayload) {\n payload.iat = timestamp;\n }\n\n if (typeof options.notBefore !== 'undefined') {\n try {\n payload.nbf = timespan(options.notBefore, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.nbf === 'undefined') {\n return failure(new Error('\"notBefore\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n if (typeof options.expiresIn !== 'undefined' && typeof payload === 'object') {\n try {\n payload.exp = timespan(options.expiresIn, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.exp === 'undefined') {\n return failure(new Error('\"expiresIn\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n Object.keys(options_to_payload).forEach(function (key) {\n var claim = options_to_payload[key];\n if (typeof options[key] !== 'undefined') {\n if (typeof payload[claim] !== 'undefined') {\n return failure(new Error('Bad \"options.' + key + '\" option. The payload already has an \"' + claim + '\" property.'));\n }\n payload[claim] = options[key];\n }\n });\n\n var encoding = options.encoding || 'utf8';\n\n if (typeof callback === 'function') {\n callback = callback && once(callback);\n\n jws.createSign({\n header: header,\n privateKey: secretOrPrivateKey,\n payload: payload,\n encoding: encoding\n }).once('error', callback)\n .once('done', function (signature) {\n callback(null, signature);\n });\n } else {\n return jws.sign({header: header, payload: payload, secret: secretOrPrivateKey, encoding: encoding});\n }\n};\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.strategy.grouped.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport query from \"../../data/query\";\r\nimport EditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar SELECTION_SHIFT = 20;\r\nvar SELECTION_MASK = (1 << SELECTION_SHIFT) - 1;\r\nvar combineIndex = function(indices) {\r\n return (indices.group << SELECTION_SHIFT) + indices.item\r\n};\r\nvar splitIndex = function(combinedIndex) {\r\n return {\r\n group: combinedIndex >> SELECTION_SHIFT,\r\n item: combinedIndex & SELECTION_MASK\r\n }\r\n};\r\nvar GroupedEditStrategy = EditStrategy.inherit({\r\n _groupElements: function() {\r\n return this._collectionWidget._itemContainer().find(\".\" + LIST_GROUP_CLASS)\r\n },\r\n _groupItemElements: function($group) {\r\n return $group.find(\".\" + LIST_ITEM_CLASS)\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var groups = this._collectionWidget.option(\"items\");\r\n var index = false;\r\n if (!itemData) {\r\n return false\r\n }\r\n if (itemData.items && itemData.items.length) {\r\n itemData = itemData.items[0]\r\n }\r\n each(groups, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return false\r\n }\r\n each(group.items, (function(itemIndex, item) {\r\n if (item !== itemData) {\r\n return true\r\n }\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n }));\r\n if (index) {\r\n return false\r\n }\r\n }));\r\n return index\r\n },\r\n getItemDataByIndex: function(index) {\r\n var items = this._collectionWidget.option(\"items\");\r\n if (isNumeric(index)) {\r\n return this.itemsGetter()[index]\r\n }\r\n return index && items[index.group] && items[index.group].items[index.item] || null\r\n },\r\n itemsGetter: function() {\r\n var resultItems = [];\r\n var items = this._collectionWidget.option(\"items\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n resultItems = resultItems.concat(items[i].items)\r\n } else {\r\n resultItems.push(items[i])\r\n }\r\n }\r\n return resultItems\r\n },\r\n deleteItemAtIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var itemGroup = this._collectionWidget.option(\"items\")[indices.group].items;\r\n itemGroup.splice(indices.item, 1)\r\n },\r\n getKeysByItems: function(items) {\r\n var plainItems = [];\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n var result = [];\r\n for (i = 0; i < plainItems.length; i++) {\r\n result.push(this._collectionWidget.keyOf(plainItems[i]))\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key, items) {\r\n var groups = items || this._collectionWidget.option(\"items\");\r\n var index = -1;\r\n var that = this;\r\n each(groups, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return\r\n }\r\n var keys = that.getKeysByItems(group.items);\r\n each(keys, (function(keyIndex, itemKey) {\r\n if (that._equalKeys(itemKey, key)) {\r\n index = {\r\n group: groupIndex,\r\n item: keyIndex\r\n };\r\n return false\r\n }\r\n }));\r\n if (-1 !== index) {\r\n return false\r\n }\r\n }));\r\n return index\r\n },\r\n _getGroups: function(items) {\r\n var dataSource = this._collectionWidget.getDataSource();\r\n var group = dataSource && dataSource.group();\r\n if (group) {\r\n return storeHelper.queryByOptions(query(items), {\r\n group: group\r\n }).toArray()\r\n }\r\n return this._collectionWidget.option(\"items\")\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n var result = [];\r\n each(keys, function(_, key) {\r\n var getItemMeta = function(groups) {\r\n var index = this.getIndexByKey(key, groups);\r\n var group = index && groups[index.group];\r\n if (!group) {\r\n return\r\n }\r\n return {\r\n groupKey: group.key,\r\n item: group.items[index.item]\r\n }\r\n }.bind(this);\r\n var itemMeta = getItemMeta(this._getGroups(items));\r\n if (!itemMeta) {\r\n return\r\n }\r\n var groupKey = itemMeta.groupKey;\r\n var item = itemMeta.item;\r\n var selectedGroup;\r\n each(result, (function(_, item) {\r\n if (item.key === groupKey) {\r\n selectedGroup = item;\r\n return false\r\n }\r\n }));\r\n if (!selectedGroup) {\r\n selectedGroup = {\r\n key: groupKey,\r\n items: []\r\n };\r\n result.push(selectedGroup)\r\n }\r\n selectedGroup.items.push(item)\r\n }.bind(this));\r\n return result\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._collectionWidget.option(\"items\");\r\n var movingIndices = splitIndex(movingIndex);\r\n var destinationIndices = splitIndex(destinationIndex);\r\n var movingItemGroup = items[movingIndices.group].items;\r\n var destinationItemGroup = items[destinationIndices.group].items;\r\n var movedItemData = movingItemGroup[movingIndices.item];\r\n movingItemGroup.splice(movingIndices.item, 1);\r\n destinationItemGroup.splice(destinationIndices.item, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return index && isNumeric(index.group) && isNumeric(index.item)\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n var $item = $(itemElement);\r\n var $group = $item.closest(\".\" + LIST_GROUP_CLASS);\r\n if (!$group.length) {\r\n return -1\r\n }\r\n return combineIndex({\r\n group: this._groupElements().index($group),\r\n item: this._groupItemElements($group).index($item)\r\n })\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return combineIndex(index)\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return splitIndex(index)\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var $group = this._groupElements().eq(indices.group);\r\n return this._groupItemElements($group).eq(indices.item)\r\n },\r\n _itemsFromSameParent: function(firstIndex, secondIndex) {\r\n return splitIndex(firstIndex).group === splitIndex(secondIndex).group\r\n }\r\n});\r\nexport default GroupedEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator_registry.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport var registry = {};\r\nexport function register(option, type, decoratorClass) {\r\n var decoratorsRegistry = registry;\r\n var decoratorConfig = {};\r\n decoratorConfig[option] = decoratorsRegistry[option] ? decoratorsRegistry[option] : {};\r\n decoratorConfig[option][type] = decoratorClass;\r\n extend(decoratorsRegistry, decoratorConfig)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar SWIPE_START_EVENT_NAME = addNamespace(swipeEventStart, LIST_EDIT_DECORATOR);\r\nvar SWIPE_UPDATE_EVENT_NAME = addNamespace(swipeEventSwipe, LIST_EDIT_DECORATOR);\r\nvar SWIPE_END_EVENT_NAME = addNamespace(swipeEventEnd, LIST_EDIT_DECORATOR);\r\nvar EditDecorator = Class.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._init()\r\n },\r\n _init: noop,\r\n _shouldHandleSwipe: false,\r\n _attachSwipeEvent: function(config) {\r\n var swipeConfig = {\r\n itemSizeFunc: function() {\r\n if (this._clearSwipeCache) {\r\n this._itemWidthCache = this._list.$element().width();\r\n this._clearSwipeCache = false\r\n }\r\n return this._itemWidthCache\r\n }.bind(this)\r\n };\r\n eventsEngine.on(config.$itemElement, SWIPE_START_EVENT_NAME, swipeConfig, this._itemSwipeStartHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_UPDATE_EVENT_NAME, this._itemSwipeUpdateHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_END_EVENT_NAME, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeStartHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n clearTimeout(this._list._inkRippleTimer);\r\n this._swipeStartHandler($itemElement, e)\r\n },\r\n _itemSwipeUpdateHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeUpdateHandler($itemElement, e)\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeEndHandler($itemElement, e);\r\n this._clearSwipeCache = true\r\n },\r\n beforeBag: noop,\r\n afterBag: noop,\r\n _commonOptions: function() {\r\n return {\r\n activeStateEnabled: this._list.option(\"activeStateEnabled\"),\r\n hoverStateEnabled: this._list.option(\"hoverStateEnabled\"),\r\n focusStateEnabled: this._list.option(\"focusStateEnabled\")\r\n }\r\n },\r\n modifyElement: function(config) {\r\n if (this._shouldHandleSwipe) {\r\n this._attachSwipeEvent(config);\r\n this._clearSwipeCache = true\r\n }\r\n },\r\n afterRender: noop,\r\n handleClick: noop,\r\n handleKeyboardEvents: noop,\r\n handleEnterPressing: noop,\r\n handleContextMenu: noop,\r\n _swipeStartHandler: noop,\r\n _swipeUpdateHandler: noop,\r\n _swipeEndHandler: noop,\r\n visibilityChange: noop,\r\n getExcludedSelectors: noop,\r\n dispose: noop\r\n});\r\nexport default EditDecorator;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.static.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Button from \"../button\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nvar STATIC_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-static-delete-button-container\";\r\nvar STATIC_DELETE_BUTTON_CLASS = \"dx-list-static-delete-button\";\r\nregisterDecorator(\"delete\", \"static\", EditDecorator.inherit({\r\n afterBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container;\r\n var $button = $(\"
    \").addClass(STATIC_DELETE_BUTTON_CLASS);\r\n this._list._createComponent($button, Button, {\r\n icon: \"remove\",\r\n onClick: function(args) {\r\n args.event.stopPropagation();\r\n this._deleteItem($itemElement)\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $container.addClass(STATIC_DELETE_BUTTON_CONTAINER_CLASS).append($button)\r\n },\r\n _deleteItem: function($itemElement) {\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n this._list.deleteItem($itemElement)\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.switchable.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nvar abstract = EditDecorator.abstract;\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n active\r\n} from \"../../events/core/emitter.feedback\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar POINTER_DOWN_EVENT_NAME = addNamespace(pointerEvents.down, LIST_EDIT_DECORATOR);\r\nvar ACTIVE_EVENT_NAME = addNamespace(active, LIST_EDIT_DECORATOR);\r\nvar LIST_ITEM_CONTENT_CLASS = \"dx-list-item-content\";\r\nvar SWITCHABLE_DELETE_READY_CLASS = \"dx-list-switchable-delete-ready\";\r\nvar SWITCHABLE_MENU_SHIELD_POSITIONING_CLASS = \"dx-list-switchable-menu-shield-positioning\";\r\nvar SWITCHABLE_DELETE_TOP_SHIELD_CLASS = \"dx-list-switchable-delete-top-shield\";\r\nvar SWITCHABLE_DELETE_BOTTOM_SHIELD_CLASS = \"dx-list-switchable-delete-bottom-shield\";\r\nvar SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS = \"dx-list-switchable-menu-item-shield-positioning\";\r\nvar SWITCHABLE_DELETE_ITEM_CONTENT_SHIELD_CLASS = \"dx-list-switchable-delete-item-content-shield\";\r\nvar SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-switchable-delete-button-container\";\r\nvar SwitchableEditDecorator = EditDecorator.inherit({\r\n _init: function() {\r\n this._$topShield = $(\"
    \").addClass(SWITCHABLE_DELETE_TOP_SHIELD_CLASS);\r\n this._$bottomShield = $(\"
    \").addClass(SWITCHABLE_DELETE_BOTTOM_SHIELD_CLASS);\r\n this._$itemContentShield = $(\"
    \").addClass(SWITCHABLE_DELETE_ITEM_CONTENT_SHIELD_CLASS);\r\n eventsEngine.on(this._$topShield, POINTER_DOWN_EVENT_NAME, this._cancelDeleteReadyItem.bind(this));\r\n eventsEngine.on(this._$bottomShield, POINTER_DOWN_EVENT_NAME, this._cancelDeleteReadyItem.bind(this));\r\n this._list.$element().append(this._$topShield.toggle(false)).append(this._$bottomShield.toggle(false))\r\n },\r\n handleClick: function() {\r\n return this._cancelDeleteReadyItem()\r\n },\r\n _cancelDeleteReadyItem: function() {\r\n if (!this._$readyToDeleteItem) {\r\n return false\r\n }\r\n this._cancelDelete(this._$readyToDeleteItem);\r\n return true\r\n },\r\n _cancelDelete: function($itemElement) {\r\n this._toggleDeleteReady($itemElement, false)\r\n },\r\n _toggleDeleteReady: function($itemElement, readyToDelete) {\r\n if (void 0 === readyToDelete) {\r\n readyToDelete = !this._isReadyToDelete($itemElement)\r\n }\r\n this._toggleShields($itemElement, readyToDelete);\r\n this._toggleScrolling(readyToDelete);\r\n this._cacheReadyToDeleteItem($itemElement, readyToDelete);\r\n this._animateToggleDelete($itemElement, readyToDelete)\r\n },\r\n _isReadyToDelete: function($itemElement) {\r\n return $itemElement.hasClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _toggleShields: function($itemElement, enabled) {\r\n this._list.$element().toggleClass(SWITCHABLE_MENU_SHIELD_POSITIONING_CLASS, enabled);\r\n this._$topShield.toggle(enabled);\r\n this._$bottomShield.toggle(enabled);\r\n if (enabled) {\r\n this._updateShieldsHeight($itemElement)\r\n }\r\n this._toggleContentShield($itemElement, enabled)\r\n },\r\n _updateShieldsHeight: function($itemElement) {\r\n var $list = this._list.$element();\r\n var listTopOffset = $list.offset().top;\r\n var listHeight = $list.outerHeight();\r\n var itemTopOffset = $itemElement.offset().top;\r\n var itemHeight = $itemElement.outerHeight();\r\n var dirtyTopShieldHeight = itemTopOffset - listTopOffset;\r\n var dirtyBottomShieldHeight = listHeight - itemHeight - dirtyTopShieldHeight;\r\n this._$topShield.height(Math.max(dirtyTopShieldHeight, 0));\r\n this._$bottomShield.height(Math.max(dirtyBottomShieldHeight, 0))\r\n },\r\n _toggleContentShield: function($itemElement, enabled) {\r\n if (enabled) {\r\n $itemElement.find(\".\" + LIST_ITEM_CONTENT_CLASS).first().append(this._$itemContentShield)\r\n } else {\r\n this._$itemContentShield.detach()\r\n }\r\n },\r\n _toggleScrolling: function(readyToDelete) {\r\n var scrollView = this._list.$element().dxScrollView(\"instance\");\r\n if (readyToDelete) {\r\n scrollView.on(\"start\", this._cancelScrolling)\r\n } else {\r\n scrollView.off(\"start\", this._cancelScrolling)\r\n }\r\n },\r\n _cancelScrolling: function(args) {\r\n args.event.cancel = true\r\n },\r\n _cacheReadyToDeleteItem: function($itemElement, cache) {\r\n if (cache) {\r\n this._$readyToDeleteItem = $itemElement\r\n } else {\r\n delete this._$readyToDeleteItem\r\n }\r\n },\r\n _animateToggleDelete: function($itemElement, readyToDelete) {\r\n if (readyToDelete) {\r\n this._enablePositioning($itemElement);\r\n this._prepareDeleteReady($itemElement);\r\n this._animatePrepareDeleteReady($itemElement);\r\n eventsEngine.off($itemElement, pointerEvents.up)\r\n } else {\r\n this._forgetDeleteReady($itemElement);\r\n this._animateForgetDeleteReady($itemElement).done(this._disablePositioning.bind(this, $itemElement))\r\n }\r\n },\r\n _enablePositioning: function($itemElement) {\r\n $itemElement.addClass(SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS);\r\n eventsEngine.on($itemElement, ACTIVE_EVENT_NAME, noop);\r\n eventsEngine.one($itemElement, pointerEvents.up, this._disablePositioning.bind(this, $itemElement))\r\n },\r\n _disablePositioning: function($itemElement) {\r\n $itemElement.removeClass(SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS);\r\n eventsEngine.off($itemElement, ACTIVE_EVENT_NAME)\r\n },\r\n _prepareDeleteReady: function($itemElement) {\r\n $itemElement.addClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _forgetDeleteReady: function($itemElement) {\r\n $itemElement.removeClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _animatePrepareDeleteReady: abstract,\r\n _animateForgetDeleteReady: abstract,\r\n _getDeleteButtonContainer: function($itemElement) {\r\n $itemElement = $itemElement || this._$readyToDeleteItem;\r\n return $itemElement.children(\".\" + SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS)\r\n },\r\n _deleteItem: function($itemElement) {\r\n $itemElement = $itemElement || this._$readyToDeleteItem;\r\n this._getDeleteButtonContainer($itemElement).detach();\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n this._list.deleteItem($itemElement).always(this._cancelDelete.bind(this, $itemElement))\r\n },\r\n _isRtlEnabled: function() {\r\n return this._list.option(\"rtlEnabled\")\r\n },\r\n dispose: function() {\r\n if (this._$topShield) {\r\n this._$topShield.remove()\r\n }\r\n if (this._$bottomShield) {\r\n this._$bottomShield.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n});\r\nexport default SwitchableEditDecorator;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.switchable.button.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport fx from \"../../animation/fx\";\r\nimport Button from \"../button\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport SwitchableEditDecorator from \"./ui.list.edit.decorator.switchable\";\r\nvar SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-switchable-delete-button-container\";\r\nvar SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS = \"dx-list-switchable-delete-button-wrapper\";\r\nvar SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS = \"dx-list-switchable-delete-button-inner-wrapper\";\r\nvar SWITCHABLE_DELETE_BUTTON_CLASS = \"dx-list-switchable-delete-button\";\r\nvar SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION = 200;\r\nvar SwitchableButtonEditDecorator = SwitchableEditDecorator.inherit({\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var $buttonContainer = $(\"
    \").addClass(SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS);\r\n var $buttonWrapper = $(\"
    \").addClass(SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS);\r\n var $buttonInnerWrapper = $(\"
    \").addClass(SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS);\r\n var $button = $(\"
    \").addClass(SWITCHABLE_DELETE_BUTTON_CLASS);\r\n this._list._createComponent($button, Button, {\r\n text: messageLocalization.format(\"dxListEditDecorator-delete\"),\r\n type: \"danger\",\r\n onClick: function(e) {\r\n this._deleteItem();\r\n e.event.stopPropagation()\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $buttonContainer.append($buttonWrapper);\r\n $buttonWrapper.append($buttonInnerWrapper);\r\n $buttonInnerWrapper.append($button);\r\n this._$buttonContainer = $buttonContainer\r\n },\r\n _enablePositioning: function($itemElement) {\r\n this.callBase.apply(this, arguments);\r\n fx.stop(this._$buttonContainer, true);\r\n this._$buttonContainer.appendTo($itemElement)\r\n },\r\n _disablePositioning: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonContainer.detach()\r\n },\r\n _animatePrepareDeleteReady: function() {\r\n var rtl = this._isRtlEnabled();\r\n var listWidth = this._list.$element().width();\r\n var buttonWidth = this._buttonWidth();\r\n var fromValue = rtl ? listWidth : -buttonWidth;\r\n var toValue = rtl ? listWidth - buttonWidth : 0;\r\n return fx.animate(this._$buttonContainer, {\r\n type: \"custom\",\r\n duration: SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION,\r\n from: {\r\n right: fromValue\r\n },\r\n to: {\r\n right: toValue\r\n }\r\n })\r\n },\r\n _animateForgetDeleteReady: function() {\r\n var rtl = this._isRtlEnabled();\r\n var listWidth = this._list.$element().width();\r\n var buttonWidth = this._buttonWidth();\r\n var fromValue = rtl ? listWidth - buttonWidth : 0;\r\n var toValue = rtl ? listWidth : -buttonWidth;\r\n return fx.animate(this._$buttonContainer, {\r\n type: \"custom\",\r\n duration: SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION,\r\n from: {\r\n right: fromValue\r\n },\r\n to: {\r\n right: toValue\r\n }\r\n })\r\n },\r\n _buttonWidth: function() {\r\n if (!this._buttonContainerWidth) {\r\n this._buttonContainerWidth = this._$buttonContainer.outerWidth()\r\n }\r\n return this._buttonContainerWidth\r\n },\r\n dispose: function() {\r\n if (this._$buttonContainer) {\r\n this._$buttonContainer.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n});\r\nvar TOGGLE_DELETE_SWITCH_CONTAINER_CLASS = \"dx-list-toggle-delete-switch-container\";\r\nvar TOGGLE_DELETE_SWITCH_CLASS = \"dx-list-toggle-delete-switch\";\r\nregisterDecorator(\"delete\", \"toggle\", SwitchableButtonEditDecorator.inherit({\r\n beforeBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container;\r\n var $toggle = $(\"
    \").addClass(TOGGLE_DELETE_SWITCH_CLASS);\r\n this._list._createComponent($toggle, Button, {\r\n icon: \"toggle-delete\",\r\n onClick: function(e) {\r\n fx.stop(this._$buttonContainer, false);\r\n this._toggleDeleteReady($itemElement);\r\n e.event.stopPropagation()\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $container.addClass(TOGGLE_DELETE_SWITCH_CONTAINER_CLASS);\r\n $container.append($toggle)\r\n }\r\n}));\r\nregisterDecorator(\"delete\", \"slideButton\", SwitchableButtonEditDecorator.inherit({\r\n _shouldHandleSwipe: true,\r\n _swipeEndHandler: function($itemElement, args) {\r\n if (0 !== args.targetOffset) {\r\n fx.stop(this._$buttonContainer, false);\r\n this._toggleDeleteReady($itemElement)\r\n }\r\n return true\r\n }\r\n}));\r\nexport default SwitchableButtonEditDecorator;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator_menu_helper.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar EditDecoratorMenuHelperMixin = {\r\n _menuEnabled: function() {\r\n return !!this._menuItems().length\r\n },\r\n _menuItems: function() {\r\n return this._list.option(\"menuItems\")\r\n },\r\n _deleteEnabled: function() {\r\n return this._list.option(\"allowItemDeleting\")\r\n },\r\n _fireMenuAction: function($itemElement, action) {\r\n this._list._itemEventHandlerByHandler($itemElement, action, {}, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n};\r\nexport default EditDecoratorMenuHelperMixin;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.switchable.slide.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n active\r\n} from \"../../events/core/emitter.feedback\";\r\nimport EditDecoratorMenuHelperMixin from \"./ui.list.edit.decorator_menu_helper\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport SwitchableEditDecorator from \"./ui.list.edit.decorator.switchable\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nimport ActionSheet from \"../action_sheet\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar CLICK_EVENT_NAME = addNamespace(clickEventName, LIST_EDIT_DECORATOR);\r\nvar ACTIVE_EVENT_NAME = addNamespace(active, LIST_EDIT_DECORATOR);\r\nvar SLIDE_MENU_CLASS = \"dx-list-slide-menu\";\r\nvar SLIDE_MENU_WRAPPER_CLASS = \"dx-list-slide-menu-wrapper\";\r\nvar SLIDE_MENU_CONTENT_CLASS = \"dx-list-slide-menu-content\";\r\nvar SLIDE_MENU_BUTTONS_CONTAINER_CLASS = \"dx-list-slide-menu-buttons-container\";\r\nvar SLIDE_MENU_BUTTONS_CLASS = \"dx-list-slide-menu-buttons\";\r\nvar SLIDE_MENU_BUTTON_CLASS = \"dx-list-slide-menu-button\";\r\nvar SLIDE_MENU_BUTTON_MENU_CLASS = \"dx-list-slide-menu-button-menu\";\r\nvar SLIDE_MENU_BUTTON_DELETE_CLASS = \"dx-list-slide-menu-button-delete\";\r\nvar SLIDE_MENU_ANIMATION_DURATION = 400;\r\nvar SLIDE_MENU_ANIMATION_EASING = \"cubic-bezier(0.075, 0.82, 0.165, 1)\";\r\nregisterDecorator(\"menu\", \"slide\", SwitchableEditDecorator.inherit({\r\n _shouldHandleSwipe: true,\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer = $(\"
    \").addClass(SLIDE_MENU_BUTTONS_CONTAINER_CLASS);\r\n eventsEngine.on(this._$buttonsContainer, ACTIVE_EVENT_NAME, noop);\r\n this._$buttons = $(\"
    \").addClass(SLIDE_MENU_BUTTONS_CLASS).appendTo(this._$buttonsContainer);\r\n this._renderMenu();\r\n this._renderDeleteButton()\r\n },\r\n _renderMenu: function() {\r\n if (!this._menuEnabled()) {\r\n return\r\n }\r\n var menuItems = this._menuItems();\r\n if (1 === menuItems.length) {\r\n var menuItem = menuItems[0];\r\n this._renderMenuButton(menuItem.text, function(e) {\r\n e.stopPropagation();\r\n this._fireAction(menuItem)\r\n }.bind(this))\r\n } else {\r\n var $menu = $(\"
    \").addClass(SLIDE_MENU_CLASS);\r\n this._menu = this._list._createComponent($menu, ActionSheet, {\r\n showTitle: false,\r\n items: menuItems,\r\n onItemClick: function(args) {\r\n this._fireAction(args.itemData)\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $menu.appendTo(this._list.$element());\r\n var $menuButton = this._renderMenuButton(messageLocalization.format(\"dxListEditDecorator-more\"), function(e) {\r\n e.stopPropagation();\r\n this._menu.show()\r\n }.bind(this));\r\n this._menu.option(\"target\", $menuButton)\r\n }\r\n },\r\n _renderMenuButton: function(text, action) {\r\n var $menuButton = $(\"
    \").addClass(SLIDE_MENU_BUTTON_CLASS).addClass(SLIDE_MENU_BUTTON_MENU_CLASS).text(text);\r\n this._$buttons.append($menuButton);\r\n eventsEngine.on($menuButton, CLICK_EVENT_NAME, action);\r\n return $menuButton\r\n },\r\n _renderDeleteButton: function() {\r\n if (!this._deleteEnabled()) {\r\n return\r\n }\r\n var $deleteButton = $(\"
    \").addClass(SLIDE_MENU_BUTTON_CLASS).addClass(SLIDE_MENU_BUTTON_DELETE_CLASS).text(isMaterial() ? \"\" : messageLocalization.format(\"dxListEditDecorator-delete\"));\r\n eventsEngine.on($deleteButton, CLICK_EVENT_NAME, function(e) {\r\n e.stopPropagation();\r\n this._deleteItem()\r\n }.bind(this));\r\n this._$buttons.append($deleteButton)\r\n },\r\n _fireAction: function(menuItem) {\r\n this._fireMenuAction($(this._cachedNode), menuItem.action);\r\n this._cancelDeleteReadyItem()\r\n },\r\n modifyElement: function(config) {\r\n this.callBase.apply(this, arguments);\r\n var $itemElement = config.$itemElement;\r\n $itemElement.addClass(SLIDE_MENU_WRAPPER_CLASS);\r\n var $slideMenuContent = $(\"
    \").addClass(SLIDE_MENU_CONTENT_CLASS);\r\n $itemElement.wrapInner($slideMenuContent)\r\n },\r\n _getDeleteButtonContainer: function() {\r\n return this._$buttonsContainer\r\n },\r\n handleClick: function(_, e) {\r\n if ($(e.target).closest(\".\" + SLIDE_MENU_CONTENT_CLASS).length) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return false\r\n },\r\n _swipeStartHandler: function($itemElement) {\r\n this._enablePositioning($itemElement);\r\n this._cacheItemData($itemElement);\r\n this._setPositions(this._getPositions(0))\r\n },\r\n _swipeUpdateHandler: function($itemElement, args) {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n var isItemReadyToDelete = this._isReadyToDelete($itemElement);\r\n var moveJustStarted = this._getCurrentPositions().content === this._getStartPositions().content;\r\n if (moveJustStarted && !isItemReadyToDelete && args.offset * signCorrection > 0) {\r\n args.cancel = true;\r\n return\r\n }\r\n var offset = this._cachedItemWidth * args.offset;\r\n var startOffset = isItemReadyToDelete ? -this._cachedButtonWidth * signCorrection : 0;\r\n var correctedOffset = (offset + startOffset) * signCorrection;\r\n var percent = correctedOffset < 0 ? Math.abs((offset + startOffset) / this._cachedButtonWidth) : 0;\r\n this._setPositions(this._getPositions(percent));\r\n return true\r\n },\r\n _getStartPositions: function() {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n return {\r\n content: 0,\r\n buttonsContainer: rtl ? -this._cachedButtonWidth : this._cachedItemWidth,\r\n buttons: -this._cachedButtonWidth * signCorrection\r\n }\r\n },\r\n _getPositions: function(percent) {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n var startPositions = this._getStartPositions();\r\n return {\r\n content: startPositions.content - percent * this._cachedButtonWidth * signCorrection,\r\n buttonsContainer: startPositions.buttonsContainer - Math.min(percent, 1) * this._cachedButtonWidth * signCorrection,\r\n buttons: startPositions.buttons + Math.min(percent, 1) * this._cachedButtonWidth * signCorrection\r\n }\r\n },\r\n _getCurrentPositions: function() {\r\n return {\r\n content: locate(this._$cachedContent).left,\r\n buttonsContainer: locate(this._$buttonsContainer).left,\r\n buttons: locate(this._$buttons).left\r\n }\r\n },\r\n _setPositions: function(positions) {\r\n move(this._$cachedContent, {\r\n left: positions.content\r\n });\r\n move(this._$buttonsContainer, {\r\n left: positions.buttonsContainer\r\n });\r\n move(this._$buttons, {\r\n left: positions.buttons\r\n })\r\n },\r\n _cacheItemData: function($itemElement) {\r\n if ($itemElement[0] === this._cachedNode) {\r\n return\r\n }\r\n this._$cachedContent = $itemElement.find(\".\" + SLIDE_MENU_CONTENT_CLASS);\r\n this._cachedItemWidth = $itemElement.outerWidth();\r\n this._cachedButtonWidth = this._cachedButtonWidth || this._$buttons.outerWidth();\r\n this._$buttonsContainer.width(this._cachedButtonWidth);\r\n if (this._$cachedContent.length) {\r\n this._cachedNode = $itemElement[0]\r\n }\r\n },\r\n _minButtonContainerLeftOffset: function() {\r\n return this._cachedItemWidth - this._cachedButtonWidth\r\n },\r\n _swipeEndHandler: function($itemElement, args) {\r\n this._cacheItemData($itemElement);\r\n var signCorrection = this._isRtlEnabled() ? 1 : -1;\r\n var offset = this._cachedItemWidth * args.offset;\r\n var endedAtReadyToDelete = !this._isReadyToDelete($itemElement) && offset * signCorrection > .2 * this._cachedButtonWidth;\r\n var readyToDelete = args.targetOffset === signCorrection && endedAtReadyToDelete;\r\n this._toggleDeleteReady($itemElement, readyToDelete);\r\n return true\r\n },\r\n _enablePositioning: function($itemElement) {\r\n fx.stop(this._$cachedContent, true);\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer.appendTo($itemElement)\r\n },\r\n _disablePositioning: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer.detach()\r\n },\r\n _animatePrepareDeleteReady: function() {\r\n return this._animateToPositions(this._getPositions(1))\r\n },\r\n _animateForgetDeleteReady: function($itemElement) {\r\n this._cacheItemData($itemElement);\r\n return this._animateToPositions(this._getPositions(0))\r\n },\r\n _animateToPositions: function(positions) {\r\n var that = this;\r\n var currentPosition = this._getCurrentPositions();\r\n var durationTimePart = Math.min(Math.abs(currentPosition.content - positions.content) / this._cachedButtonWidth, 1);\r\n return fx.animate(this._$cachedContent, {\r\n from: currentPosition,\r\n to: positions,\r\n easing: SLIDE_MENU_ANIMATION_EASING,\r\n duration: SLIDE_MENU_ANIMATION_DURATION * durationTimePart,\r\n strategy: \"frame\",\r\n draw: function(positions) {\r\n that._setPositions(positions)\r\n }\r\n })\r\n },\r\n dispose: function() {\r\n if (this._menu) {\r\n this._menu.$element().remove()\r\n }\r\n if (this._$buttonsContainer) {\r\n this._$buttonsContainer.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n}).include(EditDecoratorMenuHelperMixin));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.swipe.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nregisterDecorator(\"delete\", \"swipe\", EditDecorator.inherit({\r\n _shouldHandleSwipe: true,\r\n _renderItemPosition: function($itemElement, offset, animate) {\r\n var deferred = new Deferred;\r\n var itemOffset = offset * this._itemElementWidth;\r\n if (animate) {\r\n fx.animate($itemElement, {\r\n to: {\r\n left: itemOffset\r\n },\r\n type: \"slide\",\r\n complete: function() {\r\n deferred.resolve($itemElement, offset)\r\n }\r\n })\r\n } else {\r\n move($itemElement, {\r\n left: itemOffset\r\n });\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _swipeStartHandler: function($itemElement) {\r\n this._itemElementWidth = $itemElement.width();\r\n return true\r\n },\r\n _swipeUpdateHandler: function($itemElement, args) {\r\n this._renderItemPosition($itemElement, args.offset);\r\n return true\r\n },\r\n _swipeEndHandler: function($itemElement, args) {\r\n var offset = args.targetOffset;\r\n this._renderItemPosition($itemElement, offset, true).done(function($itemElement, offset) {\r\n if (Math.abs(offset)) {\r\n this._list.deleteItem($itemElement).fail(function() {\r\n this._renderItemPosition($itemElement, 0, true)\r\n }.bind(this))\r\n }\r\n }.bind(this));\r\n return true\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.context.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport EditDecoratorMenuHelperMixin from \"./ui.list.edit.decorator_menu_helper\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n ListBase\r\n} from \"./ui.list.base\";\r\nvar CONTEXTMENU_CLASS = \"dx-list-context-menu\";\r\nvar CONTEXTMENU_MENUCONTENT_CLASS = \"dx-list-context-menucontent\";\r\nregisterDecorator(\"menu\", \"context\", EditDecorator.inherit({\r\n _init: function() {\r\n var $menu = $(\"
    \").addClass(CONTEXTMENU_CLASS);\r\n this._list.$element().append($menu);\r\n this._menu = this._renderOverlay($menu)\r\n },\r\n _renderOverlay: function($element) {\r\n return this._list._createComponent($element, Overlay, {\r\n shading: false,\r\n deferRendering: true,\r\n closeOnTargetScroll: true,\r\n closeOnOutsideClick: function(e) {\r\n return !$(e.target).closest(\".\" + CONTEXTMENU_CLASS).length\r\n },\r\n animation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n height: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n height: function() {\r\n return this._$menuList.outerHeight()\r\n }.bind(this),\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 0,\r\n from: {\r\n opacity: 1\r\n },\r\n to: {\r\n opacity: 0\r\n }\r\n }\r\n },\r\n height: function() {\r\n return this._$menuList ? this._$menuList.outerHeight() : 0\r\n }.bind(this),\r\n width: function() {\r\n return this._list.$element().outerWidth()\r\n }.bind(this),\r\n onContentReady: this._renderMenuContent.bind(this)\r\n })\r\n },\r\n _renderMenuContent: function(e) {\r\n var $overlayContent = e.component.$content();\r\n var items = this._menuItems().slice();\r\n if (this._deleteEnabled()) {\r\n items.push({\r\n text: messageLocalization.format(\"dxListEditDecorator-delete\"),\r\n action: this._deleteItem.bind(this)\r\n })\r\n }\r\n this._$menuList = $(\"
    \");\r\n this._list._createComponent(this._$menuList, ListBase, {\r\n items: items,\r\n onItemClick: this._menuItemClickHandler.bind(this),\r\n height: \"auto\",\r\n integrationOptions: {}\r\n });\r\n $overlayContent.addClass(CONTEXTMENU_MENUCONTENT_CLASS);\r\n $overlayContent.append(this._$menuList)\r\n },\r\n _menuItemClickHandler: function(args) {\r\n this._menu.hide();\r\n this._fireMenuAction(this._$itemWithMenu, args.itemData.action)\r\n },\r\n _deleteItem: function() {\r\n this._list.deleteItem(this._$itemWithMenu)\r\n },\r\n handleContextMenu: function($itemElement) {\r\n this._$itemWithMenu = $itemElement;\r\n this._menu.option({\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: $itemElement,\r\n collision: \"flip\"\r\n }\r\n });\r\n this._menu.show();\r\n return true\r\n },\r\n dispose: function() {\r\n if (this._menu) {\r\n this._menu.$element().remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n}).include(EditDecoratorMenuHelperMixin));\r\n","/**\r\n * DevExtreme (esm/ui/radio_group/radio_button.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RadioButton = Editor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n value: false,\r\n useInkRipple: false\r\n })\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return true\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RADIO_BUTTON_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderIcon();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this._renderCheckedState(this.option(\"value\"));\r\n this._renderClick();\r\n this.setAria(\"role\", \"radio\")\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render({\r\n waveSizeCoefficient: 3.3,\r\n useHoldAnimation: false,\r\n wavesNumber: 2,\r\n isCentered: true\r\n })\r\n },\r\n _renderInkWave: function(element, dxEvent, doRender, waveIndex) {\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: element,\r\n event: dxEvent,\r\n wave: waveIndex\r\n };\r\n if (doRender) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _updateFocusState: function(e, value) {\r\n this.callBase.apply(this, arguments);\r\n this._renderInkWave(this._$icon, e, value, 0)\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n this._renderInkWave(this._$icon, e, value, 1)\r\n },\r\n _renderIcon: function() {\r\n this._$icon = $(\"
    \").addClass(RADIO_BUTTON_ICON_CLASS);\r\n $(\"
    \").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo(this._$icon);\r\n this.$element().append(this._$icon)\r\n },\r\n _renderCheckedState: function(checked) {\r\n this.$element().toggleClass(RADIO_BUTTON_CHECKED_CLASS, checked).find(\".\" + RADIO_BUTTON_ICON_CLASS).toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, checked);\r\n this.setAria(\"checked\", checked)\r\n },\r\n _renderClick: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n this._clickAction = this._createAction(function(args) {\r\n this._clickHandler(args.event)\r\n }.bind(this));\r\n eventsEngine.off(this.$element(), eventName);\r\n eventsEngine.on(this.$element(), eventName, function(e) {\r\n this._clickAction({\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _clickHandler: function(e) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"value\":\r\n this._renderCheckedState(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n delete this._inkRipple;\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxRadioButton\", RadioButton);\r\nexport default RadioButton;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.selection.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport CheckBox from \"../check_box\";\r\nimport RadioButton from \"../radio_group/radio_button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nvar SELECT_DECORATOR_ENABLED_CLASS = \"dx-list-select-decorator-enabled\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CLASS = \"dx-list-select-all\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS = \"dx-list-select-all-checkbox\";\r\nvar SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS = \"dx-list-select-all-label\";\r\nvar SELECT_CHECKBOX_CONTAINER_CLASS = \"dx-list-select-checkbox-container\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-list-select-checkbox\";\r\nvar SELECT_RADIO_BUTTON_CONTAINER_CLASS = \"dx-list-select-radiobutton-container\";\r\nvar SELECT_RADIO_BUTTON_CLASS = \"dx-list-select-radiobutton\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar CLICK_EVENT_NAME = addNamespace(clickEventName, \"dxListEditDecorator\");\r\nregisterDecorator(\"selection\", \"default\", EditDecorator.inherit({\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectionMode = this._list.option(\"selectionMode\");\r\n this._singleStrategy = \"single\" === selectionMode;\r\n this._containerClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CONTAINER_CLASS : SELECT_CHECKBOX_CONTAINER_CLASS;\r\n this._controlClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CLASS : SELECT_CHECKBOX_CLASS;\r\n this._controlWidget = this._singleStrategy ? RadioButton : CheckBox;\r\n this._list.$element().addClass(SELECT_DECORATOR_ENABLED_CLASS)\r\n },\r\n beforeBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container.addClass(this._containerClass);\r\n var $control = $(\"
    \").addClass(this._controlClass).appendTo($container);\r\n new this._controlWidget($control, extend(this._commonOptions(), {\r\n value: this._isSelected($itemElement),\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n onValueChanged: function(e) {\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n this._processCheckedState($itemElement, e.value);\r\n e.event && e.event.stopPropagation()\r\n }.bind(this)\r\n }))\r\n },\r\n modifyElement: function(config) {\r\n this.callBase.apply(this, arguments);\r\n var $itemElement = config.$itemElement;\r\n var control = this._controlWidget.getInstance($itemElement.find(\".\" + this._controlClass));\r\n eventsEngine.on($itemElement, \"stateChanged\", function(e, state) {\r\n control.option(\"value\", state)\r\n }.bind(this))\r\n },\r\n _updateSelectAllState: function() {\r\n if (!this._$selectAll) {\r\n return\r\n }\r\n this._selectAllCheckBox.option(\"value\", this._list.isSelectAll())\r\n },\r\n afterRender: function() {\r\n if (\"all\" !== this._list.option(\"selectionMode\")) {\r\n return\r\n }\r\n if (!this._$selectAll) {\r\n this._renderSelectAll()\r\n } else {\r\n this._updateSelectAllState()\r\n }\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n var moveFocusDown = !moveFocusUp;\r\n var list = this._list;\r\n var $selectAll = this._$selectAll;\r\n var lastItemIndex = list._getLastItemIndex();\r\n var isFocusOutOfList = moveFocusUp && 0 === currentFocusedIndex || moveFocusDown && currentFocusedIndex === lastItemIndex;\r\n var hasSelectAllItem = !!$selectAll;\r\n if (hasSelectAllItem && isFocusOutOfList) {\r\n list.option(\"focusedElement\", $selectAll);\r\n list.scrollToItem(list.option(\"focusedElement\"));\r\n return true\r\n }\r\n return false\r\n },\r\n handleEnterPressing: function(e) {\r\n if (this._$selectAll && this._$selectAll.hasClass(FOCUSED_STATE_CLASS)) {\r\n e.target = this._$selectAll.get(0);\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"));\r\n return true\r\n }\r\n },\r\n _renderSelectAll: function() {\r\n var $selectAll = this._$selectAll = $(\"
    \").addClass(SELECT_DECORATOR_SELECT_ALL_CLASS);\r\n var list = this._list;\r\n var downArrowHandler = list._supportedKeys().downArrow.bind(list);\r\n this._selectAllCheckBox = list._createComponent($(\"
    \").addClass(SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS).appendTo($selectAll), CheckBox, {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false\r\n });\r\n this._selectAllCheckBox.registerKeyHandler(\"downArrow\", downArrowHandler);\r\n $(\"
    \").addClass(SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS).text(this._list.option(\"selectAllText\")).appendTo($selectAll);\r\n this._list.itemsContainer().prepend($selectAll);\r\n this._updateSelectAllState();\r\n this._attachSelectAllHandler()\r\n },\r\n _attachSelectAllHandler: function() {\r\n this._selectAllCheckBox.option(\"onValueChanged\", this._selectAllHandler.bind(this));\r\n eventsEngine.off(this._$selectAll, CLICK_EVENT_NAME);\r\n eventsEngine.on(this._$selectAll, CLICK_EVENT_NAME, this._selectAllClickHandler.bind(this))\r\n },\r\n _selectAllHandler: function(e) {\r\n e.event && e.event.stopPropagation();\r\n var isSelectedAll = this._selectAllCheckBox.option(\"value\");\r\n var result = this._list._createActionByOption(\"onSelectAllValueChanged\")({\r\n value: isSelectedAll\r\n });\r\n if (false === result) {\r\n return\r\n }\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n if (true === isSelectedAll) {\r\n this._selectAllItems()\r\n } else if (false === isSelectedAll) {\r\n this._unselectAllItems()\r\n }\r\n },\r\n _checkSelectAllCapability: function() {\r\n var list = this._list;\r\n var dataSource = list.getDataSource();\r\n if (\"allPages\" === list.option(\"selectAllMode\") && list.option(\"grouped\") && (!dataSource || !dataSource.group())) {\r\n errors.log(\"W1010\");\r\n return false\r\n }\r\n return true\r\n },\r\n _selectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.selectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _unselectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.deselectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _selectAllClickHandler: function(e) {\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"))\r\n },\r\n _isSelected: function($itemElement) {\r\n return this._list.isItemSelected($itemElement)\r\n },\r\n _processCheckedState: function($itemElement, checked) {\r\n if (checked) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n },\r\n dispose: function() {\r\n this._disposeSelectAll();\r\n this._list.$element().removeClass(SELECT_DECORATOR_ENABLED_CLASS);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _disposeSelectAll: function() {\r\n if (this._$selectAll) {\r\n this._$selectAll.remove();\r\n this._$selectAll = null\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.reorder.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isMouseEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nimport Sortable from \"../sortable\";\r\nvar REORDER_HANDLE_CONTAINER_CLASS = \"dx-list-reorder-handle-container\";\r\nvar REORDER_HANDLE_CLASS = \"dx-list-reorder-handle\";\r\nvar REORDERING_ITEM_GHOST_CLASS = \"dx-list-item-ghost-reordering\";\r\nvar STATE_HOVER_CLASS = \"dx-state-hover\";\r\nregisterDecorator(\"reorder\", \"default\", EditDecorator.inherit({\r\n _init: function() {\r\n var list = this._list;\r\n this._groupedEnabled = this._list.option(\"grouped\");\r\n this._lockedDrag = false;\r\n var filter = this._groupedEnabled ? \"> .dx-list-group > .dx-list-group-body > .dx-list-item\" : \"> .dx-list-item\";\r\n this._sortable = list._createComponent(list._scrollView.content(), Sortable, extend({\r\n component: list,\r\n contentTemplate: null,\r\n allowReordering: false,\r\n filter: filter,\r\n container: list.$element(),\r\n dragDirection: list.option(\"itemDragging.group\") ? \"both\" : \"vertical\",\r\n handle: \".\".concat(REORDER_HANDLE_CLASS),\r\n dragTemplate: this._dragTemplate,\r\n onDragStart: this._dragStartHandler.bind(this),\r\n onDragChange: this._dragChangeHandler.bind(this),\r\n onReorder: this._reorderHandler.bind(this)\r\n }, list.option(\"itemDragging\")))\r\n },\r\n afterRender: function() {\r\n this._sortable.update()\r\n },\r\n _dragTemplate: function(e) {\r\n return $(e.itemElement).clone().width($(e.itemElement).width()).addClass(REORDERING_ITEM_GHOST_CLASS).addClass(STATE_HOVER_CLASS)\r\n },\r\n _dragStartHandler: function(e) {\r\n if (this._lockedDrag) {\r\n e.cancel = true;\r\n return\r\n }\r\n },\r\n _dragChangeHandler: function(e) {\r\n if (this._groupedEnabled && !this._sameParent(e.fromIndex, e.toIndex)) {\r\n e.cancel = true;\r\n return\r\n }\r\n },\r\n _sameParent: function(fromIndex, toIndex) {\r\n var $dragging = this._list.getItemElementByFlatIndex(fromIndex);\r\n var $over = this._list.getItemElementByFlatIndex(toIndex);\r\n return $over.parent().get(0) === $dragging.parent().get(0)\r\n },\r\n _reorderHandler: function(e) {\r\n var $targetElement = this._list.getItemElementByFlatIndex(e.toIndex);\r\n this._list.reorderItem($(e.itemElement), $targetElement)\r\n },\r\n afterBag: function(config) {\r\n var $handle = $(\"
    \").addClass(REORDER_HANDLE_CLASS);\r\n eventsEngine.on($handle, \"dxpointerdown\", e => {\r\n this._lockedDrag = !isMouseEvent(e)\r\n });\r\n eventsEngine.on($handle, \"dxhold\", {\r\n timeout: 30\r\n }, e => {\r\n e.cancel = true;\r\n this._lockedDrag = false\r\n });\r\n config.$container.addClass(REORDER_HANDLE_CONTAINER_CLASS).append($handle)\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.provider.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n registry\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport \"./ui.list.edit.decorator.static\";\r\nimport \"./ui.list.edit.decorator.switchable.button\";\r\nimport \"./ui.list.edit.decorator.switchable.slide\";\r\nimport \"./ui.list.edit.decorator.swipe\";\r\nimport \"./ui.list.edit.decorator.context\";\r\nimport \"./ui.list.edit.decorator.selection\";\r\nimport \"./ui.list.edit.decorator.reorder\";\r\nvar editOptionsRegistry = [];\r\nvar registerOption = function(enabledFunc, decoratorTypeFunc, decoratorSubTypeFunc) {\r\n editOptionsRegistry.push({\r\n enabled: enabledFunc,\r\n decoratorType: decoratorTypeFunc,\r\n decoratorSubType: decoratorSubTypeFunc\r\n })\r\n};\r\nregisterOption((function() {\r\n return this.option(\"menuItems\").length\r\n}), (function() {\r\n return \"menu\"\r\n}), (function() {\r\n return this.option(\"menuMode\")\r\n}));\r\nregisterOption((function() {\r\n return !this.option(\"menuItems\").length && this.option(\"allowItemDeleting\")\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n return \"toggle\" === mode || \"slideButton\" === mode || \"swipe\" === mode || \"static\" === mode ? \"delete\" : \"menu\"\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n if (\"slideItem\" === mode) {\r\n mode = \"slide\"\r\n }\r\n if (\"hold\" === mode) {\r\n mode = \"context\"\r\n }\r\n return mode\r\n}));\r\nregisterOption((function() {\r\n return \"none\" !== this.option(\"selectionMode\") && this.option(\"showSelectionControls\")\r\n}), (function() {\r\n return \"selection\"\r\n}), (function() {\r\n return \"default\"\r\n}));\r\nregisterOption((function() {\r\n return this.option(\"itemDragging.allowReordering\") || this.option(\"itemDragging.allowDropInsideItem\") || this.option(\"itemDragging.group\")\r\n}), (function() {\r\n return \"reorder\"\r\n}), (function() {\r\n return \"default\"\r\n}));\r\nvar LIST_ITEM_BEFORE_BAG_CLASS = \"dx-list-item-before-bag\";\r\nvar LIST_ITEM_AFTER_BAG_CLASS = \"dx-list-item-after-bag\";\r\nvar DECORATOR_BEFORE_BAG_CREATE_METHOD = \"beforeBag\";\r\nvar DECORATOR_AFTER_BAG_CREATE_METHOD = \"afterBag\";\r\nvar DECORATOR_MODIFY_ELEMENT_METHOD = \"modifyElement\";\r\nvar DECORATOR_AFTER_RENDER_METHOD = \"afterRender\";\r\nvar DECORATOR_GET_EXCLUDED_SELECTORS_METHOD = \"getExcludedSelectors\";\r\nvar EditProvider = Class.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._fetchRequiredDecorators()\r\n },\r\n dispose: function() {\r\n if (this._decorators && this._decorators.length) {\r\n each(this._decorators, (function(_, decorator) {\r\n decorator.dispose()\r\n }))\r\n }\r\n },\r\n _fetchRequiredDecorators: function() {\r\n this._decorators = [];\r\n each(editOptionsRegistry, function(_, option) {\r\n var optionEnabled = option.enabled.call(this._list);\r\n if (optionEnabled) {\r\n var decoratorType = option.decoratorType.call(this._list);\r\n var decoratorSubType = option.decoratorSubType.call(this._list);\r\n var decorator = this._createDecorator(decoratorType, decoratorSubType);\r\n this._decorators.push(decorator)\r\n }\r\n }.bind(this))\r\n },\r\n _createDecorator: function(type, subType) {\r\n var decoratorClass = this._findDecorator(type, subType);\r\n return new decoratorClass(this._list)\r\n },\r\n _findDecorator: function(type, subType) {\r\n var foundDecorator = registry[type][subType];\r\n if (!foundDecorator) {\r\n throw errors.Error(\"E1012\", type, subType)\r\n }\r\n return foundDecorator\r\n },\r\n modifyItemElement: function(args) {\r\n var $itemElement = $(args.itemElement);\r\n var config = {\r\n $itemElement: $itemElement\r\n };\r\n this._prependBeforeBags($itemElement, config);\r\n this._appendAfterBags($itemElement, config);\r\n this._applyDecorators(DECORATOR_MODIFY_ELEMENT_METHOD, config)\r\n },\r\n afterItemsRendered: function() {\r\n this._applyDecorators(DECORATOR_AFTER_RENDER_METHOD)\r\n },\r\n _prependBeforeBags: function($itemElement, config) {\r\n var $beforeBags = this._collectDecoratorsMarkup(DECORATOR_BEFORE_BAG_CREATE_METHOD, config, LIST_ITEM_BEFORE_BAG_CLASS);\r\n $itemElement.prepend($beforeBags)\r\n },\r\n _appendAfterBags: function($itemElement, config) {\r\n var $afterBags = this._collectDecoratorsMarkup(DECORATOR_AFTER_BAG_CREATE_METHOD, config, LIST_ITEM_AFTER_BAG_CLASS);\r\n $itemElement.append($afterBags)\r\n },\r\n _collectDecoratorsMarkup: function(method, config, containerClass) {\r\n var $collector = $(\"
    \");\r\n each(this._decorators, (function() {\r\n var $container = $(\"
    \").addClass(containerClass);\r\n this[method](extend({\r\n $container: $container\r\n }, config));\r\n if ($container.children().length) {\r\n $collector.append($container)\r\n }\r\n }));\r\n return $collector.children()\r\n },\r\n _applyDecorators: function(method, config) {\r\n each(this._decorators, (function() {\r\n this[method](config)\r\n }))\r\n },\r\n _handlerExists: function(name) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n if (decorators[i][name] !== noop) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _eventHandler: function(name, $itemElement, e) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var response = false;\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n response = decorators[i][name]($itemElement, e);\r\n if (response) {\r\n break\r\n }\r\n }\r\n return response\r\n },\r\n handleClick: function($itemElement, e) {\r\n return this._eventHandler(\"handleClick\", $itemElement, e)\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n return this._eventHandler(\"handleKeyboardEvents\", currentFocusedIndex, moveFocusUp)\r\n },\r\n handleEnterPressing: function(e) {\r\n return this._eventHandler(\"handleEnterPressing\", e)\r\n },\r\n contextMenuHandlerExists: function() {\r\n return this._handlerExists(\"handleContextMenu\")\r\n },\r\n handleContextMenu: function($itemElement, e) {\r\n return this._eventHandler(\"handleContextMenu\", $itemElement, e)\r\n },\r\n getExcludedItemSelectors: function() {\r\n var excludedSelectors = [];\r\n this._applyDecorators(DECORATOR_GET_EXCLUDED_SELECTORS_METHOD, excludedSelectors);\r\n return excludedSelectors.join(\",\")\r\n }\r\n});\r\nexport default EditProvider;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isTouchEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport GroupedEditStrategy from \"./ui.list.edit.strategy.grouped\";\r\nimport localizationMessage from \"../../localization/message\";\r\nimport EditProvider from \"./ui.list.edit.provider\";\r\nimport {\r\n ListBase\r\n} from \"./ui.list.base\";\r\nvar LIST_ITEM_SELECTED_CLASS = \"dx-list-item-selected\";\r\nvar LIST_ITEM_RESPONSE_WAIT_CLASS = \"dx-list-item-response-wait\";\r\nvar ListEdit = ListBase.inherit({\r\n _supportedKeys() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var moveFocusedItem = (e, moveUp) => {\r\n var editStrategy = this._editStrategy;\r\n var focusedElement = this.option(\"focusedElement\");\r\n var focusedItemIndex = editStrategy.getNormalizedIndex(focusedElement);\r\n var isLastIndexFocused = focusedItemIndex === this._getLastItemIndex();\r\n if (isLastIndexFocused && this._isDataSourceLoading()) {\r\n return\r\n }\r\n if (e.shiftKey && that.option(\"itemDragging.allowReordering\")) {\r\n var nextItemIndex = focusedItemIndex + (moveUp ? -1 : 1);\r\n var $nextItem = editStrategy.getItemElement(nextItemIndex);\r\n this.reorderItem(focusedElement, $nextItem);\r\n this.scrollToItem(focusedElement);\r\n e.preventDefault()\r\n } else {\r\n var editProvider = this._editProvider;\r\n var isInternalMoving = editProvider.handleKeyboardEvents(focusedItemIndex, moveUp);\r\n if (!isInternalMoving) {\r\n moveUp ? parent.upArrow(e) : parent.downArrow(e)\r\n }\r\n }\r\n };\r\n return extend({}, parent, {\r\n del: e => {\r\n if (that.option(\"allowItemDeleting\")) {\r\n e.preventDefault();\r\n that.deleteItem(that.option(\"focusedElement\"))\r\n }\r\n },\r\n upArrow: e => moveFocusedItem(e, true),\r\n downArrow: e => moveFocusedItem(e),\r\n enter: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.enter.apply(this, arguments)\r\n }\r\n },\r\n space: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.space.apply(this, arguments)\r\n }\r\n }\r\n })\r\n },\r\n _updateSelection() {\r\n this._editProvider.afterItemsRendered();\r\n this.callBase()\r\n },\r\n _getLastItemIndex() {\r\n return this._itemElements().length - 1\r\n },\r\n _refreshItemElements() {\r\n this.callBase();\r\n var excludedSelectors = this._editProvider.getExcludedItemSelectors();\r\n if (excludedSelectors.length) {\r\n this._itemElementsCache = this._itemElementsCache.not(excludedSelectors)\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n var privateKey = item1 && item1.__dx_key__;\r\n if (privateKey && !this.key() && this._selection.isItemSelected(privateKey)) {\r\n return false\r\n }\r\n return this.callBase(item1, item2)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n showSelectionControls: false,\r\n selectionMode: \"none\",\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n selectAllText: localizationMessage.format(\"dxList-selectAll\"),\r\n menuItems: [],\r\n menuMode: \"context\",\r\n allowItemDeleting: false,\r\n itemDeleteMode: \"static\",\r\n itemDragging: {}\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: _device => \"ios\" === _device.platform,\r\n options: {\r\n menuMode: \"slide\",\r\n itemDeleteMode: \"slideItem\"\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n itemDeleteMode: \"swipe\"\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initEditProvider()\r\n },\r\n _initDataSource() {\r\n this.callBase();\r\n if (!this._isPageSelectAll()) {\r\n this._dataSource && this._dataSource.requireTotalCount(true)\r\n }\r\n },\r\n _isPageSelectAll() {\r\n return \"page\" === this.option(\"selectAllMode\")\r\n },\r\n _initEditProvider() {\r\n this._editProvider = new EditProvider(this)\r\n },\r\n _disposeEditProvider() {\r\n if (this._editProvider) {\r\n this._editProvider.dispose()\r\n }\r\n },\r\n _refreshEditProvider() {\r\n this._disposeEditProvider();\r\n this._initEditProvider()\r\n },\r\n _initEditStrategy() {\r\n if (this.option(\"grouped\")) {\r\n this._editStrategy = new GroupedEditStrategy(this)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _initMarkup() {\r\n this._refreshEditProvider();\r\n this.callBase()\r\n },\r\n _renderItems() {\r\n this.callBase(...arguments);\r\n this._editProvider.afterItemsRendered()\r\n },\r\n _selectedItemClass: () => LIST_ITEM_SELECTED_CLASS,\r\n _itemResponseWaitClass: () => LIST_ITEM_RESPONSE_WAIT_CLASS,\r\n _itemClickHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = this._editProvider.handleClick($itemElement, e);\r\n if (handledByEditProvider) {\r\n return\r\n }\r\n this._saveSelectionChangeEvent(e);\r\n this.callBase(...arguments)\r\n },\r\n _shouldFireContextMenuEvent() {\r\n return this.callBase(...arguments) || this._editProvider.contextMenuHandlerExists()\r\n },\r\n _itemHoldHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = isTouchEvent(e) && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.handledByEditProvider = true;\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _getItemContainer: function(changeData) {\r\n if (this.option(\"grouped\")) {\r\n var _this$_editStrategy$g;\r\n var groupIndex = null === (_this$_editStrategy$g = this._editStrategy.getIndexByItemData(changeData)) || void 0 === _this$_editStrategy$g ? void 0 : _this$_editStrategy$g.group;\r\n return this._getGroupContainerByIndex(groupIndex)\r\n } else {\r\n return this.callBase(changeData)\r\n }\r\n },\r\n _itemContextMenuHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = !e.handledByEditProvider && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.preventDefault();\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _postprocessRenderItem(args) {\r\n this.callBase(...arguments);\r\n this._editProvider.modifyItemElement(args)\r\n },\r\n _clean() {\r\n this._disposeEditProvider();\r\n this.callBase()\r\n },\r\n focusListItem(index) {\r\n var $item = this._editStrategy.getItemElement(index);\r\n this.option(\"focusedElement\", $item);\r\n this.focus();\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectAllMode\":\r\n this._initDataSource();\r\n this._dataSource.pageIndex(0);\r\n this._dataSource.load();\r\n break;\r\n case \"grouped\":\r\n this._clearSelectedItems();\r\n delete this._renderingGroupIndex;\r\n this._initEditStrategy();\r\n this.callBase(args);\r\n break;\r\n case \"showSelectionControls\":\r\n case \"menuItems\":\r\n case \"menuMode\":\r\n case \"allowItemDeleting\":\r\n case \"itemDeleteMode\":\r\n case \"itemDragging\":\r\n case \"selectAllText\":\r\n this._invalidate();\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n selectAll() {\r\n return this._selection.selectAll(this._isPageSelectAll())\r\n },\r\n unselectAll() {\r\n return this._selection.deselectAll(this._isPageSelectAll())\r\n },\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isPageSelectAll())\r\n },\r\n getFlatIndexByItemElement(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n },\r\n getItemElementByFlatIndex(flatIndex) {\r\n var $itemElements = this._itemElements();\r\n if (flatIndex < 0 || flatIndex >= $itemElements.length) {\r\n return $()\r\n }\r\n return $itemElements.eq(flatIndex)\r\n },\r\n getItemByIndex(index) {\r\n return this._editStrategy.getItemDataByIndex(index)\r\n }\r\n});\r\nexport default ListEdit;\r\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","/*!\n * devextreme-vue\n * Version: 21.1.5\n * Build date: Mon Aug 02 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionComponent = exports.createConfigurationComponent = exports.createComponent = void 0;\nvar vue2Stategy = __importStar(require(\"./strategy/vue2/index\"));\nvar vue3Stategy = __importStar(require(\"./strategy/vue3/index\"));\nvar version_1 = require(\"./version\");\nvar strategy = version_1.isVue3() ? vue3Stategy : vue2Stategy;\nexports.createComponent = strategy.createComponent;\nexports.createConfigurationComponent = strategy.createConfigurationComponent;\nexports.createExtensionComponent = strategy.createExtensionComponent;\n","/*!\n * devextreme-vue\n * Version: 21.1.5\n * Build date: Mon Aug 02 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxSearchEditorOptions = exports.DxOptions = exports.DxItem = exports.DxButton = exports.DxTreeView = void 0;\nvar tree_view_1 = __importDefault(require(\"devextreme/ui/tree_view\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxTreeView = index_1.createComponent({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n animationEnabled: Boolean,\n createChildren: Function,\n dataSource: [Array, Object, String],\n dataStructure: String,\n disabled: Boolean,\n disabledExpr: [Function, String],\n displayExpr: [Function, String],\n elementAttr: {},\n expandAllEnabled: Boolean,\n expandedExpr: [Function, String],\n expandEvent: String,\n expandNodesRecursive: Boolean,\n focusStateEnabled: Boolean,\n hasItemsExpr: [Function, String],\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n itemHoldTimeout: Number,\n items: Array,\n itemsExpr: [Function, String],\n itemTemplate: {},\n keyExpr: [Function, String],\n noDataText: String,\n onContentReady: Function,\n onDisposing: Function,\n onInitialized: Function,\n onItemClick: Function,\n onItemCollapsed: Function,\n onItemContextMenu: Function,\n onItemExpanded: Function,\n onItemHold: Function,\n onItemRendered: Function,\n onItemSelectionChanged: Function,\n onOptionChanged: Function,\n onSelectAllValueChanged: Function,\n onSelectionChanged: Function,\n parentIdExpr: [Function, String],\n rootValue: {},\n rtlEnabled: Boolean,\n scrollDirection: String,\n searchEditorOptions: Object,\n searchEnabled: Boolean,\n searchExpr: [Array, Function, String],\n searchMode: String,\n searchTimeout: Number,\n searchValue: String,\n selectAllText: String,\n selectByClick: Boolean,\n selectedExpr: [Function, String],\n selectionMode: String,\n selectNodesRecursive: Boolean,\n showCheckBoxesMode: String,\n tabIndex: Number,\n virtualModeEnabled: Boolean,\n visible: Boolean,\n width: [Function, Number, String]\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:animationEnabled\": null,\n \"update:createChildren\": null,\n \"update:dataSource\": null,\n \"update:dataStructure\": null,\n \"update:disabled\": null,\n \"update:disabledExpr\": null,\n \"update:displayExpr\": null,\n \"update:elementAttr\": null,\n \"update:expandAllEnabled\": null,\n \"update:expandedExpr\": null,\n \"update:expandEvent\": null,\n \"update:expandNodesRecursive\": null,\n \"update:focusStateEnabled\": null,\n \"update:hasItemsExpr\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:itemHoldTimeout\": null,\n \"update:items\": null,\n \"update:itemsExpr\": null,\n \"update:itemTemplate\": null,\n \"update:keyExpr\": null,\n \"update:noDataText\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onInitialized\": null,\n \"update:onItemClick\": null,\n \"update:onItemCollapsed\": null,\n \"update:onItemContextMenu\": null,\n \"update:onItemExpanded\": null,\n \"update:onItemHold\": null,\n \"update:onItemRendered\": null,\n \"update:onItemSelectionChanged\": null,\n \"update:onOptionChanged\": null,\n \"update:onSelectAllValueChanged\": null,\n \"update:onSelectionChanged\": null,\n \"update:parentIdExpr\": null,\n \"update:rootValue\": null,\n \"update:rtlEnabled\": null,\n \"update:scrollDirection\": null,\n \"update:searchEditorOptions\": null,\n \"update:searchEnabled\": null,\n \"update:searchExpr\": null,\n \"update:searchMode\": null,\n \"update:searchTimeout\": null,\n \"update:searchValue\": null,\n \"update:selectAllText\": null,\n \"update:selectByClick\": null,\n \"update:selectedExpr\": null,\n \"update:selectionMode\": null,\n \"update:selectNodesRecursive\": null,\n \"update:showCheckBoxesMode\": null,\n \"update:tabIndex\": null,\n \"update:virtualModeEnabled\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = tree_view_1.default;\n this.$_expectedChildren = {\n item: { isCollectionItem: true, optionName: \"items\" },\n searchEditorOptions: { isCollectionItem: false, optionName: \"searchEditorOptions\" }\n };\n }\n});\nexports.DxTreeView = DxTreeView;\nvar DxButton = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:location\": null,\n \"update:name\": null,\n \"update:options\": null,\n },\n props: {\n location: String,\n name: String,\n options: Object\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nDxButton.$_expectedChildren = {\n options: { isCollectionItem: false, optionName: \"options\" }\n};\nvar DxItem = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:expanded\": null,\n \"update:hasItems\": null,\n \"update:html\": null,\n \"update:icon\": null,\n \"update:id\": null,\n \"update:items\": null,\n \"update:parentId\": null,\n \"update:selected\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n disabled: Boolean,\n expanded: Boolean,\n hasItems: Boolean,\n html: String,\n icon: String,\n id: [Number, String],\n items: Array,\n parentId: [Number, String],\n selected: Boolean,\n template: {},\n text: String,\n visible: Boolean\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nvar DxOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:icon\": null,\n \"update:onClick\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:type\": null,\n \"update:useSubmitBehavior\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: {},\n disabled: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n icon: String,\n onClick: Function,\n onContentReady: Function,\n onDisposing: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n rtlEnabled: Boolean,\n stylingMode: String,\n tabIndex: Number,\n template: {},\n text: String,\n type: String,\n useSubmitBehavior: Boolean,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxOptions = DxOptions;\nDxOptions.$_optionName = \"options\";\nvar DxSearchEditorOptions = index_2.createConfigurationComponent({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:bindingOptions\": null,\n \"update:buttons\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:inputAttr\": null,\n \"update:isValid\": null,\n \"update:mask\": null,\n \"update:maskChar\": null,\n \"update:maskInvalidMessage\": null,\n \"update:maskRules\": null,\n \"update:maxLength\": null,\n \"update:mode\": null,\n \"update:name\": null,\n \"update:onChange\": null,\n \"update:onContentReady\": null,\n \"update:onCopy\": null,\n \"update:onCut\": null,\n \"update:onDisposing\": null,\n \"update:onEnterKey\": null,\n \"update:onFocusIn\": null,\n \"update:onFocusOut\": null,\n \"update:onInitialized\": null,\n \"update:onInput\": null,\n \"update:onKeyDown\": null,\n \"update:onKeyPress\": null,\n \"update:onKeyUp\": null,\n \"update:onOptionChanged\": null,\n \"update:onPaste\": null,\n \"update:onValueChanged\": null,\n \"update:placeholder\": null,\n \"update:readOnly\": null,\n \"update:rtlEnabled\": null,\n \"update:showClearButton\": null,\n \"update:showMaskMode\": null,\n \"update:spellcheck\": null,\n \"update:stylingMode\": null,\n \"update:tabIndex\": null,\n \"update:text\": null,\n \"update:useMaskedValue\": null,\n \"update:validationError\": null,\n \"update:validationErrors\": null,\n \"update:validationMessageMode\": null,\n \"update:validationStatus\": null,\n \"update:value\": null,\n \"update:valueChangeEvent\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n bindingOptions: {},\n buttons: Array,\n disabled: Boolean,\n elementAttr: {},\n focusStateEnabled: Boolean,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n inputAttr: {},\n isValid: Boolean,\n mask: String,\n maskChar: String,\n maskInvalidMessage: String,\n maskRules: {},\n maxLength: [Number, String],\n mode: String,\n name: String,\n onChange: Function,\n onContentReady: Function,\n onCopy: Function,\n onCut: Function,\n onDisposing: Function,\n onEnterKey: Function,\n onFocusIn: Function,\n onFocusOut: Function,\n onInitialized: Function,\n onInput: Function,\n onKeyDown: Function,\n onKeyPress: Function,\n onKeyUp: Function,\n onOptionChanged: Function,\n onPaste: Function,\n onValueChanged: Function,\n placeholder: String,\n readOnly: Boolean,\n rtlEnabled: Boolean,\n showClearButton: Boolean,\n showMaskMode: String,\n spellcheck: Boolean,\n stylingMode: String,\n tabIndex: Number,\n text: String,\n useMaskedValue: Boolean,\n validationError: {},\n validationErrors: Array,\n validationMessageMode: String,\n validationStatus: String,\n value: String,\n valueChangeEvent: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxSearchEditorOptions = DxSearchEditorOptions;\nDxSearchEditorOptions.$_optionName = \"searchEditorOptions\";\nDxSearchEditorOptions.$_expectedChildren = {\n button: { isCollectionItem: true, optionName: \"buttons\" }\n};\nexports.default = DxTreeView;\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","var JsonWebTokenError = function (message, error) {\n Error.call(this, message);\n if(Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = 'JsonWebTokenError';\n this.message = message;\n if (error) this.inner = error;\n};\n\nJsonWebTokenError.prototype = Object.create(Error.prototype);\nJsonWebTokenError.prototype.constructor = JsonWebTokenError;\n\nmodule.exports = JsonWebTokenError;\n","/**\r\n * DevExtreme (esm/ui/popover.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n noop,\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n move\r\n} from \"../animation/translator\";\r\nimport positionUtils from \"../animation/position\";\r\nimport {\r\n isObject,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n fitIntoRange\r\n} from \"../core/utils/math\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport Popup from \"./popup\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport {\r\n POPOVER_BOUNDARY_OFFSET\r\n} from \"./popover_contants\";\r\nvar POPOVER_CLASS = \"dx-popover\";\r\nvar POPOVER_WRAPPER_CLASS = \"dx-popover-wrapper\";\r\nvar POPOVER_ARROW_CLASS = \"dx-popover-arrow\";\r\nvar POPOVER_WITHOUT_TITLE_CLASS = \"dx-popover-without-title\";\r\nvar POSITION_FLIP_MAP = {\r\n left: \"right\",\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n center: \"center\"\r\n};\r\nvar WEIGHT_OF_SIDES = {\r\n left: -1,\r\n top: -1,\r\n center: 0,\r\n right: 1,\r\n bottom: 1\r\n};\r\nvar POSITION_ALIASES = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\",\r\n collision: \"fit flip\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\",\r\n collision: \"flip fit\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\",\r\n collision: \"flip fit\"\r\n }\r\n};\r\nvar SIDE_BORDER_WIDTH_STYLES = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\nvar getEventNameByOption = function(optionValue) {\r\n return isObject(optionValue) ? optionValue.name : optionValue\r\n};\r\nvar getEventName = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return getEventNameByOption(optionValue)\r\n};\r\nvar getEventDelay = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return isObject(optionValue) && optionValue.delay\r\n};\r\nvar attachEvent = function(that, name) {\r\n var target = that.option(\"target\");\r\n var isSelector = isString(target);\r\n var event = getEventName(that, name + \"Event\");\r\n if (!event || that.option(\"disabled\")) {\r\n return\r\n }\r\n var eventName = addNamespace(event, that.NAME);\r\n var action = that._createAction(function() {\r\n var delay = getEventDelay(that, name + \"Event\");\r\n this._clearEventsTimeouts();\r\n if (delay) {\r\n this._timeouts[name] = setTimeout((function() {\r\n that[name]()\r\n }), delay)\r\n } else {\r\n that[name]()\r\n }\r\n }.bind(that), {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = function(e) {\r\n action({\r\n event: e,\r\n target: $(e.currentTarget)\r\n })\r\n };\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (isSelector) {\r\n that[EVENT_HANDLER_NAME] = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, handler)\r\n } else {\r\n var targetElement = getPublicElement($(target));\r\n that[EVENT_HANDLER_NAME] = void 0;\r\n eventsEngine.on(targetElement, eventName, handler)\r\n }\r\n};\r\nvar detachEvent = function(that, target, name, event) {\r\n var eventName = event || getEventName(that, name + \"Event\");\r\n if (!eventName) {\r\n return\r\n }\r\n eventName = addNamespace(eventName, that.NAME);\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (that[EVENT_HANDLER_NAME]) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, that[EVENT_HANDLER_NAME])\r\n } else {\r\n eventsEngine.off(getPublicElement($(target)), eventName)\r\n }\r\n};\r\nvar Popover = Popup.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n target: window,\r\n shading: false,\r\n position: \"bottom\",\r\n closeOnOutsideClick: true,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n to: 0\r\n }\r\n },\r\n showTitle: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n dragEnabled: false,\r\n resizeEnabled: false,\r\n fullScreen: false,\r\n closeOnTargetScroll: true,\r\n arrowPosition: \"\",\r\n arrowOffset: 0,\r\n boundaryOffset: {\r\n h: POPOVER_BOUNDARY_OFFSET,\r\n v: POPOVER_BOUNDARY_OFFSET\r\n },\r\n _fixedPosition: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return [{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n arrowPosition: {\r\n boundaryOffset: {\r\n h: 20,\r\n v: -10\r\n },\r\n collision: \"fit\"\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return !hasWindow()\r\n },\r\n options: {\r\n animation: null\r\n }\r\n }]\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._renderArrow();\r\n this._timeouts = {};\r\n this.$element().addClass(POPOVER_CLASS);\r\n this.$wrapper().addClass(POPOVER_WRAPPER_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase.apply(this, arguments);\r\n this._detachEvents(this.option(\"target\"));\r\n this._attachEvents()\r\n },\r\n _detachEvents: function(target) {\r\n detachEvent(this, target, \"show\");\r\n detachEvent(this, target, \"hide\")\r\n },\r\n _attachEvents: function() {\r\n attachEvent(this, \"show\");\r\n attachEvent(this, \"hide\")\r\n },\r\n _renderArrow: function() {\r\n this._$arrow = $(\"
    \").addClass(POPOVER_ARROW_CLASS).prependTo(this.$overlayContent())\r\n },\r\n _documentDownHandler: function(e) {\r\n if (this._isOutsideClick(e)) {\r\n return this.callBase(e)\r\n }\r\n return true\r\n },\r\n _isOutsideClick: function(e) {\r\n return !$(e.target).closest(this.option(\"target\")).length\r\n },\r\n _animate: function(animation) {\r\n if (animation && animation.to && \"object\" === typeof animation.to) {\r\n extend(animation.to, {\r\n position: this._getContainerPosition()\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _stopAnimation: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderTitle: function() {\r\n this.$wrapper().toggleClass(POPOVER_WITHOUT_TITLE_CLASS, !this.option(\"showTitle\"));\r\n this.callBase()\r\n },\r\n _renderPosition: function() {\r\n this.callBase();\r\n this._renderOverlayPosition()\r\n },\r\n _renderOverlayBoundaryOffset: noop,\r\n _renderOverlayPosition: function() {\r\n this._resetOverlayPosition();\r\n this._updateContentSize();\r\n var contentPosition = this._getContainerPosition();\r\n var resultLocation = positionUtils.setup(this.$overlayContent(), contentPosition);\r\n var positionSide = this._getSideByLocation(resultLocation);\r\n this._togglePositionClass(\"dx-position-\" + positionSide);\r\n this._toggleFlippedClass(resultLocation.h.flip, resultLocation.v.flip);\r\n var isArrowVisible = this._isHorizontalSide() || this._isVerticalSide();\r\n if (isArrowVisible) {\r\n this._renderArrowPosition(positionSide)\r\n }\r\n },\r\n _resetOverlayPosition: function() {\r\n this._setContentHeight(true);\r\n this._togglePositionClass(\"dx-position-\" + this._positionSide);\r\n move(this.$overlayContent(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._$arrow.css({\r\n top: \"auto\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n left: \"auto\"\r\n })\r\n },\r\n _updateContentSize: function() {\r\n if (!this.$content()) {\r\n return\r\n }\r\n var containerLocation = positionUtils.calculate(this.$overlayContent(), this._getContainerPosition());\r\n if (containerLocation.h.oversize > 0 && this._isHorizontalSide() && !containerLocation.h.fit) {\r\n var newContainerWidth = this.$overlayContent().width() - containerLocation.h.oversize;\r\n this.$overlayContent().width(newContainerWidth)\r\n }\r\n if (containerLocation.v.oversize > 0 && this._isVerticalSide() && !containerLocation.v.fit) {\r\n var newOverlayContentHeight = this.$overlayContent().height() - containerLocation.v.oversize;\r\n var newPopupContentHeight = this.$content().height() - containerLocation.v.oversize;\r\n this.$overlayContent().height(newOverlayContentHeight);\r\n this.$content().height(newPopupContentHeight)\r\n }\r\n },\r\n _getContainerPosition: function() {\r\n var offset = pairToObject(this._position.offset || \"\");\r\n var hOffset = offset.h;\r\n var vOffset = offset.v;\r\n var isVerticalSide = this._isVerticalSide();\r\n var isHorizontalSide = this._isHorizontalSide();\r\n if (isVerticalSide || isHorizontalSide) {\r\n var isPopoverInside = this._isPopoverInside();\r\n var sign = (isPopoverInside ? -1 : 1) * WEIGHT_OF_SIDES[this._positionSide];\r\n var arrowSize = isVerticalSide ? this._$arrow.height() : this._$arrow.width();\r\n var arrowSizeCorrection = this._getContentBorderWidth(this._positionSide);\r\n var arrowOffset = sign * (arrowSize - arrowSizeCorrection);\r\n isVerticalSide ? vOffset += arrowOffset : hOffset += arrowOffset\r\n }\r\n return extend({}, this._position, {\r\n offset: hOffset + \" \" + vOffset\r\n })\r\n },\r\n _getContentBorderWidth: function(side) {\r\n var borderWidth = this.$overlayContent().css(SIDE_BORDER_WIDTH_STYLES[side]);\r\n return parseInt(borderWidth) || 0\r\n },\r\n _getSideByLocation: function(location) {\r\n var isFlippedByVertical = location.v.flip;\r\n var isFlippedByHorizontal = location.h.flip;\r\n return this._isVerticalSide() && isFlippedByVertical || this._isHorizontalSide() && isFlippedByHorizontal || this._isPopoverInside() ? POSITION_FLIP_MAP[this._positionSide] : this._positionSide\r\n },\r\n _togglePositionClass: function(positionClass) {\r\n this.$wrapper().removeClass(\"dx-position-left dx-position-right dx-position-top dx-position-bottom\").addClass(positionClass)\r\n },\r\n _toggleFlippedClass: function(isFlippedHorizontal, isFlippedVertical) {\r\n this.$wrapper().toggleClass(\"dx-popover-flipped-horizontal\", isFlippedHorizontal).toggleClass(\"dx-popover-flipped-vertical\", isFlippedVertical)\r\n },\r\n _renderArrowPosition: function(side) {\r\n var arrowRect = getBoundingRect(this._$arrow.get(0));\r\n var arrowFlip = -(this._isVerticalSide(side) ? arrowRect.height : arrowRect.width);\r\n this._$arrow.css(POSITION_FLIP_MAP[side], arrowFlip);\r\n var axis = this._isVerticalSide(side) ? \"left\" : \"top\";\r\n var sizeProperty = this._isVerticalSide(side) ? \"width\" : \"height\";\r\n var $target = $(this._position.of);\r\n var targetOffset = positionUtils.offset($target) || {\r\n top: 0,\r\n left: 0\r\n };\r\n var contentOffset = positionUtils.offset(this.$overlayContent());\r\n var arrowSize = arrowRect[sizeProperty];\r\n var contentLocation = contentOffset[axis];\r\n var contentSize = getBoundingRect(this.$overlayContent().get(0))[sizeProperty];\r\n var targetLocation = targetOffset[axis];\r\n var targetSize = $target.get(0).preventDefault ? 0 : getBoundingRect($target.get(0))[sizeProperty];\r\n var min = Math.max(contentLocation, targetLocation);\r\n var max = Math.min(contentLocation + contentSize, targetLocation + targetSize);\r\n var arrowLocation;\r\n if (\"start\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = min - contentLocation\r\n } else if (\"end\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = max - contentLocation - arrowSize\r\n } else {\r\n arrowLocation = (min + max) / 2 - contentLocation - arrowSize / 2\r\n }\r\n var borderWidth = this._getContentBorderWidth(side);\r\n var finalArrowLocation = fitIntoRange(arrowLocation - borderWidth + this.option(\"arrowOffset\"), borderWidth, contentSize - arrowSize - 2 * borderWidth);\r\n this._$arrow.css(axis, finalArrowLocation)\r\n },\r\n _isPopoverInside: function() {\r\n var position = this._transformStringPosition(this.option(\"position\"), POSITION_ALIASES);\r\n var my = positionUtils.setup.normalizeAlign(position.my);\r\n var at = positionUtils.setup.normalizeAlign(position.at);\r\n return my.h === at.h && my.v === at.v\r\n },\r\n _setContentHeight: function(fullUpdate) {\r\n if (fullUpdate) {\r\n this.callBase()\r\n }\r\n },\r\n _renderWrapperPosition: function() {\r\n if (this.option(\"shading\")) {\r\n this.$wrapper().css({\r\n top: 0,\r\n left: 0\r\n })\r\n }\r\n },\r\n _renderWrapperDimensions: function() {\r\n if (this.option(\"shading\")) {\r\n this.$wrapper().css({\r\n width: \"100%\",\r\n height: \"100%\"\r\n })\r\n }\r\n },\r\n _normalizePosition: function() {\r\n var position = extend({}, this._transformStringPosition(this.option(\"position\"), POSITION_ALIASES));\r\n if (!position.of) {\r\n position.of = this.option(\"target\")\r\n }\r\n if (!position.collision) {\r\n position.collision = \"flip\"\r\n }\r\n if (!position.boundaryOffset) {\r\n position.boundaryOffset = this.option(\"boundaryOffset\")\r\n }\r\n this._positionSide = this._getDisplaySide(position);\r\n this._position = position\r\n },\r\n _getDisplaySide: function(position) {\r\n var my = positionUtils.setup.normalizeAlign(position.my);\r\n var at = positionUtils.setup.normalizeAlign(position.at);\r\n var weightSign = WEIGHT_OF_SIDES[my.h] === WEIGHT_OF_SIDES[at.h] && WEIGHT_OF_SIDES[my.v] === WEIGHT_OF_SIDES[at.v] ? -1 : 1;\r\n var horizontalWeight = Math.abs(WEIGHT_OF_SIDES[my.h] - weightSign * WEIGHT_OF_SIDES[at.h]);\r\n var verticalWeight = Math.abs(WEIGHT_OF_SIDES[my.v] - weightSign * WEIGHT_OF_SIDES[at.v]);\r\n return horizontalWeight > verticalWeight ? at.h : at.v\r\n },\r\n _isVerticalSide: function(side) {\r\n side = side || this._positionSide;\r\n return \"top\" === side || \"bottom\" === side\r\n },\r\n _isHorizontalSide: function(side) {\r\n side = side || this._positionSide;\r\n return \"left\" === side || \"right\" === side\r\n },\r\n _clearEventTimeout: function(name) {\r\n clearTimeout(this._timeouts[name])\r\n },\r\n _clearEventsTimeouts: function() {\r\n this._clearEventTimeout(\"show\");\r\n this._clearEventTimeout(\"hide\")\r\n },\r\n _clean: function() {\r\n this._detachEvents(this.option(\"target\"));\r\n this.callBase.apply(this, arguments)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"boundaryOffset\":\r\n case \"arrowPosition\":\r\n case \"arrowOffset\":\r\n this._renderGeometry();\r\n break;\r\n case \"fullScreen\":\r\n if (args.value) {\r\n this.option(\"fullScreen\", false)\r\n }\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachEvents(args.previousValue);\r\n this.callBase(args);\r\n break;\r\n case \"showEvent\":\r\n case \"hideEvent\":\r\n var name = args.name.substring(0, 4);\r\n var event = getEventNameByOption(args.previousValue);\r\n this.hide();\r\n detachEvent(this, this.option(\"target\"), name, event);\r\n attachEvent(this, name);\r\n break;\r\n case \"visible\":\r\n this._clearEventTimeout(args.value ? \"show\" : \"hide\");\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n show: function(target) {\r\n if (target) {\r\n this.option(\"target\", target)\r\n }\r\n return this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxPopover\", Popover);\r\nexport default Popover;\r\n","/**\r\n * DevExtreme (esm/events/drag.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n wrapToArray,\r\n inArray\r\n} from \"../core/utils/array\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n contains\r\n} from \"../core/utils/dom\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n eventData as eData,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DRAG_START_EVENT = \"dxdragstart\";\r\nvar DRAG_EVENT = \"dxdrag\";\r\nvar DRAG_END_EVENT = \"dxdragend\";\r\nvar DRAG_ENTER_EVENT = \"dxdragenter\";\r\nvar DRAG_LEAVE_EVENT = \"dxdragleave\";\r\nvar DROP_EVENT = \"dxdrop\";\r\nvar DX_DRAG_EVENTS_COUNT_KEY = \"dxDragEventsCount\";\r\nvar knownDropTargets = [];\r\nvar knownDropTargetSelectors = [];\r\nvar knownDropTargetConfigs = [];\r\nvar dropTargetRegistration = {\r\n setup: function(element, data) {\r\n var knownDropTarget = -1 !== inArray(element, knownDropTargets);\r\n if (!knownDropTarget) {\r\n knownDropTargets.push(element);\r\n knownDropTargetSelectors.push([]);\r\n knownDropTargetConfigs.push(data || {})\r\n }\r\n },\r\n add: function(element, handleObj) {\r\n var index = inArray(element, knownDropTargets);\r\n this.updateEventsCounter(element, handleObj.type, 1);\r\n var selector = handleObj.selector;\r\n if (-1 === inArray(selector, knownDropTargetSelectors[index])) {\r\n knownDropTargetSelectors[index].push(selector)\r\n }\r\n },\r\n updateEventsCounter: function(element, event, value) {\r\n if ([DRAG_ENTER_EVENT, DRAG_LEAVE_EVENT, DROP_EVENT].indexOf(event) > -1) {\r\n var eventsCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY) || 0;\r\n elementData(element, DX_DRAG_EVENTS_COUNT_KEY, Math.max(0, eventsCount + value))\r\n }\r\n },\r\n remove: function(element, handleObj) {\r\n this.updateEventsCounter(element, handleObj.type, -1)\r\n },\r\n teardown: function(element) {\r\n var handlersCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY);\r\n if (!handlersCount) {\r\n var index = inArray(element, knownDropTargets);\r\n knownDropTargets.splice(index, 1);\r\n knownDropTargetSelectors.splice(index, 1);\r\n knownDropTargetConfigs.splice(index, 1);\r\n removeData(element, DX_DRAG_EVENTS_COUNT_KEY)\r\n }\r\n }\r\n};\r\nregisterEvent(DRAG_ENTER_EVENT, dropTargetRegistration);\r\nregisterEvent(DRAG_LEAVE_EVENT, dropTargetRegistration);\r\nregisterEvent(DROP_EVENT, dropTargetRegistration);\r\nvar getItemDelegatedTargets = function($element) {\r\n var dropTargetIndex = inArray($element.get(0), knownDropTargets);\r\n var dropTargetSelectors = knownDropTargetSelectors[dropTargetIndex].filter(selector => selector);\r\n var $delegatedTargets = $element.find(dropTargetSelectors.join(\", \"));\r\n if (-1 !== inArray(void 0, knownDropTargetSelectors[dropTargetIndex])) {\r\n $delegatedTargets = $delegatedTargets.add($element)\r\n }\r\n return $delegatedTargets\r\n};\r\nvar getItemConfig = function($element) {\r\n var dropTargetIndex = inArray($element.get(0), knownDropTargets);\r\n return knownDropTargetConfigs[dropTargetIndex]\r\n};\r\nvar getItemPosition = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemPositionFunc) {\r\n return dropTargetConfig.itemPositionFunc($element)\r\n } else {\r\n return $element.offset()\r\n }\r\n};\r\nvar getItemSize = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemSizeFunc) {\r\n return dropTargetConfig.itemSizeFunc($element)\r\n }\r\n return {\r\n width: $element.get(0).getBoundingClientRect().width,\r\n height: $element.get(0).getBoundingClientRect().height\r\n }\r\n};\r\nvar DragEmitter = GestureEmitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"both\"\r\n },\r\n _init: function(e) {\r\n this._initEvent = e\r\n },\r\n _start: function(e) {\r\n e = this._fireEvent(DRAG_START_EVENT, this._initEvent);\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset;\r\n var dropTargets = wrapToArray(e.targetElements || (null === e.targetElements ? [] : knownDropTargets));\r\n this._dropTargets = iteratorUtils.map(dropTargets, (function(element) {\r\n return $(element).get(0)\r\n }))\r\n },\r\n _move: function(e) {\r\n var eventData = eData(e);\r\n var dragOffset = this._calculateOffset(eventData);\r\n e = this._fireEvent(DRAG_EVENT, e, {\r\n offset: dragOffset\r\n });\r\n this._processDropTargets(e);\r\n if (!e._cancelPreventDefault) {\r\n e.preventDefault()\r\n }\r\n },\r\n _calculateOffset: function(eventData) {\r\n return {\r\n x: this._calculateXOffset(eventData),\r\n y: this._calculateYOffset(eventData)\r\n }\r\n },\r\n _calculateXOffset: function(eventData) {\r\n if (\"vertical\" !== this.direction) {\r\n var offset = eventData.x - this._startEventData.x;\r\n return this._fitOffset(offset, this._maxLeftOffset, this._maxRightOffset)\r\n }\r\n return 0\r\n },\r\n _calculateYOffset: function(eventData) {\r\n if (\"horizontal\" !== this.direction) {\r\n var offset = eventData.y - this._startEventData.y;\r\n return this._fitOffset(offset, this._maxTopOffset, this._maxBottomOffset)\r\n }\r\n return 0\r\n },\r\n _fitOffset: function(offset, minOffset, maxOffset) {\r\n if (null != minOffset) {\r\n offset = Math.max(offset, -minOffset)\r\n }\r\n if (null != maxOffset) {\r\n offset = Math.min(offset, maxOffset)\r\n }\r\n return offset\r\n },\r\n _processDropTargets: function(e) {\r\n var target = this._findDropTarget(e);\r\n var sameTarget = target === this._currentDropTarget;\r\n if (!sameTarget) {\r\n this._fireDropTargetEvent(e, DRAG_LEAVE_EVENT);\r\n this._currentDropTarget = target;\r\n this._fireDropTargetEvent(e, DRAG_ENTER_EVENT)\r\n }\r\n },\r\n _fireDropTargetEvent: function(event, eventName) {\r\n if (!this._currentDropTarget) {\r\n return\r\n }\r\n var eventData = {\r\n type: eventName,\r\n originalEvent: event,\r\n draggingElement: this._$element.get(0),\r\n target: this._currentDropTarget\r\n };\r\n fireEvent(eventData)\r\n },\r\n _findDropTarget: function(e) {\r\n var that = this;\r\n var result;\r\n iteratorUtils.each(knownDropTargets, (function(_, target) {\r\n if (!that._checkDropTargetActive(target)) {\r\n return\r\n }\r\n var $target = $(target);\r\n iteratorUtils.each(getItemDelegatedTargets($target), (function(_, delegatedTarget) {\r\n var $delegatedTarget = $(delegatedTarget);\r\n if (that._checkDropTarget(getItemConfig($target), $delegatedTarget, $(result), e)) {\r\n result = delegatedTarget\r\n }\r\n }))\r\n }));\r\n return result\r\n },\r\n _checkDropTargetActive: function(target) {\r\n var active = false;\r\n iteratorUtils.each(this._dropTargets, (function(_, activeTarget) {\r\n active = active || activeTarget === target || contains(activeTarget, target);\r\n return !active\r\n }));\r\n return active\r\n },\r\n _checkDropTarget: function(config, $target, $prevTarget, e) {\r\n var isDraggingElement = $target.get(0) === $(e.target).get(0);\r\n if (isDraggingElement) {\r\n return false\r\n }\r\n var targetPosition = getItemPosition(config, $target);\r\n if (e.pageX < targetPosition.left) {\r\n return false\r\n }\r\n if (e.pageY < targetPosition.top) {\r\n return false\r\n }\r\n var targetSize = getItemSize(config, $target);\r\n if (e.pageX > targetPosition.left + targetSize.width) {\r\n return false\r\n }\r\n if (e.pageY > targetPosition.top + targetSize.height) {\r\n return false\r\n }\r\n if ($prevTarget.length && $prevTarget.closest($target).length) {\r\n return false\r\n }\r\n if (config.checkDropTarget && !config.checkDropTarget($target, e)) {\r\n return false\r\n }\r\n return $target\r\n },\r\n _end: function(e) {\r\n var eventData = eData(e);\r\n this._fireEvent(DRAG_END_EVENT, e, {\r\n offset: this._calculateOffset(eventData)\r\n });\r\n this._fireDropTargetEvent(e, DROP_EVENT);\r\n delete this._currentDropTarget\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: DragEmitter,\r\n events: [DRAG_START_EVENT, DRAG_EVENT, DRAG_END_EVENT]\r\n});\r\nexport {\r\n DRAG_EVENT as move, DRAG_START_EVENT as start, DRAG_END_EVENT as end, DRAG_ENTER_EVENT as enter, DRAG_LEAVE_EVENT as leave, DROP_EVENT as drop\r\n};\r\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","/*!\n * devextreme-vue\n * Version: 21.1.5\n * Build date: Mon Aug 02 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOption = void 0;\nvar config = {\n deepWatch: false\n};\nfunction setOptions(options) {\n config = __assign(__assign({}, config), options);\n}\nfunction getOption(optionName) {\n return config[optionName];\n}\nexports.getOption = getOption;\nexports.default = setOptions;\n","module.exports = require('./lib/_stream_writable.js');\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var argumentsLength = arguments.length;\n var i = 1;\n while (argumentsLength > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(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 (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\n\nfunction getParamSize(keySize) {\n\tvar result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1);\n\treturn result;\n}\n\nvar paramBytesForAlg = {\n\tES256: getParamSize(256),\n\tES384: getParamSize(384),\n\tES512: getParamSize(521)\n};\n\nfunction getParamBytesForAlg(alg) {\n\tvar paramBytes = paramBytesForAlg[alg];\n\tif (paramBytes) {\n\t\treturn paramBytes;\n\t}\n\n\tthrow new Error('Unknown algorithm \"' + alg + '\"');\n}\n\nmodule.exports = getParamBytesForAlg;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","/**\r\n * DevExtreme (esm/ui/validation_message.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n encodeHtml\r\n} from \"../core/utils/string\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../core/utils/position\";\r\nvar INVALID_MESSAGE = \"dx-invalid-message\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar INVALID_MESSAGE_ALWAYS = \"dx-invalid-message-always\";\r\nvar INVALID_MESSAGE_CONTENT = \"dx-invalid-message-content\";\r\nvar VALIDATION_MESSAGE_MIN_WIDTH = 100;\r\nvar ValidationMessage = Overlay.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n integrationOptions: {},\r\n templatesRenderAsynchronously: false,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n closeOnOutsideClick: false,\r\n closeOnTargetScroll: false,\r\n animation: null,\r\n visible: true,\r\n propagateOutsideClick: true,\r\n _checkParentVisibility: false,\r\n rtlEnabled: false,\r\n contentTemplate: this._renderInnerHtml,\r\n maxWidth: \"100%\",\r\n mode: \"auto\",\r\n validationErrors: void 0,\r\n positionRequest: void 0,\r\n describedElement: void 0,\r\n boundary: void 0,\r\n offset: {\r\n h: 0,\r\n v: 0\r\n }\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this.updateMaxWidth();\r\n this._updatePosition()\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this.$element().addClass(INVALID_MESSAGE);\r\n this.$wrapper().addClass(INVALID_MESSAGE);\r\n this._toggleModeClass();\r\n this._updateContentId()\r\n },\r\n _updateContentId() {\r\n var describedElement = this.option(\"describedElement\") || this.option(\"container\");\r\n var contentId = $(describedElement).attr(\"aria-describedby\");\r\n this.$content().addClass(INVALID_MESSAGE_CONTENT).attr(\"id\", contentId)\r\n },\r\n _renderInnerHtml(element) {\r\n var $element = element && $(element);\r\n var validationErrors = this.option(\"validationErrors\") || [];\r\n var validationErrorMessage = \"\";\r\n validationErrors.forEach(err => {\r\n var separator = validationErrorMessage ? \"
    \" : \"\";\r\n validationErrorMessage += separator + encodeHtml((null === err || void 0 === err ? void 0 : err.message) || \"\")\r\n });\r\n null === $element || void 0 === $element ? void 0 : $element.html(validationErrorMessage)\r\n },\r\n _toggleModeClass() {\r\n var mode = this.option(\"mode\");\r\n this.$wrapper().toggleClass(INVALID_MESSAGE_AUTO, \"auto\" === mode).toggleClass(INVALID_MESSAGE_ALWAYS, \"always\" === mode)\r\n },\r\n updateMaxWidth() {\r\n var _target$outerWidth;\r\n var target = this.option(\"target\");\r\n var targetWidth = (null === target || void 0 === target ? void 0 : null === (_target$outerWidth = target.outerWidth) || void 0 === _target$outerWidth ? void 0 : _target$outerWidth.call(target)) || $(target).outerWidth();\r\n var maxWidth = \"100%\";\r\n if (targetWidth) {\r\n maxWidth = Math.max(targetWidth, VALIDATION_MESSAGE_MIN_WIDTH)\r\n }\r\n this.option({\r\n maxWidth: maxWidth\r\n })\r\n },\r\n _updatePosition: function() {\r\n var {\r\n positionRequest: positionRequest,\r\n rtlEnabled: rtlEnabled,\r\n offset: offset,\r\n boundary: boundary\r\n } = this.option();\r\n var positionSide = getDefaultAlignment(rtlEnabled);\r\n var verticalPositions = \"below\" === positionRequest ? [\" top\", \" bottom\"] : [\" bottom\", \" top\"];\r\n if (rtlEnabled) {\r\n offset.h = -offset.h\r\n }\r\n if (\"below\" !== positionRequest) {\r\n offset.v = -offset.v\r\n }\r\n this.option(\"position\", {\r\n offset: offset,\r\n boundary: boundary,\r\n my: positionSide + verticalPositions[0],\r\n at: positionSide + verticalPositions[1],\r\n collision: \"none flip\"\r\n })\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"target\":\r\n this.updateMaxWidth();\r\n this.callBase(args);\r\n break;\r\n case \"boundary\":\r\n this.option(\"position.boundary\", value);\r\n break;\r\n case \"mode\":\r\n this._toggleModeClass(value);\r\n break;\r\n case \"rtlEnabled\":\r\n case \"offset\":\r\n case \"positionRequest\":\r\n this._updatePosition();\r\n break;\r\n case \"validationErrors\":\r\n this._renderInnerHtml(this.$content());\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxValidationMessage\", ValidationMessage);\r\nexport default ValidationMessage;\r\n","/**\r\n * DevExtreme (esm/ui/editor/editor.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n data\r\n} from \"../../core/element_data\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ValidationEngine from \"../validation_engine\";\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport ValidationMessage from \"../validation_message\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar READONLY_STATE_CLASS = \"dx-state-readonly\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar READONLY_NAMESPACE = \"editorReadOnly\";\r\nvar ALLOWED_STYLING_MODES = [\"outlined\", \"filled\", \"underlined\"];\r\nvar VALIDATION_MESSAGE_KEYS_MAP = {\r\n validationMessageMode: \"mode\",\r\n validationMessageOffset: \"offset\",\r\n validationBoundary: \"boundary\"\r\n};\r\nvar Editor = Widget.inherit({\r\n ctor: function() {\r\n this.showValidationMessageTimeout = null;\r\n this.validationRequest = Callbacks();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createElement: function(element) {\r\n this.callBase(element);\r\n var $element = this.$element();\r\n if ($element) {\r\n data($element[0], VALIDATION_TARGET, this)\r\n }\r\n },\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._options.cache(\"validationTooltipOptions\", this.option(\"validationTooltipOptions\"));\r\n var $element = this.$element();\r\n $element.addClass(DX_INVALID_BADGE_CLASS)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n name: \"\",\r\n onValueChanged: null,\r\n readOnly: false,\r\n isValid: true,\r\n validationError: null,\r\n validationErrors: null,\r\n validationStatus: VALIDATION_STATUS_VALID,\r\n validationMessageMode: \"auto\",\r\n validationBoundary: void 0,\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {}\r\n })\r\n },\r\n _attachKeyboardEvents: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this.callBase()\r\n }\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationError: true\r\n })\r\n },\r\n _createValueChangeAction: function() {\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _suppressValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = true\r\n },\r\n _resumeValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = false\r\n },\r\n _initMarkup: function() {\r\n this._toggleReadOnlyState();\r\n this._setSubmitElementName(this.option(\"name\"));\r\n this.callBase();\r\n this._renderValidationState()\r\n },\r\n _raiseValueChangeAction: function(value, previousValue) {\r\n if (!this._valueChangeAction) {\r\n this._createValueChangeAction()\r\n }\r\n this._valueChangeAction(this._valueChangeArgs(value, previousValue))\r\n },\r\n _valueChangeArgs: function(value, previousValue) {\r\n return {\r\n value: value,\r\n previousValue: previousValue,\r\n event: this._valueChangeEventInstance\r\n }\r\n },\r\n _saveValueChangeEvent: function(e) {\r\n this._valueChangeEventInstance = e\r\n },\r\n _focusInHandler: function(e) {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (this._canValueBeChangedByClick() && isValidationMessageShownOnFocus) {\r\n var _this$_validationMess;\r\n var $validationMessageWrapper = null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.$wrapper();\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this.showValidationMessageTimeout = setTimeout(() => null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO), 150)\r\n }\r\n return this.callBase(e)\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return false\r\n },\r\n _getStylingModePrefix: function() {\r\n return \"dx-editor-\"\r\n },\r\n _renderStylingMode: function() {\r\n var optionValue = this.option(\"stylingMode\");\r\n var prefix = this._getStylingModePrefix();\r\n var allowedStylingClasses = ALLOWED_STYLING_MODES.map(mode => prefix + mode);\r\n allowedStylingClasses.forEach(className => this.$element().removeClass(className));\r\n var stylingModeClass = prefix + optionValue;\r\n if (-1 === allowedStylingClasses.indexOf(stylingModeClass)) {\r\n var defaultOptionValue = this._getDefaultOptions().stylingMode;\r\n var platformOptionValue = this._convertRulesToOptions(this._defaultOptionsRules()).stylingMode;\r\n stylingModeClass = prefix + (platformOptionValue || defaultOptionValue)\r\n }\r\n this.$element().addClass(stylingModeClass)\r\n },\r\n _getValidationErrors: function() {\r\n var validationErrors = this.option(\"validationErrors\");\r\n if (!validationErrors && this.option(\"validationError\")) {\r\n validationErrors = [this.option(\"validationError\")]\r\n }\r\n return validationErrors\r\n },\r\n _disposeValidationMessage: function() {\r\n if (this._$validationMessage) {\r\n this._$validationMessage.remove();\r\n this.setAria(\"describedby\", null);\r\n this._$validationMessage = void 0;\r\n this._validationMessage = void 0\r\n }\r\n },\r\n _toggleValidationClasses: function(isInvalid) {\r\n this.$element().toggleClass(INVALID_CLASS, isInvalid);\r\n this.setAria(VALIDATION_STATUS_INVALID, isInvalid || void 0)\r\n },\r\n _renderValidationState: function() {\r\n var isValid = this.option(\"isValid\") && this.option(\"validationStatus\") !== VALIDATION_STATUS_INVALID;\r\n var validationErrors = this._getValidationErrors();\r\n var $element = this.$element();\r\n this._toggleValidationClasses(!isValid);\r\n if (!hasWindow()) {\r\n return\r\n }\r\n this._disposeValidationMessage();\r\n if (!isValid && validationErrors) {\r\n var {\r\n validationMessageMode: validationMessageMode,\r\n validationMessageOffset: validationMessageOffset,\r\n validationBoundary: validationBoundary,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n this._$validationMessage = $(\"
    \").appendTo($element);\r\n this.setAria(\"describedby\", \"dx-\" + new Guid);\r\n this._validationMessage = new ValidationMessage(this._$validationMessage, extend({\r\n validationErrors: validationErrors,\r\n rtlEnabled: rtlEnabled,\r\n target: this._getValidationMessageTarget(),\r\n container: $element,\r\n mode: validationMessageMode,\r\n positionRequest: \"below\",\r\n offset: validationMessageOffset,\r\n boundary: validationBoundary,\r\n describedElement: this._focusTarget()\r\n }, this._options.cache(\"validationTooltipOptions\")));\r\n this._bindInnerWidgetOptions(this._validationMessage, \"validationTooltipOptions\")\r\n }\r\n },\r\n _getValidationMessageTarget: function() {\r\n return this.$element()\r\n },\r\n _toggleReadOnlyState: function() {\r\n var readOnly = this.option(\"readOnly\");\r\n this._toggleBackspaceHandler(readOnly);\r\n this.$element().toggleClass(READONLY_STATE_CLASS, !!readOnly);\r\n this.setAria(\"readonly\", readOnly || void 0)\r\n },\r\n _toggleBackspaceHandler: function(isReadOnly) {\r\n var $eventTarget = this._keyboardEventBindingTarget();\r\n var eventName = addNamespace(\"keydown\", READONLY_NAMESPACE);\r\n EventsEngine.off($eventTarget, eventName);\r\n if (isReadOnly) {\r\n EventsEngine.on($eventTarget, eventName, e => {\r\n if (\"backspace\" === normalizeKeyName(e)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _dispose: function() {\r\n var element = this.$element()[0];\r\n data(element, VALIDATION_TARGET, null);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this._disposeValidationMessage();\r\n this.callBase()\r\n },\r\n _setSubmitElementName: function(name) {\r\n var $submitElement = this._getSubmitElement();\r\n if (!$submitElement) {\r\n return\r\n }\r\n if (name.length > 0) {\r\n $submitElement.attr(\"name\", name)\r\n } else {\r\n $submitElement.removeAttr(\"name\")\r\n }\r\n },\r\n _getSubmitElement: function() {\r\n return null\r\n },\r\n _setValidationMessageOption: function(_ref) {\r\n var _this$_validationMess2;\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n var optionKey = VALIDATION_MESSAGE_KEYS_MAP[name] ? VALIDATION_MESSAGE_KEYS_MAP[name] : name;\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(optionKey, value)\r\n },\r\n _hasActiveElement: noop,\r\n _optionChanged: function(args) {\r\n var _this$_validationMess3;\r\n switch (args.name) {\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"readOnly\":\r\n this._toggleReadOnlyState();\r\n this._refreshFocusState();\r\n break;\r\n case \"value\":\r\n if (args.value != args.previousValue) {\r\n this.validationRequest.fire({\r\n value: args.value,\r\n editor: this\r\n })\r\n }\r\n if (!this._valueChangeActionSuppressed) {\r\n this._raiseValueChangeAction(args.value, args.previousValue);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n null === (_this$_validationMess3 = this._validationMessage) || void 0 === _this$_validationMess3 ? void 0 : _this$_validationMess3.updateMaxWidth();\r\n break;\r\n case \"name\":\r\n this._setSubmitElementName(args.value);\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n this._renderValidationState();\r\n break;\r\n case \"validationBoundary\":\r\n case \"validationMessageMode\":\r\n case \"validationMessageOffset\":\r\n this._setValidationMessageOption(args);\r\n break;\r\n case \"rtlEnabled\":\r\n this._setValidationMessageOption(args);\r\n this.callBase(args);\r\n break;\r\n case \"validationTooltipOptions\":\r\n this._innerWidgetOptionChanged(this._validationMessage, args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n blur: function() {\r\n if (this._hasActiveElement()) {\r\n resetActiveElement()\r\n }\r\n },\r\n reset: function() {\r\n var defaultOptions = this._getDefaultOptions();\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n});\r\nEditor.isEditor = instance => instance instanceof Editor;\r\nexport default Editor;\r\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","/*global exports*/\nvar SignStream = require('./lib/sign-stream');\nvar VerifyStream = require('./lib/verify-stream');\n\nvar ALGORITHMS = [\n 'HS256', 'HS384', 'HS512',\n 'RS256', 'RS384', 'RS512',\n 'PS256', 'PS384', 'PS512',\n 'ES256', 'ES384', 'ES512'\n];\n\nexports.ALGORITHMS = ALGORITHMS;\nexports.sign = SignStream.sign;\nexports.verify = VerifyStream.verify;\nexports.decode = VerifyStream.decode;\nexports.isValid = VerifyStream.isValid;\nexports.createSign = function createSign(opts) {\n return new SignStream(opts);\n};\nexports.createVerify = function createVerify(opts) {\n return new VerifyStream(opts);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","/**\r\n * DevExtreme (esm/core/utils/version.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function compare(x, y, maxLevel) {\r\n function normalizeArg(value) {\r\n if (\"string\" === typeof value) {\r\n return value.split(\".\")\r\n }\r\n if (\"number\" === typeof value) {\r\n return [value]\r\n }\r\n return value\r\n }\r\n x = normalizeArg(x);\r\n y = normalizeArg(y);\r\n var length = Math.max(x.length, y.length);\r\n if (isFinite(maxLevel)) {\r\n length = Math.min(length, maxLevel)\r\n }\r\n for (var i = 0; i < length; i++) {\r\n var xItem = parseInt(x[i] || 0, 10);\r\n var yItem = parseInt(y[i] || 0, 10);\r\n if (xItem < yItem) {\r\n return -1\r\n }\r\n if (xItem > yItem) {\r\n return 1\r\n }\r\n }\r\n return 0\r\n}\r\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.search.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./ui.list.edit\";\r\nimport searchBoxMixin from \"../widget/ui.search_box_mixin\";\r\nvar ListSearch = ListEdit.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"dx-list-\" + className\r\n },\r\n _getCombinedFilter: function() {\r\n var filter;\r\n var storeLoadOptions;\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n storeLoadOptions = {\r\n filter: dataSource.filter()\r\n };\r\n dataSource._addSearchFilter(storeLoadOptions);\r\n filter = storeLoadOptions.filter\r\n }\r\n return filter\r\n },\r\n _initDataSource: function() {\r\n var value = this.option(\"searchValue\");\r\n var expr = this.option(\"searchExpr\");\r\n var mode = this.option(\"searchMode\");\r\n this.callBase();\r\n if (this._dataSource) {\r\n value && value.length && this._dataSource.searchValue(value);\r\n mode.length && this._dataSource.searchOperation(searchBoxMixin.getOperationBySearchMode(mode));\r\n expr && this._dataSource.searchExpr(expr)\r\n }\r\n }\r\n});\r\nexport default ListSearch;\r\n","/**\r\n * DevExtreme (esm/ui/list.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./list/ui.list.edit.search\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nregisterComponent(\"dxList\", ListEdit);\r\nexport default ListEdit;\r\n","/*!\n * devextreme-vue\n * Version: 21.1.5\n * Build date: Mon Aug 02 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TemplatesManager = void 0;\nvar config_1 = require(\"./config\");\nvar templates_discovering_1 = require(\"./templates-discovering\");\nvar dom_adapter_1 = __importDefault(require(\"devextreme/core/dom_adapter\"));\nvar events_1 = require(\"devextreme/events\");\nvar constants_1 = require(\"./constants\");\nvar helpers_1 = require(\"./helpers\");\nvar TemplatesManager = /** @class */ (function () {\n function TemplatesManager(component) {\n this._slots = {};\n this._templates = {};\n this._isDirty = false;\n this._component = component;\n this.discover();\n }\n TemplatesManager.prototype.discover = function () {\n var slots = templates_discovering_1.discover(this._component);\n this._slots = __assign(__assign({}, this._slots), slots);\n if (!helpers_1.allKeysAreEqual(this._templates, slots)) {\n this._prepareTemplates();\n }\n };\n Object.defineProperty(TemplatesManager.prototype, \"templates\", {\n get: function () {\n return this._templates;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TemplatesManager.prototype, \"isDirty\", {\n get: function () {\n return this._isDirty;\n },\n enumerable: false,\n configurable: true\n });\n TemplatesManager.prototype.resetDirtyFlag = function () {\n this._isDirty = false;\n };\n TemplatesManager.prototype._prepareTemplates = function () {\n this._templates = {};\n for (var _i = 0, _a = Object.keys(this._slots); _i < _a.length; _i++) {\n var name_1 = _a[_i];\n this._templates[name_1] = this.createDxTemplate(name_1);\n }\n this._isDirty = true;\n };\n TemplatesManager.prototype.createDxTemplate = function (name) {\n var _this = this;\n return {\n render: function (data) {\n var scopeData = config_1.getOption(\"useLegacyTemplateEngine\")\n ? data.model\n : { data: data.model, index: data.index };\n var container = data.container.get ? data.container.get(0) : data.container;\n var placeholder = document.createElement(\"div\");\n container.appendChild(placeholder);\n var mountedTemplate = templates_discovering_1.mountTemplate(function () { return _this._slots[name]; }, _this._component, scopeData, name, placeholder);\n var element = mountedTemplate.$el;\n dom_adapter_1.default.setClass(element, constants_1.DX_TEMPLATE_WRAPPER_CLASS, true);\n if (element.nodeType === Node.TEXT_NODE) {\n var removalListener = document.createElement(container.nodeName === \"TABLE\" ? \"tbody\" : \"span\");\n removalListener.style.display = \"none\";\n container.appendChild(removalListener);\n events_1.one(removalListener, constants_1.DX_REMOVE_EVENT, mountedTemplate.$destroy.bind(mountedTemplate));\n }\n else {\n events_1.one(element, constants_1.DX_REMOVE_EVENT, mountedTemplate.$destroy.bind(mountedTemplate));\n }\n return element;\n }\n };\n };\n return TemplatesManager;\n}());\nexports.TemplatesManager = TemplatesManager;\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","/**\r\n * DevExtreme (esm/core/utils/resize_callbacks.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"./window\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"./callbacks\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nimport callOnce from \"./call_once\";\r\nvar resizeCallbacks = function() {\r\n var prevSize;\r\n var callbacks = Callbacks();\r\n var originalCallbacksAdd = callbacks.add;\r\n var originalCallbacksRemove = callbacks.remove;\r\n if (!hasWindow()) {\r\n return callbacks\r\n }\r\n var formatSize = function() {\r\n var window = getWindow();\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n }\r\n };\r\n var handleResize = function() {\r\n var now = formatSize();\r\n if (now.width === prevSize.width && now.height === prevSize.height) {\r\n return\r\n }\r\n var changedDimension;\r\n if (now.width === prevSize.width) {\r\n changedDimension = \"height\"\r\n }\r\n if (now.height === prevSize.height) {\r\n changedDimension = \"width\"\r\n }\r\n prevSize = now;\r\n callbacks.fire(changedDimension)\r\n };\r\n var setPrevSize = callOnce((function() {\r\n prevSize = formatSize()\r\n }));\r\n var removeListener;\r\n callbacks.add = function() {\r\n var result = originalCallbacksAdd.apply(callbacks, arguments);\r\n setPrevSize();\r\n readyCallbacks.add((function() {\r\n if (!removeListener && callbacks.has()) {\r\n removeListener = domAdapter.listen(getWindow(), \"resize\", handleResize)\r\n }\r\n }));\r\n return result\r\n };\r\n callbacks.remove = function() {\r\n var result = originalCallbacksRemove.apply(callbacks, arguments);\r\n if (!callbacks.has() && removeListener) {\r\n removeListener();\r\n removeListener = void 0\r\n }\r\n return result\r\n };\r\n return callbacks\r\n}();\r\nexport default resizeCallbacks;\r\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","/**\r\n * DevExtreme (esm/core/config.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport errors from \"./errors\";\r\nvar config = {\r\n rtlEnabled: false,\r\n defaultCurrency: \"USD\",\r\n oDataFilterToLower: true,\r\n serverDecimalSeparator: \".\",\r\n decimalSeparator: \".\",\r\n thousandsSeparator: \",\",\r\n forceIsoDateParsing: true,\r\n wrapActionsBeforeExecute: true,\r\n useLegacyStoreResult: false,\r\n useJQuery: void 0,\r\n editorStylingMode: void 0,\r\n useLegacyVisibleIndex: false,\r\n floatingActionButtonConfig: {\r\n icon: \"add\",\r\n closeIcon: \"close\",\r\n label: \"\",\r\n position: {\r\n at: \"right bottom\",\r\n my: \"right bottom\",\r\n offset: {\r\n x: -16,\r\n y: -16\r\n }\r\n },\r\n maxSpeedDialActionCount: 5,\r\n shading: false,\r\n direction: \"auto\"\r\n },\r\n optionsParser: optionsString => {\r\n if (\"{\" !== optionsString.trim().charAt(0)) {\r\n optionsString = \"{\" + optionsString + \"}\"\r\n }\r\n try {\r\n return new Function(\"return \" + optionsString)()\r\n } catch (ex) {\r\n throw errors.Error(\"E3018\", ex, optionsString)\r\n }\r\n }\r\n};\r\nvar deprecatedFields = [\"decimalSeparator\", \"thousandsSeparator\"];\r\nvar configMethod = function() {\r\n if (!arguments.length) {\r\n return config\r\n }\r\n var newConfig = arguments.length <= 0 ? void 0 : arguments[0];\r\n deprecatedFields.forEach(deprecatedField => {\r\n if (newConfig[deprecatedField]) {\r\n var message = \"Now, the \".concat(deprecatedField, \" is selected based on the specified locale.\");\r\n errors.log(\"W0003\", \"config\", deprecatedField, \"19.2\", message)\r\n }\r\n });\r\n extend(config, newConfig)\r\n};\r\nif (\"undefined\" !== typeof DevExpress && DevExpress.config) {\r\n configMethod(DevExpress.config)\r\n}\r\nexport default configMethod;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport devices from \"../../core/devices\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n focusable\r\n} from \"../widget/selectors\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport scrollEvents from \"./ui.events.emitter.gesture.scroll\";\r\nimport {\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"./ui.scrollable.device\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport getScrollRtlBehavior from \"../../core/utils/scroll_rtl_behavior\";\r\nvar SCROLLABLE = \"dxScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_CLASS = \"dx-scrollable\";\r\nvar SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nvar SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nvar SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nvar SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar BOTH = \"both\";\r\nvar Scrollable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n disabled: false,\r\n onScroll: null,\r\n direction: VERTICAL,\r\n showScrollbar: \"onScroll\",\r\n useNative: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n onUpdated: null,\r\n onStart: null,\r\n onEnd: null,\r\n onBounce: null,\r\n useSimulatedScrollbar: false,\r\n useKeyboard: true,\r\n inertiaEnabled: true,\r\n updateManually: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return nativeScrolling && \"android\" === devices.real().platform && !browser.mozilla\r\n },\r\n options: {\r\n useSimulatedScrollbar: true\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this.callBase(options);\r\n if (!(\"useSimulatedScrollbar\" in options)) {\r\n this._setUseSimulatedScrollbar()\r\n }\r\n },\r\n _setUseSimulatedScrollbar: function() {\r\n if (!this.initialOption(\"useSimulatedScrollbar\")) {\r\n this.option(\"useSimulatedScrollbar\", !this.option(\"useNative\"))\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initScrollableMarkup();\r\n this._locked = false\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.update();\r\n this._updateRtlPosition();\r\n this._savedScrollOffset && this.scrollTo(this._savedScrollOffset);\r\n delete this._savedScrollOffset\r\n } else {\r\n this._savedScrollOffset = this.scrollOffset()\r\n }\r\n },\r\n _initScrollableMarkup: function() {\r\n var $element = this.$element().addClass(SCROLLABLE_CLASS);\r\n var $container = this._$container = $(\"
    \").addClass(SCROLLABLE_CONTAINER_CLASS);\r\n var $wrapper = this._$wrapper = $(\"
    \").addClass(SCROLLABLE_WRAPPER_CLASS);\r\n var $content = this._$content = $(\"
    \").addClass(SCROLLABLE_CONTENT_CLASS);\r\n if (domAdapter.hasDocumentProperty(\"onbeforeactivate\") && browser.msie && browser.version < 12) {\r\n eventsEngine.on($element, addNamespace(\"beforeactivate\", SCROLLABLE), (function(e) {\r\n if (!$(e.target).is(focusable)) {\r\n e.preventDefault()\r\n }\r\n }))\r\n }\r\n $content.append($element.contents()).appendTo($container);\r\n $container.appendTo($wrapper);\r\n $wrapper.appendTo($element)\r\n },\r\n _dimensionChanged: function() {\r\n this.update();\r\n this._updateRtlPosition()\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderDirection()\r\n },\r\n _render: function() {\r\n this._renderStrategy();\r\n this._attachEventHandlers();\r\n this._renderDisabledState();\r\n this._createActions();\r\n this.update();\r\n this.callBase();\r\n this._updateRtlPosition(true)\r\n },\r\n _updateRtlPosition: function(needInitializeRtlConfig) {\r\n this._strategy.updateRtlPosition(needInitializeRtlConfig)\r\n },\r\n _getMaxOffset: function() {\r\n var {\r\n scrollWidth: scrollWidth,\r\n clientWidth: clientWidth,\r\n scrollHeight: scrollHeight,\r\n clientHeight: clientHeight\r\n } = this._container().get(0);\r\n return {\r\n left: scrollWidth - clientWidth,\r\n top: scrollHeight - clientHeight\r\n }\r\n },\r\n _attachEventHandlers: function() {\r\n var strategy = this._strategy;\r\n var initEventData = {\r\n getDirection: strategy.getDirection.bind(strategy),\r\n validate: this._validate.bind(this),\r\n isNative: this.option(\"useNative\"),\r\n scrollTarget: this._$container\r\n };\r\n eventsEngine.off(this._$wrapper, \".\" + SCROLLABLE);\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.init, SCROLLABLE), initEventData, this._initHandler.bind(this));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.start, SCROLLABLE), strategy.handleStart.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.move, SCROLLABLE), strategy.handleMove.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.end, SCROLLABLE), strategy.handleEnd.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.cancel, SCROLLABLE), strategy.handleCancel.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.stop, SCROLLABLE), strategy.handleStop.bind(strategy));\r\n eventsEngine.off(this._$container, \".\" + SCROLLABLE);\r\n eventsEngine.on(this._$container, addNamespace(\"scroll\", SCROLLABLE), strategy.handleScroll.bind(strategy))\r\n },\r\n _validate: function(e) {\r\n if (this._isLocked()) {\r\n return false\r\n }\r\n this._updateIfNeed();\r\n return this._strategy.validate(e)\r\n },\r\n _initHandler: function() {\r\n var strategy = this._strategy;\r\n strategy.handleInit.apply(strategy, arguments)\r\n },\r\n _renderDisabledState: function() {\r\n this.$element().toggleClass(SCROLLABLE_DISABLED_CLASS, this.option(\"disabled\"));\r\n if (this.option(\"disabled\")) {\r\n this._lock()\r\n } else {\r\n this._unlock()\r\n }\r\n },\r\n _renderDirection: function() {\r\n this.$element().removeClass(\"dx-scrollable-\" + HORIZONTAL).removeClass(\"dx-scrollable-\" + VERTICAL).removeClass(\"dx-scrollable-\" + BOTH).addClass(\"dx-scrollable-\" + this.option(\"direction\"))\r\n },\r\n _renderStrategy: function() {\r\n this._createStrategy();\r\n this._strategy.render();\r\n this.$element().data(SCROLLABLE_STRATEGY, this._strategy)\r\n },\r\n _createStrategy: function() {\r\n this._strategy = this.option(\"useNative\") ? new NativeStrategy(this) : new SimulatedStrategy(this)\r\n },\r\n _createActions: function() {\r\n this._strategy && this._strategy.createActions()\r\n },\r\n _clean: function() {\r\n this._strategy && this._strategy.dispose()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onStart\":\r\n case \"onEnd\":\r\n case \"onUpdated\":\r\n case \"onScroll\":\r\n case \"onBounce\":\r\n this._createActions();\r\n break;\r\n case \"direction\":\r\n this._resetInactiveDirection();\r\n this._invalidate();\r\n break;\r\n case \"useNative\":\r\n this._setUseSimulatedScrollbar();\r\n this._invalidate();\r\n break;\r\n case \"inertiaEnabled\":\r\n case \"scrollByContent\":\r\n case \"scrollByThumb\":\r\n case \"bounceEnabled\":\r\n case \"useKeyboard\":\r\n case \"showScrollbar\":\r\n case \"useSimulatedScrollbar\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n this._renderDisabledState();\r\n this._strategy && this._strategy.disabledChanged();\r\n break;\r\n case \"updateManually\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._updateRtlPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetInactiveDirection: function() {\r\n var inactiveProp = this._getInactiveProp();\r\n if (!inactiveProp || !hasWindow()) {\r\n return\r\n }\r\n var scrollOffset = this.scrollOffset();\r\n scrollOffset[inactiveProp] = 0;\r\n this.scrollTo(scrollOffset)\r\n },\r\n _getInactiveProp: function() {\r\n var direction = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return \"left\"\r\n }\r\n if (direction === HORIZONTAL) {\r\n return \"top\"\r\n }\r\n },\r\n _location: function() {\r\n return this._strategy.location()\r\n },\r\n _normalizeLocation: function(location) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? -left : void 0,\r\n top: isDefined(top) ? -top : void 0\r\n }\r\n } else {\r\n var direction = this.option(\"direction\");\r\n return {\r\n left: direction !== VERTICAL ? -location : void 0,\r\n top: direction !== HORIZONTAL ? -location : void 0\r\n }\r\n }\r\n },\r\n _isLocked: function() {\r\n return this._locked\r\n },\r\n _lock: function() {\r\n this._locked = true\r\n },\r\n _unlock: function() {\r\n if (!this.option(\"disabled\")) {\r\n this._locked = false\r\n }\r\n },\r\n _isDirection: function(direction) {\r\n var current = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return current !== HORIZONTAL\r\n }\r\n if (direction === HORIZONTAL) {\r\n return current !== VERTICAL\r\n }\r\n return current === direction\r\n },\r\n _updateAllowedDirection: function() {\r\n var allowedDirections = this._strategy._allowedDirections();\r\n if (this._isDirection(BOTH) && allowedDirections.vertical && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = BOTH\r\n } else if (this._isDirection(HORIZONTAL) && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = HORIZONTAL\r\n } else if (this._isDirection(VERTICAL) && allowedDirections.vertical) {\r\n this._allowedDirectionValue = VERTICAL\r\n } else {\r\n this._allowedDirectionValue = null\r\n }\r\n },\r\n _allowedDirection: function() {\r\n return this._allowedDirectionValue\r\n },\r\n _container: function() {\r\n return this._$container\r\n },\r\n $content: function() {\r\n return this._$content\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content)\r\n },\r\n scrollOffset: function() {\r\n return this._strategy._getScrollOffset()\r\n },\r\n _isRtlNativeStrategy: function() {\r\n var {\r\n useNative: useNative,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n return useNative && rtlEnabled\r\n },\r\n scrollTop: function() {\r\n return this.scrollOffset().top\r\n },\r\n scrollLeft: function() {\r\n return this.scrollOffset().left\r\n },\r\n clientHeight: function() {\r\n return this._$container.height()\r\n },\r\n scrollHeight: function() {\r\n return this.$content().outerHeight()\r\n },\r\n clientWidth: function() {\r\n return this._$container.width()\r\n },\r\n scrollWidth: function() {\r\n return this.$content().outerWidth()\r\n },\r\n update: function() {\r\n if (!this._strategy) {\r\n return\r\n }\r\n return when(this._strategy.update()).done(function() {\r\n this._updateAllowedDirection()\r\n }.bind(this))\r\n },\r\n scrollBy: function(distance) {\r\n distance = this._normalizeLocation(distance);\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._updateIfNeed();\r\n this._strategy.scrollBy(distance)\r\n },\r\n scrollTo: function(targetLocation) {\r\n targetLocation = this._normalizeLocation(targetLocation);\r\n this._updateIfNeed();\r\n var location = this._location();\r\n if (!this.option(\"useNative\")) {\r\n targetLocation = this._strategy._applyScaleRatio(targetLocation);\r\n location = this._strategy._applyScaleRatio(location)\r\n }\r\n if (this._isScrollInverted()) {\r\n location.left = this._getScrollSign() * location.left - this._getMaxOffset().left\r\n }\r\n var distance = this._normalizeLocation({\r\n left: location.left - ensureDefined(targetLocation.left, location.left),\r\n top: location.top - ensureDefined(targetLocation.top, location.top)\r\n });\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._strategy.scrollBy(distance)\r\n },\r\n _getScrollSign: () => getScrollRtlBehavior().positive ? -1 : 1,\r\n _isScrollInverted: function() {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n useNative: useNative\r\n } = this.option();\r\n var {\r\n decreasing: decreasing,\r\n positive: positive\r\n } = getScrollRtlBehavior();\r\n return useNative && rtlEnabled && decreasing ^ positive\r\n },\r\n scrollToElement: function(element, offset) {\r\n var $element = $(element);\r\n var elementInsideContent = this.$content().find(element).length;\r\n var elementIsInsideContent = $element.parents(\".\" + SCROLLABLE_CLASS).length - $element.parents(\".\" + SCROLLABLE_CONTENT_CLASS).length === 0;\r\n if (!elementInsideContent || !elementIsInsideContent) {\r\n return\r\n }\r\n var scrollPosition = {\r\n top: 0,\r\n left: 0\r\n };\r\n var direction = this.option(\"direction\");\r\n if (direction !== VERTICAL) {\r\n scrollPosition.left = this.getScrollElementPosition($element, HORIZONTAL, offset)\r\n }\r\n if (direction !== HORIZONTAL) {\r\n scrollPosition.top = this.getScrollElementPosition($element, VERTICAL, offset)\r\n }\r\n this.scrollTo(scrollPosition)\r\n },\r\n scrollToElementTopLeft: function(element) {\r\n var $element = $(element);\r\n var elementInsideContent = this.$content().find(element).length;\r\n var elementIsInsideContent = $element.parents(\".\" + SCROLLABLE_CLASS).length - $element.parents(\".\" + SCROLLABLE_CONTENT_CLASS).length === 0;\r\n if (!elementInsideContent || !elementIsInsideContent) {\r\n return\r\n }\r\n var scrollPosition = {\r\n top: 0,\r\n left: 0\r\n };\r\n var direction = this.option(\"direction\");\r\n if (direction !== VERTICAL) {\r\n var leftPosition = this._elementPositionRelativeToContent($element, \"left\");\r\n scrollPosition.left = true === this.option(\"rtlEnabled\") ? leftPosition + $element.outerWidth() - this.clientWidth() : leftPosition;\r\n if (this._isRtlNativeStrategy()) {\r\n scrollPosition.left += this._container().get(0).offsetWidth - this._container().get(0).clientWidth\r\n }\r\n }\r\n if (direction !== HORIZONTAL) {\r\n scrollPosition.top = this._elementPositionRelativeToContent($element, \"top\")\r\n }\r\n this.scrollTo(scrollPosition)\r\n },\r\n getScrollElementPosition: function($element, direction, offset) {\r\n offset = offset || {};\r\n var isVertical = direction === VERTICAL;\r\n var startOffset = (isVertical ? offset.top : offset.left) || 0;\r\n var endOffset = (isVertical ? offset.bottom : offset.right) || 0;\r\n var elementPositionRelativeToContent = this._elementPositionRelativeToContent($element, isVertical ? \"top\" : \"left\");\r\n var elementPosition = elementPositionRelativeToContent;\r\n var elementSize = $element[isVertical ? \"outerHeight\" : \"outerWidth\"]();\r\n var scrollLocation = isVertical ? this.scrollTop() : this.scrollLeft();\r\n var clientSize = this._container().get(0)[isVertical ? \"clientHeight\" : \"clientWidth\"];\r\n var startDistance = scrollLocation - elementPosition + startOffset;\r\n var endDistance = scrollLocation - elementPosition - elementSize + clientSize - endOffset;\r\n if (startDistance <= 0 && endDistance >= 0) {\r\n return scrollLocation\r\n }\r\n return scrollLocation - (Math.abs(startDistance) > Math.abs(endDistance) ? endDistance : startDistance)\r\n },\r\n _elementPositionRelativeToContent: function($element, prop) {\r\n var result = 0;\r\n while (this._hasScrollContent($element)) {\r\n result += $element.position()[prop];\r\n $element = $element.offsetParent()\r\n }\r\n return result\r\n },\r\n _hasScrollContent: function($element) {\r\n var $content = this.$content();\r\n return $element.closest($content).length && !$element.is($content)\r\n },\r\n _updateIfNeed: function() {\r\n if (!this.option(\"updateManually\")) {\r\n this.update()\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(SCROLLABLE, Scrollable);\r\nexport default Scrollable;\r\n","var jws = require('jws');\n\nmodule.exports = function (jwt, options) {\n options = options || {};\n var decoded = jws.decode(jwt, options);\n if (!decoded) { return null; }\n var payload = decoded.payload;\n\n //try parse the payload\n if(typeof payload === 'string') {\n try {\n var obj = JSON.parse(payload);\n if(obj !== null && typeof obj === 'object') {\n payload = obj;\n }\n } catch (e) { }\n }\n\n //return header if `complete` option is enabled. header includes claims\n //such as `kid` and `alg` used to select the key within a JWKS needed to\n //verify the signature\n if (options.complete === true) {\n return {\n header: decoded.header,\n payload: payload,\n signature: decoded.signature\n };\n }\n return payload;\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","/**\r\n * DevExtreme (esm/core/utils/variable_wrapper.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n logger\r\n} from \"./console\";\r\nimport dependencyInjector from \"./dependency_injector\";\r\nexport default dependencyInjector({\r\n isWrapped: function() {\r\n return false\r\n },\r\n isWritableWrapped: function() {\r\n return false\r\n },\r\n wrap: function(value) {\r\n return value\r\n },\r\n unwrap: function(value) {\r\n return value\r\n },\r\n assign: function() {\r\n logger.error(\"Method 'assign' should not be used for not wrapped variables. Use 'isWrapped' method for ensuring.\")\r\n }\r\n});\r\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","import { getTarget, getDevtoolsGlobalHook } from './env';\nimport { HOOK_SETUP } from './const';\nexport * from './api';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const hook = getDevtoolsGlobalHook();\n if (hook) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const target = getTarget();\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor,\n setupFn\n });\n }\n}\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","/**\r\n * DevExtreme (esm/core/http_request.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"./utils/dependency_injector\";\r\nvar nativeXMLHttpRequest = {\r\n getXhr: function() {\r\n return new window.XMLHttpRequest\r\n }\r\n};\r\nexport default injector(nativeXMLHttpRequest);\r\n","/**\r\n * DevExtreme (esm/core/utils/ajax.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"./deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport httpRequest from \"../../core/http_request\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extendFromObject\r\n} from \"./extend\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport Promise from \"../polyfills/promise\";\r\nimport injector from \"./dependency_injector\";\r\nvar SUCCESS = \"success\";\r\nvar ERROR = \"error\";\r\nvar TIMEOUT = \"timeout\";\r\nvar NO_CONTENT = \"nocontent\";\r\nvar PARSER_ERROR = \"parsererror\";\r\nvar isStatusSuccess = function(status) {\r\n return 200 <= status && status < 300\r\n};\r\nvar hasContent = function(status) {\r\n return 204 !== status\r\n};\r\nvar paramsConvert = function(params) {\r\n var result = [];\r\n for (var name in params) {\r\n var value = params[name];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n if (null === value) {\r\n value = \"\"\r\n }\r\n if (\"function\" === typeof value) {\r\n value = value()\r\n }\r\n result.push(encodeURIComponent(name) + \"=\" + encodeURIComponent(value))\r\n }\r\n return result.join(\"&\")\r\n};\r\nvar createScript = function(options) {\r\n var script = domAdapter.createElement(\"script\");\r\n for (var name in options) {\r\n script[name] = options[name]\r\n }\r\n return script\r\n};\r\nvar removeScript = function(scriptNode) {\r\n scriptNode.parentNode.removeChild(scriptNode)\r\n};\r\nvar appendToHead = function(element) {\r\n return domAdapter.getHead().appendChild(element)\r\n};\r\nvar evalScript = function(code) {\r\n var script = createScript({\r\n text: code\r\n });\r\n appendToHead(script);\r\n removeScript(script)\r\n};\r\nvar evalCrossDomainScript = function(url) {\r\n var script = createScript({\r\n src: url\r\n });\r\n return new Promise((function(resolve, reject) {\r\n var events = {\r\n load: resolve,\r\n error: reject\r\n };\r\n var loadHandler = function(e) {\r\n events[e.type]();\r\n removeScript(script)\r\n };\r\n for (var event in events) {\r\n domAdapter.listen(script, event, loadHandler)\r\n }\r\n appendToHead(script)\r\n }))\r\n};\r\nvar getAcceptHeader = function(options) {\r\n var dataType = options.dataType || \"*\";\r\n var scriptAccept = \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\";\r\n var accepts = {\r\n \"*\": \"*/*\",\r\n text: \"text/plain\",\r\n html: \"text/html\",\r\n xml: \"application/xml, text/xml\",\r\n json: \"application/json, text/javascript\",\r\n jsonp: scriptAccept,\r\n script: scriptAccept\r\n };\r\n extendFromObject(accepts, options.accepts, true);\r\n return accepts[dataType] ? accepts[dataType] + (\"*\" !== dataType ? \", */*; q=0.01\" : \"\") : accepts[\"*\"]\r\n};\r\nvar getContentTypeHeader = function(options) {\r\n var defaultContentType;\r\n if (options.data && !options.upload && \"GET\" !== getMethod(options)) {\r\n defaultContentType = \"application/x-www-form-urlencoded;charset=utf-8\"\r\n }\r\n return options.contentType || defaultContentType\r\n};\r\nvar getDataFromResponse = function(xhr) {\r\n return xhr.responseType && \"text\" !== xhr.responseType || \"string\" !== typeof xhr.responseText ? xhr.response : xhr.responseText\r\n};\r\nvar postProcess = function(deferred, xhr, dataType) {\r\n var data = getDataFromResponse(xhr);\r\n switch (dataType) {\r\n case \"jsonp\":\r\n evalScript(data);\r\n break;\r\n case \"script\":\r\n evalScript(data);\r\n deferred.resolve(data, SUCCESS, xhr);\r\n break;\r\n case \"json\":\r\n try {\r\n deferred.resolve(JSON.parse(data), SUCCESS, xhr)\r\n } catch (e) {\r\n deferred.reject(xhr, PARSER_ERROR, e)\r\n }\r\n break;\r\n default:\r\n deferred.resolve(data, SUCCESS, xhr)\r\n }\r\n};\r\nvar isCrossDomain = function(url) {\r\n if (!hasWindow()) {\r\n return true\r\n }\r\n var crossDomain = false;\r\n var originAnchor = domAdapter.createElement(\"a\");\r\n var urlAnchor = domAdapter.createElement(\"a\");\r\n originAnchor.href = window.location.href;\r\n try {\r\n urlAnchor.href = url;\r\n urlAnchor.href = urlAnchor.href;\r\n crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host\r\n } catch (e) {\r\n crossDomain = true\r\n }\r\n return crossDomain\r\n};\r\nvar setHttpTimeout = function(timeout, xhr) {\r\n return timeout && setTimeout((function() {\r\n xhr.customStatus = TIMEOUT;\r\n xhr.abort()\r\n }), timeout)\r\n};\r\nvar getJsonpOptions = function(options) {\r\n if (\"jsonp\" === options.dataType) {\r\n var random = Math.random().toString().replace(/\\D/g, \"\");\r\n var callbackName = options.jsonpCallback || \"dxCallback\" + Date.now() + \"_\" + random;\r\n var callbackParameter = options.jsonp || \"callback\";\r\n options.data = options.data || {};\r\n options.data[callbackParameter] = callbackName;\r\n return callbackName\r\n }\r\n};\r\nvar getRequestOptions = function(options, headers) {\r\n var params = options.data;\r\n var paramsAlreadyString = \"string\" === typeof params;\r\n var url = options.url || window.location.href;\r\n if (!paramsAlreadyString && !options.cache) {\r\n params = params || {};\r\n params._ = Date.now()\r\n }\r\n if (params && !options.upload) {\r\n if (!paramsAlreadyString) {\r\n params = paramsConvert(params)\r\n }\r\n if (\"GET\" === getMethod(options)) {\r\n if (\"\" !== params) {\r\n url += (url.indexOf(\"?\") > -1 ? \"&\" : \"?\") + params\r\n }\r\n params = null\r\n } else if (headers[\"Content-Type\"] && headers[\"Content-Type\"].indexOf(\"application/x-www-form-urlencoded\") > -1) {\r\n params = params.replace(/%20/g, \"+\")\r\n }\r\n }\r\n return {\r\n url: url,\r\n parameters: params\r\n }\r\n};\r\n\r\nfunction getMethod(options) {\r\n return (options.method || \"GET\").toUpperCase()\r\n}\r\nvar getRequestHeaders = function(options) {\r\n var headers = options.headers || {};\r\n headers[\"Content-Type\"] = headers[\"Content-Type\"] || getContentTypeHeader(options);\r\n headers.Accept = headers.Accept || getAcceptHeader(options);\r\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\r\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\"\r\n }\r\n return headers\r\n};\r\nvar sendRequest = function(options) {\r\n var xhr = httpRequest.getXhr();\r\n var d = new Deferred;\r\n var result = d.promise();\r\n var async = isDefined(options.async) ? options.async : true;\r\n var dataType = options.dataType;\r\n var timeout = options.timeout || 0;\r\n var timeoutId;\r\n options.crossDomain = isCrossDomain(options.url);\r\n var needScriptEvaluation = \"jsonp\" === dataType || \"script\" === dataType;\r\n if (void 0 === options.cache) {\r\n options.cache = !needScriptEvaluation\r\n }\r\n var callbackName = getJsonpOptions(options);\r\n var headers = getRequestHeaders(options);\r\n var requestOptions = getRequestOptions(options, headers);\r\n var url = requestOptions.url;\r\n var parameters = requestOptions.parameters;\r\n if (callbackName) {\r\n window[callbackName] = function(data) {\r\n d.resolve(data, SUCCESS, xhr)\r\n }\r\n }\r\n if (options.crossDomain && needScriptEvaluation) {\r\n evalCrossDomainScript(url).then((function() {\r\n if (\"jsonp\" === dataType) {\r\n return\r\n }\r\n d.resolve(null, SUCCESS, xhr)\r\n }), (function() {\r\n d.reject(xhr, ERROR)\r\n }));\r\n return result\r\n }\r\n if (options.crossDomain && !(\"withCredentials\" in xhr)) {\r\n d.reject(xhr, ERROR);\r\n return result\r\n }\r\n xhr.open(getMethod(options), url, async, options.username, options.password);\r\n if (async) {\r\n xhr.timeout = timeout;\r\n timeoutId = setHttpTimeout(timeout, xhr, d)\r\n }\r\n xhr.onreadystatechange = function(e) {\r\n if (4 === xhr.readyState) {\r\n clearTimeout(timeoutId);\r\n if (isStatusSuccess(xhr.status)) {\r\n if (hasContent(xhr.status)) {\r\n postProcess(d, xhr, dataType)\r\n } else {\r\n d.resolve(null, NO_CONTENT, xhr)\r\n }\r\n } else {\r\n d.reject(xhr, xhr.customStatus || ERROR)\r\n }\r\n }\r\n };\r\n if (options.upload) {\r\n xhr.upload.onprogress = options.upload.onprogress;\r\n xhr.upload.onloadstart = options.upload.onloadstart;\r\n xhr.upload.onabort = options.upload.onabort\r\n }\r\n if (options.xhrFields) {\r\n for (var field in options.xhrFields) {\r\n xhr[field] = options.xhrFields[field]\r\n }\r\n }\r\n if (\"arraybuffer\" === options.responseType) {\r\n xhr.responseType = options.responseType\r\n }\r\n for (var name in headers) {\r\n if (Object.prototype.hasOwnProperty.call(headers, name) && isDefined(headers[name])) {\r\n xhr.setRequestHeader(name, headers[name])\r\n }\r\n }\r\n if (options.beforeSend) {\r\n options.beforeSend(xhr)\r\n }\r\n xhr.send(parameters);\r\n result.abort = function() {\r\n xhr.abort()\r\n };\r\n return result\r\n};\r\nexport default injector({\r\n sendRequest: sendRequest\r\n});\r\n","/**\r\n * DevExtreme (esm/events/core/keyboard_processor.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar COMPOSITION_START_EVENT = \"compositionstart\";\r\nvar COMPOSITION_END_EVENT = \"compositionend\";\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar NAMESPACE = \"KeyboardProcessor\";\r\nvar KeyboardProcessor = Class.inherit({\r\n _keydown: addNamespace(KEYDOWN_EVENT, NAMESPACE),\r\n _compositionStart: addNamespace(COMPOSITION_START_EVENT, NAMESPACE),\r\n _compositionEnd: addNamespace(COMPOSITION_END_EVENT, NAMESPACE),\r\n ctor: function(options) {\r\n options = options || {};\r\n if (options.element) {\r\n this._element = $(options.element)\r\n }\r\n if (options.focusTarget) {\r\n this._focusTarget = options.focusTarget\r\n }\r\n this._handler = options.handler;\r\n if (this._element) {\r\n this._processFunction = e => {\r\n var isNotFocusTarget = this._focusTarget && this._focusTarget !== e.target && inArray(e.target, $(this._focusTarget)) < 0;\r\n var shouldSkipProcessing = this._isComposingJustFinished && 229 === e.which || this._isComposing || isNotFocusTarget;\r\n this._isComposingJustFinished = false;\r\n if (!shouldSkipProcessing) {\r\n this.process(e)\r\n }\r\n };\r\n this._toggleProcessingWithContext = this.toggleProcessing.bind(this);\r\n eventsEngine.on(this._element, this._keydown, this._processFunction);\r\n eventsEngine.on(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.on(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._element) {\r\n eventsEngine.off(this._element, this._keydown, this._processFunction);\r\n eventsEngine.off(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.off(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n this._element = void 0;\r\n this._handler = void 0\r\n },\r\n process: function(e) {\r\n this._handler({\r\n keyName: normalizeKeyName(e),\r\n key: e.key,\r\n code: e.code,\r\n ctrl: e.ctrlKey,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n shift: e.shiftKey,\r\n alt: e.altKey,\r\n which: e.which,\r\n originalEvent: e\r\n })\r\n },\r\n toggleProcessing: function(_ref) {\r\n var {\r\n type: type\r\n } = _ref;\r\n this._isComposing = type === COMPOSITION_START_EVENT;\r\n this._isComposingJustFinished = !this._isComposing\r\n }\r\n});\r\nexport default KeyboardProcessor;\r\n","/**\r\n * DevExtreme (esm/events/short.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport KeyboardProcessor from \"./core/keyboard_processor\";\r\nimport {\r\n addNamespace as pureAddNamespace\r\n} from \"./utils/index\";\r\nimport pointerEvents from \"./pointer\";\r\n\r\nfunction addNamespace(event, namespace) {\r\n return namespace ? pureAddNamespace(event, namespace) : event\r\n}\r\n\r\nfunction executeAction(action, args) {\r\n return \"function\" === typeof action ? action(args) : action.execute(args)\r\n}\r\nexport var active = {\r\n on: ($el, active, inactive, opts) => {\r\n var {\r\n selector: selector,\r\n showTimeout: showTimeout,\r\n hideTimeout: hideTimeout,\r\n namespace: namespace\r\n } = opts;\r\n eventsEngine.on($el, addNamespace(\"dxactive\", namespace), selector, {\r\n timeout: showTimeout\r\n }, event => executeAction(active, {\r\n event: event,\r\n element: event.currentTarget\r\n }));\r\n eventsEngine.on($el, addNamespace(\"dxinactive\", namespace), selector, {\r\n timeout: hideTimeout\r\n }, event => executeAction(inactive, {\r\n event: event,\r\n element: event.currentTarget\r\n }))\r\n },\r\n off: ($el, _ref) => {\r\n var {\r\n namespace: namespace,\r\n selector: selector\r\n } = _ref;\r\n eventsEngine.off($el, addNamespace(\"dxactive\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxinactive\", namespace), selector)\r\n }\r\n};\r\nexport var resize = {\r\n on: function($el, resize) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxresize\", namespace), resize)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxresize\", namespace))\r\n }\r\n};\r\nexport var hover = {\r\n on: ($el, start, end, _ref2) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref2;\r\n eventsEngine.on($el, addNamespace(\"dxhoverend\", namespace), selector, event => end(event));\r\n eventsEngine.on($el, addNamespace(\"dxhoverstart\", namespace), selector, event => executeAction(start, {\r\n element: event.target,\r\n event: event\r\n }))\r\n },\r\n off: ($el, _ref3) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref3;\r\n eventsEngine.off($el, addNamespace(\"dxhoverstart\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxhoverend\", namespace), selector)\r\n }\r\n};\r\nexport var visibility = {\r\n on: ($el, shown, hiding, _ref4) => {\r\n var {\r\n namespace: namespace\r\n } = _ref4;\r\n eventsEngine.on($el, addNamespace(\"dxhiding\", namespace), hiding);\r\n eventsEngine.on($el, addNamespace(\"dxshown\", namespace), shown)\r\n },\r\n off: ($el, _ref5) => {\r\n var {\r\n namespace: namespace\r\n } = _ref5;\r\n eventsEngine.off($el, addNamespace(\"dxhiding\", namespace));\r\n eventsEngine.off($el, addNamespace(\"dxshown\", namespace))\r\n }\r\n};\r\nexport var focus = {\r\n on: ($el, focusIn, focusOut, _ref6) => {\r\n var {\r\n namespace: namespace,\r\n isFocusable: isFocusable\r\n } = _ref6;\r\n eventsEngine.on($el, addNamespace(\"focusin\", namespace), focusIn);\r\n eventsEngine.on($el, addNamespace(\"focusout\", namespace), focusOut);\r\n if (domAdapter.hasDocumentProperty(\"onbeforeactivate\")) {\r\n eventsEngine.on($el, addNamespace(\"beforeactivate\", namespace), e => isFocusable(null, e.target) || e.preventDefault())\r\n }\r\n },\r\n off: ($el, _ref7) => {\r\n var {\r\n namespace: namespace\r\n } = _ref7;\r\n eventsEngine.off($el, addNamespace(\"focusin\", namespace));\r\n eventsEngine.off($el, addNamespace(\"focusout\", namespace));\r\n if (domAdapter.hasDocumentProperty(\"onbeforeactivate\")) {\r\n eventsEngine.off($el, addNamespace(\"beforeactivate\", namespace))\r\n }\r\n },\r\n trigger: $el => eventsEngine.trigger($el, \"focus\")\r\n};\r\nexport var dxClick = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxclick\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxclick\", namespace))\r\n }\r\n};\r\nexport var click = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"click\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"click\", namespace))\r\n }\r\n};\r\nexport var dxScrollInit = {\r\n on: function($el, onInit, eventData) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscrollinit\", namespace), eventData, onInit)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxscrollinit\", namespace))\r\n }\r\n};\r\nexport var dxScrollStart = {\r\n on: function($el, onStart) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscrollstart\", namespace), onStart)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxscrollstart\", namespace))\r\n }\r\n};\r\nexport var dxScrollMove = {\r\n on: function($el, onScroll) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscroll\", namespace), onScroll)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxscroll\", namespace))\r\n }\r\n};\r\nexport var dxScrollEnd = {\r\n on: function($el, onEnd) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscrollend\", namespace), onEnd)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxscrollend\", namespace))\r\n }\r\n};\r\nexport var dxScrollStop = {\r\n on: function($el, onStop) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscrollstop\", namespace), onStop)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxscrollstop\", namespace))\r\n }\r\n};\r\nexport var dxScrollCancel = {\r\n on: function($el, onCancel) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxscrollcancel\", namespace), onCancel)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxscrollcancel\", namespace))\r\n }\r\n};\r\nexport var dxPointerDown = {\r\n on: function($el, onPointerDown) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(pointerEvents.down, namespace), onPointerDown)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(pointerEvents.down, namespace))\r\n }\r\n};\r\nexport var dxPointerUp = {\r\n on: function($el, onPointerUp) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(pointerEvents.up, namespace), onPointerUp)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(pointerEvents.up, namespace))\r\n }\r\n};\r\nvar index = 0;\r\nvar keyboardProcessors = {};\r\nvar generateListenerId = () => \"keyboardProcessorId\".concat(index++);\r\nexport var keyboard = {\r\n on: (element, focusTarget, handler) => {\r\n var listenerId = generateListenerId();\r\n keyboardProcessors[listenerId] = new KeyboardProcessor({\r\n element: element,\r\n focusTarget: focusTarget,\r\n handler: handler\r\n });\r\n return listenerId\r\n },\r\n off: listenerId => {\r\n if (listenerId && keyboardProcessors[listenerId]) {\r\n keyboardProcessors[listenerId].dispose();\r\n delete keyboardProcessors[listenerId]\r\n }\r\n },\r\n _getProcessor: listenerId => keyboardProcessors[listenerId]\r\n};\r\n","module.exports = {};\n","/**\r\n * DevExtreme (esm/core/action.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isPlainObject,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nexport default class Action {\r\n constructor(action, config) {\r\n config = config || {};\r\n this._action = action;\r\n this._context = config.context || getWindow();\r\n this._beforeExecute = config.beforeExecute;\r\n this._afterExecute = config.afterExecute;\r\n this._component = config.component;\r\n this._validatingTargetName = config.validatingTargetName;\r\n var excludeValidators = this._excludeValidators = {};\r\n if (config.excludeValidators) {\r\n for (var i = 0; i < config.excludeValidators.length; i++) {\r\n excludeValidators[config.excludeValidators[i]] = true\r\n }\r\n }\r\n }\r\n execute() {\r\n var e = {\r\n action: this._action,\r\n args: Array.prototype.slice.call(arguments),\r\n context: this._context,\r\n component: this._component,\r\n validatingTargetName: this._validatingTargetName,\r\n cancel: false,\r\n handled: false\r\n };\r\n var beforeExecute = this._beforeExecute;\r\n var afterExecute = this._afterExecute;\r\n var argsBag = e.args[0] || {};\r\n if (!this._validateAction(e)) {\r\n return\r\n }\r\n null === beforeExecute || void 0 === beforeExecute ? void 0 : beforeExecute.call(this._context, e);\r\n if (e.cancel) {\r\n return\r\n }\r\n var result = this._executeAction(e);\r\n if (argsBag.cancel) {\r\n return\r\n }\r\n null === afterExecute || void 0 === afterExecute ? void 0 : afterExecute.call(this._context, e);\r\n return result\r\n }\r\n _validateAction(e) {\r\n var excludeValidators = this._excludeValidators;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n if (!excludeValidators[name]) {\r\n var _executor$validate;\r\n var executor = executors[name];\r\n null === (_executor$validate = executor.validate) || void 0 === _executor$validate ? void 0 : _executor$validate.call(executor, e);\r\n if (e.cancel) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n _executeAction(e) {\r\n var result;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n var _executor$execute;\r\n var executor = executors[name];\r\n null === (_executor$execute = executor.execute) || void 0 === _executor$execute ? void 0 : _executor$execute.call(executor, e);\r\n if (e.handled) {\r\n result = e.result;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n static registerExecutor(name, executor) {\r\n if (isPlainObject(name)) {\r\n each(name, Action.registerExecutor);\r\n return\r\n }\r\n Action.executors[name] = executor\r\n }\r\n static unregisterExecutor() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n each(args, (function() {\r\n delete Action.executors[this]\r\n }))\r\n }\r\n}\r\nAction.executors = {};\r\nvar createValidatorByTargetElement = condition => e => {\r\n if (!e.args.length) {\r\n return\r\n }\r\n var args = e.args[0];\r\n var element = args[e.validatingTargetName] || args.element;\r\n if (element && condition($(element))) {\r\n e.cancel = true\r\n }\r\n};\r\nAction.registerExecutor({\r\n disabled: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-disabled, .dx-state-disabled *\"))\r\n },\r\n readOnly: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-readonly, .dx-state-readonly *:not(.dx-state-independent)\"))\r\n },\r\n undefined: {\r\n execute: e => {\r\n if (!e.action) {\r\n e.result = void 0;\r\n e.handled = true\r\n }\r\n }\r\n },\r\n func: {\r\n execute: e => {\r\n if (isFunction(e.action)) {\r\n e.result = e.action.call(e.context, e.args[0]);\r\n e.handled = true\r\n }\r\n }\r\n }\r\n});\r\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/**\r\n * DevExtreme (esm/data/errors.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../core/utils/error\";\r\nimport coreErrors from \"../core/errors\";\r\nexport var errors = errorUtils(coreErrors.ERROR_MESSAGES, {\r\n E4000: \"[DevExpress.data]: {0}\",\r\n E4001: \"Unknown aggregating function is detected: '{0}'\",\r\n E4002: \"Unsupported OData protocol version is used\",\r\n E4003: \"Unknown filter operation is used: {0}\",\r\n E4004: \"The thenby() method is called before the sortby() method\",\r\n E4005: \"Store requires a key expression for this operation\",\r\n E4006: \"ArrayStore 'data' option must be an array\",\r\n E4007: \"Compound keys cannot be auto-generated\",\r\n E4008: \"Attempt to insert an item with a duplicated key\",\r\n E4009: \"Data item cannot be found\",\r\n E4010: \"CustomStore does not support creating queries\",\r\n E4011: \"Custom Store method is not implemented or is not a function: {0}\",\r\n E4012: \"Custom Store method returns an invalid value: {0}\",\r\n E4013: \"Local Store requires the 'name' configuration option is specified\",\r\n E4014: \"Unknown data type is specified for ODataStore: {0}\",\r\n E4015: \"Unknown entity name or alias is used: {0}\",\r\n E4016: \"The compileSetter(expr) method is called with 'self' passed as a parameter\",\r\n E4017: \"Keys cannot be modified\",\r\n E4018: \"The server has returned a non-numeric value in a response to an item count request\",\r\n E4019: \"Mixing of group operators inside a single group of filter expression is not allowed\",\r\n E4020: \"Unknown store type is detected: {0}\",\r\n E4021: \"The server response does not provide the totalCount value\",\r\n E4022: \"The server response does not provide the groupCount value\",\r\n E4023: \"Could not parse the following XML: {0}\",\r\n E4024: \"String function {0} cannot be used with the data field {1} of type {2}.\",\r\n W4000: \"Data returned from the server has an incorrect structure\",\r\n W4001: 'The {0} field is listed in both \"keyType\" and \"fieldTypes\". The value of \"fieldTypes\" is used.',\r\n W4002: \"Data loading has failed for some cells due to the following error: {0}\"\r\n});\r\nexport var errorHandler = null;\r\nexport var handleError = function(error) {\r\n var _errorHandler;\r\n null === (_errorHandler = errorHandler) || void 0 === _errorHandler ? void 0 : _errorHandler(error)\r\n};\r\nexport var setErrorHandler = handler => errorHandler = handler;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.support.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport devices from \"../../core/devices\";\r\n\r\nfunction isModernAndroidDevice() {\r\n var {\r\n android: android,\r\n version: version\r\n } = devices.real();\r\n return android && version[0] > 4\r\n}\r\nexport function isInputEventsL2Supported() {\r\n return \"onbeforeinput\" in domAdapter.createElement(\"input\") || isModernAndroidDevice()\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.rule.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar EMPTY_CHAR = \" \";\r\nvar BaseMaskRule = Class.inherit({\r\n ctor: function(config) {\r\n this._value = EMPTY_CHAR;\r\n extend(this, config)\r\n },\r\n next: function(rule) {\r\n if (!arguments.length) {\r\n return this._next\r\n }\r\n this._next = rule\r\n },\r\n text: noop,\r\n value: noop,\r\n rawValue: noop,\r\n handle: noop,\r\n _prepareHandlingArgs: function(args, config) {\r\n var _config$str, _config$start, _config$length;\r\n config = config || {};\r\n var handlingProperty = Object.prototype.hasOwnProperty.call(args, \"value\") ? \"value\" : \"text\";\r\n args[handlingProperty] = null !== (_config$str = config.str) && void 0 !== _config$str ? _config$str : args[handlingProperty];\r\n args.start = null !== (_config$start = config.start) && void 0 !== _config$start ? _config$start : args.start;\r\n args.length = null !== (_config$length = config.length) && void 0 !== _config$length ? _config$length : args.length;\r\n args.index = args.index + 1;\r\n return args\r\n },\r\n reset: noop,\r\n clear: noop,\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n isAccepted: function() {\r\n return false\r\n },\r\n adjustedCaret: function(caret, isForwardDirection, char) {\r\n return isForwardDirection ? this._adjustedForward(caret, 0, char) : this._adjustedBackward(caret, 0, char)\r\n },\r\n _adjustedForward: noop,\r\n _adjustedBackward: noop,\r\n isValid: noop\r\n});\r\nexport var EmptyMaskRule = BaseMaskRule.inherit({\r\n next: noop,\r\n handle: function() {\r\n return 0\r\n },\r\n text: function() {\r\n return \"\"\r\n },\r\n value: function() {\r\n return \"\"\r\n },\r\n first: function() {\r\n return 0\r\n },\r\n rawValue: function() {\r\n return \"\"\r\n },\r\n adjustedCaret: function() {\r\n return 0\r\n },\r\n isValid: function() {\r\n return true\r\n }\r\n});\r\nexport var MaskRule = BaseMaskRule.inherit({\r\n text: function() {\r\n return (this._value !== EMPTY_CHAR ? this._value : this.maskChar) + this.next().text()\r\n },\r\n value: function() {\r\n return this._value + this.next().value()\r\n },\r\n rawValue: function() {\r\n return this._value + this.next().rawValue()\r\n },\r\n handle: function(args) {\r\n var str = Object.prototype.hasOwnProperty.call(args, \"value\") ? args.value : args.text;\r\n if (!str || !str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char, args);\r\n return this._accepted() ? this.next().handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n })) + 1 : this.handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }))\r\n },\r\n clear: function(args) {\r\n this._tryAcceptChar(EMPTY_CHAR, args);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n reset: function() {\r\n this._accepted(false);\r\n this.next().reset()\r\n },\r\n _tryAcceptChar: function(char, args) {\r\n this._accepted(false);\r\n if (!this._isAllowed(char, args)) {\r\n return\r\n }\r\n var acceptedChar = char === EMPTY_CHAR ? this.maskChar : char;\r\n args.fullText = args.fullText.substring(0, args.index) + acceptedChar + args.fullText.substring(args.index + 1);\r\n this._accepted(true);\r\n this._value = char\r\n },\r\n _accepted: function(value) {\r\n if (!arguments.length) {\r\n return !!this._isAccepted\r\n }\r\n this._isAccepted = !!value\r\n },\r\n first: function(index) {\r\n return this._value === EMPTY_CHAR ? index || 0 : this.callBase(index)\r\n },\r\n _isAllowed: function(char, args) {\r\n if (char === EMPTY_CHAR) {\r\n return true\r\n }\r\n return this._isValid(char, args)\r\n },\r\n _isValid: function(char, args) {\r\n var allowedChars = this.allowedChars;\r\n if (allowedChars instanceof RegExp) {\r\n return allowedChars.test(char)\r\n }\r\n if (isFunction(allowedChars)) {\r\n return allowedChars(char, args.index, args.fullText)\r\n }\r\n if (Array.isArray(allowedChars)) {\r\n return inArray(char, allowedChars) > -1\r\n }\r\n return allowedChars === char\r\n },\r\n isAccepted: function(caret) {\r\n return 0 === caret ? this._accepted() : this.next().isAccepted(caret - 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret) {\r\n return index\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char) || index + 1\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return caret\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1) || index + 1\r\n },\r\n isValid: function(args) {\r\n return this._isValid(this._value, args) && this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\nexport var StubMaskRule = MaskRule.inherit({\r\n value: function() {\r\n return this.next().value()\r\n },\r\n handle: function(args) {\r\n var hasValueProperty = Object.prototype.hasOwnProperty.call(args, \"value\");\r\n var str = hasValueProperty ? args.value : args.text;\r\n if (!str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start || hasValueProperty) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start && args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char);\r\n var nextArgs = this._isAllowed(char) ? this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }) : args;\r\n return this.next().handle(nextArgs) + 1\r\n },\r\n clear: function(args) {\r\n this._accepted(false);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n _tryAcceptChar: function(char) {\r\n this._accepted(this._isValid(char))\r\n },\r\n _isValid: function(char) {\r\n return char === this.maskChar\r\n },\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret && char === this.maskChar) {\r\n return index\r\n }\r\n if (caret === index + 1 && this._accepted()) {\r\n return caret\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char)\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return 0\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1)\r\n },\r\n isValid: function(args) {\r\n return this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.clear.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"./texteditor_button_collection/button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n name as click\r\n} from \"../../events/click\";\r\nvar pointerDown = pointer.down;\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar TEXTEDITOR_CLEAR_ICON_CLASS = \"dx-icon-clear\";\r\nvar TEXTEDITOR_ICON_CLASS = \"dx-icon\";\r\nvar TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS = \"dx-show-clear-button\";\r\nexport default class ClearButton extends TextEditorButton {\r\n _create() {\r\n var $element = $(\"\").addClass(TEXTEDITOR_CLEAR_BUTTON_CLASS).append($(\"\").addClass(TEXTEDITOR_ICON_CLASS).addClass(TEXTEDITOR_CLEAR_ICON_CLASS));\r\n this._addToContainer($element);\r\n this.update(true);\r\n return {\r\n instance: $element,\r\n $element: $element\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor._isClearButtonVisible()\r\n }\r\n _attachEvents(instance, $button) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var editorName = editor.NAME;\r\n eventsEngine.on($button, addNamespace(pointerDown, editorName), e => {\r\n e.preventDefault();\r\n if (\"mouse\" !== e.pointerType) {\r\n editor._clearValueHandler(e)\r\n }\r\n });\r\n eventsEngine.on($button, addNamespace(click, editorName), e => editor._clearValueHandler(e))\r\n }\r\n _legacyRender($editor, isVisible) {\r\n $editor.toggleClass(TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS, isVisible)\r\n }\r\n update() {\r\n var rendered = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n !rendered && super.update();\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n instance && instance.toggleClass(STATE_INVISIBLE_CLASS, !isVisible);\r\n this._legacyRender($editor, isVisible)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/custom.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport TextEditorButton from \"./button\";\r\nimport Button from \"../../button\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n start,\r\n end\r\n} from \"../../../events/hover\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nvar CUSTOM_BUTTON_HOVERED_CLASS = \"dx-custom-button-hovered\";\r\nexport default class CustomButton extends TextEditorButton {\r\n _attachEvents(instance, $element) {\r\n var {\r\n editor: editor\r\n } = this;\r\n eventsEngine.on($element, start, () => {\r\n editor.$element().addClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, end, () => {\r\n editor.$element().removeClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, clickEventName, e => {\r\n e.stopPropagation()\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"
    \");\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, this.options, {\r\n ignoreParentReadOnly: true,\r\n disabled: this._isDisabled(),\r\n integrationOptions: this._prepareIntegrationOptions(editor)\r\n }));\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _prepareIntegrationOptions(editor) {\r\n return extend({}, editor.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\"]\r\n })\r\n }\r\n update() {\r\n var isUpdated = super.update();\r\n if (this.instance) {\r\n this.instance.option(\"disabled\", this._isDisabled())\r\n }\r\n return isUpdated\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"visible\")\r\n }\r\n _isDisabled() {\r\n var isDefinedByUser = void 0 !== this.options.disabled;\r\n if (isDefinedByUser) {\r\n return this.instance ? this.instance.option(\"disabled\") : this.options.disabled\r\n } else {\r\n return this.editor.option(\"readOnly\")\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/index.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport CustomButton from \"./custom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n find\r\n} from \"../../../core/utils/array\";\r\nimport errors from \"../../widget/ui.errors\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\n\r\nfunction checkButtonInfo(buttonInfo) {\r\n (() => {\r\n if (!buttonInfo || \"object\" !== typeof buttonInfo || Array.isArray(buttonInfo)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n })();\r\n (() => {\r\n if (!(\"name\" in buttonInfo)) {\r\n throw errors.Error(\"E1054\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n name: name\r\n } = buttonInfo;\r\n if (\"string\" !== typeof name) {\r\n throw errors.Error(\"E1055\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n location: location\r\n } = buttonInfo;\r\n if (\"location\" in buttonInfo && \"after\" !== location && \"before\" !== location) {\r\n buttonInfo.location = \"after\"\r\n }\r\n })()\r\n}\r\n\r\nfunction checkNamesUniqueness(existingNames, newName) {\r\n if (-1 !== existingNames.indexOf(newName)) {\r\n throw errors.Error(\"E1055\", newName)\r\n }\r\n existingNames.push(newName)\r\n}\r\n\r\nfunction isPredefinedButtonName(name, predefinedButtonsInfo) {\r\n return !!find(predefinedButtonsInfo, info => info.name === name)\r\n}\r\nexport default class TextEditorButtonCollection {\r\n constructor(editor, defaultButtonsInfo) {\r\n this.buttons = [];\r\n this.defaultButtonsInfo = defaultButtonsInfo;\r\n this.editor = editor\r\n }\r\n _compileButtonInfo(buttons) {\r\n var names = [];\r\n return buttons.map(button => {\r\n var isStringButton = \"string\" === typeof button;\r\n if (!isStringButton) {\r\n checkButtonInfo(button)\r\n }\r\n var isDefaultButton = isStringButton || isPredefinedButtonName(button.name, this.defaultButtonsInfo);\r\n if (isDefaultButton) {\r\n var defaultButtonInfo = find(this.defaultButtonsInfo, _ref => {\r\n var {\r\n name: name\r\n } = _ref;\r\n return name === button || name === button.name\r\n });\r\n if (!defaultButtonInfo) {\r\n throw errors.Error(\"E1056\", this.editor.NAME, button)\r\n }\r\n checkNamesUniqueness(names, button);\r\n return defaultButtonInfo\r\n } else {\r\n var {\r\n name: name\r\n } = button;\r\n checkNamesUniqueness(names, name);\r\n return extend(button, {\r\n Ctor: CustomButton\r\n })\r\n }\r\n })\r\n }\r\n _createButton(buttonsInfo) {\r\n var {\r\n Ctor: Ctor,\r\n options: options,\r\n name: name\r\n } = buttonsInfo;\r\n var button = new Ctor(name, this.editor, options);\r\n this.buttons.push(button);\r\n return button\r\n }\r\n _renderButtons(buttons, $container, targetLocation) {\r\n var $buttonsContainer = null;\r\n var buttonsInfo = buttons ? this._compileButtonInfo(buttons) : this.defaultButtonsInfo;\r\n buttonsInfo.forEach(buttonsInfo => {\r\n var {\r\n location: location = \"after\"\r\n } = buttonsInfo;\r\n if (location === targetLocation) {\r\n this._createButton(buttonsInfo).render((() => {\r\n $buttonsContainer = $buttonsContainer || $(\"
    \").addClass(TEXTEDITOR_BUTTONS_CONTAINER_CLASS);\r\n \"before\" === targetLocation ? $container.prepend($buttonsContainer) : $container.append($buttonsContainer);\r\n return $buttonsContainer\r\n })())\r\n }\r\n });\r\n return $buttonsContainer\r\n }\r\n clean() {\r\n this.buttons.forEach(button => button.dispose());\r\n this.buttons = []\r\n }\r\n getButton(buttonName) {\r\n var button = find(this.buttons, _ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n return name === buttonName\r\n });\r\n return button && button.instance\r\n }\r\n renderAfterButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"after\")\r\n }\r\n renderBeforeButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"before\")\r\n }\r\n updateButtons(names) {\r\n this.buttons.forEach(button => {\r\n if (!names || -1 !== names.indexOf(button.name)) {\r\n button.update()\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.base.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport devices from \"../../core/devices\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport ClearButton from \"./ui.text_editor.clear\";\r\nimport TextEditorButtonCollection from \"./texteditor_button_collection/index\";\r\nimport config from \"../../core/config\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nvar TEXTEDITOR_CLASS = \"dx-texteditor\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_INPUT_SELECTOR = \".\" + TEXTEDITOR_INPUT_CLASS;\r\nvar TEXTEDITOR_CONTAINER_CLASS = \"dx-texteditor-container\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\nvar TEXTEDITOR_PLACEHOLDER_CLASS = \"dx-placeholder\";\r\nvar TEXTEDITOR_EMPTY_INPUT_CLASS = \"dx-texteditor-empty\";\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar TEXTEDITOR_VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar TEXTEDITOR_VALID_CLASS = \"dx-valid\";\r\nvar EVENTS_LIST = [\"KeyDown\", \"KeyPress\", \"KeyUp\", \"Change\", \"Cut\", \"Copy\", \"Paste\", \"Input\"];\r\nvar CONTROL_KEYS = [\"tab\", \"enter\", \"shift\", \"control\", \"alt\", \"escape\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"upArrow\", \"rightArrow\", \"downArrow\"];\r\n\r\nfunction checkButtonsOptionType(buttons) {\r\n if (isDefined(buttons) && !Array.isArray(buttons)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n}\r\nvar TextEditorBase = Editor.inherit({\r\n ctor: function(_, options) {\r\n if (options) {\r\n checkButtonsOptionType(options.buttons)\r\n }\r\n this._buttonCollection = new TextEditorButtonCollection(this, this._getDefaultButtons());\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n buttons: void 0,\r\n value: \"\",\r\n spellcheck: false,\r\n showClearButton: false,\r\n valueChangeEvent: \"change\",\r\n placeholder: \"\",\r\n inputAttr: {},\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyDown: null,\r\n onKeyPress: null,\r\n onKeyUp: null,\r\n onChange: null,\r\n onInput: null,\r\n onCut: null,\r\n onCopy: null,\r\n onPaste: null,\r\n onEnterKey: null,\r\n mode: \"text\",\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n text: void 0,\r\n displayValueFormatter: function(value) {\r\n return isDefined(value) && false !== value ? value : \"\"\r\n },\r\n stylingMode: config().editorStylingMode || \"outlined\",\r\n showValidationMark: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n stylingMode: config().editorStylingMode || \"underlined\"\r\n }\r\n }])\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n onKeyPress: {\r\n since: \"20.1\",\r\n message: \"This event is removed from the web standards and will be deprecated in modern browsers soon.\"\r\n }\r\n })\r\n },\r\n _getDefaultButtons: function() {\r\n return [{\r\n name: \"clear\",\r\n Ctor: ClearButton\r\n }]\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.option(\"showClearButton\") && !this.option(\"readOnly\")\r\n },\r\n _input: function() {\r\n return this.$element().find(TEXTEDITOR_INPUT_SELECTOR).first()\r\n },\r\n _isFocused: function() {\r\n return focused(this._input()) || this.callBase()\r\n },\r\n _inputWrapper: function() {\r\n return this.$element()\r\n },\r\n _buttonsContainer: function() {\r\n return this._inputWrapper().find(\".\" + TEXTEDITOR_BUTTONS_CONTAINER_CLASS).eq(0)\r\n },\r\n _isControlKey: function(key) {\r\n return -1 !== CONTROL_KEYS.indexOf(key)\r\n },\r\n _renderStylingMode: function() {\r\n this.callBase();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTEDITOR_CLASS);\r\n this._renderInput();\r\n this._renderStylingMode();\r\n this._renderInputType();\r\n this._renderPlaceholder();\r\n this._renderProps();\r\n this.callBase();\r\n this._renderValue()\r\n },\r\n _render: function() {\r\n this._renderPlaceholder();\r\n this._refreshValueChangeEvent();\r\n this._renderEvents();\r\n this._renderEnterKeyAction();\r\n this._renderEmptinessEvent();\r\n this.callBase()\r\n },\r\n _renderInput: function() {\r\n this._$buttonsContainer = this._$textEditorContainer = $(\"
    \").addClass(TEXTEDITOR_CONTAINER_CLASS).appendTo(this.$element());\r\n this._$textEditorInputContainer = $(\"
    \").addClass(TEXTEDITOR_INPUT_CONTAINER_CLASS).appendTo(this._$textEditorContainer);\r\n this._$textEditorInputContainer.append(this._createInput());\r\n this._renderButtonContainers()\r\n },\r\n _getInputContainer() {\r\n return this._$textEditorInputContainer\r\n },\r\n _renderPendingIndicator: function() {\r\n this.$element().addClass(TEXTEDITOR_VALIDATION_PENDING_CLASS);\r\n var $inputContainer = this._getInputContainer();\r\n var $indicatorElement = $(\"
    \").addClass(TEXTEDITOR_PENDING_INDICATOR_CLASS).appendTo($inputContainer);\r\n this._pendingIndicator = this._createComponent($indicatorElement, LoadIndicator)\r\n },\r\n _disposePendingIndicator: function() {\r\n if (!this._pendingIndicator) {\r\n return\r\n }\r\n this._pendingIndicator.dispose();\r\n this._pendingIndicator.$element().remove();\r\n this._pendingIndicator = null;\r\n this.$element().removeClass(TEXTEDITOR_VALIDATION_PENDING_CLASS)\r\n },\r\n _renderValidationState: function() {\r\n this.callBase();\r\n var isPending = \"pending\" === this.option(\"validationStatus\");\r\n var $element = this.$element();\r\n if (isPending) {\r\n !this._pendingIndicator && this._renderPendingIndicator();\r\n this._showValidMark = false\r\n } else {\r\n if (\"invalid\" === this.option(\"validationStatus\")) {\r\n this._showValidMark = false\r\n }\r\n if (!this._showValidMark && true === this.option(\"showValidationMark\")) {\r\n this._showValidMark = \"valid\" === this.option(\"validationStatus\") && !!this._pendingIndicator\r\n }\r\n this._disposePendingIndicator()\r\n }\r\n $element.toggleClass(TEXTEDITOR_VALID_CLASS, !!this._showValidMark)\r\n },\r\n _renderButtonContainers: function() {\r\n var buttons = this.option(\"buttons\");\r\n this._$beforeButtonsContainer = this._buttonCollection.renderBeforeButtons(buttons, this._$buttonsContainer);\r\n this._$afterButtonsContainer = this._buttonCollection.renderAfterButtons(buttons, this._$buttonsContainer)\r\n },\r\n _cleanButtonContainers: function() {\r\n var _this$_$beforeButtons, _this$_$afterButtonsC;\r\n null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons.remove();\r\n null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC.remove();\r\n this._buttonCollection.clean()\r\n },\r\n _clean() {\r\n this._buttonCollection.clean();\r\n this._disposePendingIndicator();\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._$textEditorContainer = null;\r\n this._$buttonsContainer = null;\r\n this.callBase()\r\n },\r\n _createInput: function() {\r\n var $input = $(\"\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n return $input\r\n },\r\n _setSubmitElementName: function(name) {\r\n var inputAttrName = this.option(\"inputAttr.name\");\r\n return this.callBase(name || inputAttrName || \"\")\r\n },\r\n _applyInputAttributes: function($input, customAttributes) {\r\n var inputAttributes = extend(this._getDefaultAttributes(), customAttributes);\r\n $input.attr(inputAttributes).addClass(TEXTEDITOR_INPUT_CLASS).css(\"minHeight\", this.option(\"height\") ? \"0\" : \"\")\r\n },\r\n _getDefaultAttributes: function() {\r\n var defaultAttributes = {\r\n autocomplete: \"off\"\r\n };\r\n var {\r\n ios: ios,\r\n mac: mac\r\n } = devices.real();\r\n if (ios || mac) {\r\n defaultAttributes.placeholder = \" \"\r\n }\r\n return defaultAttributes\r\n },\r\n _updateButtons: function(names) {\r\n this._buttonCollection.updateButtons(names)\r\n },\r\n _updateButtonsStyling: function(editorStylingMode) {\r\n each(this.option(\"buttons\"), (_, _ref) => {\r\n var {\r\n options: options,\r\n name: buttonName\r\n } = _ref;\r\n if (options && !options.stylingMode && this.option(\"visible\")) {\r\n var buttonInstance = this.getButton(buttonName);\r\n buttonInstance.option && buttonInstance.option(\"stylingMode\", \"underlined\" === editorStylingMode ? \"text\" : \"contained\")\r\n }\r\n })\r\n },\r\n _renderValue: function() {\r\n var renderInputPromise = this._renderInputValue();\r\n return renderInputPromise.promise()\r\n },\r\n _renderInputValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this.option(\"value\");\r\n var text = this.option(\"text\");\r\n var displayValue = this.option(\"displayValue\");\r\n var displayValueFormatter = this.option(\"displayValueFormatter\");\r\n if (void 0 !== displayValue && null !== value) {\r\n text = displayValueFormatter(displayValue)\r\n } else if (!isDefined(text)) {\r\n text = displayValueFormatter(value)\r\n }\r\n this.option(\"text\", text);\r\n if (this._input().val() !== (isDefined(text) ? text : \"\")) {\r\n this._renderDisplayText(text)\r\n } else {\r\n this._toggleEmptinessEventHandler()\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _renderDisplayText: function(text) {\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _isValueValid: function() {\r\n if (this._input().length) {\r\n var validity = this._input().get(0).validity;\r\n if (validity) {\r\n return validity.valid\r\n }\r\n }\r\n return true\r\n },\r\n _toggleEmptiness: function(isEmpty) {\r\n this.$element().toggleClass(TEXTEDITOR_EMPTY_INPUT_CLASS, isEmpty);\r\n this._togglePlaceholder(isEmpty)\r\n },\r\n _togglePlaceholder: function(isEmpty) {\r\n this.$element().find(\".\".concat(TEXTEDITOR_PLACEHOLDER_CLASS)).eq(0).toggleClass(STATE_INVISIBLE_CLASS, !isEmpty)\r\n },\r\n _renderProps: function() {\r\n this._toggleReadOnlyState();\r\n this._toggleSpellcheckState();\r\n this._toggleTabIndex()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase.apply(this, arguments);\r\n var $input = this._input();\r\n $input.prop(\"disabled\", value)\r\n },\r\n _toggleTabIndex: function() {\r\n var $input = this._input();\r\n var disabled = this.option(\"disabled\");\r\n var focusStateEnabled = this.option(\"focusStateEnabled\");\r\n if (disabled || !focusStateEnabled) {\r\n $input.attr(\"tabIndex\", -1)\r\n } else {\r\n $input.removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _toggleReadOnlyState: function() {\r\n this._input().prop(\"readOnly\", this._readOnlyPropValue());\r\n this.callBase()\r\n },\r\n _readOnlyPropValue: function() {\r\n return this.option(\"readOnly\")\r\n },\r\n _toggleSpellcheckState: function() {\r\n this._input().prop(\"spellcheck\", this.option(\"spellcheck\"))\r\n },\r\n _renderPlaceholder: function() {\r\n this._renderPlaceholderMarkup();\r\n this._attachPlaceholderEvents()\r\n },\r\n _renderPlaceholderMarkup: function() {\r\n if (this._$placeholder) {\r\n this._$placeholder.remove();\r\n this._$placeholder = null\r\n }\r\n var $input = this._input();\r\n var placeholderText = this.option(\"placeholder\");\r\n var $placeholder = this._$placeholder = $(\"
    \").attr(\"data-dx_placeholder\", placeholderText);\r\n $placeholder.insertAfter($input);\r\n $placeholder.addClass(TEXTEDITOR_PLACEHOLDER_CLASS)\r\n },\r\n _attachPlaceholderEvents: function() {\r\n var startEvent = addNamespace(pointerEvents.up, this.NAME);\r\n eventsEngine.on(this._$placeholder, startEvent, () => {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n });\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _placeholder: function() {\r\n return this._$placeholder || $()\r\n },\r\n _clearValueHandler: function(e) {\r\n var $input = this._input();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n this._clearValue();\r\n !this._isFocused() && eventsEngine.trigger($input, \"focus\");\r\n eventsEngine.trigger($input, \"input\")\r\n },\r\n _clearValue: function() {\r\n this.reset()\r\n },\r\n _renderEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n if (this.hasActionSubscription(\"on\" + event)) {\r\n var action = this._createActionByOption(\"on\" + event, {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.on($input, addNamespace(event.toLowerCase(), this.NAME), e => {\r\n if (this._disposed) {\r\n return\r\n }\r\n action({\r\n event: e\r\n })\r\n })\r\n }\r\n })\r\n },\r\n _refreshEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n eventsEngine.off($input, addNamespace(event.toLowerCase(), this.NAME))\r\n });\r\n this._renderEvents()\r\n },\r\n _keyPressHandler: function() {\r\n this.option(\"text\", this._input().val())\r\n },\r\n _keyDownHandler: function(e) {\r\n var $input = this._input();\r\n var isCtrlEnter = e.ctrlKey && \"enter\" === normalizeKeyName(e);\r\n var isNewValue = $input.val() !== this.option(\"value\");\r\n if (isCtrlEnter && isNewValue) {\r\n eventsEngine.trigger($input, \"change\")\r\n }\r\n },\r\n _renderValueChangeEvent: function() {\r\n var keyPressEvent = addNamespace(this._renderValueEventName(), \"\".concat(this.NAME, \"TextChange\"));\r\n var valueChangeEvent = addNamespace(this.option(\"valueChangeEvent\"), \"\".concat(this.NAME, \"ValueChange\"));\r\n var keyDownEvent = addNamespace(\"keydown\", \"\".concat(this.NAME, \"TextChange\"));\r\n var $input = this._input();\r\n eventsEngine.on($input, keyPressEvent, this._keyPressHandler.bind(this));\r\n eventsEngine.on($input, valueChangeEvent, this._valueChangeEventHandler.bind(this));\r\n eventsEngine.on($input, keyDownEvent, this._keyDownHandler.bind(this))\r\n },\r\n _cleanValueChangeEvent: function() {\r\n var valueChangeNamespace = \".\".concat(this.NAME, \"ValueChange\");\r\n var textChangeNamespace = \".\".concat(this.NAME, \"TextChange\");\r\n eventsEngine.off(this._input(), valueChangeNamespace);\r\n eventsEngine.off(this._input(), textChangeNamespace)\r\n },\r\n _refreshValueChangeEvent: function() {\r\n this._cleanValueChangeEvent();\r\n this._renderValueChangeEvent()\r\n },\r\n _renderValueEventName: function() {\r\n return \"input change keypress\"\r\n },\r\n _focusTarget: function() {\r\n return this._input()\r\n },\r\n _focusEventTarget: function() {\r\n return this.element()\r\n },\r\n _isInput: function(element) {\r\n return element === this._input().get(0)\r\n },\r\n _preventNestedFocusEvent: function(event) {\r\n if (event.isDefaultPrevented()) {\r\n return true\r\n }\r\n var result = this._isNestedTarget(event.relatedTarget);\r\n if (\"focusin\" === event.type) {\r\n result = result && this._isNestedTarget(event.target) && !this._isInput(event.target)\r\n }\r\n result && event.preventDefault();\r\n return result\r\n },\r\n _isNestedTarget: function(target) {\r\n return !!this.$element().find(target).length\r\n },\r\n _focusClassTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _toggleFocusClass: function(isFocused, $element) {\r\n this.callBase(isFocused, this._focusClassTarget($element))\r\n },\r\n _hasFocusClass: function(element) {\r\n return this.callBase($(element || this.$element()))\r\n },\r\n _renderEmptinessEvent: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, \"input blur\", this._toggleEmptinessEventHandler.bind(this))\r\n },\r\n _toggleEmptinessEventHandler: function() {\r\n var text = this._input().val();\r\n var isEmpty = (\"\" === text || null === text) && this._isValueValid();\r\n this._toggleEmptiness(isEmpty)\r\n },\r\n _valueChangeEventHandler: function(e, formattedValue) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", arguments.length > 1 ? formattedValue : this._input().val());\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _renderEnterKeyAction: function() {\r\n this._enterKeyAction = this._createActionByOption(\"onEnterKey\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.off(this._input(), \"keyup.onEnterKey.dxTextEditor\");\r\n eventsEngine.on(this._input(), \"keyup.onEnterKey.dxTextEditor\", this._enterKeyHandlerUp.bind(this))\r\n },\r\n _enterKeyHandlerUp: function(e) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (\"enter\" === normalizeKeyName(e)) {\r\n this._enterKeyAction({\r\n event: e\r\n })\r\n }\r\n },\r\n _updateValue: function() {\r\n this._options.silent(\"text\", null);\r\n this._renderValue()\r\n },\r\n _dispose: function() {\r\n this._enterKeyAction = void 0;\r\n this.callBase()\r\n },\r\n _getSubmitElement: function() {\r\n return this._input()\r\n },\r\n _hasActiveElement: function() {\r\n return this._input().is(domAdapter.getActiveElement())\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = args;\r\n if (inArray(name.replace(\"on\", \"\"), EVENTS_LIST) > -1) {\r\n this._refreshEvents();\r\n return\r\n }\r\n switch (name) {\r\n case \"valueChangeEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"focusStateEnabled\":\r\n this.callBase(args);\r\n this._toggleTabIndex();\r\n break;\r\n case \"spellcheck\":\r\n this._toggleSpellcheckState();\r\n break;\r\n case \"mode\":\r\n this._renderInputType();\r\n break;\r\n case \"onEnterKey\":\r\n this._renderEnterKeyAction();\r\n break;\r\n case \"placeholder\":\r\n this._renderPlaceholder();\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this._updateButtons();\r\n this.callBase(args);\r\n break;\r\n case \"showClearButton\":\r\n this._updateButtons([\"clear\"]);\r\n break;\r\n case \"text\":\r\n break;\r\n case \"value\":\r\n this._updateValue();\r\n this.callBase(args);\r\n break;\r\n case \"inputAttr\":\r\n this._applyInputAttributes(this._input(), this.option(name));\r\n break;\r\n case \"stylingMode\":\r\n this._renderStylingMode();\r\n break;\r\n case \"buttons\":\r\n if (fullName === name) {\r\n checkButtonsOptionType(value)\r\n }\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"));\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (value && this.option(\"buttons\")) {\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n }\r\n break;\r\n case \"displayValueFormatter\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationMark\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _renderInputType: function() {\r\n this._setInputType(this.option(\"mode\"))\r\n },\r\n _setInputType: function(type) {\r\n var input = this._input();\r\n if (\"search\" === type) {\r\n type = \"text\"\r\n }\r\n try {\r\n input.prop(\"type\", type)\r\n } catch (e) {\r\n input.prop(\"type\", \"text\")\r\n }\r\n },\r\n getButton(name) {\r\n return this._buttonCollection.getButton(name)\r\n },\r\n focus: function() {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n },\r\n reset: function() {\r\n if (this._showValidMark) {\r\n this._showValidMark = false;\r\n this._renderValidationState()\r\n }\r\n var defaultOptions = this._getDefaultOptions();\r\n if (this.option(\"value\") === defaultOptions.value) {\r\n this._options.silent(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n },\r\n on: function(eventName, eventHandler) {\r\n var result = this.callBase(eventName, eventHandler);\r\n var event = eventName.charAt(0).toUpperCase() + eventName.substr(1);\r\n if (EVENTS_LIST.indexOf(event) >= 0) {\r\n this._refreshEvents()\r\n }\r\n return result\r\n }\r\n});\r\nexport default TextEditorBase;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.base.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n clipboardText as getClipboardText\r\n} from \"../../core/utils/dom\";\r\nvar MASK_EVENT_NAMESPACE = \"dxMask\";\r\nvar BLUR_EVENT = \"blur beforedeactivate\";\r\nvar EMPTY_CHAR = \" \";\r\nexport default class BaseMaskStrategy {\r\n constructor(editor) {\r\n this.editor = editor;\r\n this.DIRECTION = {\r\n FORWARD: \"forward\",\r\n BACKWARD: \"backward\"\r\n };\r\n this.NAME = this._getStrategyName()\r\n }\r\n _getStrategyName() {\r\n return \"base\"\r\n }\r\n editorOption() {\r\n return this.editor.option(...arguments)\r\n }\r\n editorInput() {\r\n return this.editor._input()\r\n }\r\n editorCaret(newCaret) {\r\n if (!newCaret) {\r\n return this.editor._caret()\r\n }\r\n this.editor._caret(newCaret)\r\n }\r\n getHandler(handlerName) {\r\n var handler = this[\"_\".concat(handlerName, \"Handler\")] || function() {};\r\n return handler.bind(this)\r\n }\r\n attachEvents() {\r\n var $input = this.editorInput();\r\n this.getHandleEventNames().forEach(eventName => {\r\n var subscriptionName = addNamespace(eventName.toLowerCase(), MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, subscriptionName, this.getEventHandler(eventName))\r\n });\r\n this._attachChangeEventHandlers()\r\n }\r\n getHandleEventNames() {\r\n return [\"focusIn\", \"focusOut\", \"keyDown\", \"input\", \"paste\", \"cut\", \"drop\"]\r\n }\r\n getEventHandler(eventName) {\r\n return this[\"_\".concat(eventName, \"Handler\")].bind(this)\r\n }\r\n detachEvents() {\r\n EventsEngine.off(this.editorInput(), \".\".concat(MASK_EVENT_NAMESPACE))\r\n }\r\n _attachChangeEventHandlers() {\r\n if (-1 === inArray(\"change\", this.editorOption(\"valueChangeEvent\").split(\" \"))) {\r\n return\r\n }\r\n EventsEngine.on(this.editorInput(), addNamespace(BLUR_EVENT, MASK_EVENT_NAMESPACE), function(e) {\r\n this._suppressCaretChanging(this._changeHandler, [e]);\r\n this._changeHandler(e)\r\n }.bind(this.editor))\r\n }\r\n _focusInHandler() {\r\n this.editor._showMaskPlaceholder();\r\n this.editor._direction(this.DIRECTION.FORWARD);\r\n if (!this.editor._isValueEmpty() && this.editorOption(\"isValid\")) {\r\n this.editor._adjustCaret()\r\n } else {\r\n var caret = this.editor._maskRulesChain.first();\r\n this._caretTimeout = setTimeout(function() {\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n }.bind(this.editor), 0)\r\n }\r\n }\r\n _focusOutHandler(event) {\r\n this.editor._changeHandler(event);\r\n if (\"onFocus\" === this.editorOption(\"showMaskMode\") && this.editor._isValueEmpty()) {\r\n this.editorOption(\"text\", \"\");\r\n this.editor._renderDisplayText(\"\")\r\n }\r\n }\r\n _cutHandler(event) {\r\n var caret = this.editorCaret();\r\n var selectedText = this.editorInput().val().substring(caret.start, caret.end);\r\n this.editor._maskKeyHandler(event, () => getClipboardText(event, selectedText))\r\n }\r\n _dropHandler() {\r\n this._clearDragTimer();\r\n this._dragTimer = setTimeout(function() {\r\n this.option(\"value\", this._convertToValue(this._input().val()))\r\n }.bind(this.editor))\r\n }\r\n _clearDragTimer() {\r\n clearTimeout(this._dragTimer)\r\n }\r\n _keyDownHandler() {\r\n this._keyPressHandled = false\r\n }\r\n _pasteHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\r\n var caret = this.editorCaret();\r\n editor._maskKeyHandler(event, () => {\r\n var pastedText = getClipboardText(event);\r\n var restText = editor._maskRulesChain.text().substring(caret.end);\r\n var accepted = editor._handleChain({\r\n text: pastedText,\r\n start: caret.start,\r\n length: pastedText.length\r\n });\r\n var newCaret = caret.start + accepted;\r\n editor._handleChain({\r\n text: restText,\r\n start: newCaret,\r\n length: restText.length\r\n });\r\n editor._caret({\r\n start: newCaret,\r\n end: newCaret\r\n })\r\n })\r\n }\r\n _autoFillHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var inputVal = this.editorInput().val();\r\n this._inputHandlerTimer = setTimeout(() => {\r\n this._keyPressHandled = true;\r\n if (this._isAutoFill()) {\r\n this._keyPressHandled = true;\r\n editor._maskKeyHandler(event, () => {\r\n editor._handleChain({\r\n text: inputVal,\r\n start: 0,\r\n length: inputVal.length\r\n })\r\n });\r\n editor._validateMask()\r\n }\r\n })\r\n }\r\n _isAutoFill() {\r\n var $input = this.editor._input();\r\n var result = false;\r\n if (browser.msie && browser.version > 11) {\r\n result = $input.hasClass(\"edge-autofilled\")\r\n } else if (browser.webkit) {\r\n var input = $input.get(0);\r\n result = input && input.matches(\":-webkit-autofill\")\r\n }\r\n return result\r\n }\r\n runWithoutEventProcessing(action) {\r\n var keyPressHandled = this._keyPressHandled;\r\n this._keyPressHandled = true;\r\n action();\r\n this._keyPressHandled = keyPressHandled\r\n }\r\n _backspaceHandler() {}\r\n _delHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\r\n editor._maskKeyHandler(event, () => !editor._hasSelection() && editor._handleKey(EMPTY_CHAR))\r\n }\r\n clean() {\r\n this._clearDragTimer();\r\n clearTimeout(this._backspaceHandlerTimeout);\r\n clearTimeout(this._caretTimeout);\r\n clearTimeout(this._inputHandlerTimer)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.default.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport BaseMaskStrategy from \"./ui.text_editor.mask.strategy.base\";\r\nimport {\r\n getChar\r\n} from \"../../events/utils/index\";\r\nimport Promise from \"../../core/polyfills/promise\";\r\nvar BACKSPACE_INPUT_TYPE = \"deleteContentBackward\";\r\nvar EMPTY_CHAR = \" \";\r\nclass DefaultMaskStrategy extends BaseMaskStrategy {\r\n _getStrategyName() {\r\n return \"default\"\r\n }\r\n getHandleEventNames() {\r\n return [...super.getHandleEventNames(), \"keyPress\"]\r\n }\r\n _keyPressHandler(event) {\r\n if (this._keyPressHandled) {\r\n return\r\n }\r\n this._keyPressHandled = true;\r\n if (this.editor._isControlKeyFired(event)) {\r\n return\r\n }\r\n var {\r\n editor: editor\r\n } = this;\r\n editor._maskKeyHandler(event, () => editor._handleKey(getChar(event)))\r\n }\r\n _inputHandler(event) {\r\n if (this._backspaceInputHandled(event.originalEvent && event.originalEvent.inputType)) {\r\n this._handleBackspaceInput(event)\r\n }\r\n if (event.originalEvent) {\r\n this._autoFillHandler(event)\r\n }\r\n if (this._keyPressHandled) {\r\n return\r\n }\r\n this._keyPressHandled = true;\r\n var inputValue = this.editorInput().val();\r\n var caret = this.editorCaret();\r\n if (!caret.end) {\r\n return\r\n }\r\n caret.start = caret.end - 1;\r\n var oldValue = inputValue.substring(0, caret.start) + inputValue.substring(caret.end);\r\n var char = inputValue[caret.start];\r\n var {\r\n editor: editor\r\n } = this;\r\n this.editorInput().val(oldValue);\r\n editor._caret({\r\n start: caret.start,\r\n end: caret.start\r\n });\r\n editor._maskKeyHandler(event, () => editor._handleKey(char))\r\n }\r\n _backspaceHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\r\n var afterBackspaceHandler = (needAdjustCaret, callBack) => {\r\n if (needAdjustCaret) {\r\n editor._direction(this.DIRECTION.FORWARD);\r\n editor._adjustCaret()\r\n }\r\n var currentCaret = this.editorCaret();\r\n return new Promise(resolve => {\r\n clearTimeout(this._backspaceHandlerTimeout);\r\n this._backspaceHandlerTimeout = setTimeout((function() {\r\n callBack(currentCaret);\r\n resolve()\r\n }))\r\n })\r\n };\r\n editor._maskKeyHandler(event, () => {\r\n if (editor._hasSelection()) {\r\n return afterBackspaceHandler(true, currentCaret => {\r\n editor._displayMask(currentCaret);\r\n editor._maskRulesChain.reset()\r\n })\r\n }\r\n if (editor._tryMoveCaretBackward()) {\r\n return afterBackspaceHandler(false, currentCaret => {\r\n this.editorCaret(currentCaret)\r\n })\r\n }\r\n editor._handleKey(EMPTY_CHAR, this.DIRECTION.BACKWARD);\r\n return afterBackspaceHandler(true, currentCaret => {\r\n editor._displayMask(currentCaret);\r\n editor._maskRulesChain.reset()\r\n })\r\n })\r\n }\r\n _backspaceInputHandled(inputType) {\r\n return inputType === BACKSPACE_INPUT_TYPE && !this._keyPressHandled\r\n }\r\n _handleBackspaceInput(event) {\r\n var {\r\n start: start,\r\n end: end\r\n } = this.editorCaret();\r\n this.editorCaret({\r\n start: start + 1,\r\n end: end + 1\r\n });\r\n this._backspaceHandler(event)\r\n }\r\n}\r\nexport default DefaultMaskStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.input_events.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport BaseMaskStrategy from \"./ui.text_editor.mask.strategy.base\";\r\nvar DELETE_INPUT_TYPE = \"deleteContentBackward\";\r\nclass InputEventsMaskStrategy extends BaseMaskStrategy {\r\n _getStrategyName() {\r\n return \"inputEvents\"\r\n }\r\n getHandleEventNames() {\r\n return [...super.getHandleEventNames(), \"beforeInput\"]\r\n }\r\n _beforeInputHandler() {\r\n this._prevCaret = this.editorCaret()\r\n }\r\n _inputHandler(_ref) {\r\n var {\r\n originalEvent: originalEvent\r\n } = _ref;\r\n if (!originalEvent) {\r\n return\r\n }\r\n var {\r\n inputType: inputType,\r\n data: data\r\n } = originalEvent;\r\n var currentCaret = this.editorCaret();\r\n if (inputType === DELETE_INPUT_TYPE) {\r\n var length = this._prevCaret.end - this._prevCaret.start || 1;\r\n this.editor.setBackwardDirection();\r\n this._updateEditorMask({\r\n start: currentCaret.start,\r\n length: length,\r\n text: this._getEmptyString(length)\r\n })\r\n } else {\r\n var _this$_prevCaret, _this$_prevCaret2, _this$_prevCaret3;\r\n if (!currentCaret.end) {\r\n return\r\n }\r\n this._autoFillHandler(originalEvent);\r\n this.editorCaret(currentCaret);\r\n var _length = (null === (_this$_prevCaret = this._prevCaret) || void 0 === _this$_prevCaret ? void 0 : _this$_prevCaret.end) - (null === (_this$_prevCaret2 = this._prevCaret) || void 0 === _this$_prevCaret2 ? void 0 : _this$_prevCaret2.start);\r\n var newData = data + (_length ? this._getEmptyString(_length - data.length) : \"\");\r\n this.editor.setForwardDirection();\r\n var hasValidChars = this._updateEditorMask({\r\n start: null === (_this$_prevCaret3 = this._prevCaret) || void 0 === _this$_prevCaret3 ? void 0 : _this$_prevCaret3.start,\r\n length: _length || newData.length,\r\n text: newData\r\n });\r\n if (!hasValidChars) {\r\n this.editorCaret(this._prevCaret)\r\n }\r\n }\r\n }\r\n _getEmptyString(length) {\r\n return Array(length + 1).join(\" \")\r\n }\r\n _updateEditorMask(args) {\r\n var textLength = args.text.length;\r\n var updatedCharsCount = this.editor._handleChain(args);\r\n if (this.editor.isForwardDirection()) {\r\n var {\r\n start: start,\r\n end: end\r\n } = this.editorCaret();\r\n var correction = updatedCharsCount - textLength;\r\n if (start <= updatedCharsCount && updatedCharsCount > 1) {\r\n this.editorCaret({\r\n start: start + correction,\r\n end: end + correction\r\n })\r\n }\r\n this.editor.isForwardDirection() && this.editor._adjustCaret()\r\n }\r\n this.editor._displayMask();\r\n return !!updatedCharsCount\r\n }\r\n}\r\nexport default InputEventsMaskStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport caretUtils from \"./utils.caret\";\r\nimport {\r\n isInputEventsL2Supported\r\n} from \"./utils.support\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/string\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../events/core/wheel\";\r\nimport {\r\n EmptyMaskRule,\r\n StubMaskRule,\r\n MaskRule\r\n} from \"./ui.text_editor.mask.rule\";\r\nimport TextEditorBase from \"./ui.text_editor.base\";\r\nimport DefaultMaskStrategy from \"./ui.text_editor.mask.strategy.default\";\r\nimport InputEventsMaskStrategy from \"./ui.text_editor.mask.strategy.input_events\";\r\nvar stubCaret = function() {\r\n return {}\r\n};\r\nvar caret = caretUtils;\r\nvar EMPTY_CHAR = \" \";\r\nvar ESCAPED_CHAR = \"\\\\\";\r\nvar TEXTEDITOR_MASKED_CLASS = \"dx-texteditor-masked\";\r\nvar FORWARD_DIRECTION = \"forward\";\r\nvar BACKWARD_DIRECTION = \"backward\";\r\nvar buildInMaskRules = {\r\n 0: /[0-9]/,\r\n 9: /[0-9\\s]/,\r\n \"#\": /[-+0-9\\s]/,\r\n L: function(char) {\r\n return isLiteralChar(char)\r\n },\r\n l: function(char) {\r\n return isLiteralChar(char) || isSpaceChar(char)\r\n },\r\n C: /\\S/,\r\n c: /./,\r\n A: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char)\r\n },\r\n a: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char) || isSpaceChar(char)\r\n }\r\n};\r\n\r\nfunction isNumericChar(char) {\r\n return /[0-9]/.test(char)\r\n}\r\n\r\nfunction isLiteralChar(char) {\r\n var code = char.charCodeAt();\r\n return 64 < code && code < 91 || 96 < code && code < 123 || code > 127\r\n}\r\n\r\nfunction isSpaceChar(char) {\r\n return \" \" === char\r\n}\r\nvar TextEditorMask = TextEditorBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n mask: \"\",\r\n maskChar: \"_\",\r\n maskRules: {},\r\n maskInvalidMessage: messageLocalization.format(\"validation-mask\"),\r\n useMaskedValue: false,\r\n showMaskMode: \"always\"\r\n })\r\n },\r\n _supportedKeys: function() {\r\n var that = this;\r\n var keyHandlerMap = {\r\n backspace: that._maskStrategy.getHandler(\"backspace\"),\r\n del: that._maskStrategy.getHandler(\"del\"),\r\n enter: that._changeHandler\r\n };\r\n var result = that.callBase();\r\n each(keyHandlerMap, (function(key, callback) {\r\n var parentHandler = result[key];\r\n result[key] = function(e) {\r\n that.option(\"mask\") && callback.call(that, e);\r\n parentHandler && parentHandler(e)\r\n }\r\n }));\r\n return result\r\n },\r\n _getSubmitElement: function() {\r\n return !this.option(\"mask\") ? this.callBase() : this._$hiddenElement\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initMaskStrategy()\r\n },\r\n _initMaskStrategy: function() {\r\n this._maskStrategy = isInputEventsL2Supported() ? new InputEventsMaskStrategy(this) : new DefaultMaskStrategy(this)\r\n },\r\n _initMarkup: function() {\r\n this._renderHiddenElement();\r\n this.callBase()\r\n },\r\n _attachMouseWheelEventHandlers: function() {\r\n var hasMouseWheelHandler = this._onMouseWheel !== noop;\r\n if (!hasMouseWheelHandler) {\r\n return\r\n }\r\n var input = this._input();\r\n var eventName = addNamespace(wheelEventName, this.NAME);\r\n var mouseWheelAction = this._createAction(function(e) {\r\n var {\r\n event: event\r\n } = e;\r\n if (focused(input) && !isCommandKeyPressed(event)) {\r\n this._onMouseWheel(event);\r\n event.preventDefault();\r\n event.stopPropagation()\r\n }\r\n }.bind(this));\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, (function(e) {\r\n mouseWheelAction({\r\n event: e\r\n })\r\n }))\r\n },\r\n _onMouseWheel: noop,\r\n _render: function() {\r\n this._renderMask();\r\n this.callBase();\r\n this._attachMouseWheelEventHandlers()\r\n },\r\n _renderHiddenElement: function() {\r\n if (this.option(\"mask\")) {\r\n this._$hiddenElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this._inputWrapper())\r\n }\r\n },\r\n _removeHiddenElement: function() {\r\n this._$hiddenElement && this._$hiddenElement.remove()\r\n },\r\n _renderMask: function() {\r\n this.$element().removeClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskRulesChain = null;\r\n this._maskStrategy.detachEvents();\r\n if (!this.option(\"mask\")) {\r\n return\r\n }\r\n this.$element().addClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskStrategy.attachEvents();\r\n this._parseMask();\r\n this._renderMaskedValue()\r\n },\r\n _suppressCaretChanging: function(callback, args) {\r\n caret = stubCaret;\r\n try {\r\n callback.apply(this, args)\r\n } finally {\r\n caret = caretUtils\r\n }\r\n },\r\n _changeHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = $input.val();\r\n if (inputValue === this._changedValue) {\r\n return\r\n }\r\n this._changedValue = inputValue;\r\n var changeEvent = createEvent(e, {\r\n type: \"change\"\r\n });\r\n eventsEngine.trigger($input, changeEvent)\r\n },\r\n _parseMask: function() {\r\n this._maskRules = extend({}, buildInMaskRules, this.option(\"maskRules\"));\r\n this._maskRulesChain = this._parseMaskRule(0)\r\n },\r\n _parseMaskRule: function(index) {\r\n var mask = this.option(\"mask\");\r\n if (index >= mask.length) {\r\n return new EmptyMaskRule\r\n }\r\n var currentMaskChar = mask[index];\r\n var isEscapedChar = currentMaskChar === ESCAPED_CHAR;\r\n var result = isEscapedChar ? new StubMaskRule({\r\n maskChar: mask[index + 1]\r\n }) : this._getMaskRule(currentMaskChar);\r\n result.next(this._parseMaskRule(index + 1 + isEscapedChar));\r\n return result\r\n },\r\n _getMaskRule: function(pattern) {\r\n var ruleConfig;\r\n each(this._maskRules, (function(rulePattern, allowedChars) {\r\n if (rulePattern === pattern) {\r\n ruleConfig = {\r\n pattern: rulePattern,\r\n allowedChars: allowedChars\r\n };\r\n return false\r\n }\r\n }));\r\n return isDefined(ruleConfig) ? new MaskRule(extend({\r\n maskChar: this.option(\"maskChar\")\r\n }, ruleConfig)) : new StubMaskRule({\r\n maskChar: pattern\r\n })\r\n },\r\n _renderMaskedValue: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var value = this.option(\"value\") || \"\";\r\n this._maskRulesChain.clear(this._normalizeChainArguments());\r\n var chainArgs = {\r\n length: value.length\r\n };\r\n chainArgs[this._isMaskedValueMode() ? \"text\" : \"value\"] = value;\r\n this._handleChain(chainArgs);\r\n this._displayMask()\r\n },\r\n _replaceSelectedText: function(text, selection, char) {\r\n if (void 0 === char) {\r\n return text\r\n }\r\n var textBefore = text.slice(0, selection.start);\r\n var textAfter = text.slice(selection.end);\r\n var edited = textBefore + char + textAfter;\r\n return edited\r\n },\r\n _isMaskedValueMode: function() {\r\n return this.option(\"useMaskedValue\")\r\n },\r\n _displayMask: function(caret) {\r\n caret = caret || this._caret();\r\n this._renderValue();\r\n this._caret(caret)\r\n },\r\n _isValueEmpty: function() {\r\n return isEmpty(this._value)\r\n },\r\n _shouldShowMask: function() {\r\n var showMaskMode = this.option(\"showMaskMode\");\r\n if (\"onFocus\" === showMaskMode) {\r\n return focused(this._input()) || !this._isValueEmpty()\r\n }\r\n return true\r\n },\r\n _showMaskPlaceholder: function() {\r\n if (this._shouldShowMask()) {\r\n var text = this._maskRulesChain.text();\r\n this.option(\"text\", text);\r\n if (\"onFocus\" === this.option(\"showMaskMode\")) {\r\n this._renderDisplayText(text)\r\n }\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._maskRulesChain) {\r\n this._showMaskPlaceholder();\r\n if (this._$hiddenElement) {\r\n var value = this._maskRulesChain.value();\r\n var submitElementValue = !isEmpty(value) ? this._getPreparedValue() : \"\";\r\n this._$hiddenElement.val(submitElementValue)\r\n }\r\n }\r\n return this.callBase()\r\n },\r\n _getPreparedValue: function() {\r\n return this._convertToValue().replace(/\\s+$/, \"\")\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._maskRulesChain) {\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", this._getPreparedValue())\r\n },\r\n _isControlKeyFired: function(e) {\r\n return this._isControlKey(normalizeKeyName(e)) || isCommandKeyPressed(e)\r\n },\r\n _handleChain: function(args) {\r\n var handledCount = this._maskRulesChain.handle(this._normalizeChainArguments(args));\r\n this._value = this._maskRulesChain.value();\r\n this._textValue = this._maskRulesChain.text();\r\n return handledCount\r\n },\r\n _normalizeChainArguments: function(args) {\r\n args = args || {};\r\n args.index = 0;\r\n args.fullText = this._maskRulesChain.text();\r\n return args\r\n },\r\n _convertToValue: function(text) {\r\n if (this._isMaskedValueMode()) {\r\n text = this._replaceMaskCharWithEmpty(text || this._textValue || \"\")\r\n } else {\r\n text = text || this._value || \"\"\r\n }\r\n return text\r\n },\r\n _replaceMaskCharWithEmpty: function(text) {\r\n return text.replace(new RegExp(this.option(\"maskChar\"), \"g\"), EMPTY_CHAR)\r\n },\r\n _maskKeyHandler: function(e, keyHandler) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this.setForwardDirection();\r\n e.preventDefault();\r\n this._handleSelection();\r\n var previousText = this._input().val();\r\n var raiseInputEvent = () => {\r\n if (previousText !== this._input().val()) {\r\n this._maskStrategy.runWithoutEventProcessing(() => eventsEngine.trigger(this._input(), \"input\"))\r\n }\r\n };\r\n var handled = keyHandler();\r\n if (handled) {\r\n handled.then(raiseInputEvent)\r\n } else {\r\n this.setForwardDirection();\r\n this._adjustCaret();\r\n this._displayMask();\r\n this._maskRulesChain.reset();\r\n raiseInputEvent()\r\n }\r\n },\r\n _handleKey: function(key, direction) {\r\n this._direction(direction || FORWARD_DIRECTION);\r\n this._adjustCaret(key);\r\n this._handleKeyChain(key);\r\n this._moveCaret()\r\n },\r\n _handleSelection: function() {\r\n if (!this._hasSelection()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n var emptyChars = new Array(caret.end - caret.start + 1).join(EMPTY_CHAR);\r\n this._handleKeyChain(emptyChars)\r\n },\r\n _handleKeyChain: function(chars) {\r\n var caret = this._caret();\r\n var start = this.isForwardDirection() ? caret.start : caret.start - 1;\r\n var end = this.isForwardDirection() ? caret.end : caret.end - 1;\r\n var length = start === end ? 1 : end - start;\r\n this._handleChain({\r\n text: chars,\r\n start: start,\r\n length: length\r\n })\r\n },\r\n _tryMoveCaretBackward: function() {\r\n this.setBackwardDirection();\r\n var currentCaret = this._caret().start;\r\n this._adjustCaret();\r\n return !currentCaret || currentCaret !== this._caret().start\r\n },\r\n _adjustCaret: function(char) {\r\n var caret = this._maskRulesChain.adjustedCaret(this._caret().start, this.isForwardDirection(), char);\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _moveCaret: function() {\r\n var currentCaret = this._caret().start;\r\n var maskRuleIndex = currentCaret + (this.isForwardDirection() ? 0 : -1);\r\n var caret = this._maskRulesChain.isAccepted(maskRuleIndex) ? currentCaret + (this.isForwardDirection() ? 1 : -1) : currentCaret;\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _caret: function(position, force) {\r\n var $input = this._input();\r\n if (!$input.length) {\r\n return\r\n }\r\n if (!arguments.length) {\r\n return caret($input)\r\n }\r\n caret($input, position, force)\r\n },\r\n _hasSelection: function() {\r\n var caret = this._caret();\r\n return caret.start !== caret.end\r\n },\r\n _direction: function(direction) {\r\n if (!arguments.length) {\r\n return this._typingDirection\r\n }\r\n this._typingDirection = direction\r\n },\r\n setForwardDirection: function() {\r\n this._direction(FORWARD_DIRECTION)\r\n },\r\n setBackwardDirection: function() {\r\n this._direction(BACKWARD_DIRECTION)\r\n },\r\n isForwardDirection: function() {\r\n return this._direction() === FORWARD_DIRECTION\r\n },\r\n _clean: function() {\r\n this._maskStrategy && this._maskStrategy.clean();\r\n this.callBase()\r\n },\r\n _validateMask: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var isValid = isEmpty(this.option(\"value\")) || this._maskRulesChain.isValid(this._normalizeChainArguments());\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"maskInvalidMessage\")\r\n }\r\n })\r\n },\r\n _updateHiddenElement: function() {\r\n this._removeHiddenElement();\r\n if (this.option(\"mask\")) {\r\n this._input().removeAttr(\"name\");\r\n this._renderHiddenElement()\r\n }\r\n this._setSubmitElementName(this.option(\"name\"))\r\n },\r\n _updateMaskOption: function() {\r\n this._updateHiddenElement();\r\n this._renderMask();\r\n this._validateMask()\r\n },\r\n _processEmptyMask: function(mask) {\r\n if (mask) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n this.option({\r\n text: value,\r\n isValid: true\r\n });\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n });\r\n this._renderValue()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"mask\":\r\n this._updateMaskOption();\r\n this._processEmptyMask(args.value);\r\n break;\r\n case \"maskChar\":\r\n case \"maskRules\":\r\n case \"useMaskedValue\":\r\n this._updateMaskOption();\r\n break;\r\n case \"value\":\r\n this._renderMaskedValue();\r\n this._validateMask();\r\n this.callBase(args);\r\n this._changedValue = this._input().val();\r\n break;\r\n case \"maskInvalidMessage\":\r\n break;\r\n case \"showMaskMode\":\r\n this.option(\"text\", \"\");\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditorMask from \"./ui.text_editor.mask\";\r\nregisterComponent(\"dxTextEditor\", TextEditorMask);\r\nexport default TextEditorMask;\r\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.live_update.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidget from \"./ui.collection_widget.edit\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n update,\r\n insert,\r\n indexByKey\r\n} from \"../../data/array_utils\";\r\nimport {\r\n keysEqual\r\n} from \"../../data/utils\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n findChanges\r\n} from \"../../core/utils/array_compare\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar PRIVATE_KEY_FIELD = \"__dx_key__\";\r\nexport default CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n repaintChangesOnly: false\r\n })\r\n },\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._customizeStoreLoadOptions = e => {\r\n var dataSource = this._dataSource;\r\n if (dataSource && !dataSource.isLoaded()) {\r\n this._correctionIndex = 0\r\n }\r\n if (this._correctionIndex && e.storeLoadOptions) {\r\n e.storeLoadOptions.skip += this._correctionIndex\r\n }\r\n }, this._dataSource && this._dataSource.on(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions)\r\n },\r\n reload: function() {\r\n this._correctionIndex = 0\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._refreshItemsCache();\r\n this._correctionIndex = 0\r\n },\r\n _findItemElementByKey: function(key) {\r\n var result = $();\r\n var keyExpr = this.key();\r\n this.itemElements().each((_, item) => {\r\n var $item = $(item);\r\n var itemData = this._getItemData($item);\r\n if (keyExpr ? keysEqual(keyExpr, this.keyOf(itemData), key) : this._isItemEquals(itemData, key)) {\r\n result = $item;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler: function(newItems, e) {\r\n if (null !== e && void 0 !== e && e.changes) {\r\n this._modifyByChanges(e.changes)\r\n } else {\r\n this.callBase(newItems, e);\r\n this._refreshItemsCache()\r\n }\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (item1 && item1[PRIVATE_KEY_FIELD]) {\r\n item1 = item1.data\r\n }\r\n try {\r\n return JSON.stringify(item1) === JSON.stringify(item2)\r\n } catch (e) {\r\n return item1 === item2\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n return this._isItemEquals(item1, item2)\r\n },\r\n _shouldAddNewGroup: function(changes, items) {\r\n var result = false;\r\n if (this.option(\"grouped\")) {\r\n each(changes, (i, change) => {\r\n if (\"insert\" === change.type) {\r\n result = true;\r\n each(items, (_, item) => {\r\n if (change.data.key === item.key) {\r\n result = false;\r\n return false\r\n }\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _partialRefresh: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var result = findChanges(this._itemsCache, this._editStrategy.itemsGetter(), data => {\r\n if (data && void 0 !== data[PRIVATE_KEY_FIELD]) {\r\n return data[PRIVATE_KEY_FIELD]\r\n }\r\n return this.keyOf(data)\r\n }, this._isItemStrictEquals.bind(this));\r\n if (result && this._itemsCache.length && !this._shouldAddNewGroup(result, this._itemsCache)) {\r\n this._modifyByChanges(result, true);\r\n this._renderEmptyMessage();\r\n return true\r\n } else {\r\n this._refreshItemsCache()\r\n }\r\n }\r\n return false\r\n },\r\n _refreshItemsCache: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var items = this._editStrategy.itemsGetter();\r\n try {\r\n this._itemsCache = extend(true, [], items);\r\n if (!this.key()) {\r\n this._itemsCache = this._itemsCache.map((itemCache, index) => ({\r\n [PRIVATE_KEY_FIELD]: items[index],\r\n data: itemCache\r\n }))\r\n }\r\n } catch (e) {\r\n this._itemsCache = extend([], items)\r\n }\r\n }\r\n },\r\n _dispose: function() {\r\n this._dataSource && this._dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions);\r\n this.callBase()\r\n },\r\n _updateByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n if (isPartialRefresh) {\r\n this._renderItem(change.index, change.data, null, this._findItemElementByKey(change.key))\r\n } else {\r\n var changedItem = items[indexByKey(keyInfo, items, change.key)];\r\n if (changedItem) {\r\n update(keyInfo, items, change.key, change.data).done(() => {\r\n this._renderItem(items.indexOf(changedItem), changedItem, null, this._findItemElementByKey(change.key))\r\n })\r\n }\r\n }\r\n },\r\n _insertByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n when(isPartialRefresh || insert(keyInfo, items, change.data, change.index)).done(() => {\r\n var _change$index;\r\n this._beforeItemElementInserted(change);\r\n var $itemContainer = this._getItemContainer(change.data);\r\n this._renderItem(null !== (_change$index = change.index) && void 0 !== _change$index ? _change$index : items.length, change.data, $itemContainer);\r\n this._afterItemElementInserted();\r\n this._correctionIndex++\r\n })\r\n },\r\n _getItemContainer: function(changeData) {\r\n return this._itemContainer()\r\n },\r\n _updateSelectionAfterRemoveByChange: function(removeIndex) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (selectedIndex > removeIndex) {\r\n this.option(\"selectedIndex\", selectedIndex - 1)\r\n } else if (selectedIndex === removeIndex && 1 === this.option(\"selectedItems\").length) {\r\n this.option(\"selectedItems\", [])\r\n } else {\r\n this._normalizeSelectedItems()\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (change.index <= selectedIndex) {\r\n this.option(\"selectedIndex\", selectedIndex + 1)\r\n }\r\n },\r\n _afterItemElementInserted: noop,\r\n _removeByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n var index = isPartialRefresh ? change.index : indexByKey(keyInfo, items, change.key);\r\n var removedItem = isPartialRefresh ? change.oldItem : items[index];\r\n if (removedItem) {\r\n var $removedItemElement = this._findItemElementByKey(change.key);\r\n var deletedActionArgs = this._extendActionArgs($removedItemElement);\r\n this._waitDeletingPrepare($removedItemElement).done(() => {\r\n if (isPartialRefresh) {\r\n this._updateIndicesAfterIndex(index - 1);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs);\r\n this._updateSelectionAfterRemoveByChange(index)\r\n } else {\r\n this._deleteItemElementByIndex(index);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs)\r\n }\r\n });\r\n this._correctionIndex--\r\n }\r\n },\r\n _modifyByChanges: function(changes, isPartialRefresh) {\r\n var items = this._editStrategy.itemsGetter();\r\n var keyInfo = {\r\n key: this.key.bind(this),\r\n keyOf: this.keyOf.bind(this)\r\n };\r\n var dataSource = this._dataSource;\r\n var paginate = dataSource && dataSource.paginate();\r\n var group = dataSource && dataSource.group();\r\n if (paginate || group) {\r\n changes = changes.filter(item => \"insert\" !== item.type || void 0 !== item.index)\r\n }\r\n changes.forEach(change => this[\"_\".concat(change.type, \"ByChange\")](keyInfo, items, change, isPartialRefresh));\r\n this._renderedItemsCount = items.length;\r\n this._refreshItemsCache();\r\n this._fireContentReadyAction()\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n var nextSiblingElement = $container.children(this._itemSelector()).get(index);\r\n domAdapter.insertElement($container.get(0), $itemFrame.get(0), nextSiblingElement)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n var isItemsUpdated = this._partialRefresh(args.value);\r\n if (!isItemsUpdated) {\r\n this.callBase(args)\r\n }\r\n break;\r\n case \"dataSource\":\r\n if (!this.option(\"repaintChangesOnly\") || !args.value) {\r\n this.option(\"items\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"repaintChangesOnly\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = require('events').EventEmitter;\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","/**\r\n * DevExtreme (esm/core/utils/selection_filter.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"./common\";\r\nimport {\r\n isString,\r\n isObject\r\n} from \"./type\";\r\nexport var SelectionFilterCreator = function(selectedItemKeys, isSelectAll) {\r\n this.getLocalFilter = function(keyGetter, equalKeys, equalByReference, keyExpr) {\r\n equalKeys = void 0 === equalKeys ? equalByValue : equalKeys;\r\n return functionFilter.bind(this, equalKeys, keyGetter, equalByReference, keyExpr)\r\n };\r\n this.getExpr = function(keyExpr) {\r\n if (!keyExpr) {\r\n return\r\n }\r\n var filterExpr;\r\n selectedItemKeys.forEach((function(key, index) {\r\n filterExpr = filterExpr || [];\r\n var filterExprPart;\r\n if (index > 0) {\r\n filterExpr.push(isSelectAll ? \"and\" : \"or\")\r\n }\r\n if (isString(keyExpr)) {\r\n filterExprPart = getFilterForPlainKey(keyExpr, key)\r\n } else {\r\n filterExprPart = function(keyExpr, itemKeyValue) {\r\n var filterExpr = [];\r\n for (var i = 0, length = keyExpr.length; i < length; i++) {\r\n var currentKeyExpr = keyExpr[i];\r\n var currentKeyValue = itemKeyValue && itemKeyValue[currentKeyExpr];\r\n var filterExprPart = getFilterForPlainKey(currentKeyExpr, currentKeyValue);\r\n if (!filterExprPart) {\r\n break\r\n }\r\n if (i > 0) {\r\n filterExpr.push(isSelectAll ? \"or\" : \"and\")\r\n }\r\n filterExpr.push(filterExprPart)\r\n }\r\n return filterExpr\r\n }(keyExpr, key)\r\n }\r\n filterExpr.push(filterExprPart)\r\n }));\r\n if (filterExpr && 1 === filterExpr.length) {\r\n filterExpr = filterExpr[0]\r\n }\r\n return filterExpr\r\n };\r\n this.getCombinedFilter = function(keyExpr, dataSourceFilter) {\r\n var filterExpr = this.getExpr(keyExpr);\r\n var combinedFilter = filterExpr;\r\n if (isSelectAll && dataSourceFilter) {\r\n if (filterExpr) {\r\n combinedFilter = [];\r\n combinedFilter.push(filterExpr);\r\n combinedFilter.push(dataSourceFilter)\r\n } else {\r\n combinedFilter = dataSourceFilter\r\n }\r\n }\r\n return combinedFilter\r\n };\r\n var selectedItemKeyHashesMap;\r\n\r\n function functionFilter(equalKeys, keyOf, equalByReference, keyExpr, item) {\r\n var key = keyOf(item);\r\n var keyHash;\r\n var i;\r\n if (!equalByReference) {\r\n keyHash = getKeyHash(key);\r\n if (!isObject(keyHash)) {\r\n var selectedKeyHashesMap = function(selectedItemKeys) {\r\n if (!selectedItemKeyHashesMap) {\r\n selectedItemKeyHashesMap = {};\r\n for (var i = 0; i < selectedItemKeys.length; i++) {\r\n selectedItemKeyHashesMap[getKeyHash(selectedItemKeys[i])] = true\r\n }\r\n }\r\n return selectedItemKeyHashesMap\r\n }(function(keys, keyOf, keyExpr) {\r\n return Array.isArray(keyExpr) ? keys.map(key => keyOf(key)) : keys\r\n }(selectedItemKeys, keyOf, keyExpr));\r\n if (selectedKeyHashesMap[keyHash]) {\r\n return !isSelectAll\r\n }\r\n return !!isSelectAll\r\n }\r\n }\r\n for (i = 0; i < selectedItemKeys.length; i++) {\r\n if (equalKeys(selectedItemKeys[i], key)) {\r\n return !isSelectAll\r\n }\r\n }\r\n return !!isSelectAll\r\n }\r\n\r\n function getFilterForPlainKey(keyExpr, keyValue) {\r\n if (void 0 === keyValue) {\r\n return\r\n }\r\n return [keyExpr, isSelectAll ? \"<>\" : \"=\", keyValue]\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isRenderer\r\n} from \"../../core/utils/type\";\r\nvar abstract = Class.abstract;\r\nvar EditStrategy = Class.inherit({\r\n ctor: function(collectionWidget) {\r\n this._collectionWidget = collectionWidget\r\n },\r\n getIndexByItemData: abstract,\r\n getItemDataByIndex: abstract,\r\n getKeysByItems: abstract,\r\n getItemsByKeys: abstract,\r\n itemsGetter: abstract,\r\n getKeyByIndex: function(index) {\r\n var resultIndex = this._denormalizeItemIndex(index);\r\n return this.getKeysByItems([this.getItemDataByIndex(resultIndex)])[0]\r\n },\r\n _equalKeys: function(key1, key2) {\r\n if (this._collectionWidget._isKeySpecified()) {\r\n return equalByValue(key1, key2)\r\n } else {\r\n return key1 === key2\r\n }\r\n },\r\n beginCache: function() {\r\n this._cache = {}\r\n },\r\n endCache: function() {\r\n this._cache = null\r\n },\r\n getIndexByKey: abstract,\r\n getNormalizedIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._normalizeItemIndex(value)\r\n }\r\n if (this._isNode(value)) {\r\n return this._getNormalizedItemIndex(value)\r\n }\r\n return this._normalizeItemIndex(this.getIndexByItemData(value))\r\n },\r\n getIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._denormalizeItemIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isNode(value)) {\r\n return this._denormalizeItemIndex(this._getNormalizedItemIndex(value))\r\n }\r\n return this.getIndexByItemData(value)\r\n },\r\n getItemElement: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(this._normalizeItemIndex(value))\r\n }\r\n if (this._isNode(value)) {\r\n return $(value)\r\n }\r\n var normalizedItemIndex = this._normalizeItemIndex(this.getIndexByItemData(value));\r\n return this._getItemByNormalizedIndex(normalizedItemIndex)\r\n },\r\n _isNode: el => domAdapter.isNode(el && isRenderer(el) ? el.get(0) : el),\r\n deleteItemAtIndex: abstract,\r\n itemPlacementFunc: function(movingIndex, destinationIndex) {\r\n return this._itemsFromSameParent(movingIndex, destinationIndex) && movingIndex < destinationIndex ? \"after\" : \"before\"\r\n },\r\n moveItemAtIndexToIndex: abstract,\r\n _isNormalizedItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _isItemIndex: abstract,\r\n _getNormalizedItemIndex: abstract,\r\n _normalizeItemIndex: abstract,\r\n _denormalizeItemIndex: abstract,\r\n _getItemByNormalizedIndex: abstract,\r\n _itemsFromSameParent: abstract\r\n});\r\nexport default EditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.plain.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport EditStrategy from \"./ui.collection_widget.edit.strategy\";\r\nvar PlainEditStrategy = EditStrategy.inherit({\r\n _getPlainItems: function() {\r\n return this._collectionWidget.option(\"items\") || []\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n if (keyOf) {\r\n return this.getIndexByKey(keyOf(itemData))\r\n } else {\r\n return inArray(itemData, this._getPlainItems())\r\n }\r\n },\r\n getItemDataByIndex: function(index) {\r\n return this._getPlainItems()[index]\r\n },\r\n deleteItemAtIndex: function(index) {\r\n this._getPlainItems().splice(index, 1)\r\n },\r\n itemsGetter: function() {\r\n return this._getPlainItems()\r\n },\r\n getKeysByItems: function(items) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n var result = items;\r\n if (keyOf) {\r\n result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n result.push(keyOf(items[i]))\r\n }\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key) {\r\n var cache = this._cache;\r\n var keys = cache && cache.keys || this.getKeysByItems(this._getPlainItems());\r\n if (cache && !cache.keys) {\r\n cache.keys = keys\r\n }\r\n if (\"object\" === typeof key) {\r\n for (var i = 0, length = keys.length; i < length; i++) {\r\n if (this._equalKeys(key, keys[i])) {\r\n return i\r\n }\r\n }\r\n } else {\r\n return keys.indexOf(key)\r\n }\r\n return -1\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n return (items || keys).slice()\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._getPlainItems();\r\n var movedItemData = items[movingIndex];\r\n items.splice(movingIndex, 1);\r\n items.splice(destinationIndex, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n return this._collectionWidget._itemElements().index(itemElement)\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n return index > -1 ? this._collectionWidget._itemElements().eq(index) : null\r\n },\r\n _itemsFromSameParent: function() {\r\n return true\r\n }\r\n});\r\nexport default PlainEditStrategy;\r\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","/**\r\n * DevExtreme (esm/ui/overlay/z_index.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nvar baseZIndex = 1500;\r\nvar zIndexStack = [];\r\nexport var base = ZIndex => {\r\n baseZIndex = ensureDefined(ZIndex, baseZIndex);\r\n return baseZIndex\r\n};\r\nexport var create = function() {\r\n var baseIndex = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : baseZIndex;\r\n var length = zIndexStack.length;\r\n var index = (length ? zIndexStack[length - 1] : baseIndex) + 1;\r\n zIndexStack.push(index);\r\n return index\r\n};\r\nexport var remove = zIndex => {\r\n var position = zIndexStack.indexOf(zIndex);\r\n if (position >= 0) {\r\n zIndexStack.splice(position, 1)\r\n }\r\n};\r\nexport var clearStack = () => {\r\n zIndexStack = []\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/emitter_registrator.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport {\r\n name as wheelEventName\r\n} from \"./wheel\";\r\nvar MANAGER_EVENT = \"dxEventManager\";\r\nvar EMITTER_DATA = \"dxEmitter\";\r\nvar EventManager = Class.inherit({\r\n ctor: function() {\r\n this._attachHandlers();\r\n this.reset();\r\n this._proxiedCancelHandler = this._cancelHandler.bind(this);\r\n this._proxiedAcceptHandler = this._acceptHandler.bind(this)\r\n },\r\n _attachHandlers: function() {\r\n readyCallbacks.add(function() {\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, MANAGER_EVENT), this._pointerDownHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.move, MANAGER_EVENT), this._pointerMoveHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace([pointerEvents.up, pointerEvents.cancel].join(\" \"), MANAGER_EVENT), this._pointerUpHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(wheelEventName, MANAGER_EVENT), this._mouseWheelHandler.bind(this))\r\n }.bind(this))\r\n },\r\n _eachEmitter: function(callback) {\r\n var activeEmitters = this._activeEmitters || [];\r\n var i = 0;\r\n while (activeEmitters.length > i) {\r\n var emitter = activeEmitters[i];\r\n if (false === callback(emitter)) {\r\n break\r\n }\r\n if (activeEmitters[i] === emitter) {\r\n i++\r\n }\r\n }\r\n },\r\n _applyToEmitters: function(method, arg) {\r\n this._eachEmitter((function(emitter) {\r\n emitter[method].call(emitter, arg)\r\n }))\r\n },\r\n reset: function() {\r\n this._eachEmitter(this._proxiedCancelHandler);\r\n this._activeEmitters = []\r\n },\r\n resetEmitter: function(emitter) {\r\n this._proxiedCancelHandler(emitter)\r\n },\r\n _pointerDownHandler: function(e) {\r\n if (isMouseEvent(e) && e.which > 1) {\r\n return\r\n }\r\n this._updateEmitters(e)\r\n },\r\n _updateEmitters: function(e) {\r\n if (!this._isSetChanged(e)) {\r\n return\r\n }\r\n this._cleanEmitters(e);\r\n this._fetchEmitters(e)\r\n },\r\n _isSetChanged: function(e) {\r\n var currentSet = this._closestEmitter(e);\r\n var previousSet = this._emittersSet || [];\r\n var setChanged = currentSet.length !== previousSet.length;\r\n each(currentSet, (function(index, emitter) {\r\n setChanged = setChanged || previousSet[index] !== emitter;\r\n return !setChanged\r\n }));\r\n this._emittersSet = currentSet;\r\n return setChanged\r\n },\r\n _closestEmitter: function(e) {\r\n var that = this;\r\n var result = [];\r\n var $element = $(e.target);\r\n\r\n function handleEmitter(_, emitter) {\r\n if (!!emitter && emitter.validatePointers(e) && emitter.validate(e)) {\r\n emitter.addCancelCallback(that._proxiedCancelHandler);\r\n emitter.addAcceptCallback(that._proxiedAcceptHandler);\r\n result.push(emitter)\r\n }\r\n }\r\n while ($element.length) {\r\n var emitters = elementData($element.get(0), EMITTER_DATA) || [];\r\n each(emitters, handleEmitter);\r\n $element = $element.parent()\r\n }\r\n return result\r\n },\r\n _acceptHandler: function(acceptedEmitter, e) {\r\n var that = this;\r\n this._eachEmitter((function(emitter) {\r\n if (emitter !== acceptedEmitter) {\r\n that._cancelEmitter(emitter, e)\r\n }\r\n }))\r\n },\r\n _cancelHandler: function(canceledEmitter, e) {\r\n this._cancelEmitter(canceledEmitter, e)\r\n },\r\n _cancelEmitter: function(emitter, e) {\r\n var activeEmitters = this._activeEmitters;\r\n if (e) {\r\n emitter.cancel(e)\r\n } else {\r\n emitter.reset()\r\n }\r\n emitter.removeCancelCallback();\r\n emitter.removeAcceptCallback();\r\n var emitterIndex = inArray(emitter, activeEmitters);\r\n if (emitterIndex > -1) {\r\n activeEmitters.splice(emitterIndex, 1)\r\n }\r\n },\r\n _cleanEmitters: function(e) {\r\n this._applyToEmitters(\"end\", e);\r\n this.reset(e)\r\n },\r\n _fetchEmitters: function(e) {\r\n this._activeEmitters = this._emittersSet.slice();\r\n this._applyToEmitters(\"start\", e)\r\n },\r\n _pointerMoveHandler: function(e) {\r\n this._applyToEmitters(\"move\", e)\r\n },\r\n _pointerUpHandler: function(e) {\r\n this._updateEmitters(e)\r\n },\r\n _mouseWheelHandler: function(e) {\r\n if (!this._allowInterruptionByMouseWheel()) {\r\n return\r\n }\r\n e.pointers = [null];\r\n this._pointerDownHandler(e);\r\n this._adjustWheelEvent(e);\r\n this._pointerMoveHandler(e);\r\n e.pointers = [];\r\n this._pointerUpHandler(e)\r\n },\r\n _allowInterruptionByMouseWheel: function() {\r\n var allowInterruption = true;\r\n this._eachEmitter((function(emitter) {\r\n allowInterruption = emitter.allowInterruptionByMouseWheel() && allowInterruption;\r\n return allowInterruption\r\n }));\r\n return allowInterruption\r\n },\r\n _adjustWheelEvent: function(e) {\r\n var closestGestureEmitter = null;\r\n this._eachEmitter((function(emitter) {\r\n if (!emitter.gesture) {\r\n return\r\n }\r\n var direction = emitter.getDirection(e);\r\n if (\"horizontal\" !== direction && !e.shiftKey || \"vertical\" !== direction && e.shiftKey) {\r\n closestGestureEmitter = emitter;\r\n return false\r\n }\r\n }));\r\n if (!closestGestureEmitter) {\r\n return\r\n }\r\n var direction = closestGestureEmitter.getDirection(e);\r\n var verticalGestureDirection = \"both\" === direction && !e.shiftKey || \"vertical\" === direction;\r\n var prop = verticalGestureDirection ? \"pageY\" : \"pageX\";\r\n e[prop] += e.delta\r\n },\r\n isActive: function(element) {\r\n var result = false;\r\n this._eachEmitter((function(emitter) {\r\n result = result || emitter.getElement().is(element)\r\n }));\r\n return result\r\n }\r\n});\r\nvar eventManager = new EventManager;\r\nvar EMITTER_SUBSCRIPTION_DATA = \"dxEmitterSubscription\";\r\nvar registerEmitter = function(emitterConfig) {\r\n var emitterClass = emitterConfig.emitter;\r\n var emitterName = emitterConfig.events[0];\r\n var emitterEvents = emitterConfig.events;\r\n each(emitterEvents, (function(_, eventName) {\r\n registerEvent(eventName, {\r\n noBubble: !emitterConfig.bubble,\r\n setup: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA) || {};\r\n var emitters = elementData(element, EMITTER_DATA) || {};\r\n var emitter = emitters[emitterName] || new emitterClass(element);\r\n subscriptions[eventName] = true;\r\n emitters[emitterName] = emitter;\r\n elementData(element, EMITTER_DATA, emitters);\r\n elementData(element, EMITTER_SUBSCRIPTION_DATA, subscriptions)\r\n },\r\n add: function(element, handleObj) {\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n emitter.configure(extend({\r\n delegateSelector: handleObj.selector\r\n }, handleObj.data), handleObj.type)\r\n },\r\n teardown: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA);\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n delete subscriptions[eventName];\r\n var disposeEmitter = true;\r\n each(emitterEvents, (function(_, eventName) {\r\n disposeEmitter = disposeEmitter && !subscriptions[eventName];\r\n return disposeEmitter\r\n }));\r\n if (disposeEmitter) {\r\n if (eventManager.isActive(element)) {\r\n eventManager.resetEmitter(emitter)\r\n }\r\n emitter && emitter.dispose();\r\n delete emitters[emitterName]\r\n }\r\n }\r\n })\r\n }))\r\n};\r\nexport default registerEmitter;\r\n","/**\r\n * DevExtreme (esm/core/utils/window.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nvar hasWindowValue = \"undefined\" !== typeof window;\r\nvar hasWindow = () => hasWindowValue;\r\nvar windowObject = hasWindow() ? window : void 0;\r\nif (!windowObject) {\r\n windowObject = {};\r\n windowObject.window = windowObject\r\n}\r\nvar getWindow = () => windowObject;\r\nvar setWindow = (newWindowObject, hasWindow) => {\r\n if (void 0 === hasWindow) {\r\n hasWindowValue = \"undefined\" !== typeof window && window === newWindowObject\r\n } else {\r\n hasWindowValue = hasWindow\r\n }\r\n windowObject = newWindowObject\r\n};\r\nvar hasProperty = prop => hasWindow() && prop in windowObject;\r\nvar defaultScreenFactorFunc = width => {\r\n if (width < 768) {\r\n return \"xs\"\r\n } else if (width < 992) {\r\n return \"sm\"\r\n } else if (width < 1200) {\r\n return \"md\"\r\n } else {\r\n return \"lg\"\r\n }\r\n};\r\nvar getCurrentScreenFactor = screenFactorCallback => {\r\n var screenFactorFunc = screenFactorCallback || defaultScreenFactorFunc;\r\n var windowWidth = domAdapter.getDocumentElement().clientWidth;\r\n return screenFactorFunc(windowWidth)\r\n};\r\nvar getNavigator = () => hasWindow() ? windowObject.navigator : {\r\n userAgent: \"\"\r\n};\r\nexport {\r\n hasWindow,\r\n getWindow,\r\n setWindow,\r\n hasProperty,\r\n defaultScreenFactorFunc,\r\n getCurrentScreenFactor,\r\n getNavigator\r\n};\r\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","/**\r\n * DevExtreme (esm/ui/text_box/utils.caret.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport devices from \"../../core/devices\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar {\r\n ios: ios,\r\n mac: mac\r\n} = devices.real();\r\nvar isFocusingOnCaretChange = browser.msie || ios || mac;\r\nvar getCaret = function(input) {\r\n var range;\r\n try {\r\n range = {\r\n start: input.selectionStart,\r\n end: input.selectionEnd\r\n }\r\n } catch (e) {\r\n range = {\r\n start: 0,\r\n end: 0\r\n }\r\n }\r\n return range\r\n};\r\nvar setCaret = function(input, position) {\r\n if (!domAdapter.getBody().contains(input)) {\r\n return\r\n }\r\n try {\r\n input.selectionStart = position.start;\r\n input.selectionEnd = position.end\r\n } catch (e) {}\r\n};\r\nvar caret = function(input, position) {\r\n var force = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n input = $(input).get(0);\r\n if (!isDefined(position)) {\r\n return getCaret(input)\r\n }\r\n if (!force && isFocusingOnCaretChange && domAdapter.getActiveElement() !== input) {\r\n return\r\n }\r\n setCaret(input, position)\r\n};\r\nexport default caret;\r\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var isObject = require('../internals/is-object');\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","/**\r\n * DevExtreme (esm/events/core/event_registrator.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport callbacks from \"./event_registrator_callbacks\";\r\nvar registerEvent = function(name, eventObject) {\r\n var strategy = {};\r\n if (\"noBubble\" in eventObject) {\r\n strategy.noBubble = eventObject.noBubble\r\n }\r\n if (\"bindType\" in eventObject) {\r\n strategy.bindType = eventObject.bindType\r\n }\r\n if (\"delegateType\" in eventObject) {\r\n strategy.delegateType = eventObject.delegateType\r\n }\r\n each([\"setup\", \"teardown\", \"add\", \"remove\", \"trigger\", \"handle\", \"_default\", \"dispose\"], (function(_, methodName) {\r\n if (!eventObject[methodName]) {\r\n return\r\n }\r\n strategy[methodName] = function() {\r\n var args = [].slice.call(arguments);\r\n args.unshift(this);\r\n return eventObject[methodName].apply(eventObject, args)\r\n }\r\n }));\r\n callbacks.fire(name, strategy)\r\n};\r\nregisterEvent.callbacks = callbacks;\r\nexport default registerEvent;\r\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","/**\r\n * DevExtreme (esm/core/templates/template_base.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nimport {\r\n contains\r\n} from \"../utils/dom\";\r\nimport {\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport errors from \"../errors\";\r\nexport var renderedCallbacks = Callbacks({\r\n syncStrategy: true\r\n});\r\nexport class TemplateBase {\r\n render(options) {\r\n options = options || {};\r\n var onRendered = options.onRendered;\r\n delete options.onRendered;\r\n var $result = this._renderCore(options);\r\n this._ensureResultInContainer($result, options.container);\r\n renderedCallbacks.fire($result, options.container);\r\n onRendered && onRendered();\r\n return $result\r\n }\r\n _ensureResultInContainer($result, container) {\r\n if (!container) {\r\n return\r\n }\r\n var $container = $(container);\r\n var resultInContainer = contains($container.get(0), $result.get(0));\r\n $container.append($result);\r\n if (resultInContainer) {\r\n return\r\n }\r\n var resultInBody = domAdapter.getBody().contains($container.get(0));\r\n if (!resultInBody) {\r\n return\r\n }\r\n triggerShownEvent($result)\r\n }\r\n _renderCore() {\r\n throw errors.Error(\"E0001\")\r\n }\r\n}\r\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","/**\r\n * DevExtreme (esm/animation/easing.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nvar CSS_TRANSITION_EASING_REGEX = /cubic-bezier\\((\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\)/;\r\nvar TransitionTimingFuncMap = {\r\n linear: \"cubic-bezier(0, 0, 1, 1)\",\r\n swing: \"cubic-bezier(0.445, 0.05, 0.55, 0.95)\",\r\n ease: \"cubic-bezier(0.25, 0.1, 0.25, 1)\",\r\n \"ease-in\": \"cubic-bezier(0.42, 0, 1, 1)\",\r\n \"ease-out\": \"cubic-bezier(0, 0, 0.58, 1)\",\r\n \"ease-in-out\": \"cubic-bezier(0.42, 0, 0.58, 1)\"\r\n};\r\nvar polynomBezier = function(x1, y1, x2, y2) {\r\n var Cx = 3 * x1;\r\n var Bx = 3 * (x2 - x1) - Cx;\r\n var Ax = 1 - Cx - Bx;\r\n var Cy = 3 * y1;\r\n var By = 3 * (y2 - y1) - Cy;\r\n var Ay = 1 - Cy - By;\r\n var bezierX = function(t) {\r\n return t * (Cx + t * (Bx + t * Ax))\r\n };\r\n var derivativeX = function(t) {\r\n return Cx + t * (2 * Bx + 3 * t * Ax)\r\n };\r\n return function(t) {\r\n return function(t) {\r\n return t * (Cy + t * (By + t * Ay))\r\n }(function(t) {\r\n var x = t;\r\n var i = 0;\r\n var z;\r\n while (i < 14) {\r\n z = bezierX(x) - t;\r\n if (Math.abs(z) < .001) {\r\n break\r\n }\r\n x -= z / derivativeX(x);\r\n i++\r\n }\r\n return x\r\n }(t))\r\n }\r\n};\r\nvar easing = {};\r\nexport var convertTransitionTimingFuncToEasing = function(cssTransitionEasing) {\r\n cssTransitionEasing = TransitionTimingFuncMap[cssTransitionEasing] || cssTransitionEasing;\r\n var coeffs = cssTransitionEasing.match(CSS_TRANSITION_EASING_REGEX);\r\n var forceName;\r\n if (!coeffs) {\r\n forceName = \"linear\";\r\n coeffs = TransitionTimingFuncMap[forceName].match(CSS_TRANSITION_EASING_REGEX)\r\n }\r\n coeffs = coeffs.slice(1, 5);\r\n for (var i = 0; i < coeffs.length; i++) {\r\n coeffs[i] = parseFloat(coeffs[i])\r\n }\r\n var easingName = forceName || \"cubicbezier_\" + coeffs.join(\"_\").replace(/\\./g, \"p\");\r\n if (!isFunction(easing[easingName])) {\r\n easing[easingName] = function(x, t, b, c, d) {\r\n return c * polynomBezier(coeffs[0], coeffs[1], coeffs[2], coeffs[3])(t / d) + b\r\n }\r\n }\r\n return easingName\r\n};\r\nexport function setEasing(value) {\r\n easing = value\r\n}\r\nexport function getEasing(name) {\r\n return easing[name]\r\n}\r\n","/**\r\n * DevExtreme (esm/animation/fx.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getTranslateCss,\r\n parseTranslate,\r\n clearCache,\r\n locate,\r\n getTranslate\r\n} from \"./translator\";\r\nimport {\r\n convertTransitionTimingFuncToEasing,\r\n getEasing\r\n} from \"./easing\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"./frame\";\r\nimport {\r\n transitionEndEventName,\r\n transition\r\n} from \"../core/utils/support\";\r\nimport positionUtils from \"./position\";\r\nimport {\r\n removeEvent\r\n} from \"../core/remove_event\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar removeEventName = addNamespace(removeEvent, \"dxFX\");\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar RELATIVE_VALUE_REGEX = /^([+-])=(.*)/i;\r\nvar ANIM_DATA_KEY = \"dxAnimData\";\r\nvar ANIM_QUEUE_KEY = \"dxAnimQueue\";\r\nvar TRANSFORM_PROP = \"transform\";\r\nvar TransitionAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"none\"\r\n });\r\n if (\"string\" === typeof config.from) {\r\n $element.addClass(config.from)\r\n } else {\r\n setProps($element, config.from)\r\n }\r\n var that = this;\r\n var deferred = new Deferred;\r\n var cleanupWhen = config.cleanupWhen;\r\n config.transitionAnimation = {\r\n deferred: deferred,\r\n finish: function() {\r\n that._finishTransition($element);\r\n if (cleanupWhen) {\r\n when(deferred, cleanupWhen).always((function() {\r\n that._cleanup($element, config)\r\n }))\r\n } else {\r\n that._cleanup($element, config)\r\n }\r\n deferred.resolveWith($element, [config, $element])\r\n }\r\n };\r\n this._completeAnimationCallback($element, config).done((function() {\r\n config.transitionAnimation.finish()\r\n })).fail((function() {\r\n deferred.rejectWith($element, [config, $element])\r\n }));\r\n if (!config.duration) {\r\n config.transitionAnimation.finish()\r\n }\r\n $element.css(\"transform\")\r\n },\r\n animate: function($element, config) {\r\n this._startAnimation($element, config);\r\n return config.transitionAnimation.deferred.promise()\r\n },\r\n _completeAnimationCallback: function($element, config) {\r\n var that = this;\r\n var startTime = Date.now() + config.delay;\r\n var deferred = new Deferred;\r\n var transitionEndFired = new Deferred;\r\n var simulatedTransitionEndFired = new Deferred;\r\n var simulatedEndEventTimer;\r\n var transitionEndEventFullName = transitionEndEventName() + \".dxFX\";\r\n config.transitionAnimation.cleanup = function() {\r\n clearTimeout(simulatedEndEventTimer);\r\n clearTimeout(waitForJSCompleteTimer);\r\n eventsEngine.off($element, transitionEndEventFullName);\r\n eventsEngine.off($element, removeEventName)\r\n };\r\n eventsEngine.one($element, transitionEndEventFullName, (function() {\r\n if (Date.now() - startTime >= config.duration) {\r\n transitionEndFired.reject()\r\n }\r\n }));\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n that.stop($element, config);\r\n deferred.reject()\r\n }));\r\n var waitForJSCompleteTimer = setTimeout((function() {\r\n simulatedEndEventTimer = setTimeout((function() {\r\n simulatedTransitionEndFired.reject()\r\n }), config.duration + config.delay + fx._simulatedTransitionEndDelay);\r\n when(transitionEndFired, simulatedTransitionEndFired).fail(function() {\r\n deferred.resolve()\r\n }.bind(this))\r\n }));\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"all\",\r\n transitionDelay: config.delay + \"ms\",\r\n transitionDuration: config.duration + \"ms\",\r\n transitionTimingFunction: config.easing\r\n });\r\n if (\"string\" === typeof config.to) {\r\n $element[0].className += \" \" + config.to\r\n } else if (config.to) {\r\n setProps($element, config.to)\r\n }\r\n },\r\n _finishTransition: function($element) {\r\n $element.css(\"transition\", \"none\")\r\n },\r\n _cleanup: function($element, config) {\r\n config.transitionAnimation.cleanup();\r\n if (\"string\" === typeof config.from) {\r\n $element.removeClass(config.from);\r\n $element.removeClass(config.to)\r\n }\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n if (!config) {\r\n return\r\n }\r\n if (jumpToEnd) {\r\n config.transitionAnimation.finish()\r\n } else {\r\n if (isPlainObject(config.to)) {\r\n each(config.to, (function(key) {\r\n $element.css(key, $element.css(key))\r\n }))\r\n }\r\n this._finishTransition($element);\r\n this._cleanup($element, config)\r\n }\r\n }\r\n};\r\nvar FrameAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n setProps($element, config.from)\r\n },\r\n animate: function($element, config) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n if (!config) {\r\n return deferred.reject().promise()\r\n }\r\n each(config.to, (function(prop) {\r\n if (void 0 === config.from[prop]) {\r\n config.from[prop] = that._normalizeValue($element.css(prop))\r\n }\r\n }));\r\n if (config.to[TRANSFORM_PROP]) {\r\n config.from[TRANSFORM_PROP] = that._parseTransform(config.from[TRANSFORM_PROP]);\r\n config.to[TRANSFORM_PROP] = that._parseTransform(config.to[TRANSFORM_PROP])\r\n }\r\n config.frameAnimation = {\r\n to: config.to,\r\n from: config.from,\r\n currentValue: config.from,\r\n easing: convertTransitionTimingFuncToEasing(config.easing),\r\n duration: config.duration,\r\n startTime: (new Date).valueOf(),\r\n finish: function() {\r\n this.currentValue = this.to;\r\n this.draw();\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId);\r\n deferred.resolve()\r\n },\r\n draw: function() {\r\n if (config.draw) {\r\n config.draw(this.currentValue);\r\n return\r\n }\r\n var currentValue = extend({}, this.currentValue);\r\n if (currentValue[TRANSFORM_PROP]) {\r\n currentValue[TRANSFORM_PROP] = map(currentValue[TRANSFORM_PROP], (function(value, prop) {\r\n if (\"translate\" === prop) {\r\n return getTranslateCss(value)\r\n } else if (\"scale\" === prop) {\r\n return \"scale(\" + value + \")\"\r\n } else if (\"rotate\" === prop.substr(0, prop.length - 1)) {\r\n return prop + \"(\" + value + \"deg)\"\r\n }\r\n })).join(\" \")\r\n }\r\n $element.css(currentValue)\r\n }\r\n };\r\n if (config.delay) {\r\n config.frameAnimation.startTime += config.delay;\r\n config.frameAnimation.delayTimeout = setTimeout((function() {\r\n that._startAnimation($element, config)\r\n }), config.delay)\r\n } else {\r\n that._startAnimation($element, config)\r\n }\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n if (config.frameAnimation) {\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId)\r\n }\r\n }));\r\n this._animationStep($element, config)\r\n },\r\n _parseTransform: function(transformString) {\r\n var result = {};\r\n each(transformString.match(/\\w+\\d*\\w*\\([^)]*\\)\\s*/g), (function(i, part) {\r\n var translateData = parseTranslate(part);\r\n var scaleData = part.match(/scale\\((.+?)\\)/);\r\n var rotateData = part.match(/(rotate.)\\((.+)deg\\)/);\r\n if (translateData) {\r\n result.translate = translateData\r\n }\r\n if (scaleData && scaleData[1]) {\r\n result.scale = parseFloat(scaleData[1])\r\n }\r\n if (rotateData && rotateData[1]) {\r\n result[rotateData[1]] = parseFloat(rotateData[2])\r\n }\r\n }));\r\n return result\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n cancelAnimationFrame(frameAnimation.animationFrameId);\r\n clearTimeout(frameAnimation.delayTimeout);\r\n if (jumpToEnd) {\r\n frameAnimation.finish()\r\n }\r\n delete config.frameAnimation\r\n },\r\n _animationStep: function($element, config) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n var now = (new Date).valueOf();\r\n if (now >= frameAnimation.startTime + frameAnimation.duration) {\r\n frameAnimation.finish();\r\n return\r\n }\r\n frameAnimation.currentValue = this._calcStepValue(frameAnimation, now - frameAnimation.startTime);\r\n frameAnimation.draw();\r\n var that = this;\r\n frameAnimation.animationFrameId = requestAnimationFrame((function() {\r\n that._animationStep($element, config)\r\n }))\r\n },\r\n _calcStepValue: function(frameAnimation, currentDuration) {\r\n return function calcValueRecursively(from, to) {\r\n var result = Array.isArray(to) ? [] : {};\r\n each(to, (function(propName, endPropValue) {\r\n if (\"string\" === typeof endPropValue && false === parseFloat(endPropValue, 10)) {\r\n return true\r\n }\r\n result[propName] = \"object\" === typeof endPropValue ? calcValueRecursively(from[propName], endPropValue) : function(propName) {\r\n var x = currentDuration / frameAnimation.duration;\r\n var t = currentDuration;\r\n var b = 1 * from[propName];\r\n var c = to[propName] - from[propName];\r\n var d = frameAnimation.duration;\r\n return getEasing(frameAnimation.easing)(x, t, b, c, d)\r\n }(propName)\r\n }));\r\n return result\r\n }(frameAnimation.from, frameAnimation.to)\r\n },\r\n _normalizeValue: function(value) {\r\n var numericValue = parseFloat(value, 10);\r\n if (false === numericValue) {\r\n return value\r\n }\r\n return numericValue\r\n }\r\n};\r\nvar FallbackToNoAnimationStrategy = {\r\n initAnimation: function() {},\r\n animate: function() {\r\n return (new Deferred).resolve().promise()\r\n },\r\n stop: noop,\r\n isSynchronous: true\r\n};\r\nvar getAnimationStrategy = function(config) {\r\n config = config || {};\r\n var animationStrategies = {\r\n transition: transition() ? TransitionAnimationStrategy : FrameAnimationStrategy,\r\n frame: FrameAnimationStrategy,\r\n noAnimation: FallbackToNoAnimationStrategy\r\n };\r\n var strategy = config.strategy || \"transition\";\r\n if (\"css\" === config.type && !transition()) {\r\n strategy = \"noAnimation\"\r\n }\r\n return animationStrategies[strategy]\r\n};\r\nvar baseConfigValidator = function(config, animationType, validate, typeMessage) {\r\n each([\"from\", \"to\"], (function() {\r\n if (!validate(config[this])) {\r\n throw errors.Error(\"E0010\", animationType, this, typeMessage)\r\n }\r\n }))\r\n};\r\nvar isObjectConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return isPlainObject(target)\r\n }), \"a plain object\")\r\n};\r\nvar isStringConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return \"string\" === typeof target\r\n }), \"a string\")\r\n};\r\nvar CustomAnimationConfigurator = {\r\n setup: function() {}\r\n};\r\nvar CssAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isStringConfigValidator(config, \"css\")\r\n },\r\n setup: function() {}\r\n};\r\nvar positionAliases = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\"\r\n }\r\n};\r\nvar SlideAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"slide\")\r\n },\r\n setup: function($element, config) {\r\n var location = locate($element);\r\n if (\"slide\" !== config.type) {\r\n var positioningConfig = \"slideIn\" === config.type ? config.from : config.to;\r\n positioningConfig.position = extend({\r\n of: window\r\n }, positionAliases[config.direction]);\r\n setupPosition($element, positioningConfig)\r\n }\r\n this._setUpConfig(location, config.from);\r\n this._setUpConfig(location, config.to);\r\n clearCache($element)\r\n },\r\n _setUpConfig: function(location, config) {\r\n config.left = \"left\" in config ? config.left : \"+=0\";\r\n config.top = \"top\" in config ? config.top : \"+=0\";\r\n this._initNewPosition(location, config)\r\n },\r\n _initNewPosition: function(location, config) {\r\n var position = {\r\n left: config.left,\r\n top: config.top\r\n };\r\n delete config.left;\r\n delete config.top;\r\n var relativeValue = this._getRelativeValue(position.left);\r\n if (void 0 !== relativeValue) {\r\n position.left = relativeValue + location.left\r\n } else {\r\n config.left = 0\r\n }\r\n relativeValue = this._getRelativeValue(position.top);\r\n if (void 0 !== relativeValue) {\r\n position.top = relativeValue + location.top\r\n } else {\r\n config.top = 0\r\n }\r\n config[TRANSFORM_PROP] = getTranslateCss({\r\n x: position.left,\r\n y: position.top\r\n })\r\n },\r\n _getRelativeValue: function(value) {\r\n var relativeValue;\r\n if (\"string\" === typeof value && (relativeValue = RELATIVE_VALUE_REGEX.exec(value))) {\r\n return parseInt(relativeValue[1] + \"1\") * relativeValue[2]\r\n }\r\n }\r\n};\r\nvar FadeAnimationConfigurator = {\r\n setup: function($element, config) {\r\n var from = config.from;\r\n var fromOpacity = isPlainObject(from) ? config.skipElementInitialStyles ? 0 : $element.css(\"opacity\") : String(from);\r\n var toOpacity;\r\n switch (config.type) {\r\n case \"fadeIn\":\r\n toOpacity = 1;\r\n break;\r\n case \"fadeOut\":\r\n toOpacity = 0;\r\n break;\r\n default:\r\n toOpacity = String(config.to)\r\n }\r\n config.from = {\r\n visibility: \"visible\",\r\n opacity: fromOpacity\r\n };\r\n config.to = {\r\n opacity: toOpacity\r\n }\r\n }\r\n};\r\nvar PopAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"pop\")\r\n },\r\n setup: function($element, config) {\r\n var from = config.from;\r\n var to = config.to;\r\n var fromOpacity = \"opacity\" in from ? from.opacity : $element.css(\"opacity\");\r\n var toOpacity = \"opacity\" in to ? to.opacity : 1;\r\n var fromScale = \"scale\" in from ? from.scale : 0;\r\n var toScale = \"scale\" in to ? to.scale : 1;\r\n config.from = {\r\n opacity: fromOpacity\r\n };\r\n var translate = getTranslate($element);\r\n config.from[TRANSFORM_PROP] = this._getCssTransform(translate, fromScale);\r\n config.to = {\r\n opacity: toOpacity\r\n };\r\n config.to[TRANSFORM_PROP] = this._getCssTransform(translate, toScale)\r\n },\r\n _getCssTransform: function(translate, scale) {\r\n return getTranslateCss(translate) + \"scale(\" + scale + \")\"\r\n }\r\n};\r\nvar animationConfigurators = {\r\n custom: CustomAnimationConfigurator,\r\n slide: SlideAnimationConfigurator,\r\n slideIn: SlideAnimationConfigurator,\r\n slideOut: SlideAnimationConfigurator,\r\n fade: FadeAnimationConfigurator,\r\n fadeIn: FadeAnimationConfigurator,\r\n fadeOut: FadeAnimationConfigurator,\r\n pop: PopAnimationConfigurator,\r\n css: CssAnimationConfigurator\r\n};\r\nvar getAnimationConfigurator = function(config) {\r\n var result = animationConfigurators[config.type];\r\n if (!result) {\r\n throw errors.Error(\"E0011\", config.type)\r\n }\r\n return result\r\n};\r\nvar defaultJSConfig = {\r\n type: \"custom\",\r\n from: {},\r\n to: {},\r\n duration: 400,\r\n start: noop,\r\n complete: noop,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\nvar defaultCssConfig = {\r\n duration: 400,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\n\r\nfunction setupAnimationOnElement() {\r\n var $element = this.element;\r\n var config = this.config;\r\n setupPosition($element, config.from);\r\n setupPosition($element, config.to);\r\n this.configurator.setup($element, config);\r\n $element.data(ANIM_DATA_KEY, this);\r\n if (fx.off) {\r\n config.duration = 0;\r\n config.delay = 0\r\n }\r\n this.strategy.initAnimation($element, config);\r\n if (config.start) {\r\n var element = getPublicElement($element);\r\n config.start.apply(this, [element, config])\r\n }\r\n}\r\nvar onElementAnimationComplete = function(animation) {\r\n var $element = animation.element;\r\n var config = animation.config;\r\n $element.removeData(ANIM_DATA_KEY);\r\n if (config.complete) {\r\n var element = getPublicElement($element);\r\n config.complete.apply(this, [element, config])\r\n }\r\n animation.deferred.resolveWith(this, [$element, config])\r\n};\r\nvar startAnimationOnElement = function() {\r\n var animation = this;\r\n var $element = animation.element;\r\n var config = animation.config;\r\n animation.isStarted = true;\r\n return animation.strategy.animate($element, config).done((function() {\r\n onElementAnimationComplete(animation)\r\n })).fail((function() {\r\n animation.deferred.rejectWith(this, [$element, config])\r\n }))\r\n};\r\nvar stopAnimationOnElement = function(jumpToEnd) {\r\n var $element = this.element;\r\n var config = this.config;\r\n clearTimeout(this.startTimeout);\r\n if (!this.isStarted) {\r\n this.start()\r\n }\r\n this.strategy.stop($element, config, jumpToEnd)\r\n};\r\nvar scopedRemoveEvent = addNamespace(removeEvent, \"dxFXStartAnimation\");\r\nvar subscribeToRemoveEvent = function(animation) {\r\n eventsEngine.off(animation.element, scopedRemoveEvent);\r\n eventsEngine.on(animation.element, scopedRemoveEvent, (function() {\r\n fx.stop(animation.element)\r\n }));\r\n animation.deferred.always((function() {\r\n eventsEngine.off(animation.element, scopedRemoveEvent)\r\n }))\r\n};\r\nvar createAnimation = function(element, initialConfig) {\r\n var defaultConfig = \"css\" === initialConfig.type ? defaultCssConfig : defaultJSConfig;\r\n var config = extend(true, {}, defaultConfig, initialConfig);\r\n var configurator = getAnimationConfigurator(config);\r\n var strategy = getAnimationStrategy(config);\r\n var animation = {\r\n element: $(element),\r\n config: config,\r\n configurator: configurator,\r\n strategy: strategy,\r\n isSynchronous: strategy.isSynchronous,\r\n setup: setupAnimationOnElement,\r\n start: startAnimationOnElement,\r\n stop: stopAnimationOnElement,\r\n deferred: new Deferred\r\n };\r\n if (isFunction(configurator.validateConfig)) {\r\n configurator.validateConfig(config)\r\n }\r\n subscribeToRemoveEvent(animation);\r\n return animation\r\n};\r\nvar animate = function(element, config) {\r\n var $element = $(element);\r\n if (!$element.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var animation = createAnimation($element, config);\r\n pushInAnimationQueue($element, animation);\r\n return animation.deferred.promise()\r\n};\r\n\r\nfunction pushInAnimationQueue($element, animation) {\r\n var queueData = getAnimQueueData($element);\r\n writeAnimQueueData($element, queueData);\r\n queueData.push(animation);\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n}\r\n\r\nfunction getAnimQueueData($element) {\r\n return $element.data(ANIM_QUEUE_KEY) || []\r\n}\r\n\r\nfunction writeAnimQueueData($element, queueData) {\r\n $element.data(ANIM_QUEUE_KEY, queueData)\r\n}\r\nvar destroyAnimQueueData = function($element) {\r\n $element.removeData(ANIM_QUEUE_KEY)\r\n};\r\n\r\nfunction isAnimating($element) {\r\n return !!$element.data(ANIM_DATA_KEY)\r\n}\r\n\r\nfunction shiftFromAnimationQueue($element, queueData) {\r\n queueData = getAnimQueueData($element);\r\n if (!queueData.length) {\r\n return\r\n }\r\n var animation = queueData.shift();\r\n if (0 === queueData.length) {\r\n destroyAnimQueueData($element)\r\n }\r\n executeAnimation(animation).done((function() {\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element)\r\n }\r\n }))\r\n}\r\n\r\nfunction executeAnimation(animation) {\r\n animation.setup();\r\n if (fx.off || animation.isSynchronous) {\r\n animation.start()\r\n } else {\r\n animation.startTimeout = setTimeout((function() {\r\n animation.start()\r\n }))\r\n }\r\n return animation.deferred.promise()\r\n}\r\n\r\nfunction setupPosition($element, config) {\r\n if (!config || !config.position) {\r\n return\r\n }\r\n var win = $(window);\r\n var left = 0;\r\n var top = 0;\r\n var position = positionUtils.calculate($element, config.position);\r\n var offset = $element.offset();\r\n var currentPosition = $element.position();\r\n if (currentPosition.top > offset.top) {\r\n top = win.scrollTop()\r\n }\r\n if (currentPosition.left > offset.left) {\r\n left = win.scrollLeft()\r\n }\r\n extend(config, {\r\n left: position.h.location - offset.left + currentPosition.left - left,\r\n top: position.v.location - offset.top + currentPosition.top - top\r\n });\r\n delete config.position\r\n}\r\n\r\nfunction setProps($element, props) {\r\n each(props, (function(key, value) {\r\n try {\r\n $element.css(key, isFunction(value) ? value() : value)\r\n } catch (e) {}\r\n }))\r\n}\r\nvar stop = function(element, jumpToEnd) {\r\n var $element = $(element);\r\n var queueData = getAnimQueueData($element);\r\n each(queueData, (function(_, animation) {\r\n animation.config.delay = 0;\r\n animation.config.duration = 0;\r\n animation.isSynchronous = true\r\n }));\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n var animation = $element.data(ANIM_DATA_KEY);\r\n if (animation) {\r\n animation.stop(jumpToEnd)\r\n }\r\n $element.removeData(ANIM_DATA_KEY);\r\n destroyAnimQueueData($element)\r\n};\r\nvar fx = {\r\n off: false,\r\n animationTypes: animationConfigurators,\r\n animate: animate,\r\n createAnimation: createAnimation,\r\n isAnimating: isAnimating,\r\n stop: stop,\r\n _simulatedTransitionEndDelay: 100\r\n};\r\nexport default fx;\r\n","/**\r\n * DevExtreme (esm/core/memorized_callbacks.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nexport default class MemorizedCallbacks {\r\n constructor() {\r\n this.memory = [];\r\n this.callbacks = Callbacks()\r\n }\r\n add(fn) {\r\n each(this.memory, (_, item) => fn.apply(fn, item));\r\n this.callbacks.add(fn)\r\n }\r\n remove(fn) {\r\n this.callbacks.remove(fn)\r\n }\r\n fire() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.memory.push(args);\r\n this.callbacks.fire.apply(this.callbacks, args)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/widget/selectors.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar focusableFn = function(element, tabIndex) {\r\n if (!visible(element)) {\r\n return false\r\n }\r\n var nodeName = element.nodeName.toLowerCase();\r\n var isTabIndexNotNaN = !isNaN(tabIndex);\r\n var isDisabled = element.disabled;\r\n var isDefaultFocus = /^(input|select|textarea|button|object|iframe)$/.test(nodeName);\r\n var isHyperlink = \"a\" === nodeName;\r\n var isFocusable = true;\r\n var isContentEditable = element.isContentEditable;\r\n if (isDefaultFocus || isContentEditable) {\r\n isFocusable = !isDisabled\r\n } else if (isHyperlink) {\r\n isFocusable = element.href || isTabIndexNotNaN\r\n } else {\r\n isFocusable = isTabIndexNotNaN\r\n }\r\n return isFocusable\r\n};\r\n\r\nfunction visible(element) {\r\n var $element = $(element);\r\n return $element.is(\":visible\") && \"hidden\" !== $element.css(\"visibility\") && \"hidden\" !== $element.parents().css(\"visibility\")\r\n}\r\nexport var focusable = function(index, element) {\r\n return focusableFn(element, $(element).attr(\"tabIndex\"))\r\n};\r\nexport var tabbable = function(index, element) {\r\n var tabIndex = $(element).attr(\"tabIndex\");\r\n return (isNaN(tabIndex) || tabIndex >= 0) && focusableFn(element, tabIndex)\r\n};\r\nexport var focused = function($element) {\r\n var element = $($element).get(0);\r\n return domAdapter.getActiveElement() === element\r\n};\r\n","/**\r\n * DevExtreme (esm/core/devices.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow,\r\n getNavigator,\r\n hasWindow\r\n} from \"./utils/window\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport readyCallbacks from \"./utils/ready_callbacks\";\r\nimport resizeCallbacks from \"./utils/resize_callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n sessionStorage as SessionStorage\r\n} from \"./utils/storage\";\r\nimport {\r\n changeCallback,\r\n value as viewPort\r\n} from \"./utils/view_port\";\r\nimport Config from \"./config\";\r\nvar navigator = getNavigator();\r\nvar window = getWindow();\r\nvar KNOWN_UA_TABLE = {\r\n iPhone: \"iPhone\",\r\n iPhone5: \"iPhone\",\r\n iPhone6: \"iPhone\",\r\n iPhone6plus: \"iPhone\",\r\n iPad: \"iPad\",\r\n iPadMini: \"iPad Mini\",\r\n androidPhone: \"Android Mobile\",\r\n androidTablet: \"Android\",\r\n msSurface: \"Windows ARM Tablet PC\",\r\n desktop: \"desktop\"\r\n};\r\nvar DEFAULT_DEVICE = {\r\n deviceType: \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n phone: false,\r\n tablet: false,\r\n android: false,\r\n ios: false,\r\n generic: true,\r\n grade: \"A\",\r\n mac: false\r\n};\r\nvar uaParsers = {\r\n generic(userAgent) {\r\n var isPhone = /windows phone/i.test(userAgent) || userAgent.match(/WPDesktop/);\r\n var isTablet = !isPhone && /Windows(.*)arm(.*)Tablet PC/i.test(userAgent);\r\n var isDesktop = !isPhone && !isTablet && /msapphost/i.test(userAgent);\r\n var isMac = /((intel|ppc) mac os x)/.test(userAgent.toLowerCase());\r\n if (!(isPhone || isTablet || isDesktop || isMac)) {\r\n return\r\n }\r\n return {\r\n deviceType: isPhone ? \"phone\" : isTablet ? \"tablet\" : \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n grade: \"A\",\r\n mac: isMac\r\n }\r\n },\r\n ios(userAgent) {\r\n if (!/ip(hone|od|ad)/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /ip(hone|od)/i.test(userAgent);\r\n var matches = userAgent.match(/os (\\d+)_(\\d+)_?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2], 10), parseInt(matches[3] || 0, 10)] : [];\r\n var isIPhone4 = 480 === window.screen.height;\r\n var grade = isIPhone4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"ios\",\r\n version: version,\r\n grade: grade\r\n }\r\n },\r\n android(userAgent) {\r\n if (!/android|htc_|silk/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /mobile/i.test(userAgent);\r\n var matches = userAgent.match(/android (\\d+)\\.?(\\d+)?\\.?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2] || 0, 10), parseInt(matches[3] || 0, 10)] : [];\r\n var worseThan4_4 = version.length > 1 && (version[0] < 4 || 4 === version[0] && version[1] < 4);\r\n var grade = worseThan4_4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"android\",\r\n version: version,\r\n grade: grade\r\n }\r\n }\r\n};\r\nclass Devices {\r\n constructor(options) {\r\n this._window = (null === options || void 0 === options ? void 0 : options.window) || window;\r\n this._realDevice = this._getDevice();\r\n this._currentDevice = void 0;\r\n this._currentOrientation = void 0;\r\n this._eventsStrategy = new EventsStrategy(this);\r\n this.changed = Callbacks();\r\n if (hasWindow()) {\r\n readyCallbacks.add(this._recalculateOrientation.bind(this));\r\n resizeCallbacks.add(this._recalculateOrientation.bind(this))\r\n }\r\n }\r\n current(deviceOrName) {\r\n if (deviceOrName) {\r\n this._currentDevice = this._getDevice(deviceOrName);\r\n this._forced = true;\r\n this.changed.fire();\r\n return\r\n }\r\n if (!this._currentDevice) {\r\n deviceOrName = void 0;\r\n try {\r\n deviceOrName = this._getDeviceOrNameFromWindowScope()\r\n } catch (e) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n } finally {\r\n if (!deviceOrName) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n }\r\n if (deviceOrName) {\r\n this._forced = true\r\n }\r\n }\r\n this._currentDevice = this._getDevice(deviceOrName)\r\n }\r\n return this._currentDevice\r\n }\r\n real(forceDevice) {\r\n return extend({}, this._realDevice)\r\n }\r\n orientation() {\r\n return this._currentOrientation\r\n }\r\n isForced() {\r\n return this._forced\r\n }\r\n isRippleEmulator() {\r\n return !!this._window.tinyHippos\r\n }\r\n _getCssClasses(device) {\r\n var result = [];\r\n var realDevice = this._realDevice;\r\n device = device || this.current();\r\n if (device.deviceType) {\r\n result.push(\"dx-device-\".concat(device.deviceType));\r\n if (\"desktop\" !== device.deviceType) {\r\n result.push(\"dx-device-mobile\")\r\n }\r\n }\r\n result.push(\"dx-device-\".concat(realDevice.platform));\r\n if (realDevice.version && realDevice.version.length) {\r\n result.push(\"dx-device-\".concat(realDevice.platform, \"-\").concat(realDevice.version[0]))\r\n }\r\n if (this.isSimulator()) {\r\n result.push(\"dx-simulator\")\r\n }\r\n if (Config().rtlEnabled) {\r\n result.push(\"dx-rtl\")\r\n }\r\n return result\r\n }\r\n attachCssClasses(element, device) {\r\n this._deviceClasses = this._getCssClasses(device).join(\" \");\r\n $(element).addClass(this._deviceClasses)\r\n }\r\n detachCssClasses(element) {\r\n $(element).removeClass(this._deviceClasses)\r\n }\r\n isSimulator() {\r\n try {\r\n return this._isSimulator || hasWindow() && this._window.top !== this._window.self && this._window.top[\"dx-force-device\"] || this.isRippleEmulator()\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n forceSimulator() {\r\n this._isSimulator = true\r\n }\r\n _getDevice(deviceName) {\r\n if (\"genericPhone\" === deviceName) {\r\n deviceName = {\r\n deviceType: \"phone\",\r\n platform: \"generic\",\r\n generic: true\r\n }\r\n }\r\n if (isPlainObject(deviceName)) {\r\n return this._fromConfig(deviceName)\r\n } else {\r\n var ua;\r\n if (deviceName) {\r\n ua = KNOWN_UA_TABLE[deviceName];\r\n if (!ua) {\r\n throw errors.Error(\"E0005\")\r\n }\r\n } else {\r\n ua = navigator.userAgent\r\n }\r\n return this._fromUA(ua)\r\n }\r\n }\r\n _getDeviceOrNameFromWindowScope() {\r\n var result;\r\n if (hasWindow() && (this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"])) {\r\n result = this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"]\r\n }\r\n return result\r\n }\r\n _getDeviceNameFromSessionStorage() {\r\n var sessionStorage = SessionStorage();\r\n if (!sessionStorage) {\r\n return\r\n }\r\n var deviceOrName = sessionStorage.getItem(\"dx-force-device\");\r\n try {\r\n return JSON.parse(deviceOrName)\r\n } catch (ex) {\r\n return deviceOrName\r\n }\r\n }\r\n _fromConfig(config) {\r\n var result = extend({}, DEFAULT_DEVICE, this._currentDevice, config);\r\n var shortcuts = {\r\n phone: \"phone\" === result.deviceType,\r\n tablet: \"tablet\" === result.deviceType,\r\n android: \"android\" === result.platform,\r\n ios: \"ios\" === result.platform,\r\n generic: \"generic\" === result.platform\r\n };\r\n return extend(result, shortcuts)\r\n }\r\n _fromUA(ua) {\r\n var config;\r\n each(uaParsers, (platform, parser) => {\r\n config = parser(ua);\r\n return !config\r\n });\r\n if (config) {\r\n return this._fromConfig(config)\r\n }\r\n return DEFAULT_DEVICE\r\n }\r\n _changeOrientation() {\r\n var $window = $(this._window);\r\n var orientation = $window.height() > $window.width() ? \"portrait\" : \"landscape\";\r\n if (this._currentOrientation === orientation) {\r\n return\r\n }\r\n this._currentOrientation = orientation;\r\n this._eventsStrategy.fireEvent(\"orientationChanged\", [{\r\n orientation: orientation\r\n }])\r\n }\r\n _recalculateOrientation() {\r\n var windowWidth = $(this._window).width();\r\n if (this._currentWidth === windowWidth) {\r\n return\r\n }\r\n this._currentWidth = windowWidth;\r\n this._changeOrientation()\r\n }\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n }\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n}\r\nvar devices = new Devices;\r\nvar viewPortElement = viewPort();\r\nif (viewPortElement) {\r\n devices.attachCssClasses(viewPortElement)\r\n}\r\nchangeCallback.add((viewPort, prevViewport) => {\r\n devices.detachCssClasses(prevViewport);\r\n devices.attachCssClasses(viewPort)\r\n});\r\nexport default devices;\r\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($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 -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n 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/** 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/**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\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 an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\nfunction isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\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 finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\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 = isInteger;\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","/**\r\n * DevExtreme (esm/animation/frame.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = hasWindow() ? getWindow() : {};\r\nimport callOnce from \"../core/utils/call_once\";\r\nvar FRAME_ANIMATION_STEP_TIME = 1e3 / 60;\r\nvar request = function(callback) {\r\n return setTimeout(callback, FRAME_ANIMATION_STEP_TIME)\r\n};\r\nvar cancel = function(requestID) {\r\n clearTimeout(requestID)\r\n};\r\nvar setAnimationFrameMethods = callOnce((function() {\r\n var nativeRequest = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;\r\n var nativeCancel = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;\r\n if (nativeRequest && nativeCancel) {\r\n request = nativeRequest;\r\n cancel = nativeCancel\r\n }\r\n if (nativeRequest && !nativeCancel) {\r\n var canceledRequests = {};\r\n request = function(callback) {\r\n var requestId = nativeRequest.call(window, (function() {\r\n try {\r\n if (requestId in canceledRequests) {\r\n return\r\n }\r\n callback.apply(this, arguments)\r\n } finally {\r\n delete canceledRequests[requestId]\r\n }\r\n }));\r\n return requestId\r\n };\r\n cancel = function(requestId) {\r\n canceledRequests[requestId] = true\r\n }\r\n }\r\n}));\r\nexport function requestAnimationFrame() {\r\n setAnimationFrameMethods();\r\n return request.apply(window, arguments)\r\n}\r\nexport function cancelAnimationFrame() {\r\n setAnimationFrameMethods();\r\n cancel.apply(window, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/validation_engine.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n inArray\r\n} from \"../core/utils/array\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isDate,\r\n isBoolean,\r\n isObject,\r\n isFunction,\r\n isPromise,\r\n isNumeric\r\n} from \"../core/utils/type\";\r\nimport numberLocalization from \"../localization/number\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport Promise from \"../core/polyfills/promise\";\r\nimport {\r\n fromPromise,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nclass BaseRuleValidator {\r\n constructor() {\r\n this.NAME = \"base\"\r\n }\r\n defaultMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME))(value)\r\n }\r\n defaultFormattedMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME, \"-formatted\"))(value)\r\n }\r\n _isValueEmpty(value) {\r\n return !rulesValidators.required.validate(value, {})\r\n }\r\n validate(value, rule) {\r\n var valueArray = Array.isArray(value) ? value : [value];\r\n var result = true;\r\n if (valueArray.length) {\r\n valueArray.every(itemValue => {\r\n result = this._validate(itemValue, rule);\r\n return result\r\n })\r\n } else {\r\n result = this._validate(null, rule)\r\n }\r\n return result\r\n }\r\n}\r\nclass RequiredRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"required\"\r\n }\r\n _validate(value, rule) {\r\n if (!isDefined(value)) {\r\n return false\r\n }\r\n if (false === value) {\r\n return false\r\n }\r\n value = String(value);\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n return \"\" !== value\r\n }\r\n}\r\nclass NumericRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"numeric\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n if (rule.useCultureSettings && isString(value)) {\r\n return !isNaN(numberLocalization.parse(value))\r\n } else {\r\n return isNumeric(value)\r\n }\r\n }\r\n}\r\nclass RangeRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"range\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validNumber = rulesValidators.numeric.validate(value, rule);\r\n var validValue = isDefined(value) && \"\" !== value;\r\n var number = validNumber ? parseFloat(value) : validValue && value.valueOf();\r\n var min = rule.min;\r\n var max = rule.max;\r\n if (!(validNumber || isDate(value)) && !validValue) {\r\n return false\r\n }\r\n if (isDefined(min)) {\r\n if (isDefined(max)) {\r\n return number >= min && number <= max\r\n }\r\n return number >= min\r\n } else if (isDefined(max)) {\r\n return number <= max\r\n } else {\r\n throw errors.Error(\"E0101\")\r\n }\r\n }\r\n}\r\nclass StringLengthRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"stringLength\"\r\n }\r\n _validate(value, rule) {\r\n var _value;\r\n value = String(null !== (_value = value) && void 0 !== _value ? _value : \"\");\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.range.validate(value.length, extend({}, rule))\r\n }\r\n}\r\nclass CustomRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"custom\"\r\n }\r\n validate(value, rule) {\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n return rule.validationCallback(params)\r\n }\r\n}\r\nclass AsyncRuleValidator extends CustomRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"async\"\r\n }\r\n validate(value, rule) {\r\n if (!isDefined(rule.reevaluate)) {\r\n extend(rule, {\r\n reevaluate: true\r\n })\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n var callbackResult = rule.validationCallback(params);\r\n if (!isPromise(callbackResult)) {\r\n throw errors.Error(\"E0103\")\r\n }\r\n return this._getWrappedPromise(fromPromise(callbackResult).promise())\r\n }\r\n _getWrappedPromise(promise) {\r\n var deferred = new Deferred;\r\n promise.then((function(res) {\r\n deferred.resolve(res)\r\n }), (function(err) {\r\n var res = {\r\n isValid: false\r\n };\r\n if (isDefined(err)) {\r\n if (isString(err)) {\r\n res.message = err\r\n } else if (isObject(err) && isDefined(err.message) && isString(err.message)) {\r\n res.message = err.message\r\n }\r\n }\r\n deferred.resolve(res)\r\n }));\r\n return deferred.promise()\r\n }\r\n}\r\nclass CompareRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"compare\"\r\n }\r\n _validate(value, rule) {\r\n if (!rule.comparisonTarget) {\r\n throw errors.Error(\"E0102\")\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n extend(rule, {\r\n reevaluate: true\r\n });\r\n var otherValue = rule.comparisonTarget();\r\n var type = rule.comparisonType || \"==\";\r\n switch (type) {\r\n case \"==\":\r\n return value == otherValue;\r\n case \"!=\":\r\n return value != otherValue;\r\n case \"===\":\r\n return value === otherValue;\r\n case \"!==\":\r\n return value !== otherValue;\r\n case \">\":\r\n return value > otherValue;\r\n case \">=\":\r\n return value >= otherValue;\r\n case \"<\":\r\n return value < otherValue;\r\n case \"<=\":\r\n return value <= otherValue\r\n }\r\n }\r\n}\r\nclass PatternRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"pattern\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var pattern = rule.pattern;\r\n if (isString(pattern)) {\r\n pattern = new RegExp(pattern)\r\n }\r\n return pattern.test(value)\r\n }\r\n}\r\nclass EmailRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"email\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.pattern.validate(value, extend({}, rule, {\r\n pattern: /^[\\d\\w._-]+@[\\d\\w._-]+\\.[\\w]+$/i\r\n }))\r\n }\r\n}\r\nvar rulesValidators = {\r\n required: new RequiredRuleValidator,\r\n numeric: new NumericRuleValidator,\r\n range: new RangeRuleValidator,\r\n stringLength: new StringLengthRuleValidator,\r\n custom: new CustomRuleValidator,\r\n async: new AsyncRuleValidator,\r\n compare: new CompareRuleValidator,\r\n pattern: new PatternRuleValidator,\r\n email: new EmailRuleValidator\r\n};\r\nvar GroupConfig = Class.inherit({\r\n ctor(group) {\r\n this.group = group;\r\n this.validators = [];\r\n this._pendingValidators = [];\r\n this._onValidatorStatusChanged = this._onValidatorStatusChanged.bind(this);\r\n this._resetValidationInfo();\r\n this._eventsStrategy = new EventsStrategy(this)\r\n },\r\n validate() {\r\n var result = {\r\n isValid: true,\r\n brokenRules: [],\r\n validators: [],\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n this._unsubscribeFromAllChangeEvents();\r\n this._pendingValidators = [];\r\n this._resetValidationInfo();\r\n each(this.validators, (_, validator) => {\r\n var validatorResult = validator.validate();\r\n result.isValid = result.isValid && validatorResult.isValid;\r\n if (validatorResult.brokenRules) {\r\n result.brokenRules = result.brokenRules.concat(validatorResult.brokenRules)\r\n }\r\n result.validators.push(validator);\r\n if (validatorResult.status === STATUS.pending) {\r\n this._addPendingValidator(validator)\r\n }\r\n this._subscribeToChangeEvents(validator)\r\n });\r\n if (this._pendingValidators.length) {\r\n result.status = STATUS.pending\r\n } else {\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n this._unsubscribeFromAllChangeEvents();\r\n this._raiseValidatedEvent(result)\r\n }\r\n this._updateValidationInfo(result);\r\n return extend({}, this._validationInfo.result)\r\n },\r\n _subscribeToChangeEvents(validator) {\r\n validator.on(\"validating\", this._onValidatorStatusChanged);\r\n validator.on(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromChangeEvents(validator) {\r\n validator.off(\"validating\", this._onValidatorStatusChanged);\r\n validator.off(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromAllChangeEvents() {\r\n each(this.validators, (_, validator) => {\r\n this._unsubscribeFromChangeEvents(validator)\r\n })\r\n },\r\n _updateValidationInfo(result) {\r\n this._validationInfo.result = result;\r\n if (result.status !== STATUS.pending) {\r\n return\r\n }\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n },\r\n _addPendingValidator(validator) {\r\n var foundValidator = grep(this._pendingValidators, (function(val) {\r\n return val === validator\r\n }))[0];\r\n if (!foundValidator) {\r\n this._pendingValidators.push(validator)\r\n }\r\n },\r\n _removePendingValidator(validator) {\r\n var index = inArray(validator, this._pendingValidators);\r\n if (index >= 0) {\r\n this._pendingValidators.splice(index, 1)\r\n }\r\n },\r\n _orderBrokenRules(brokenRules) {\r\n var orderedRules = [];\r\n each(this.validators, (function(_, validator) {\r\n var foundRules = grep(brokenRules, (function(rule) {\r\n return rule.validator === validator\r\n }));\r\n if (foundRules.length) {\r\n orderedRules = orderedRules.concat(foundRules)\r\n }\r\n }));\r\n return orderedRules\r\n },\r\n _updateBrokenRules(result) {\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n var brokenRules = this._validationInfo.result.brokenRules;\r\n var rules = grep(brokenRules, (function(rule) {\r\n return rule.validator !== result.validator\r\n }));\r\n if (result.brokenRules) {\r\n brokenRules = rules.concat(result.brokenRules)\r\n }\r\n this._validationInfo.result.brokenRules = this._orderBrokenRules(brokenRules)\r\n },\r\n _onValidatorStatusChanged(result) {\r\n if (result.status === STATUS.pending) {\r\n this._addPendingValidator(result.validator);\r\n return\r\n }\r\n this._resolveIfComplete(result)\r\n },\r\n _resolveIfComplete(result) {\r\n this._removePendingValidator(result.validator);\r\n this._updateBrokenRules(result);\r\n if (!this._pendingValidators.length) {\r\n this._unsubscribeFromAllChangeEvents();\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n this._validationInfo.result.status = 0 === this._validationInfo.result.brokenRules.length ? STATUS.valid : STATUS.invalid;\r\n this._validationInfo.result.isValid = this._validationInfo.result.status === STATUS.valid;\r\n var res = extend({}, this._validationInfo.result, {\r\n complete: null\r\n });\r\n var deferred = this._validationInfo.deferred;\r\n this._validationInfo.deferred = null;\r\n this._raiseValidatedEvent(res);\r\n deferred && setTimeout(() => {\r\n deferred.resolve(res)\r\n })\r\n }\r\n },\r\n _raiseValidatedEvent(result) {\r\n this._eventsStrategy.fireEvent(\"validated\", [result])\r\n },\r\n _resetValidationInfo() {\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null\r\n }\r\n },\r\n _synchronizeValidationInfo() {\r\n if (this._validationInfo.result) {\r\n this._validationInfo.result.validators = this.validators\r\n }\r\n },\r\n removeRegisteredValidator(validator) {\r\n var index = inArray(validator, this.validators);\r\n if (index > -1) {\r\n this.validators.splice(index, 1);\r\n this._synchronizeValidationInfo();\r\n this._resolveIfComplete({\r\n validator: validator\r\n })\r\n }\r\n },\r\n registerValidator(validator) {\r\n if (inArray(validator, this.validators) < 0) {\r\n this.validators.push(validator);\r\n this._synchronizeValidationInfo()\r\n }\r\n },\r\n reset() {\r\n each(this.validators, (function(_, validator) {\r\n validator.reset()\r\n }));\r\n this._pendingValidators = [];\r\n this._resetValidationInfo()\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nvar ValidationEngine = {\r\n groups: [],\r\n getGroupConfig(group) {\r\n var result = grep(this.groups, (function(config) {\r\n return config.group === group\r\n }));\r\n if (result.length) {\r\n return result[0]\r\n }\r\n },\r\n findGroup($element, model) {\r\n var $dxGroup = $element.parents(\".dx-validationgroup\").first();\r\n if ($dxGroup.length) {\r\n return $dxGroup.dxValidationGroup(\"instance\")\r\n }\r\n return model\r\n },\r\n initGroups() {\r\n this.groups = [];\r\n this.addGroup()\r\n },\r\n addGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n if (!config) {\r\n config = new GroupConfig(group);\r\n this.groups.push(config)\r\n }\r\n return config\r\n },\r\n removeGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n var index = inArray(config, this.groups);\r\n if (index > -1) {\r\n this.groups.splice(index, 1)\r\n }\r\n return config\r\n },\r\n _setDefaultMessage(info) {\r\n var {\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n } = info;\r\n if (!isDefined(rule.message)) {\r\n if (validator.defaultFormattedMessage && isDefined(name)) {\r\n rule.message = validator.defaultFormattedMessage(name)\r\n } else {\r\n rule.message = validator.defaultMessage()\r\n }\r\n }\r\n },\r\n _addBrokenRule(info) {\r\n var {\r\n result: result,\r\n rule: rule\r\n } = info;\r\n if (!result.brokenRule) {\r\n result.brokenRule = rule\r\n }\r\n if (!result.brokenRules) {\r\n result.brokenRules = []\r\n }\r\n result.brokenRules.push(rule)\r\n },\r\n validate(value, rules, name) {\r\n var _rules$;\r\n var result = {\r\n name: name,\r\n value: value,\r\n brokenRule: null,\r\n brokenRules: null,\r\n isValid: true,\r\n validationRules: rules,\r\n pendingRules: null,\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n var validator = null === rules || void 0 === rules ? void 0 : null === (_rules$ = rules[0]) || void 0 === _rules$ ? void 0 : _rules$.validator;\r\n var asyncRuleItems = [];\r\n each(rules || [], (_, rule) => {\r\n var ruleValidator = rulesValidators[rule.type];\r\n var ruleValidationResult;\r\n if (ruleValidator) {\r\n if (isDefined(rule.isValid) && rule.value === value && !rule.reevaluate) {\r\n if (!rule.isValid) {\r\n result.isValid = false;\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n });\r\n return false\r\n }\r\n return true\r\n }\r\n rule.value = value;\r\n if (\"async\" === rule.type) {\r\n asyncRuleItems.push({\r\n rule: rule,\r\n ruleValidator: ruleValidator\r\n });\r\n return true\r\n }\r\n ruleValidationResult = ruleValidator.validate(value, rule);\r\n rule.isValid = ruleValidationResult;\r\n if (!ruleValidationResult) {\r\n result.isValid = false;\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: ruleValidator,\r\n name: name\r\n });\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n if (!rule.isValid) {\r\n return false\r\n }\r\n } else {\r\n throw errors.Error(\"E0100\")\r\n }\r\n });\r\n if (result.isValid && !result.brokenRules && asyncRuleItems.length) {\r\n result = this._validateAsyncRules({\r\n value: value,\r\n items: asyncRuleItems,\r\n result: result,\r\n name: name\r\n })\r\n }\r\n this._synchronizeGroupValidationInfo(validator, result);\r\n result.status = result.pendingRules ? STATUS.pending : result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n _synchronizeGroupValidationInfo(validator, result) {\r\n var _result$brokenRules;\r\n if (!validator) {\r\n return\r\n }\r\n var groupConfig = ValidationEngine.getGroupConfig(validator._validationGroup);\r\n groupConfig._updateBrokenRules.call(groupConfig, {\r\n validator: validator,\r\n brokenRules: null !== (_result$brokenRules = result.brokenRules) && void 0 !== _result$brokenRules ? _result$brokenRules : []\r\n })\r\n },\r\n _validateAsyncRules(_ref) {\r\n var {\r\n result: result,\r\n value: value,\r\n items: items,\r\n name: name\r\n } = _ref;\r\n var asyncResults = [];\r\n each(items, (_, item) => {\r\n var validateResult = item.ruleValidator.validate(value, item.rule);\r\n if (!isPromise(validateResult)) {\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: this._getPatchedRuleResult(validateResult),\r\n validator: item.ruleValidator,\r\n name: name\r\n })\r\n } else {\r\n if (!result.pendingRules) {\r\n result.pendingRules = []\r\n }\r\n result.pendingRules.push(item.rule);\r\n var asyncResult = validateResult.then(res => {\r\n var ruleResult = this._getPatchedRuleResult(res);\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: ruleResult,\r\n validator: item.ruleValidator,\r\n name: name\r\n });\r\n return ruleResult\r\n });\r\n asyncResults.push(asyncResult)\r\n }\r\n });\r\n if (asyncResults.length) {\r\n result.complete = Promise.all(asyncResults).then(values => this._getAsyncRulesResult({\r\n result: result,\r\n values: values\r\n }))\r\n }\r\n return result\r\n },\r\n _updateRuleConfig(_ref2) {\r\n var {\r\n rule: rule,\r\n ruleResult: ruleResult,\r\n validator: validator,\r\n name: name\r\n } = _ref2;\r\n rule.isValid = ruleResult.isValid;\r\n if (!ruleResult.isValid) {\r\n if (isDefined(ruleResult.message) && isString(ruleResult.message) && ruleResult.message.length) {\r\n rule.message = ruleResult.message\r\n } else {\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n })\r\n }\r\n }\r\n },\r\n _getPatchedRuleResult(ruleResult) {\r\n var result;\r\n if (isObject(ruleResult)) {\r\n result = extend({}, ruleResult);\r\n if (!isDefined(result.isValid)) {\r\n result.isValid = true\r\n }\r\n } else {\r\n result = {\r\n isValid: isBoolean(ruleResult) ? ruleResult : true\r\n }\r\n }\r\n return result\r\n },\r\n _getAsyncRulesResult(_ref3) {\r\n var {\r\n values: values,\r\n result: result\r\n } = _ref3;\r\n each(values, (index, val) => {\r\n if (false === val.isValid) {\r\n result.isValid = val.isValid;\r\n var rule = result.pendingRules[index];\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n });\r\n result.pendingRules = null;\r\n result.complete = null;\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n registerValidatorInGroup(group, validator) {\r\n var groupConfig = ValidationEngine.addGroup(group);\r\n groupConfig.registerValidator.call(groupConfig, validator)\r\n },\r\n _shouldRemoveGroup(group, validatorsInGroup) {\r\n var isDefaultGroup = void 0 === group;\r\n var isValidationGroupInstance = group && \"dxValidationGroup\" === group.NAME;\r\n return !isDefaultGroup && !isValidationGroupInstance && !validatorsInGroup.length\r\n },\r\n removeRegisteredValidator(group, validator) {\r\n var config = ValidationEngine.getGroupConfig(group);\r\n if (config) {\r\n config.removeRegisteredValidator.call(config, validator);\r\n var validatorsInGroup = config.validators;\r\n if (this._shouldRemoveGroup(group, validatorsInGroup)) {\r\n this.removeGroup(group)\r\n }\r\n }\r\n },\r\n initValidationOptions(options) {\r\n var initedOptions = {};\r\n if (options) {\r\n [\"isValid\", \"validationStatus\", \"validationError\", \"validationErrors\"].forEach(prop => {\r\n if (prop in options) {\r\n extend(initedOptions, this.synchronizeValidationOptions({\r\n name: prop,\r\n value: options[prop]\r\n }, options))\r\n }\r\n })\r\n }\r\n return initedOptions\r\n },\r\n synchronizeValidationOptions(_ref4, options) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref4;\r\n switch (name) {\r\n case \"validationStatus\":\r\n var isValid = value === STATUS.valid || value === STATUS.pending;\r\n return options.isValid !== isValid ? {\r\n isValid: isValid\r\n } : {};\r\n case \"isValid\":\r\n var {\r\n validationStatus: validationStatus\r\n } = options;\r\n var newStatus = validationStatus;\r\n if (value && validationStatus === STATUS.invalid) {\r\n newStatus = STATUS.valid\r\n } else if (!value && validationStatus !== STATUS.invalid) {\r\n newStatus = STATUS.invalid\r\n }\r\n return newStatus !== validationStatus ? {\r\n validationStatus: newStatus\r\n } : {};\r\n case \"validationErrors\":\r\n var validationError = !value || !value.length ? null : value[0];\r\n return options.validationError !== validationError ? {\r\n validationError: validationError\r\n } : {};\r\n case \"validationError\":\r\n var {\r\n validationErrors: validationErrors\r\n } = options;\r\n if (!value && validationErrors) {\r\n return {\r\n validationErrors: null\r\n }\r\n } else if (value && !validationErrors) {\r\n return {\r\n validationErrors: [value]\r\n }\r\n } else if (value && validationErrors && value !== validationErrors[0]) {\r\n validationErrors[0] = value;\r\n return {\r\n validationErrors: validationErrors.slice()\r\n }\r\n }\r\n }\r\n return {}\r\n },\r\n validateGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.validate()\r\n },\r\n resetGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.reset()\r\n }\r\n};\r\nValidationEngine.initGroups();\r\nexport default ValidationEngine;\r\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","/**\r\n * DevExtreme (esm/ui/dialog.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Component\r\n} from \"../core/component\";\r\nimport Action from \"../core/action\";\r\nimport devices from \"../core/devices\";\r\nimport config from \"../core/config\";\r\nimport {\r\n resetActiveElement\r\n} from \"../core/utils/dom\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n value as getViewport\r\n} from \"../core/utils/view_port\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport Popup from \"./popup\";\r\nimport {\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nvar window = getWindow();\r\nvar DEFAULT_BUTTON = {\r\n text: \"OK\",\r\n onClick: function() {\r\n return true\r\n }\r\n};\r\nvar DX_DIALOG_CLASSNAME = \"dx-dialog\";\r\nvar DX_DIALOG_WRAPPER_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-wrapper\");\r\nvar DX_DIALOG_ROOT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-root\");\r\nvar DX_DIALOG_CONTENT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-content\");\r\nvar DX_DIALOG_MESSAGE_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-message\");\r\nvar DX_DIALOG_BUTTONS_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-buttons\");\r\nvar DX_DIALOG_BUTTON_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-button\");\r\nvar DX_BUTTON_CLASSNAME = \"dx-button\";\r\nexport var FakeDialogComponent = Component.inherit({\r\n ctor: function(element, options) {\r\n this.callBase(options)\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n width: 276\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n lWidth: \"60%\",\r\n pWidth: \"80%\"\r\n }\r\n }])\r\n }\r\n});\r\nexport var title = \"\";\r\nexport var custom = function(options) {\r\n var deferred = new Deferred;\r\n var defaultOptions = (new FakeDialogComponent).option();\r\n options = extend(defaultOptions, options);\r\n var $element = $(\"
    \").addClass(DX_DIALOG_CLASSNAME).appendTo(getViewport());\r\n var isMessageDefined = \"message\" in options;\r\n var isMessageHtmlDefined = \"messageHtml\" in options;\r\n if (isMessageDefined) {\r\n errors.log(\"W1013\")\r\n }\r\n var messageHtml = String(isMessageHtmlDefined ? options.messageHtml : options.message);\r\n var $message = $(\"
    \").addClass(DX_DIALOG_MESSAGE_CLASSNAME).html(messageHtml);\r\n var popupToolbarItems = [];\r\n each(options.buttons || [DEFAULT_BUTTON], (function() {\r\n var action = new Action(this.onClick, {\r\n context: popupInstance\r\n });\r\n popupToolbarItems.push({\r\n toolbar: \"bottom\",\r\n location: devices.current().android ? \"after\" : \"center\",\r\n widget: \"dxButton\",\r\n options: extend({}, this, {\r\n onClick: function() {\r\n var result = action.execute(...arguments);\r\n hide(result)\r\n }\r\n })\r\n })\r\n }));\r\n var popupInstance = new Popup($element, extend({\r\n title: options.title || title,\r\n showTitle: ensureDefined(options.showTitle, true),\r\n dragEnabled: ensureDefined(options.dragEnabled, true),\r\n height: \"auto\",\r\n width: function() {\r\n var isPortrait = $(window).height() > $(window).width();\r\n var key = (isPortrait ? \"p\" : \"l\") + \"Width\";\r\n var widthOption = Object.prototype.hasOwnProperty.call(options, key) ? options[key] : options.width;\r\n return isFunction(widthOption) ? widthOption() : widthOption\r\n },\r\n showCloseButton: options.showCloseButton || false,\r\n ignoreChildEvents: false,\r\n onContentReady: function(args) {\r\n args.component.$content().addClass(DX_DIALOG_CONTENT_CLASSNAME).append($message)\r\n },\r\n onShowing: function(e) {\r\n e.component.bottomToolbar().addClass(DX_DIALOG_BUTTONS_CLASSNAME).find(\".\".concat(DX_BUTTON_CLASSNAME)).addClass(DX_DIALOG_BUTTON_CLASSNAME);\r\n resetActiveElement()\r\n },\r\n onShown: function(e) {\r\n var $firstButton = e.component.bottomToolbar().find(\".\".concat(DX_BUTTON_CLASSNAME)).first();\r\n eventsEngine.trigger($firstButton, \"focus\")\r\n },\r\n onHiding: function() {\r\n deferred.reject()\r\n },\r\n toolbarItems: popupToolbarItems,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 400\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 400,\r\n to: {\r\n opacity: 0,\r\n scale: 0\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n },\r\n rtlEnabled: config().rtlEnabled,\r\n boundaryOffset: {\r\n h: 10,\r\n v: 0\r\n }\r\n }, options.popupOptions));\r\n popupInstance.$wrapper().addClass(DX_DIALOG_WRAPPER_CLASSNAME);\r\n if (options.position) {\r\n popupInstance.option(\"position\", options.position)\r\n }\r\n popupInstance.$wrapper().addClass(DX_DIALOG_ROOT_CLASSNAME);\r\n\r\n function hide(value) {\r\n deferred.resolve(value);\r\n popupInstance.hide().done((function() {\r\n popupInstance.$element().remove()\r\n }))\r\n }\r\n return {\r\n show: function() {\r\n popupInstance.show();\r\n return deferred.promise()\r\n },\r\n hide: hide\r\n }\r\n};\r\nexport var alert = function(messageHtml, title, showTitle) {\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\nexport var confirm = function(messageHtml, title, showTitle) {\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [{\r\n text: messageLocalization.format(\"Yes\"),\r\n onClick: function() {\r\n return true\r\n }\r\n }, {\r\n text: messageLocalization.format(\"No\"),\r\n onClick: function() {\r\n return false\r\n }\r\n }],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\n","/**\r\n * DevExtreme (esm/data/data_source/utils.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"items\"];\r\nimport ajaxUtils from \"../../core/utils/ajax\";\r\nimport Store from \"../abstract_store\";\r\nimport ArrayStore from \"../array_store\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../utils\";\r\nexport var CANCELED_TOKEN = \"canceled\";\r\nexport var isPending = deferred => \"pending\" === deferred.state();\r\nexport var normalizeStoreLoadOptionAccessorArguments = originalArguments => {\r\n switch (originalArguments.length) {\r\n case 0:\r\n return;\r\n case 1:\r\n return originalArguments[0]\r\n }\r\n return [].slice.call(originalArguments)\r\n};\r\nvar mapGroup = (group, level, mapper) => map(group, item => {\r\n var restItem = _objectWithoutPropertiesLoose(item, _excluded);\r\n return _extends({}, restItem, {\r\n items: mapRecursive(item.items, level - 1, mapper)\r\n })\r\n});\r\nvar mapRecursive = (items, level, mapper) => {\r\n if (!Array.isArray(items)) {\r\n return items\r\n }\r\n return level ? mapGroup(items, level, mapper) : map(items, mapper)\r\n};\r\nexport var mapDataRespectingGrouping = (items, mapper, groupInfo) => {\r\n var level = groupInfo ? normalizeSortingInfo(groupInfo).length : 0;\r\n return mapRecursive(items, level, mapper)\r\n};\r\nexport var normalizeLoadResult = (data, extra) => {\r\n var _data;\r\n if (null !== (_data = data) && void 0 !== _data && _data.data) {\r\n extra = data;\r\n data = data.data\r\n }\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n return {\r\n data: data,\r\n extra: extra\r\n }\r\n};\r\nvar createCustomStoreFromLoadFunc = options => {\r\n var storeConfig = {};\r\n each([\"useDefaultSearch\", \"key\", \"load\", \"loadMode\", \"cacheRawData\", \"byKey\", \"lookup\", \"totalCount\", \"insert\", \"update\", \"remove\"], (function() {\r\n storeConfig[this] = options[this];\r\n delete options[this]\r\n }));\r\n return new CustomStore(storeConfig)\r\n};\r\nvar createStoreFromConfig = storeConfig => {\r\n var alias = storeConfig.type;\r\n delete storeConfig.type;\r\n return Store.create(alias, storeConfig)\r\n};\r\nvar createCustomStoreFromUrl = (url, normalizationOptions) => new CustomStore({\r\n load: () => ajaxUtils.sendRequest({\r\n url: url,\r\n dataType: \"json\"\r\n }),\r\n loadMode: null === normalizationOptions || void 0 === normalizationOptions ? void 0 : normalizationOptions.fromUrlLoadMode\r\n});\r\nexport var normalizeDataSourceOptions = (options, normalizationOptions) => {\r\n var store;\r\n if (\"string\" === typeof options) {\r\n options = {\r\n paginate: false,\r\n store: createCustomStoreFromUrl(options, normalizationOptions)\r\n }\r\n }\r\n if (void 0 === options) {\r\n options = []\r\n }\r\n if (Array.isArray(options) || options instanceof Store) {\r\n options = {\r\n store: options\r\n }\r\n } else {\r\n options = extend({}, options)\r\n }\r\n if (void 0 === options.store) {\r\n options.store = []\r\n }\r\n store = options.store;\r\n if (\"load\" in options) {\r\n store = createCustomStoreFromLoadFunc(options)\r\n } else if (Array.isArray(store)) {\r\n store = new ArrayStore(store)\r\n } else if (isPlainObject(store)) {\r\n store = createStoreFromConfig(extend({}, store))\r\n }\r\n options.store = store;\r\n return options\r\n};\r\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","/**\r\n * DevExtreme (esm/core/dom_adapter.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport injector from \"./utils/dependency_injector\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nvar ELEMENT_NODE = 1;\r\nvar TEXT_NODE = 3;\r\nvar DOCUMENT_NODE = 9;\r\nvar nativeDOMAdapterStrategy = {\r\n querySelectorAll: (element, selector) => element.querySelectorAll(selector),\r\n elementMatches(element, selector) {\r\n var matches = element.matches || element.matchesSelector || element.mozMatchesSelector || element.msMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector || (selector => {\r\n var doc = element.document || element.ownerDocument;\r\n if (!doc) {\r\n return false\r\n }\r\n var items = this.querySelectorAll(doc, selector);\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] === element) {\r\n return true\r\n }\r\n }\r\n });\r\n return matches.call(element, selector)\r\n },\r\n createElement(tagName, context) {\r\n context = context || this._document;\r\n return context.createElement(tagName)\r\n },\r\n createElementNS(ns, tagName, context) {\r\n context = context || this._document;\r\n return context.createElementNS(ns, tagName)\r\n },\r\n createTextNode(text, context) {\r\n context = context || this._document;\r\n return context.createTextNode(text)\r\n },\r\n isNode: element => element && \"object\" === typeof element && \"nodeType\" in element && \"nodeName\" in element,\r\n isElementNode: element => element && element.nodeType === ELEMENT_NODE,\r\n isTextNode: element => element && element.nodeType === TEXT_NODE,\r\n isDocument: element => element && element.nodeType === DOCUMENT_NODE,\r\n removeElement(element) {\r\n var parentNode = element && element.parentNode;\r\n if (parentNode) {\r\n parentNode.removeChild(element)\r\n }\r\n },\r\n insertElement(parentElement, newElement, nextSiblingElement) {\r\n if (parentElement && newElement && parentElement !== newElement) {\r\n if (nextSiblingElement) {\r\n parentElement.insertBefore(newElement, nextSiblingElement)\r\n } else {\r\n parentElement.appendChild(newElement)\r\n }\r\n }\r\n },\r\n getAttribute: (element, name) => element.getAttribute(name),\r\n setAttribute(element, name, value) {\r\n element.setAttribute(name, value)\r\n },\r\n removeAttribute(element, name) {\r\n element.removeAttribute(name)\r\n },\r\n setProperty(element, name, value) {\r\n element[name] = value\r\n },\r\n setText(element, text) {\r\n if (element) {\r\n element.textContent = text\r\n }\r\n },\r\n setClass(element, className, isAdd) {\r\n if (1 === element.nodeType && className) {\r\n if (element.classList) {\r\n if (isAdd) {\r\n element.classList.add(className)\r\n } else {\r\n element.classList.remove(className)\r\n }\r\n } else {\r\n var classNameSupported = \"string\" === typeof element.className;\r\n var elementClass = classNameSupported ? element.className : this.getAttribute(element, \"class\") || \"\";\r\n var classNames = elementClass.split(\" \");\r\n var classIndex = classNames.indexOf(className);\r\n var resultClassName;\r\n if (isAdd && classIndex < 0) {\r\n resultClassName = elementClass ? elementClass + \" \" + className : className\r\n }\r\n if (!isAdd && classIndex >= 0) {\r\n classNames.splice(classIndex, 1);\r\n resultClassName = classNames.join(\" \")\r\n }\r\n if (void 0 !== resultClassName) {\r\n if (classNameSupported) {\r\n element.className = resultClassName\r\n } else {\r\n this.setAttribute(element, \"class\", resultClassName)\r\n }\r\n }\r\n }\r\n }\r\n },\r\n setStyle(element, name, value) {\r\n element.style[name] = value || \"\"\r\n },\r\n _document: \"undefined\" === typeof document ? void 0 : document,\r\n getDocument() {\r\n return this._document\r\n },\r\n getActiveElement() {\r\n return this._document.activeElement\r\n },\r\n getBody() {\r\n return this._document.body\r\n },\r\n createDocumentFragment() {\r\n return this._document.createDocumentFragment()\r\n },\r\n getDocumentElement() {\r\n return this._document.documentElement\r\n },\r\n getLocation() {\r\n return this._document.location\r\n },\r\n getSelection() {\r\n return this._document.selection\r\n },\r\n getReadyState() {\r\n return this._document.readyState\r\n },\r\n getHead() {\r\n return this._document.head\r\n },\r\n hasDocumentProperty(property) {\r\n return property in this._document\r\n },\r\n listen(element, event, callback, options) {\r\n if (!element || !(\"addEventListener\" in element)) {\r\n return noop\r\n }\r\n element.addEventListener(event, callback, options);\r\n return () => {\r\n element.removeEventListener(event, callback)\r\n }\r\n }\r\n};\r\nexport default injector(nativeDOMAdapterStrategy);\r\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","/**\r\n * DevExtreme (esm/ui/text_box/text_box.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getNavigator,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nvar navigator = getNavigator();\r\nimport browser from \"../../core/utils/browser\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n inArray\r\n} from \"../../core/utils/array\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditor from \"./ui.text_editor\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar ua = navigator.userAgent;\r\nvar ignoreKeys = [\"backspace\", \"tab\", \"enter\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"rightArrow\", \"downArrow\", \"upArrow\", \"del\"];\r\nvar TEXTBOX_CLASS = \"dx-textbox\";\r\nvar SEARCHBOX_CLASS = \"dx-searchbox\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SEARCH_ICON_CLASS = \"dx-icon-search\";\r\nvar TextBox = TextEditor.inherit({\r\n ctor: function(element, options) {\r\n if (options) {\r\n this._showClearButton = options.showClearButton\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: \"\",\r\n mode: \"text\",\r\n maxLength: null\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTBOX_CLASS);\r\n this.callBase();\r\n this.setAria(\"role\", \"textbox\")\r\n },\r\n _renderContentImpl: function() {\r\n this._renderMaxLengthHandlers();\r\n this.callBase()\r\n },\r\n _renderInputType: function() {\r\n this.callBase();\r\n this._renderSearchMode()\r\n },\r\n _renderMaxLengthHandlers: function() {\r\n if (this._isAndroidOrIE()) {\r\n eventsEngine.on(this._input(), addNamespace(\"keydown\", this.NAME), this._onKeyDownCutOffHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"change\", this.NAME), this._onChangeCutOffHandler.bind(this))\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._toggleMaxLengthProp()\r\n },\r\n _toggleMaxLengthProp: function() {\r\n var maxLength = this._getMaxLength();\r\n if (maxLength && maxLength > 0) {\r\n this._input().attr(\"maxLength\", maxLength)\r\n } else {\r\n this._input().removeAttr(\"maxLength\")\r\n }\r\n },\r\n _renderSearchMode: function() {\r\n var $element = this._$element;\r\n if (\"search\" === this.option(\"mode\")) {\r\n $element.addClass(SEARCHBOX_CLASS);\r\n this._renderSearchIcon();\r\n if (void 0 === this._showClearButton) {\r\n this._showClearButton = this.option(\"showClearButton\");\r\n this.option(\"showClearButton\", true)\r\n }\r\n } else {\r\n $element.removeClass(SEARCHBOX_CLASS);\r\n this._$searchIcon && this._$searchIcon.remove();\r\n this.option(\"showClearButton\", void 0 === this._showClearButton ? this.option(\"showClearButton\") : this._showClearButton);\r\n delete this._showClearButton\r\n }\r\n },\r\n _renderSearchIcon: function() {\r\n var $searchIcon = $(\"
    \").addClass(ICON_CLASS).addClass(SEARCH_ICON_CLASS);\r\n $searchIcon.prependTo(this._input().parent());\r\n this._$searchIcon = $searchIcon\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"maxLength\":\r\n this._toggleMaxLengthProp();\r\n this._renderMaxLengthHandlers();\r\n break;\r\n case \"mask\":\r\n this.callBase(args);\r\n this._toggleMaxLengthProp();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _onKeyDownCutOffHandler: function(e) {\r\n var actualMaxLength = this._getMaxLength();\r\n if (actualMaxLength && !e.ctrlKey && !this._hasSelection()) {\r\n var $input = $(e.target);\r\n var key = normalizeKeyName(e);\r\n this._cutOffExtraChar($input);\r\n return $input.val().length < actualMaxLength || -1 !== inArray(key, ignoreKeys) || \"\" !== window.getSelection().toString()\r\n } else {\r\n return true\r\n }\r\n },\r\n _onChangeCutOffHandler: function(e) {\r\n var $input = $(e.target);\r\n if (this.option(\"maxLength\")) {\r\n this._cutOffExtraChar($input)\r\n }\r\n },\r\n _cutOffExtraChar: function($input) {\r\n var actualMaxLength = this._getMaxLength();\r\n var textInput = $input.val();\r\n if (actualMaxLength && textInput.length > actualMaxLength) {\r\n $input.val(textInput.substr(0, actualMaxLength))\r\n }\r\n },\r\n _getMaxLength: function() {\r\n var isMaskSpecified = !!this.option(\"mask\");\r\n return isMaskSpecified ? null : this.option(\"maxLength\")\r\n },\r\n _isAndroidOrIE: function() {\r\n var realDevice = devices.real();\r\n var version = realDevice.version.join(\".\");\r\n return browser.msie || \"android\" === realDevice.platform && version && /^(2\\.|4\\.1)/.test(version) && !/chrome/i.test(ua)\r\n }\r\n});\r\nregisterComponent(\"dxTextBox\", TextBox);\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/text_box.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TextBox from \"./text_box/text_box\";\r\nexport default TextBox;\r\n","/*!\n * devextreme-vue\n * Version: 21.1.5\n * Build date: Mon Aug 02 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\n/** @deprecated Use 'devextreme-vue/popup' file instead */\n__exportStar(require(\"../popup\"), exports);\nvar popup_1 = require(\"../popup\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return __importDefault(popup_1).default; } });\n","/**\r\n * DevExtreme (esm/core/utils/scroll_rtl_behavior.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport callOnce from \"./call_once\";\r\nvar getScrollRtlBehavior = callOnce((function() {\r\n var document = domAdapter.getDocument();\r\n document.body.insertAdjacentHTML(\"beforeend\", \"
    \");\r\n var scroller = document.body.lastElementChild;\r\n var initiallyPositive = scroller.scrollLeft > 0;\r\n scroller.scrollLeft = -1;\r\n var hasNegative = scroller.scrollLeft < 0;\r\n var result = {\r\n decreasing: hasNegative || initiallyPositive,\r\n positive: !hasNegative\r\n };\r\n document.body.removeChild(scroller);\r\n return result\r\n}));\r\nexport default getScrollRtlBehavior;\r\n","/**\r\n * DevExtreme (esm/core/utils/dom.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isWindow\r\n} from \"./type\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nvar window = getWindow();\r\nexport var resetActiveElement = function() {\r\n var activeElement = domAdapter.getActiveElement();\r\n var body = domAdapter.getBody();\r\n if (activeElement && activeElement !== body && activeElement.blur) {\r\n try {\r\n activeElement.blur()\r\n } catch (e) {\r\n body.blur()\r\n }\r\n }\r\n};\r\nexport var clearSelection = function() {\r\n var selection = window.getSelection();\r\n if (!selection) {\r\n return\r\n }\r\n if (\"Caret\" === selection.type) {\r\n return\r\n }\r\n if (selection.empty) {\r\n selection.empty()\r\n } else if (selection.removeAllRanges) {\r\n try {\r\n selection.removeAllRanges()\r\n } catch (e) {}\r\n }\r\n};\r\nexport var closestCommonParent = function(startTarget, endTarget) {\r\n var $startTarget = $(startTarget);\r\n var $endTarget = $(endTarget);\r\n if ($startTarget[0] === $endTarget[0]) {\r\n return $startTarget[0]\r\n }\r\n var $startParents = $startTarget.parents();\r\n var $endParents = $endTarget.parents();\r\n var startingParent = Math.min($startParents.length, $endParents.length);\r\n for (var i = -startingParent; i < 0; i++) {\r\n if ($startParents.get(i) === $endParents.get(i)) {\r\n return $startParents.get(i)\r\n }\r\n }\r\n};\r\nexport var extractTemplateMarkup = function(element) {\r\n element = $(element);\r\n var templateTag = element.length && element.filter((function() {\r\n var $node = $(this);\r\n return $node.is(\"script[type]\") && $node.attr(\"type\").indexOf(\"script\") < 0\r\n }));\r\n if (templateTag.length) {\r\n return templateTag.eq(0).html()\r\n } else {\r\n element = $(\"
    \").append(element);\r\n return element.html()\r\n }\r\n};\r\nexport var normalizeTemplateElement = function normalizeTemplateElement(element) {\r\n var $element = isDefined(element) && (element.nodeType || isRenderer(element)) ? $(element) : $(\"
    \").html(element).contents();\r\n if (1 === $element.length) {\r\n if ($element.is(\"script\")) {\r\n $element = normalizeTemplateElement($element.html().trim())\r\n } else if ($element.is(\"table\")) {\r\n $element = $element.children(\"tbody\").contents()\r\n }\r\n }\r\n return $element\r\n};\r\nexport var clipboardText = function(event, text) {\r\n var clipboard = event.originalEvent && event.originalEvent.clipboardData || window.clipboardData;\r\n if (1 === arguments.length) {\r\n return clipboard && clipboard.getData(\"Text\")\r\n }\r\n clipboard && clipboard.setData(\"Text\", text)\r\n};\r\nexport var contains = function contains(container, element) {\r\n if (!element) {\r\n return false\r\n }\r\n if (domAdapter.isTextNode(element)) {\r\n element = element.parentNode\r\n }\r\n if (domAdapter.isDocument(container)) {\r\n return container.documentElement.contains(element)\r\n }\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\nexport var createTextElementHiddenCopy = function(element, text, options) {\r\n var elementStyles = window.getComputedStyle($(element).get(0));\r\n var includePaddings = options && options.includePaddings;\r\n return $(\"
    \").text(text).css({\r\n fontStyle: elementStyles.fontStyle,\r\n fontVariant: elementStyles.fontVariant,\r\n fontWeight: elementStyles.fontWeight,\r\n fontSize: elementStyles.fontSize,\r\n fontFamily: elementStyles.fontFamily,\r\n letterSpacing: elementStyles.letterSpacing,\r\n border: elementStyles.border,\r\n paddingTop: includePaddings ? elementStyles.paddingTop : \"\",\r\n paddingRight: includePaddings ? elementStyles.paddingRight : \"\",\r\n paddingBottom: includePaddings ? elementStyles.paddingBottom : \"\",\r\n paddingLeft: includePaddings ? elementStyles.paddingLeft : \"\",\r\n visibility: \"hidden\",\r\n whiteSpace: \"pre\",\r\n position: \"absolute\",\r\n float: \"left\"\r\n })\r\n};\r\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\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\nexport default function _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}","/**\r\n * DevExtreme (esm/ui/scroll_view/animator.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../animation/frame\";\r\nvar Animator = Class.inherit({\r\n ctor: function() {\r\n this._finished = true;\r\n this._stopped = false;\r\n this._proxiedStepCore = this._stepCore.bind(this)\r\n },\r\n start: function() {\r\n this._stopped = false;\r\n this._finished = false;\r\n this._stepCore()\r\n },\r\n stop: function() {\r\n this._stopped = true;\r\n cancelAnimationFrame(this._stepAnimationFrame)\r\n },\r\n _stepCore: function() {\r\n if (this._isStopped()) {\r\n this._stop();\r\n return\r\n }\r\n if (this._isFinished()) {\r\n this._finished = true;\r\n this._complete();\r\n return\r\n }\r\n this._step();\r\n this._stepAnimationFrame = requestAnimationFrame(this._proxiedStepCore)\r\n },\r\n _step: abstract,\r\n _isFinished: noop,\r\n _stop: noop,\r\n _complete: noop,\r\n _isStopped: function() {\r\n return this._stopped\r\n },\r\n inProgress: function() {\r\n return !(this._stopped || this._finished)\r\n }\r\n});\r\nexport default Animator;\r\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.16.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var isSymbol = require('../internals/is-symbol');\n\nmodule.exports = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","/*!\n * devextreme-vue\n * Version: 21.1.5\n * Build date: Mon Aug 02 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExtensionComponent = exports.createConfigurationComponent = exports.createComponent = void 0;\nvar vue_1 = require(\"vue\");\nvar component_1 = require(\"../../component\");\nvar configuration_component_1 = require(\"../../configuration-component\");\nvar extension_component_1 = require(\"../../extension-component\");\nvar vue_helper_1 = require(\"../../vue-helper\");\nfunction createComponent(config) {\n config.extends = component_1.initDxComponent();\n if (config.model) {\n vue_helper_1.setVModel(config);\n }\n return vue_1.defineComponent(config);\n}\nexports.createComponent = createComponent;\nfunction createConfigurationComponent(config) {\n config.extends = configuration_component_1.initDxConfiguration();\n return vue_1.defineComponent(config);\n}\nexports.createConfigurationComponent = createConfigurationComponent;\nfunction createExtensionComponent(config) {\n config.extends = extension_component_1.initDxExtensionComponent();\n return vue_1.defineComponent(config);\n}\nexports.createExtensionComponent = createExtensionComponent;\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","/**\r\n * DevExtreme (esm/localization/ldml/number.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n toFixed\r\n} from \"../utils\";\r\nvar DEFAULT_CONFIG = {\r\n thousandsSeparator: \",\",\r\n decimalSeparator: \".\"\r\n};\r\nvar ESCAPING_CHAR = \"'\";\r\nvar MAXIMUM_NUMBER_LENGTH = 15;\r\n\r\nfunction getGroupSizes(formatString) {\r\n return formatString.split(\",\").slice(1).map((function(str) {\r\n return str.split(\"\").filter((function(char) {\r\n return \"#\" === char || \"0\" === char\r\n })).length\r\n }))\r\n}\r\n\r\nfunction getSignParts(format) {\r\n var signParts = format.split(\";\");\r\n if (1 === signParts.length) {\r\n signParts.push(\"-\" + signParts[0])\r\n }\r\n return signParts\r\n}\r\n\r\nfunction reverseString(str) {\r\n return str.toString().split(\"\").reverse().join(\"\")\r\n}\r\n\r\nfunction isPercentFormat(format) {\r\n return -1 !== format.indexOf(\"%\") && !format.match(/'[^']*%[^']*'/g)\r\n}\r\n\r\nfunction removeStubs(str) {\r\n return str.replace(/'.+'/g, \"\")\r\n}\r\n\r\nfunction getNonRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[#]/g, \"\").length\r\n}\r\n\r\nfunction getRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[0]/g, \"\").length\r\n}\r\n\r\nfunction normalizeValueString(valuePart, minDigitCount, maxDigitCount) {\r\n if (!valuePart) {\r\n return \"\"\r\n }\r\n if (valuePart.length > maxDigitCount) {\r\n valuePart = valuePart.substr(0, maxDigitCount)\r\n }\r\n while (valuePart.length > minDigitCount && \"0\" === valuePart.slice(-1)) {\r\n valuePart = valuePart.substr(0, valuePart.length - 1)\r\n }\r\n while (valuePart.length < minDigitCount) {\r\n valuePart += \"0\"\r\n }\r\n return valuePart\r\n}\r\n\r\nfunction applyGroups(valueString, groupSizes, thousandsSeparator) {\r\n if (!groupSizes.length) {\r\n return valueString\r\n }\r\n var groups = [];\r\n var index = 0;\r\n while (valueString) {\r\n var groupSize = groupSizes[index];\r\n if (!groupSize) {\r\n break\r\n }\r\n groups.push(valueString.slice(0, groupSize));\r\n valueString = valueString.slice(groupSize);\r\n if (index < groupSizes.length - 1) {\r\n index++\r\n }\r\n }\r\n return groups.join(thousandsSeparator)\r\n}\r\n\r\nfunction formatNumberPart(format, valueString) {\r\n return format.split(ESCAPING_CHAR).map((function(formatPart, escapeIndex) {\r\n var isEscape = escapeIndex % 2;\r\n if (!formatPart && isEscape) {\r\n return ESCAPING_CHAR\r\n }\r\n return isEscape ? formatPart : formatPart.replace(/[,#0]+/, valueString)\r\n })).join(\"\")\r\n}\r\n\r\nfunction getFloatPointIndex(format) {\r\n var isEscape = false;\r\n for (var index = 0; index < format.length; index++) {\r\n if (\"'\" === format[index]) {\r\n isEscape = !isEscape\r\n }\r\n if (\".\" === format[index] && !isEscape) {\r\n return index\r\n }\r\n }\r\n return format.length\r\n}\r\nexport function getFormatter(format, config) {\r\n config = config || DEFAULT_CONFIG;\r\n return function(value) {\r\n if (\"number\" !== typeof value || isNaN(value)) {\r\n return \"\"\r\n }\r\n var signFormatParts = getSignParts(format);\r\n var isPositiveZero = 1 / value === 1 / 0;\r\n var isPositive = value > 0 || isPositiveZero;\r\n var numberFormat = signFormatParts[isPositive ? 0 : 1];\r\n if (isPercentFormat(numberFormat)) {\r\n value *= 100\r\n }\r\n if (!isPositive) {\r\n value = -value\r\n }\r\n var floatPointIndex = getFloatPointIndex(numberFormat);\r\n var floatFormatParts = [numberFormat.substr(0, floatPointIndex), numberFormat.substr(floatPointIndex + 1)];\r\n var minFloatPrecision = getRequiredDigitCount(floatFormatParts[1]);\r\n var maxFloatPrecision = minFloatPrecision + getNonRequiredDigitCount(floatFormatParts[1]);\r\n var minIntegerPrecision = getRequiredDigitCount(floatFormatParts[0]);\r\n var maxIntegerPrecision = getNonRequiredDigitCount(floatFormatParts[0]) || config.unlimitedIntegerDigits ? void 0 : minIntegerPrecision;\r\n var integerLength = Math.floor(value).toString().length;\r\n var floatPrecision = fitIntoRange(maxFloatPrecision, 0, MAXIMUM_NUMBER_LENGTH - integerLength);\r\n var groupSizes = getGroupSizes(floatFormatParts[0]).reverse();\r\n var valueParts = toFixed(value, floatPrecision < 0 ? 0 : floatPrecision).split(\".\");\r\n var valueIntegerPart = normalizeValueString(reverseString(valueParts[0]), minIntegerPrecision, maxIntegerPrecision);\r\n var valueFloatPart = normalizeValueString(valueParts[1], minFloatPrecision, maxFloatPrecision);\r\n valueIntegerPart = applyGroups(valueIntegerPart, groupSizes, config.thousandsSeparator);\r\n var integerString = reverseString(formatNumberPart(reverseString(floatFormatParts[0]), valueIntegerPart));\r\n var floatString = maxFloatPrecision ? formatNumberPart(floatFormatParts[1], valueFloatPart) : \"\";\r\n var result = integerString + (floatString.match(/\\d/) ? config.decimalSeparator : \"\") + floatString;\r\n return result\r\n }\r\n}\r\n\r\nfunction parseValue(text, isPercent, isNegative) {\r\n var value = (isPercent ? .01 : 1) * parseFloat(text) || 0;\r\n return isNegative ? -value : value\r\n}\r\n\r\nfunction prepareValueText(valueText, formatter, isPercent, isIntegerPart) {\r\n var nextValueText = valueText;\r\n var char;\r\n var text;\r\n var nextText;\r\n do {\r\n if (nextText) {\r\n char = text.length === nextText.length ? \"0\" : \"1\";\r\n valueText = isIntegerPart ? char + valueText : valueText + char\r\n }\r\n text = nextText || formatter(parseValue(nextValueText, isPercent));\r\n nextValueText = isIntegerPart ? \"1\" + nextValueText : nextValueText + \"1\";\r\n nextText = formatter(parseValue(nextValueText, isPercent))\r\n } while (text !== nextText && (isIntegerPart ? text.length === nextText.length : text.length <= nextText.length));\r\n if (isIntegerPart && nextText.length > text.length) {\r\n var hasGroups = -1 === formatter(12345).indexOf(\"12345\");\r\n do {\r\n valueText = \"1\" + valueText\r\n } while (hasGroups && parseValue(valueText, isPercent) < 1e5)\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getFormatByValueText(valueText, formatter, isPercent, isNegative) {\r\n var format = formatter(parseValue(valueText, isPercent, isNegative));\r\n var valueTextParts = valueText.split(\".\");\r\n var valueTextWithModifiedFloat = valueTextParts[0] + \".3\" + valueTextParts[1].slice(1);\r\n var valueWithModifiedFloat = parseValue(valueTextWithModifiedFloat, isPercent, isNegative);\r\n var decimalSeparatorIndex = formatter(valueWithModifiedFloat).indexOf(\"3\") - 1;\r\n format = format.replace(/(\\d)\\D(\\d)/g, \"$1,$2\");\r\n if (decimalSeparatorIndex >= 0) {\r\n format = format.slice(0, decimalSeparatorIndex) + \".\" + format.slice(decimalSeparatorIndex + 1)\r\n }\r\n format = format.replace(/1+/, \"1\").replace(/1/g, \"#\");\r\n if (!isPercent) {\r\n format = format.replace(\"%\", \"'%'\")\r\n }\r\n return format\r\n}\r\nexport function getFormat(formatter) {\r\n var valueText = \".\";\r\n var isPercent = formatter(1).indexOf(\"100\") >= 0;\r\n valueText = prepareValueText(valueText, formatter, isPercent, true);\r\n valueText = prepareValueText(valueText, formatter, isPercent, false);\r\n var positiveFormat = getFormatByValueText(valueText, formatter, isPercent, false);\r\n var negativeFormat = getFormatByValueText(valueText, formatter, isPercent, true);\r\n return negativeFormat === \"-\" + positiveFormat ? positiveFormat : positiveFormat + \";\" + negativeFormat\r\n}\r\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","/**\r\n * DevExtreme (esm/mobile/hide_callback.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n inArray\r\n} from \"../core/utils/array\";\r\nexport var hideCallback = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(callback) {\r\n var indexOfCallback = inArray(callback, callbacks);\r\n if (-1 === indexOfCallback) {\r\n callbacks.push(callback)\r\n }\r\n },\r\n remove: function(callback) {\r\n var indexOfCallback = inArray(callback, callbacks);\r\n if (-1 !== indexOfCallback) {\r\n callbacks.splice(indexOfCallback, 1)\r\n }\r\n },\r\n fire: function() {\r\n var callback = callbacks.pop();\r\n var result = !!callback;\r\n if (result) {\r\n callback()\r\n }\r\n return result\r\n },\r\n hasCallback: function() {\r\n return callbacks.length > 0\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/core/renderer_base.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n cleanDataRecursive,\r\n removeData,\r\n data as elementData\r\n} from \"./element_data\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isObject,\r\n isWindow,\r\n isPlainObject,\r\n isString,\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n type\r\n} from \"./utils/type\";\r\nimport {\r\n styleProp,\r\n normalizeStyleProp\r\n} from \"./utils/style\";\r\nimport {\r\n getSize,\r\n getElementBoxParams\r\n} from \"./utils/size\";\r\nimport {\r\n parseHTML,\r\n isTablePart\r\n} from \"./utils/html_parser\";\r\nvar window = getWindow();\r\nvar renderer;\r\nvar initRender = function(selector, context) {\r\n if (!selector) {\r\n this.length = 0;\r\n return this\r\n }\r\n if (\"string\" === typeof selector) {\r\n if (\"body\" === selector) {\r\n this[0] = context ? context.body : domAdapter.getBody();\r\n this.length = 1;\r\n return this\r\n }\r\n context = context || domAdapter.getDocument();\r\n if (\"<\" === selector[0]) {\r\n this[0] = domAdapter.createElement(selector.slice(1, -1), context);\r\n this.length = 1;\r\n return this\r\n } [].push.apply(this, domAdapter.querySelectorAll(context, selector));\r\n return this\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n this[0] = selector;\r\n this.length = 1;\r\n return this\r\n } else if (Array.isArray(selector)) {\r\n [].push.apply(this, selector);\r\n return this\r\n }\r\n return renderer(selector.toArray ? selector.toArray() : [selector])\r\n};\r\nrenderer = function(selector, context) {\r\n return new initRender(selector, context)\r\n};\r\nrenderer.fn = {\r\n dxRenderer: true\r\n};\r\ninitRender.prototype = renderer.fn;\r\nvar repeatMethod = function(methodName, args) {\r\n for (var i = 0; i < this.length; i++) {\r\n var item = renderer(this[i]);\r\n item[methodName].apply(item, args)\r\n }\r\n return this\r\n};\r\nvar setAttributeValue = function(element, attrName, value) {\r\n if (void 0 !== value && null !== value) {\r\n domAdapter.setAttribute(element, attrName, value)\r\n } else {\r\n domAdapter.removeAttribute(element, attrName)\r\n }\r\n};\r\ninitRender.prototype.show = function() {\r\n return this.toggle(true)\r\n};\r\ninitRender.prototype.hide = function() {\r\n return this.toggle(false)\r\n};\r\ninitRender.prototype.toggle = function(value) {\r\n if (this[0]) {\r\n this.toggleClass(\"dx-state-invisible\", !value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.attr = function(attrName, value) {\r\n if (this.length > 1 && arguments.length > 1) {\r\n return repeatMethod.call(this, \"attr\", arguments)\r\n }\r\n if (!this[0]) {\r\n if (isObject(attrName) || void 0 !== value) {\r\n return this\r\n } else {\r\n return\r\n }\r\n }\r\n if (!this[0].getAttribute) {\r\n return this.prop(attrName, value)\r\n }\r\n if (\"string\" === typeof attrName && 1 === arguments.length) {\r\n var result = this[0].getAttribute(attrName);\r\n return null == result ? void 0 : result\r\n } else if (isPlainObject(attrName)) {\r\n for (var key in attrName) {\r\n this.attr(key, attrName[key])\r\n }\r\n } else {\r\n setAttributeValue(this[0], attrName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.removeAttr = function(attrName) {\r\n this[0] && domAdapter.removeAttribute(this[0], attrName);\r\n return this\r\n};\r\ninitRender.prototype.prop = function(propName, value) {\r\n if (!this[0]) {\r\n return this\r\n }\r\n if (\"string\" === typeof propName && 1 === arguments.length) {\r\n return this[0][propName]\r\n } else if (isPlainObject(propName)) {\r\n for (var key in propName) {\r\n this.prop(key, propName[key])\r\n }\r\n } else {\r\n domAdapter.setProperty(this[0], propName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.addClass = function(className) {\r\n return this.toggleClass(className, true)\r\n};\r\ninitRender.prototype.removeClass = function(className) {\r\n return this.toggleClass(className, false)\r\n};\r\ninitRender.prototype.hasClass = function(className) {\r\n if (!this[0] || void 0 === this[0].className) {\r\n return false\r\n }\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n if (this[0].classList) {\r\n if (this[0].classList.contains(classNames[i])) {\r\n return true\r\n }\r\n } else {\r\n var _className = isString(this[0].className) ? this[0].className : domAdapter.getAttribute(this[0], \"class\");\r\n if ((_className || \"\").split(\" \").indexOf(classNames[i]) >= 0) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n};\r\ninitRender.prototype.toggleClass = function(className, value) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"toggleClass\", arguments)\r\n }\r\n if (!this[0] || !className) {\r\n return this\r\n }\r\n value = void 0 === value ? !this.hasClass(className) : value;\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n domAdapter.setClass(this[0], classNames[i], value)\r\n }\r\n return this\r\n};\r\n[\"width\", \"height\", \"outerWidth\", \"outerHeight\", \"innerWidth\", \"innerHeight\"].forEach((function(methodName) {\r\n var partialName = methodName.toLowerCase().indexOf(\"width\") >= 0 ? \"Width\" : \"Height\";\r\n var propName = partialName.toLowerCase();\r\n var isOuter = 0 === methodName.indexOf(\"outer\");\r\n var isInner = 0 === methodName.indexOf(\"inner\");\r\n initRender.prototype[methodName] = function(value) {\r\n if (this.length > 1 && arguments.length > 0) {\r\n return repeatMethod.call(this, methodName, arguments)\r\n }\r\n var element = this[0];\r\n if (!element) {\r\n return\r\n }\r\n if (isWindow(element)) {\r\n return isOuter ? element[\"inner\" + partialName] : domAdapter.getDocumentElement()[\"client\" + partialName]\r\n }\r\n if (domAdapter.isDocument(element)) {\r\n var documentElement = domAdapter.getDocumentElement();\r\n var body = domAdapter.getBody();\r\n return Math.max(body[\"scroll\" + partialName], body[\"offset\" + partialName], documentElement[\"scroll\" + partialName], documentElement[\"offset\" + partialName], documentElement[\"client\" + partialName])\r\n }\r\n if (0 === arguments.length || \"boolean\" === typeof value) {\r\n var include = {\r\n paddings: isInner || isOuter,\r\n borders: isOuter,\r\n margins: value\r\n };\r\n return getSize(element, propName, include)\r\n }\r\n if (void 0 === value || null === value) {\r\n return this\r\n }\r\n if (isNumeric(value)) {\r\n var elementStyles = window.getComputedStyle(element);\r\n var sizeAdjustment = getElementBoxParams(propName, elementStyles);\r\n var isBorderBox = \"border-box\" === elementStyles.boxSizing;\r\n value = Number(value);\r\n if (isOuter) {\r\n value -= isBorderBox ? 0 : sizeAdjustment.border + sizeAdjustment.padding\r\n } else if (isInner) {\r\n value += isBorderBox ? sizeAdjustment.border : -sizeAdjustment.padding\r\n } else if (isBorderBox) {\r\n value += sizeAdjustment.border + sizeAdjustment.padding\r\n }\r\n }\r\n value += isNumeric(value) ? \"px\" : \"\";\r\n domAdapter.setStyle(element, propName, value);\r\n return this\r\n }\r\n}));\r\ninitRender.prototype.html = function(value) {\r\n if (!arguments.length) {\r\n return this[0].innerHTML\r\n }\r\n this.empty();\r\n if (\"string\" === typeof value && !isTablePart(value) || \"number\" === typeof value) {\r\n this[0].innerHTML = value;\r\n return this\r\n }\r\n return this.append(parseHTML(value))\r\n};\r\nvar appendElements = function(element, nextSibling) {\r\n if (!this[0] || !element) {\r\n return\r\n }\r\n if (\"string\" === typeof element) {\r\n element = parseHTML(element)\r\n } else if (element.nodeType) {\r\n element = [element]\r\n } else if (isNumeric(element)) {\r\n element = [domAdapter.createTextNode(element)]\r\n }\r\n for (var i = 0; i < element.length; i++) {\r\n var item = element[i];\r\n var container = this[0];\r\n var wrapTR = \"TABLE\" === container.tagName && \"TR\" === item.tagName;\r\n if (wrapTR && container.tBodies && container.tBodies.length) {\r\n container = container.tBodies[0]\r\n }\r\n domAdapter.insertElement(container, item.nodeType ? item : item[0], nextSibling)\r\n }\r\n};\r\nvar setCss = function(name, value) {\r\n if (!this[0] || !this[0].style) {\r\n return\r\n }\r\n if (null === value || \"number\" === typeof value && isNaN(value)) {\r\n return\r\n }\r\n name = styleProp(name);\r\n for (var i = 0; i < this.length; i++) {\r\n this[i].style[name] = normalizeStyleProp(name, value)\r\n }\r\n};\r\ninitRender.prototype.css = function(name, value) {\r\n if (isString(name)) {\r\n if (2 === arguments.length) {\r\n setCss.call(this, name, value)\r\n } else {\r\n if (!this[0]) {\r\n return\r\n }\r\n name = styleProp(name);\r\n var result = window.getComputedStyle(this[0])[name] || this[0].style[name];\r\n return isNumeric(result) ? result.toString() : result\r\n }\r\n } else if (isPlainObject(name)) {\r\n for (var key in name) {\r\n setCss.call(this, key, name[key])\r\n }\r\n }\r\n return this\r\n};\r\ninitRender.prototype.prepend = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.prepend(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element, this[0].firstChild]);\r\n return this\r\n};\r\ninitRender.prototype.append = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.append(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element]);\r\n return this\r\n};\r\ninitRender.prototype.prependTo = function(element) {\r\n if (this.length > 1) {\r\n for (var i = this.length - 1; i >= 0; i--) {\r\n renderer(this[i]).prependTo(element)\r\n }\r\n return this\r\n }\r\n element = renderer(element);\r\n if (element[0]) {\r\n domAdapter.insertElement(element[0], this[0], element[0].firstChild)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.appendTo = function(element) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"appendTo\", arguments)\r\n }\r\n domAdapter.insertElement(renderer(element)[0], this[0]);\r\n return this\r\n};\r\ninitRender.prototype.insertBefore = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.insertAfter = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.before = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.after = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrap = function(wrapper) {\r\n if (this[0]) {\r\n var wrap = renderer(wrapper);\r\n wrap.insertBefore(this);\r\n wrap.append(this)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrapInner = function(wrapper) {\r\n var contents = this.contents();\r\n if (contents.length) {\r\n contents.wrap(wrapper)\r\n } else {\r\n this.append(wrapper)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.replaceWith = function(element) {\r\n if (!(element && element[0])) {\r\n return\r\n }\r\n if (element.is(this)) {\r\n return this\r\n }\r\n element.insertBefore(this);\r\n this.remove();\r\n return element\r\n};\r\ninitRender.prototype.remove = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"remove\", arguments)\r\n }\r\n cleanDataRecursive(this[0], true);\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.detach = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"detach\", arguments)\r\n }\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.empty = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"empty\", arguments)\r\n }\r\n cleanDataRecursive(this[0]);\r\n domAdapter.setText(this[0], \"\");\r\n return this\r\n};\r\ninitRender.prototype.clone = function() {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n result.push(this[i].cloneNode(true))\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.text = function(value) {\r\n if (!arguments.length) {\r\n var result = \"\";\r\n for (var i = 0; i < this.length; i++) {\r\n result += this[i] && this[i].textContent || \"\"\r\n }\r\n return result\r\n }\r\n var text = isFunction(value) ? value() : value;\r\n cleanDataRecursive(this[0], false);\r\n domAdapter.setText(this[0], isDefined(text) ? text : \"\");\r\n return this\r\n};\r\ninitRender.prototype.val = function(value) {\r\n if (1 === arguments.length) {\r\n return this.prop(\"value\", isDefined(value) ? value : \"\")\r\n }\r\n return this.prop(\"value\")\r\n};\r\ninitRender.prototype.contents = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = [];\r\n result.push.apply(result, this[0].childNodes);\r\n return renderer(result)\r\n};\r\ninitRender.prototype.find = function(selector) {\r\n var result = renderer();\r\n if (!selector) {\r\n return result\r\n }\r\n var nodes = [];\r\n var i;\r\n if (\"string\" === typeof selector) {\r\n selector = selector.trim();\r\n for (i = 0; i < this.length; i++) {\r\n var element = this[i];\r\n if (domAdapter.isElementNode(element)) {\r\n var elementId = element.getAttribute(\"id\");\r\n var queryId = elementId || \"dx-query-children\";\r\n if (!elementId) {\r\n setAttributeValue(element, \"id\", queryId)\r\n }\r\n queryId = \"[id='\" + queryId + \"'] \";\r\n var querySelector = queryId + selector.replace(/([^\\\\])(,)/g, \"$1, \" + queryId);\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, querySelector));\r\n setAttributeValue(element, \"id\", elementId)\r\n } else if (domAdapter.isDocument(element)) {\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, selector))\r\n }\r\n }\r\n } else {\r\n for (i = 0; i < this.length; i++) {\r\n selector = domAdapter.isNode(selector) ? selector : selector[0];\r\n if (this[i] !== selector && this[i].contains(selector)) {\r\n nodes.push(selector)\r\n }\r\n }\r\n }\r\n return result.add(nodes)\r\n};\r\nvar isVisible = function(_, element) {\r\n if (!element.nodeType) {\r\n return true\r\n }\r\n return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length)\r\n};\r\ninitRender.prototype.filter = function(selector) {\r\n if (!selector) {\r\n return renderer()\r\n }\r\n if (\":visible\" === selector) {\r\n return this.filter(isVisible)\r\n } else if (\":hidden\" === selector) {\r\n return this.filter((function(_, element) {\r\n return !isVisible(_, element)\r\n }))\r\n }\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var item = this[i];\r\n if (domAdapter.isElementNode(item) && \"string\" === type(selector)) {\r\n domAdapter.elementMatches(item, selector) && result.push(item)\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n selector === item && result.push(item)\r\n } else if (isFunction(selector)) {\r\n selector.call(item, i, item) && result.push(item)\r\n } else {\r\n for (var j = 0; j < selector.length; j++) {\r\n selector[j] === item && result.push(item)\r\n }\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.not = function(selector) {\r\n var result = [];\r\n var nodes = this.filter(selector).toArray();\r\n for (var i = 0; i < this.length; i++) {\r\n if (-1 === nodes.indexOf(this[i])) {\r\n result.push(this[i])\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.is = function(selector) {\r\n return !!this.filter(selector).length\r\n};\r\ninitRender.prototype.children = function(selector) {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var nodes = this[i] ? this[i].childNodes : [];\r\n for (var j = 0; j < nodes.length; j++) {\r\n if (domAdapter.isElementNode(nodes[j])) {\r\n result.push(nodes[j])\r\n }\r\n }\r\n }\r\n result = renderer(result);\r\n return selector ? result.filter(selector) : result\r\n};\r\ninitRender.prototype.siblings = function() {\r\n var element = this[0];\r\n if (!element || !element.parentNode) {\r\n return renderer()\r\n }\r\n var result = [];\r\n var parentChildNodes = element.parentNode.childNodes || [];\r\n for (var i = 0; i < parentChildNodes.length; i++) {\r\n var node = parentChildNodes[i];\r\n if (domAdapter.isElementNode(node) && node !== element) {\r\n result.push(node)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.each = function(callback) {\r\n for (var i = 0; i < this.length; i++) {\r\n if (false === callback.call(this[i], i, this[i])) {\r\n break\r\n }\r\n }\r\n};\r\ninitRender.prototype.index = function(element) {\r\n if (!element) {\r\n return this.parent().children().index(this)\r\n }\r\n element = renderer(element);\r\n return this.toArray().indexOf(element[0])\r\n};\r\ninitRender.prototype.get = function(index) {\r\n return this[index < 0 ? this.length + index : index]\r\n};\r\ninitRender.prototype.eq = function(index) {\r\n index = index < 0 ? this.length + index : index;\r\n return renderer(this[index])\r\n};\r\ninitRender.prototype.first = function() {\r\n return this.eq(0)\r\n};\r\ninitRender.prototype.last = function() {\r\n return this.eq(-1)\r\n};\r\ninitRender.prototype.parent = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = renderer(this[0].parentNode);\r\n return !selector || result.is(selector) ? result : renderer()\r\n};\r\ninitRender.prototype.parents = function(selector) {\r\n var result = [];\r\n var parent = this.parent();\r\n while (parent && parent[0] && !domAdapter.isDocument(parent[0])) {\r\n if (domAdapter.isElementNode(parent[0])) {\r\n if (!selector || parent.is(selector)) {\r\n result.push(parent.get(0))\r\n }\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.closest = function(selector) {\r\n if (this.is(selector)) {\r\n return this\r\n }\r\n var parent = this.parent();\r\n while (parent && parent.length) {\r\n if (parent.is(selector)) {\r\n return parent\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.next = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var next = renderer(this[0].nextSibling);\r\n if (!arguments.length) {\r\n return next\r\n }\r\n while (next && next.length) {\r\n if (next.is(selector)) {\r\n return next\r\n }\r\n next = next.next()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.prev = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n return renderer(this[0].previousSibling)\r\n};\r\ninitRender.prototype.add = function(selector) {\r\n var targets = renderer(selector);\r\n var result = this.toArray();\r\n for (var i = 0; i < targets.length; i++) {\r\n var target = targets[i];\r\n if (-1 === result.indexOf(target)) {\r\n result.push(target)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\nvar emptyArray = [];\r\ninitRender.prototype.splice = function() {\r\n return renderer(emptyArray.splice.apply(this, arguments))\r\n};\r\ninitRender.prototype.slice = function() {\r\n return renderer(emptyArray.slice.apply(this, arguments))\r\n};\r\ninitRender.prototype.toArray = function() {\r\n return emptyArray.slice.call(this)\r\n};\r\nvar getWindowByElement = function(element) {\r\n return isWindow(element) ? element : element.defaultView\r\n};\r\ninitRender.prototype.offset = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n if (!this[0].getClientRects().length) {\r\n return {\r\n top: 0,\r\n left: 0\r\n }\r\n }\r\n var rect = this[0].getBoundingClientRect();\r\n var win = getWindowByElement(this[0].ownerDocument);\r\n var docElem = this[0].ownerDocument.documentElement;\r\n return {\r\n top: rect.top + win.pageYOffset - docElem.clientTop,\r\n left: rect.left + win.pageXOffset - docElem.clientLeft\r\n }\r\n};\r\ninitRender.prototype.offsetParent = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var offsetParent = renderer(this[0].offsetParent);\r\n while (offsetParent[0] && \"static\" === offsetParent.css(\"position\")) {\r\n offsetParent = renderer(offsetParent[0].offsetParent)\r\n }\r\n offsetParent = offsetParent[0] ? offsetParent : renderer(domAdapter.getDocumentElement());\r\n return offsetParent\r\n};\r\ninitRender.prototype.position = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n var offset;\r\n var marginTop = parseFloat(this.css(\"marginTop\"));\r\n var marginLeft = parseFloat(this.css(\"marginLeft\"));\r\n if (\"fixed\" === this.css(\"position\")) {\r\n offset = this[0].getBoundingClientRect();\r\n return {\r\n top: offset.top - marginTop,\r\n left: offset.left - marginLeft\r\n }\r\n }\r\n offset = this.offset();\r\n var offsetParent = this.offsetParent();\r\n var parentOffset = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (\"HTML\" !== offsetParent[0].nodeName) {\r\n parentOffset = offsetParent.offset()\r\n }\r\n parentOffset = {\r\n top: parentOffset.top + parseFloat(offsetParent.css(\"borderTopWidth\")),\r\n left: parentOffset.left + parseFloat(offsetParent.css(\"borderLeftWidth\"))\r\n };\r\n return {\r\n top: offset.top - parentOffset.top - marginTop,\r\n left: offset.left - parentOffset.left - marginLeft\r\n }\r\n};\r\n[{\r\n name: \"scrollLeft\",\r\n offsetProp: \"pageXOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(value, win.pageYOffset)\r\n }\r\n}, {\r\n name: \"scrollTop\",\r\n offsetProp: \"pageYOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(win.pageXOffset, value)\r\n }\r\n}].forEach((function(directionStrategy) {\r\n var propName = directionStrategy.name;\r\n initRender.prototype[propName] = function(value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n var window = getWindowByElement(this[0]);\r\n if (void 0 === value) {\r\n return window ? window[directionStrategy.offsetProp] : this[0][propName]\r\n }\r\n if (window) {\r\n directionStrategy.scrollWindow(window, value)\r\n } else {\r\n this[0][propName] = value\r\n }\r\n return this\r\n }\r\n}));\r\ninitRender.prototype.data = function(key, value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n if (arguments.length < 2) {\r\n return elementData.call(renderer, this[0], key)\r\n }\r\n elementData.call(renderer, this[0], key, value);\r\n return this\r\n};\r\ninitRender.prototype.removeData = function(key) {\r\n this[0] && removeData(this[0], key);\r\n return this\r\n};\r\nvar rendererWrapper = function() {\r\n return renderer.apply(this, arguments)\r\n};\r\nObject.defineProperty(rendererWrapper, \"fn\", {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return renderer.fn\r\n },\r\n set: function(value) {\r\n renderer.fn = value\r\n }\r\n});\r\nexport default {\r\n set: function(strategy) {\r\n renderer = strategy\r\n },\r\n get: function() {\r\n return rendererWrapper\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/renderer.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport rendererBase from \"./renderer_base\";\r\nexport default rendererBase.get();\r\n","module.exports = require('events').EventEmitter;\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","/**\r\n * DevExtreme (esm/core/polyfills/promise.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar promise = hasWindow() ? getWindow().Promise : Promise;\r\nif (!promise) {\r\n promise = function(resolver) {\r\n var d = new Deferred;\r\n resolver(d.resolve.bind(this), d.reject.bind(this));\r\n return d.promise()\r\n };\r\n promise.resolve = function(val) {\r\n return (new Deferred).resolve(val).promise()\r\n };\r\n promise.reject = function(val) {\r\n return (new Deferred).reject(val).promise()\r\n };\r\n promise.all = function(promises) {\r\n return when.apply(this, promises).then((function() {\r\n return [].slice.call(arguments)\r\n }))\r\n }\r\n}\r\nexport default promise;\r\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","module.exports = typeof window == 'object';\n","/**\r\n * DevExtreme (esm/core/polyfills/weak_map.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n inArray\r\n} from \"../utils/array\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../utils/window\";\r\nvar weakMap = hasWindow() ? getWindow().WeakMap : WeakMap;\r\nif (!weakMap) {\r\n weakMap = function() {\r\n var keys = [];\r\n var values = [];\r\n this.set = function(key, value) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n keys.push(key);\r\n values.push(value)\r\n } else {\r\n values[index] = value\r\n }\r\n };\r\n this.get = function(key) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n return\r\n }\r\n return values[index]\r\n };\r\n this.has = function(key) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n return false\r\n }\r\n return true\r\n };\r\n this.delete = function(key) {\r\n var index = inArray(key, keys);\r\n if (-1 === index) {\r\n return\r\n }\r\n keys.splice(index, 1);\r\n values.splice(index, 1)\r\n }\r\n }\r\n}\r\nexport default weakMap;\r\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/**\r\n * DevExtreme (esm/core/templates/function_template.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nexport class FunctionTemplate extends TemplateBase {\r\n constructor(render) {\r\n super();\r\n this._render = render\r\n }\r\n _renderCore(options) {\r\n return normalizeTemplateElement(this._render(options))\r\n }\r\n}\r\n","/*!\n * devextreme-vue\n * Version: 21.1.5\n * Build date: Mon Aug 02 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOptionInfo = exports.getOptionValue = exports.allKeysAreEqual = exports.forEachChildNode = exports.isEqual = exports.toComparable = exports.camelize = exports.lowercaseFirst = exports.uppercaseFirst = void 0;\nfunction uppercaseFirst(value) {\n return value[0].toUpperCase() + value.substr(1);\n}\nexports.uppercaseFirst = uppercaseFirst;\nfunction lowercaseFirst(value) {\n return value[0].toLowerCase() + value.substr(1);\n}\nexports.lowercaseFirst = lowercaseFirst;\nfunction camelize(value) {\n return lowercaseFirst(value.split(\"-\").map(function (v) { return uppercaseFirst(v); }).join(\"\"));\n}\nexports.camelize = camelize;\nfunction toComparable(value) {\n return value instanceof Date ? value.getTime() : value;\n}\nexports.toComparable = toComparable;\nfunction isEqual(value1, value2) {\n if (toComparable(value1) === toComparable(value2)) {\n return true;\n }\n if (Array.isArray(value1) && Array.isArray(value2)) {\n return value1.length === 0 && value2.length === 0;\n }\n return false;\n}\nexports.isEqual = isEqual;\nfunction forEachChildNode(el, callback) {\n Array.prototype.slice.call(el.childNodes).forEach(callback);\n}\nexports.forEachChildNode = forEachChildNode;\nfunction allKeysAreEqual(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n if (obj1Keys.length !== Object.keys(obj2).length) {\n return false;\n }\n for (var _i = 0, obj1Keys_1 = obj1Keys; _i < obj1Keys_1.length; _i++) {\n var key = obj1Keys_1[_i];\n if (!obj2.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n}\nexports.allKeysAreEqual = allKeysAreEqual;\nfunction getOptionValue(options, optionPath) {\n var value = options;\n optionPath.split(\".\").forEach(function (p) {\n var optionInfo = getOptionInfo(p);\n value = optionInfo.isCollection ?\n value[optionInfo.name] && value[optionInfo.name][optionInfo.index] :\n value[optionInfo.name];\n });\n return value;\n}\nexports.getOptionValue = getOptionValue;\nfunction getOptionInfo(name) {\n var parts = name.split(\"[\");\n if (parts.length === 1) {\n return {\n isCollection: false,\n name: name,\n fullName: name\n };\n }\n return {\n isCollection: true,\n name: parts[0],\n fullName: name,\n index: Number(parts[1].slice(0, -1))\n };\n}\nexports.getOptionInfo = getOptionInfo;\n","/**\r\n * DevExtreme (esm/core/utils/math.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isExponential\r\n} from \"./type\";\r\nvar sign = function(value) {\r\n if (0 === value) {\r\n return 0\r\n }\r\n return value / Math.abs(value)\r\n};\r\nvar fitIntoRange = function(value, minValue, maxValue) {\r\n var isMinValueUndefined = !minValue && 0 !== minValue;\r\n var isMaxValueUndefined = !maxValue && 0 !== maxValue;\r\n isMinValueUndefined && (minValue = !isMaxValueUndefined ? Math.min(value, maxValue) : value);\r\n isMaxValueUndefined && (maxValue = !isMinValueUndefined ? Math.max(value, minValue) : value);\r\n return Math.min(Math.max(value, minValue), maxValue)\r\n};\r\nvar inRange = function(value, minValue, maxValue) {\r\n return value >= minValue && value <= maxValue\r\n};\r\n\r\nfunction getExponent(value) {\r\n return Math.abs(parseInt(value.toExponential().split(\"e\")[1]))\r\n}\r\n\r\nfunction _isEdgeBug() {\r\n return \"0.000300\" !== 3e-4.toPrecision(3)\r\n}\r\n\r\nfunction adjust(value, interval) {\r\n var precision = getPrecision(interval || 0) + 2;\r\n var separatedValue = value.toString().split(\".\");\r\n var sourceValue = value;\r\n var absValue = Math.abs(value);\r\n var separatedAdjustedValue;\r\n var isExponentValue = isExponential(value);\r\n var integerPart = absValue > 1 ? 10 : 0;\r\n if (1 === separatedValue.length) {\r\n return value\r\n }\r\n if (!isExponentValue) {\r\n if (isExponential(interval)) {\r\n precision = separatedValue[0].length + getExponent(interval)\r\n }\r\n value = absValue;\r\n value = value - Math.floor(value) + integerPart\r\n }\r\n precision = _isEdgeBug() && getExponent(value) > 6 || precision > 7 ? 15 : 7;\r\n if (!isExponentValue) {\r\n separatedAdjustedValue = parseFloat(value.toPrecision(precision)).toString().split(\".\");\r\n if (separatedAdjustedValue[0] === integerPart.toString()) {\r\n return parseFloat(separatedValue[0] + \".\" + separatedAdjustedValue[1])\r\n }\r\n }\r\n return parseFloat(sourceValue.toPrecision(precision))\r\n}\r\n\r\nfunction getPrecision(value) {\r\n var str = value.toString();\r\n if (str.indexOf(\".\") < 0) {\r\n return 0\r\n }\r\n var mantissa = str.split(\".\");\r\n var positionOfDelimiter = mantissa[1].indexOf(\"e\");\r\n return positionOfDelimiter >= 0 ? positionOfDelimiter : mantissa[1].length\r\n}\r\n\r\nfunction getRoot(x, n) {\r\n if (x < 0 && n % 2 !== 1) {\r\n return NaN\r\n }\r\n var y = Math.pow(Math.abs(x), 1 / n);\r\n return n % 2 === 1 && x < 0 ? -y : y\r\n}\r\n\r\nfunction solveCubicEquation(a, b, c, d) {\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n c = d;\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n if (Math.abs(a) < 1e-8) {\r\n return []\r\n }\r\n return [-b / a]\r\n }\r\n var D2 = b * b - 4 * a * c;\r\n if (Math.abs(D2) < 1e-8) {\r\n return [-b / (2 * a)]\r\n } else if (D2 > 0) {\r\n return [(-b + Math.sqrt(D2)) / (2 * a), (-b - Math.sqrt(D2)) / (2 * a)]\r\n }\r\n return []\r\n }\r\n var p = (3 * a * c - b * b) / (3 * a * a);\r\n var q = (2 * b * b * b - 9 * a * b * c + 27 * a * a * d) / (27 * a * a * a);\r\n var roots;\r\n var u;\r\n if (Math.abs(p) < 1e-8) {\r\n roots = [getRoot(-q, 3)]\r\n } else if (Math.abs(q) < 1e-8) {\r\n roots = [0].concat(p < 0 ? [Math.sqrt(-p), -Math.sqrt(-p)] : [])\r\n } else {\r\n var D3 = q * q / 4 + p * p * p / 27;\r\n if (Math.abs(D3) < 1e-8) {\r\n roots = [-1.5 * q / p, 3 * q / p]\r\n } else if (D3 > 0) {\r\n u = getRoot(-q / 2 - Math.sqrt(D3), 3);\r\n roots = [u - p / (3 * u)]\r\n } else {\r\n u = 2 * Math.sqrt(-p / 3);\r\n var t = Math.acos(3 * q / p / u) / 3;\r\n var k = 2 * Math.PI / 3;\r\n roots = [u * Math.cos(t), u * Math.cos(t - k), u * Math.cos(t - 2 * k)]\r\n }\r\n }\r\n for (var i = 0; i < roots.length; i++) {\r\n roots[i] -= b / (3 * a)\r\n }\r\n return roots\r\n}\r\n\r\nfunction trunc(value) {\r\n return Math.trunc ? Math.trunc(value) : value > 0 ? Math.floor(value) : Math.ceil(value)\r\n}\r\n\r\nfunction getRemainderByDivision(dividend, divider, digitsCount) {\r\n if (divider === parseInt(divider)) {\r\n return dividend % divider\r\n }\r\n var quotient = roundFloatPart(dividend / divider, digitsCount);\r\n return (quotient - parseInt(quotient)) * divider\r\n}\r\n\r\nfunction getExponentLength(value) {\r\n var _valueString$split$;\r\n var valueString = value.toString();\r\n return (null === (_valueString$split$ = valueString.split(\".\")[1]) || void 0 === _valueString$split$ ? void 0 : _valueString$split$.length) || parseInt(valueString.split(\"e-\")[1]) || 0\r\n}\r\n\r\nfunction roundFloatPart(value) {\r\n var digitsCount = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n return parseFloat(value.toFixed(digitsCount))\r\n}\r\nexport {\r\n sign,\r\n fitIntoRange,\r\n inRange,\r\n adjust,\r\n getPrecision,\r\n getExponent,\r\n getRoot,\r\n solveCubicEquation,\r\n trunc,\r\n roundFloatPart,\r\n getExponentLength,\r\n getRemainderByDivision\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/inflector.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"./iterator\";\r\nvar _normalize = function(text) {\r\n if (void 0 === text || null === text) {\r\n return \"\"\r\n }\r\n return String(text)\r\n};\r\nvar _upperCaseFirst = function(text) {\r\n return _normalize(text).charAt(0).toUpperCase() + text.substr(1)\r\n};\r\nvar _chop = function(text) {\r\n return _normalize(text).replace(/([a-z\\d])([A-Z])/g, \"$1 $2\").split(/[\\s_-]+/)\r\n};\r\nexport var dasherize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return p.toLowerCase()\r\n })).join(\"-\")\r\n};\r\nexport var underscore = function(text) {\r\n return dasherize(text).replace(/-/g, \"_\")\r\n};\r\nexport var camelize = function(text, upperFirst) {\r\n return map(_chop(text), (function(p, i) {\r\n p = p.toLowerCase();\r\n if (upperFirst || i > 0) {\r\n p = _upperCaseFirst(p)\r\n }\r\n return p\r\n })).join(\"\")\r\n};\r\nexport var humanize = function(text) {\r\n return _upperCaseFirst(dasherize(text).replace(/-/g, \" \"))\r\n};\r\nexport var titleize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return _upperCaseFirst(p.toLowerCase())\r\n })).join(\" \")\r\n};\r\nvar DIGIT_CHARS = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\r\nexport var captionize = function(name) {\r\n var captionList = [];\r\n var i;\r\n var char;\r\n var isPrevCharNewWord = false;\r\n var isNewWord = false;\r\n for (i = 0; i < name.length; i++) {\r\n char = name.charAt(i);\r\n isNewWord = char === char.toUpperCase() && \"-\" !== char && \")\" !== char && \"/\" !== char || char in DIGIT_CHARS;\r\n if (\"_\" === char || \".\" === char) {\r\n char = \" \";\r\n isNewWord = true\r\n } else if (0 === i) {\r\n char = char.toUpperCase();\r\n isNewWord = true\r\n } else if (!isPrevCharNewWord && isNewWord) {\r\n if (captionList.length > 0) {\r\n captionList.push(\" \")\r\n }\r\n }\r\n captionList.push(char);\r\n isPrevCharNewWord = isNewWord\r\n }\r\n return captionList.join(\"\")\r\n};\r\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/**\r\n * DevExtreme (esm/localization/ldml/date.formatter.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction leftPad(text, length) {\r\n while (text.length < length) {\r\n text = \"0\" + text\r\n }\r\n return text\r\n}\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar LDML_FORMATTERS = {\r\n y: function(date, count, useUtc) {\r\n var year = date[useUtc ? \"getUTCFullYear\" : \"getFullYear\"]();\r\n if (2 === count) {\r\n year %= 100\r\n }\r\n return leftPad(year.toString(), count)\r\n },\r\n M: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"format\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n L: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"standalone\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n Q: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var quarter = Math.floor(month / 3);\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getQuarterNames(formatType)[quarter]\r\n }\r\n return leftPad((quarter + 1).toString(), Math.min(count, 2))\r\n },\r\n E: function(date, count, useUtc, dateParts) {\r\n var day = date[useUtc ? \"getUTCDay\" : \"getDay\"]();\r\n var formatType = FORMAT_TYPES[count < 3 ? 3 : count];\r\n return dateParts.getDayNames(formatType)[day]\r\n },\r\n a: function(date, count, useUtc, dateParts) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n var period = hours < 12 ? 0 : 1;\r\n var formatType = FORMAT_TYPES[count];\r\n return dateParts.getPeriodNames(formatType)[period]\r\n },\r\n d: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCDate\" : \"getDate\"]().toString(), Math.min(count, 2))\r\n },\r\n H: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCHours\" : \"getHours\"]().toString(), Math.min(count, 2))\r\n },\r\n h: function(date, count, useUtc) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n return leftPad((hours % 12 || 12).toString(), Math.min(count, 2))\r\n },\r\n m: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMinutes\" : \"getMinutes\"]().toString(), Math.min(count, 2))\r\n },\r\n s: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCSeconds\" : \"getSeconds\"]().toString(), Math.min(count, 2))\r\n },\r\n S: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMilliseconds\" : \"getMilliseconds\"]().toString(), 3).substr(0, count)\r\n },\r\n x: function(date, count, useUtc) {\r\n var timezoneOffset = useUtc ? 0 : date.getTimezoneOffset();\r\n var signPart = timezoneOffset > 0 ? \"-\" : \"+\";\r\n var timezoneOffsetAbs = Math.abs(timezoneOffset);\r\n var hours = Math.floor(timezoneOffsetAbs / 60);\r\n var minutes = timezoneOffsetAbs % 60;\r\n var hoursPart = leftPad(hours.toString(), 2);\r\n var minutesPart = leftPad(minutes.toString(), 2);\r\n return signPart + hoursPart + (count >= 3 ? \":\" : \"\") + (count > 1 || minutes ? minutesPart : \"\")\r\n },\r\n X: function(date, count, useUtc) {\r\n if (useUtc || !date.getTimezoneOffset()) {\r\n return \"Z\"\r\n }\r\n return LDML_FORMATTERS.x(date, count, useUtc)\r\n },\r\n Z: function(date, count, useUtc) {\r\n return LDML_FORMATTERS.X(date, count >= 5 ? 3 : 2, useUtc)\r\n }\r\n};\r\nexport var getFormatter = function(format, dateParts) {\r\n return function(date) {\r\n var charIndex;\r\n var formatter;\r\n var char;\r\n var charCount = 0;\r\n var isEscaping = false;\r\n var isCurrentCharEqualsNext;\r\n var result = \"\";\r\n if (!date) {\r\n return null\r\n }\r\n if (!format) {\r\n return date\r\n }\r\n var useUtc = \"Z\" === format[format.length - 1] || \"'Z'\" === format.slice(-3);\r\n for (charIndex = 0; charIndex < format.length; charIndex++) {\r\n char = format[charIndex];\r\n formatter = LDML_FORMATTERS[char];\r\n isCurrentCharEqualsNext = char === format[charIndex + 1];\r\n charCount++;\r\n if (!isCurrentCharEqualsNext) {\r\n if (formatter && !isEscaping) {\r\n result += formatter(date, charCount, useUtc, dateParts)\r\n }\r\n charCount = 0\r\n }\r\n if (\"'\" === char && !isCurrentCharEqualsNext) {\r\n isEscaping = !isEscaping\r\n } else if (isEscaping || !formatter) {\r\n result += char\r\n }\r\n if (\"'\" === char && isCurrentCharEqualsNext) {\r\n charIndex++\r\n }\r\n }\r\n return result\r\n }\r\n};\r\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","/*!\n * devextreme-vue\n * Version: 21.1.5\n * Build date: Mon Aug 02 2021\n *\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TEMPLATE_MULTIPLE_ROOTS_ERROR = void 0;\nexports.TEMPLATE_MULTIPLE_ROOTS_ERROR = \"Template must have a single root node.\";\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.pull_down.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar PULLDOWN_RELEASE_TIME = 400;\r\nvar PullDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._$refreshingText = scrollView._$refreshingText;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"
    \").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"
    \").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
    \")).$element();\r\n var $text = this._$pullDownText = $(\"
    \").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"
    \").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"
    \").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"
    \").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n update: function() {\r\n this.callBase();\r\n this._setTopPocketOffset()\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.height();\r\n this._bottomPocketSize = this._$bottomPocket.height();\r\n if (browser.msie) {\r\n this._scrollOffset = Math.round(100 * (this._$container.height() - this._$content.height())) / 100\r\n } else {\r\n this._scrollOffset = this._$container.height() - this._$content.height()\r\n }\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n _setTopPocketOffset: function() {\r\n this._$topPocket.css({\r\n top: -this._topPocketSize\r\n })\r\n },\r\n handleEnd: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_READY) {\r\n this._setPullDownOffset(this._topPocketSize);\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n this._pullDownRefreshTimeout = setTimeout(function() {\r\n this._pullDownRefreshing()\r\n }.bind(this), 400)\r\n }\r\n },\r\n _setPullDownOffset: function(offset) {\r\n move(this._$topPocket, {\r\n top: offset\r\n });\r\n move(this._$scrollViewContent, {\r\n top: offset\r\n })\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = (this._location || 0) - currentLocation;\r\n this._location = currentLocation;\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= this._topPocketSize\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && this._location - (this._scrollOffset + this._bottomPocketSize) <= .5\r\n },\r\n _reachBottom: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n pullDownEnable: function(enabled) {\r\n if (enabled) {\r\n this._updateDimensions();\r\n this._setTopPocketOffset()\r\n }\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n if (this._state === STATE_LOADING) {\r\n this._state = STATE_RELEASED\r\n }\r\n this._releaseTimeout = setTimeout(function() {\r\n this._setPullDownOffset(0);\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), PULLDOWN_RELEASE_TIME);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default PullDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n eventData\r\n} from \"../../events/utils/index\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-refreshing\";\r\nvar PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_TOUCHED = 4;\r\nvar STATE_PULLED = 5;\r\nvar SwipeDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$scrollViewContent = scrollView.content();\r\n this._initCallbacks();\r\n this._location = 0\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $loadContainer = $(\"
    \").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
    \")).$element();\r\n this._$icon = $(\"
    \").addClass(PULLDOWN_ICON_CLASS);\r\n this._$pullDown.empty().append(this._$icon).append($loadContainer.append($loadIndicator))\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._releasePullDown();\r\n this._updateDimensions()\r\n },\r\n _releasePullDown: function() {\r\n this._$pullDown.css({\r\n opacity: 0\r\n })\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.height();\r\n this._bottomPocketSize = this._$bottomPocket.height();\r\n this._scrollOffset = this._$container.height() - this._$content.height()\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n handleInit: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_RELEASED && 0 === this._location) {\r\n this._startClientY = eventData(e.originalEvent).y;\r\n this._state = STATE_TOUCHED\r\n }\r\n },\r\n handleMove: function(e) {\r\n this.callBase(e);\r\n this._deltaY = eventData(e.originalEvent).y - this._startClientY;\r\n if (this._state === STATE_TOUCHED) {\r\n if (this._pullDownEnabled && this._deltaY > 0) {\r\n this._state = STATE_PULLED\r\n } else {\r\n this._complete()\r\n }\r\n }\r\n if (this._state === STATE_PULLED) {\r\n e.preventDefault();\r\n this._movePullDown()\r\n }\r\n },\r\n _movePullDown: function() {\r\n var pullDownHeight = this._getPullDownHeight();\r\n var top = Math.min(3 * pullDownHeight, this._deltaY + this._getPullDownStartPosition());\r\n var angle = 180 * top / pullDownHeight / 3;\r\n this._$pullDown.css({\r\n opacity: 1\r\n }).toggleClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS, top < pullDownHeight);\r\n move(this._$pullDown, {\r\n top: top\r\n });\r\n this._$icon.css({\r\n transform: \"rotate(\" + angle + \"deg)\"\r\n })\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._state === STATE_PULLED && this._deltaY >= this._getPullDownHeight() - this._getPullDownStartPosition()\r\n },\r\n _getPullDownHeight: function() {\r\n return Math.round(.05 * this._$element.outerHeight())\r\n },\r\n _getPullDownStartPosition: function() {\r\n return -Math.round(1.5 * this._$pullDown.outerHeight())\r\n },\r\n handleEnd: function() {\r\n if (this._isPullDown()) {\r\n this._pullDownRefreshing()\r\n }\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_TOUCHED || this._state === STATE_PULLED) {\r\n this._releaseState()\r\n }\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = this._location - currentLocation;\r\n this._location = currentLocation;\r\n if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && this._location <= this._scrollOffset + this._bottomPocketSize\r\n },\r\n _reachBottom: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n this._state = STATE_REFRESHING;\r\n this._pullDownRefreshHandler()\r\n },\r\n _pullDownRefreshHandler: function() {\r\n this._refreshPullDown();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _refreshPullDown: function() {\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n move(this._$pullDown, {\r\n top: this._getPullDownHeight()\r\n })\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._$topPocket.toggle(enabled);\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n this._releaseTimeout = setTimeout(function() {\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), 800);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default SwipeDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.simulated.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar math = Math;\r\nimport {\r\n Scroller,\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar ScrollViewScroller = Scroller.inherit({\r\n ctor: function() {\r\n this._topPocketSize = 0;\r\n this.callBase.apply(this, arguments);\r\n this._initCallbacks();\r\n this._releaseState()\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n _updateBounds: function() {\r\n var considerPockets = \"horizontal\" !== this._direction;\r\n this._topPocketSize = considerPockets ? Math.round(this._$topPocket[this._dimension]()) : 0;\r\n this._bottomPocketSize = considerPockets ? Math.round(this._$bottomPocket[this._dimension]()) : 0;\r\n this.callBase();\r\n this._bottomBound = this._minOffset + this._bottomPocketSize\r\n },\r\n _updateScrollbar: function() {\r\n this._scrollbar.option({\r\n containerSize: this._containerSize(),\r\n contentSize: this._contentSize() - this._topPocketSize - this._bottomPocketSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n },\r\n _moveContent: function() {\r\n this.callBase();\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (this._isReachBottom()) {\r\n this._reachBottomReady()\r\n } else if (this._state !== STATE_RELEASED) {\r\n this._stateReleased()\r\n }\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._topPocketSize + this._location)\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= 0\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && this._location - this._bottomBound <= .5\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds() && this._state === STATE_READY) {\r\n this._pullDownRefreshing()\r\n } else if (this._inBounds() && this._state === STATE_LOADING) {\r\n this._reachBottomLoading()\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _reachBottomReady: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return -this._topPocketSize\r\n },\r\n _getMinOffset: function() {\r\n return math.min(this.callBase(), -this._topPocketSize)\r\n },\r\n _reachBottomLoading: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._maxOffset = 0;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._releaseState();\r\n this._updateBounds();\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this.releaseCallbacks.fire()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _releaseHandler: function() {\r\n if (this._state === STATE_RELEASED) {\r\n this._moveToBounds()\r\n }\r\n this._update();\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this._releaseTask = executeAsync(this._release.bind(this));\r\n return this._releaseTask.promise\r\n },\r\n _release: function() {\r\n this._stateReleased();\r\n this._scrollComplete()\r\n },\r\n _reachBottomEnablingHandler: function(enabled) {\r\n if (this._reachBottomEnabled === enabled) {\r\n return\r\n }\r\n this._reachBottomEnabled = enabled;\r\n this._updateBounds()\r\n },\r\n _pullDownEnablingHandler: function(enabled) {\r\n if (this._pullDownEnabled === enabled) {\r\n return\r\n }\r\n this._pullDownEnabled = enabled;\r\n this._considerTopPocketChange();\r\n this._updateHandler()\r\n },\r\n _considerTopPocketChange: function() {\r\n this._location -= this._$topPocket.height() || -this._topPocketSize;\r\n this._maxOffset = 0;\r\n this._move()\r\n },\r\n _pendingReleaseHandler: function() {\r\n this._state = STATE_READY\r\n },\r\n dispose: function() {\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nvar SimulatedScrollViewStrategy = SimulatedStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this._renderPullDown();\r\n this.callBase()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"
    \").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"
    \").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
    \")).$element();\r\n var $text = this._$pullDownText = $(\"
    \").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"
    \").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"
    \").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"
    \").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._eventHandler(\"pullDownEnabling\", enabled)\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._eventHandler(\"reachBottomEnabling\", enabled)\r\n },\r\n _createScroller: function(direction) {\r\n var that = this;\r\n var scroller = that._scrollers[direction] = new ScrollViewScroller(that._scrollerOptions(direction));\r\n scroller.pullDownCallbacks.add((function() {\r\n that.pullDownCallbacks.fire()\r\n }));\r\n scroller.releaseCallbacks.add((function() {\r\n that.releaseCallbacks.fire()\r\n }));\r\n scroller.reachBottomCallbacks.add((function() {\r\n that.reachBottomCallbacks.fire()\r\n }))\r\n },\r\n _scrollerOptions: function(direction) {\r\n return extend(this.callBase(direction), {\r\n $topPocket: this._$topPocket,\r\n $bottomPocket: this._$bottomPocket,\r\n $pullDown: this._$pullDown,\r\n $pullDownText: this._$pullDownText,\r\n $pullingDownText: this._$pullingDownText,\r\n $pulledDownText: this._$pulledDownText,\r\n $refreshingText: this._$refreshingText\r\n })\r\n },\r\n pendingRelease: function() {\r\n this._eventHandler(\"pendingRelease\")\r\n },\r\n release: function() {\r\n return this._eventHandler(\"release\").done(this._updateAction)\r\n },\r\n location: function() {\r\n var location = this.callBase();\r\n location.top += this._$topPocket.height();\r\n return location\r\n },\r\n dispose: function() {\r\n each(this._scrollers, (function() {\r\n this.dispose()\r\n }));\r\n this.callBase()\r\n }\r\n});\r\nexport default SimulatedScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport PullDownStrategy from \"./ui.scroll_view.native.pull_down\";\r\nimport SwipeDownStrategy from \"./ui.scroll_view.native.swipe_down\";\r\nimport SimulatedStrategy from \"./ui.scroll_view.simulated\";\r\nimport Scrollable from \"./ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n isMaterial\r\n} from \"./../themes\";\r\nimport LoadPanel from \"../load_panel\";\r\nvar SCROLLVIEW_CLASS = \"dx-scrollview\";\r\nvar SCROLLVIEW_CONTENT_CLASS = SCROLLVIEW_CLASS + \"-content\";\r\nvar SCROLLVIEW_TOP_POCKET_CLASS = SCROLLVIEW_CLASS + \"-top-pocket\";\r\nvar SCROLLVIEW_BOTTOM_POCKET_CLASS = SCROLLVIEW_CLASS + \"-bottom-pocket\";\r\nvar SCROLLVIEW_PULLDOWN_CLASS = SCROLLVIEW_CLASS + \"-pull-down\";\r\nvar SCROLLVIEW_REACHBOTTOM_CLASS = SCROLLVIEW_CLASS + \"-scrollbottom\";\r\nvar SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-indicator\";\r\nvar SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-text\";\r\nvar SCROLLVIEW_LOADPANEL = SCROLLVIEW_CLASS + \"-loadpanel\";\r\nvar refreshStrategies = {\r\n pullDown: PullDownStrategy,\r\n swipeDown: SwipeDownStrategy,\r\n simulated: SimulatedStrategy\r\n};\r\nvar isServerSide = !hasWindow();\r\nvar scrollViewServerConfig = {\r\n finishLoading: noop,\r\n release: noop,\r\n refresh: noop,\r\n _optionChanged: function(args) {\r\n if (\"onUpdated\" !== args.name) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n};\r\nvar ScrollView = Scrollable.inherit(isServerSide ? scrollViewServerConfig : {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n pullingDownText: messageLocalization.format(\"dxScrollView-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxScrollView-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxScrollView-refreshingText\"),\r\n reachBottomText: messageLocalization.format(\"dxScrollView-reachBottomText\"),\r\n onPullDown: null,\r\n onReachBottom: null,\r\n refreshStrategy: \"pullDown\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = devices.real();\r\n return \"android\" === realDevice.platform\r\n },\r\n options: {\r\n refreshStrategy: \"swipeDown\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n reachBottomText: \"\"\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._loadingIndicatorEnabled = true\r\n },\r\n _initScrollableMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SCROLLVIEW_CLASS);\r\n this._initContent();\r\n this._initTopPocket();\r\n this._initBottomPocket();\r\n this._initLoadPanel()\r\n },\r\n _initContent: function() {\r\n var $content = $(\"
    \").addClass(SCROLLVIEW_CONTENT_CLASS);\r\n this._$content.wrapInner($content)\r\n },\r\n _initTopPocket: function() {\r\n var $topPocket = this._$topPocket = $(\"
    \").addClass(SCROLLVIEW_TOP_POCKET_CLASS);\r\n var $pullDown = this._$pullDown = $(\"
    \").addClass(SCROLLVIEW_PULLDOWN_CLASS);\r\n $topPocket.append($pullDown);\r\n this._$content.prepend($topPocket)\r\n },\r\n _initBottomPocket: function() {\r\n var $bottomPocket = this._$bottomPocket = $(\"
    \").addClass(SCROLLVIEW_BOTTOM_POCKET_CLASS);\r\n var $reachBottom = this._$reachBottom = $(\"
    \").addClass(SCROLLVIEW_REACHBOTTOM_CLASS);\r\n var $loadContainer = $(\"
    \").addClass(SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"
    \")).$element();\r\n var $text = this._$reachBottomText = $(\"
    \").addClass(SCROLLVIEW_REACHBOTTOM_TEXT_CLASS);\r\n this._updateReachBottomText();\r\n $reachBottom.append($loadContainer.append($loadIndicator)).append($text);\r\n $bottomPocket.append($reachBottom);\r\n this._$content.append($bottomPocket)\r\n },\r\n _initLoadPanel: function() {\r\n var $loadPanelElement = $(\"
    \").addClass(SCROLLVIEW_LOADPANEL).appendTo(this.$element());\r\n var loadPanelOptions = {\r\n shading: false,\r\n delay: 400,\r\n message: this.option(\"refreshingText\"),\r\n position: {\r\n of: this.$element()\r\n }\r\n };\r\n this._loadPanel = this._createComponent($loadPanelElement, LoadPanel, loadPanelOptions)\r\n },\r\n _updateReachBottomText: function() {\r\n this._$reachBottomText.text(this.option(\"reachBottomText\"))\r\n },\r\n _createStrategy: function() {\r\n var strategyName = this.option(\"useNative\") ? this.option(\"refreshStrategy\") : \"simulated\";\r\n var strategyClass = refreshStrategies[strategyName];\r\n this._strategy = new strategyClass(this);\r\n this._strategy.pullDownCallbacks.add(this._pullDownHandler.bind(this));\r\n this._strategy.releaseCallbacks.add(this._releaseHandler.bind(this));\r\n this._strategy.reachBottomCallbacks.add(this._reachBottomHandler.bind(this))\r\n },\r\n _createActions: function() {\r\n this.callBase();\r\n this._pullDownAction = this._createActionByOption(\"onPullDown\");\r\n this._reachBottomAction = this._createActionByOption(\"onReachBottom\");\r\n this._tryRefreshPocketState()\r\n },\r\n _tryRefreshPocketState: function() {\r\n this._pullDownEnable(this.hasActionSubscription(\"onPullDown\"));\r\n this._reachBottomEnable(this.hasActionSubscription(\"onReachBottom\"))\r\n },\r\n on: function(eventName) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (\"pullDown\" === eventName || \"reachBottom\" === eventName) {\r\n this._tryRefreshPocketState()\r\n }\r\n return result\r\n },\r\n _pullDownEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._pullDownEnabled\r\n }\r\n if (this._$pullDown && this._strategy) {\r\n this._$pullDown.toggle(enabled);\r\n this._strategy.pullDownEnable(enabled);\r\n this._pullDownEnabled = enabled\r\n }\r\n },\r\n _reachBottomEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._reachBottomEnabled\r\n }\r\n if (this._$reachBottom && this._strategy) {\r\n this._$reachBottom.toggle(enabled);\r\n this._strategy.reachBottomEnable(enabled);\r\n this._reachBottomEnabled = enabled\r\n }\r\n },\r\n _pullDownHandler: function() {\r\n this._loadingIndicator(false);\r\n this._pullDownLoading()\r\n },\r\n _loadingIndicator: function(value) {\r\n if (arguments.length < 1) {\r\n return this._loadingIndicatorEnabled\r\n }\r\n this._loadingIndicatorEnabled = value\r\n },\r\n _pullDownLoading: function() {\r\n this.startLoading();\r\n this._pullDownAction()\r\n },\r\n _reachBottomHandler: function() {\r\n this._loadingIndicator(false);\r\n this._reachBottomLoading()\r\n },\r\n _reachBottomLoading: function() {\r\n this.startLoading();\r\n this._reachBottomAction()\r\n },\r\n _releaseHandler: function() {\r\n this.finishLoading();\r\n this._loadingIndicator(true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onPullDown\":\r\n case \"onReachBottom\":\r\n this._createActions();\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"refreshStrategy\":\r\n this._invalidate();\r\n break;\r\n case \"reachBottomText\":\r\n this._updateReachBottomText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content.children().eq(1))\r\n },\r\n release: function(preventReachBottom) {\r\n if (void 0 !== preventReachBottom) {\r\n this.toggleLoading(!preventReachBottom)\r\n }\r\n return this._strategy.release()\r\n },\r\n toggleLoading: function(showOrHide) {\r\n this._reachBottomEnable(showOrHide)\r\n },\r\n isFull: function() {\r\n return $(this.content()).height() > this._$container.height()\r\n },\r\n refresh: function() {\r\n if (!this.hasActionSubscription(\"onPullDown\")) {\r\n return\r\n }\r\n this._strategy.pendingRelease();\r\n this._pullDownLoading()\r\n },\r\n startLoading: function() {\r\n if (this._loadingIndicator() && this.$element().is(\":visible\")) {\r\n this._loadPanel.show()\r\n }\r\n this._lock()\r\n },\r\n finishLoading: function() {\r\n this._loadPanel.hide();\r\n this._unlock()\r\n },\r\n _dispose: function() {\r\n this._strategy.dispose();\r\n this.callBase();\r\n if (this._loadPanel) {\r\n this._loadPanel.$element().remove()\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxScrollView\", ScrollView);\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ScrollView from \"./scroll_view/ui.scroll_view\";\r\nexport default ScrollView;\r\n","/**\n * lodash 3.0.3 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\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 * @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 `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified\n * as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && objectToString.call(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\r\n * DevExtreme (esm/data_helper.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DataSource\r\n} from \"./data/data_source/data_source\";\r\nimport {\r\n extend\r\n} from \"./core/utils/extend\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"./data/data_source/utils\";\r\nvar DATA_SOURCE_OPTIONS_METHOD = \"_dataSourceOptions\";\r\nvar DATA_SOURCE_CHANGED_METHOD = \"_dataSourceChangedHandler\";\r\nvar DATA_SOURCE_LOAD_ERROR_METHOD = \"_dataSourceLoadErrorHandler\";\r\nvar DATA_SOURCE_LOADING_CHANGED_METHOD = \"_dataSourceLoadingChangedHandler\";\r\nvar DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD = \"_dataSourceFromUrlLoadMode\";\r\nvar SPECIFIC_DATA_SOURCE_OPTION = \"_getSpecificDataSourceOption\";\r\nvar NORMALIZE_DATA_SOURCE = \"_normalizeDataSource\";\r\nvar DataHelperMixin = {\r\n postCtor: function() {\r\n this.on(\"disposing\", function() {\r\n this._disposeDataSource()\r\n }.bind(this))\r\n },\r\n _refreshDataSource: function() {\r\n this._initDataSource();\r\n this._loadDataSource()\r\n },\r\n _initDataSource: function() {\r\n var dataSourceOptions = SPECIFIC_DATA_SOURCE_OPTION in this ? this[SPECIFIC_DATA_SOURCE_OPTION]() : this.option(\"dataSource\");\r\n var widgetDataSourceOptions;\r\n var dataSourceType;\r\n this._disposeDataSource();\r\n if (dataSourceOptions) {\r\n if (dataSourceOptions instanceof DataSource) {\r\n this._isSharedDataSource = true;\r\n this._dataSource = dataSourceOptions\r\n } else {\r\n widgetDataSourceOptions = DATA_SOURCE_OPTIONS_METHOD in this ? this[DATA_SOURCE_OPTIONS_METHOD]() : {};\r\n dataSourceType = this._dataSourceType ? this._dataSourceType() : DataSource;\r\n dataSourceOptions = normalizeDataSourceOptions(dataSourceOptions, {\r\n fromUrlLoadMode: DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD in this && this[DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD]()\r\n });\r\n this._dataSource = new dataSourceType(extend(true, {}, widgetDataSourceOptions, dataSourceOptions))\r\n }\r\n if (NORMALIZE_DATA_SOURCE in this) {\r\n this._dataSource = this[NORMALIZE_DATA_SOURCE](this._dataSource)\r\n }\r\n this._addDataSourceHandlers()\r\n }\r\n },\r\n _addDataSourceHandlers: function() {\r\n if (DATA_SOURCE_CHANGED_METHOD in this) {\r\n this._addDataSourceChangeHandler()\r\n }\r\n if (DATA_SOURCE_LOAD_ERROR_METHOD in this) {\r\n this._addDataSourceLoadErrorHandler()\r\n }\r\n if (DATA_SOURCE_LOADING_CHANGED_METHOD in this) {\r\n this._addDataSourceLoadingChangedHandler()\r\n }\r\n this._addReadyWatcher()\r\n },\r\n _addReadyWatcher: function() {\r\n this._dataSource.on(\"loadingChanged\", function(isLoading) {\r\n this._ready && this._ready(!isLoading)\r\n }.bind(this))\r\n },\r\n _addDataSourceChangeHandler: function() {\r\n var dataSource = this._dataSource;\r\n this._proxiedDataSourceChangedHandler = function(e) {\r\n this[DATA_SOURCE_CHANGED_METHOD](dataSource.items(), e)\r\n }.bind(this);\r\n dataSource.on(\"changed\", this._proxiedDataSourceChangedHandler)\r\n },\r\n _addDataSourceLoadErrorHandler: function() {\r\n this._proxiedDataSourceLoadErrorHandler = this[DATA_SOURCE_LOAD_ERROR_METHOD].bind(this);\r\n this._dataSource.on(\"loadError\", this._proxiedDataSourceLoadErrorHandler)\r\n },\r\n _addDataSourceLoadingChangedHandler: function() {\r\n this._proxiedDataSourceLoadingChangedHandler = this[DATA_SOURCE_LOADING_CHANGED_METHOD].bind(this);\r\n this._dataSource.on(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n },\r\n _loadDataSource: function() {\r\n if (this._dataSource) {\r\n var dataSource = this._dataSource;\r\n if (dataSource.isLoaded()) {\r\n this._proxiedDataSourceChangedHandler && this._proxiedDataSourceChangedHandler()\r\n } else {\r\n dataSource.load()\r\n }\r\n }\r\n },\r\n _loadSingle: function(key, value) {\r\n key = \"this\" === key ? this._dataSource.key() || \"this\" : key;\r\n return this._dataSource.loadSingle(key, value)\r\n },\r\n _isLastPage: function() {\r\n return !this._dataSource || this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n },\r\n _isDataSourceLoading: function() {\r\n return this._dataSource && this._dataSource.isLoading()\r\n },\r\n _disposeDataSource: function() {\r\n if (this._dataSource) {\r\n if (this._isSharedDataSource) {\r\n delete this._isSharedDataSource;\r\n this._proxiedDataSourceChangedHandler && this._dataSource.off(\"changed\", this._proxiedDataSourceChangedHandler);\r\n this._proxiedDataSourceLoadErrorHandler && this._dataSource.off(\"loadError\", this._proxiedDataSourceLoadErrorHandler);\r\n this._proxiedDataSourceLoadingChangedHandler && this._dataSource.off(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n } else {\r\n this._dataSource.dispose()\r\n }\r\n delete this._dataSource;\r\n delete this._proxiedDataSourceChangedHandler;\r\n delete this._proxiedDataSourceLoadErrorHandler;\r\n delete this._proxiedDataSourceLoadingChangedHandler\r\n }\r\n },\r\n getDataSource: function() {\r\n return this._dataSource || null\r\n }\r\n};\r\nexport default DataHelperMixin;\r\n","/**\r\n * DevExtreme (esm/core/utils/style.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n isNumeric\r\n} from \"./type\";\r\nimport domAdapter from \"../dom_adapter\";\r\nvar jsPrefixes = [\"\", \"Webkit\", \"Moz\", \"O\", \"Ms\"];\r\nvar cssPrefixes = {\r\n \"\": \"\",\r\n Webkit: \"-webkit-\",\r\n Moz: \"-moz-\",\r\n O: \"-o-\",\r\n ms: \"-ms-\"\r\n};\r\nvar getStyles = callOnce((function() {\r\n return domAdapter.createElement(\"dx\").style\r\n}));\r\nvar forEachPrefixes = function(prop, callBack) {\r\n prop = camelize(prop, true);\r\n var result;\r\n for (var i = 0, cssPrefixesCount = jsPrefixes.length; i < cssPrefixesCount; i++) {\r\n var jsPrefix = jsPrefixes[i];\r\n var prefixedProp = jsPrefix + prop;\r\n var lowerPrefixedProp = camelize(prefixedProp);\r\n result = callBack(lowerPrefixedProp, jsPrefix);\r\n if (void 0 === result) {\r\n result = callBack(prefixedProp, jsPrefix)\r\n }\r\n if (void 0 !== result) {\r\n break\r\n }\r\n }\r\n return result || \"\"\r\n};\r\nvar styleProp = function(name) {\r\n if (name in getStyles()) {\r\n return name\r\n }\r\n var originalName = name;\r\n name = name.charAt(0).toUpperCase() + name.substr(1);\r\n for (var i = 1; i < jsPrefixes.length; i++) {\r\n var prefixedProp = jsPrefixes[i].toLowerCase() + name;\r\n if (prefixedProp in getStyles()) {\r\n return prefixedProp\r\n }\r\n }\r\n return originalName\r\n};\r\nvar stylePropPrefix = function(prop) {\r\n return forEachPrefixes(prop, (function(specific, jsPrefix) {\r\n if (specific in getStyles()) {\r\n return cssPrefixes[jsPrefix]\r\n }\r\n }))\r\n};\r\nvar pxExceptions = [\"fillOpacity\", \"columnCount\", \"flexGrow\", \"flexShrink\", \"fontWeight\", \"lineHeight\", \"opacity\", \"zIndex\", \"zoom\"];\r\nvar normalizeStyleProp = function(prop, value) {\r\n if (isNumeric(value) && -1 === pxExceptions.indexOf(prop)) {\r\n value += \"px\"\r\n }\r\n return value\r\n};\r\nvar setDimensionProperty = function(elements, propertyName, value) {\r\n if (elements) {\r\n value = isNumeric(value) ? value += \"px\" : value;\r\n for (var i = 0; i < elements.length; ++i) {\r\n elements[i].style[propertyName] = value\r\n }\r\n }\r\n};\r\nvar setWidth = function(elements, value) {\r\n setDimensionProperty(elements, \"width\", value)\r\n};\r\nvar setHeight = function(elements, value) {\r\n setDimensionProperty(elements, \"height\", value)\r\n};\r\nexport {\r\n styleProp,\r\n stylePropPrefix,\r\n normalizeStyleProp,\r\n setWidth,\r\n setHeight\r\n};\r\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","/**\r\n * DevExtreme (esm/ui/toolbar/constants.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TOOLBAR_CLASS = \"dx-toolbar\";\r\n","/**\r\n * DevExtreme (esm/core/utils/common.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport Guid from \"../guid\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../utils/deferred\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isObject,\r\n type\r\n} from \"./type\";\r\nexport var ensureDefined = function(value, defaultValue) {\r\n return isDefined(value) ? value : defaultValue\r\n};\r\nexport var executeAsync = function(action, context) {\r\n var deferred = new Deferred;\r\n var normalizedContext = context || this;\r\n var task = {\r\n promise: deferred.promise(),\r\n abort: function() {\r\n clearTimeout(timerId);\r\n deferred.rejectWith(normalizedContext)\r\n }\r\n };\r\n var callback = function() {\r\n var result = action.call(normalizedContext);\r\n if (result && result.done && isFunction(result.done)) {\r\n result.done((function() {\r\n deferred.resolveWith(normalizedContext)\r\n }))\r\n } else {\r\n deferred.resolveWith(normalizedContext)\r\n }\r\n };\r\n var timerId = (arguments[2] || setTimeout)(callback, \"number\" === typeof context ? context : 0);\r\n return task\r\n};\r\nvar delayedFuncs = [];\r\nvar delayedNames = [];\r\nvar delayedDeferreds = [];\r\nvar executingName;\r\nvar deferExecute = function(name, func, deferred) {\r\n if (executingName && executingName !== name) {\r\n delayedFuncs.push(func);\r\n delayedNames.push(name);\r\n deferred = deferred || new Deferred;\r\n delayedDeferreds.push(deferred);\r\n return deferred\r\n } else {\r\n var oldExecutingName = executingName;\r\n var currentDelayedCount = delayedDeferreds.length;\r\n executingName = name;\r\n var result = func();\r\n if (!result) {\r\n if (delayedDeferreds.length > currentDelayedCount) {\r\n result = when.apply(this, delayedDeferreds.slice(currentDelayedCount))\r\n } else if (deferred) {\r\n deferred.resolve()\r\n }\r\n }\r\n executingName = oldExecutingName;\r\n if (deferred && result && result.done) {\r\n result.done(deferred.resolve).fail(deferred.reject)\r\n }\r\n if (!executingName && delayedFuncs.length) {\r\n (\"render\" === delayedNames.shift() ? deferRender : deferUpdate)(delayedFuncs.shift(), delayedDeferreds.shift())\r\n }\r\n return result || when()\r\n }\r\n};\r\nexport var deferRender = function(func, deferred) {\r\n return deferExecute(\"render\", func, deferred)\r\n};\r\nexport var deferUpdate = function(func, deferred) {\r\n return deferExecute(\"update\", func, deferred)\r\n};\r\nexport var deferRenderer = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"render\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var deferUpdater = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"update\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var findBestMatches = function(targetFilter, items, mapFn) {\r\n var bestMatches = [];\r\n var maxMatchCount = 0;\r\n each(items, (index, itemSrc) => {\r\n var matchCount = 0;\r\n var item = mapFn ? mapFn(itemSrc) : itemSrc;\r\n each(targetFilter, (paramName, targetValue) => {\r\n var value = item[paramName];\r\n if (void 0 === value) {\r\n return\r\n }\r\n if (match(value, targetValue)) {\r\n matchCount++;\r\n return\r\n }\r\n matchCount = -1;\r\n return false\r\n });\r\n if (matchCount < maxMatchCount) {\r\n return\r\n }\r\n if (matchCount > maxMatchCount) {\r\n bestMatches.length = 0;\r\n maxMatchCount = matchCount\r\n }\r\n bestMatches.push(itemSrc)\r\n });\r\n return bestMatches\r\n};\r\nvar match = function(value, targetValue) {\r\n if (Array.isArray(value) && Array.isArray(targetValue)) {\r\n var mismatch = false;\r\n each(value, (index, valueItem) => {\r\n if (valueItem !== targetValue[index]) {\r\n mismatch = true;\r\n return false\r\n }\r\n });\r\n if (mismatch) {\r\n return false\r\n }\r\n return true\r\n }\r\n if (value === targetValue) {\r\n return true\r\n }\r\n return false\r\n};\r\nexport var splitPair = function(raw) {\r\n var _raw$x, _raw$y;\r\n switch (type(raw)) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 2);\r\n case \"object\":\r\n return [null !== (_raw$x = raw.x) && void 0 !== _raw$x ? _raw$x : raw.h, null !== (_raw$y = raw.y) && void 0 !== _raw$y ? _raw$y : raw.v];\r\n case \"number\":\r\n return [raw];\r\n case \"array\":\r\n return raw;\r\n default:\r\n return null\r\n }\r\n};\r\nexport var normalizeKey = function(id) {\r\n var key = isString(id) ? id : id.toString();\r\n var arr = key.match(/[^a-zA-Z0-9_]/g);\r\n arr && each(arr, (_, sign) => {\r\n key = key.replace(sign, \"__\" + sign.charCodeAt() + \"__\")\r\n });\r\n return key\r\n};\r\nexport var denormalizeKey = function(key) {\r\n var arr = key.match(/__\\d+__/g);\r\n arr && arr.forEach(char => {\r\n var charCode = parseInt(char.replace(\"__\", \"\"));\r\n key = key.replace(char, String.fromCharCode(charCode))\r\n });\r\n return key\r\n};\r\nexport var pairToObject = function(raw, preventRound) {\r\n var pair = splitPair(raw);\r\n var h = preventRound ? parseFloat(pair && pair[0]) : parseInt(pair && pair[0], 10);\r\n var v = preventRound ? parseFloat(pair && pair[1]) : parseInt(pair && pair[1], 10);\r\n if (!isFinite(h)) {\r\n h = 0\r\n }\r\n if (!isFinite(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nexport var getKeyHash = function(key) {\r\n if (key instanceof Guid) {\r\n return key.toString()\r\n } else if (isObject(key) || Array.isArray(key)) {\r\n try {\r\n var keyHash = JSON.stringify(key);\r\n return \"{}\" === keyHash ? key : keyHash\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nexport var escapeRegExp = function(string) {\r\n return string.replace(/[[\\]{}\\-()*+?.\\\\^$|\\s]/g, \"\\\\$&\")\r\n};\r\nexport var applyServerDecimalSeparator = function(value) {\r\n var separator = config().serverDecimalSeparator;\r\n if (isDefined(value)) {\r\n value = value.toString().replace(\".\", separator)\r\n }\r\n return value\r\n};\r\nexport var noop = function() {};\r\nexport var asyncNoop = function() {\r\n return (new Deferred).resolve().promise()\r\n};\r\nexport var grep = function(elements, checkFunction, invert) {\r\n var result = [];\r\n var check;\r\n var expectedCheck = !invert;\r\n for (var i = 0; i < elements.length; i++) {\r\n check = !!checkFunction(elements[i], i);\r\n if (check === expectedCheck) {\r\n result.push(elements[i])\r\n }\r\n }\r\n return result\r\n};\r\nvar arraysEqualByValue = function(array1, array2, depth) {\r\n if (array1.length !== array2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < array1.length; i++) {\r\n if (!equalByValue(array1[i], array2[i], depth + 1)) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nvar objectsEqualByValue = function(object1, object2, depth, strict) {\r\n for (var propertyName in object1) {\r\n if (Object.prototype.hasOwnProperty.call(object1, propertyName) && !equalByValue(object1[propertyName], object2[propertyName], depth + 1, strict)) {\r\n return false\r\n }\r\n }\r\n for (var _propertyName in object2) {\r\n if (!(_propertyName in object1)) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nvar maxEqualityDepth = 3;\r\nexport var equalByValue = function(object1, object2) {\r\n var depth = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;\r\n var strict = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : true;\r\n object1 = toComparable(object1, true);\r\n object2 = toComparable(object2, true);\r\n var comparisonResult = strict ? object1 === object2 : object1 == object2;\r\n if (comparisonResult || depth >= maxEqualityDepth) {\r\n return true\r\n }\r\n if (isObject(object1) && isObject(object2)) {\r\n return objectsEqualByValue(object1, object2, depth, strict)\r\n } else if (Array.isArray(object1) && Array.isArray(object2)) {\r\n return arraysEqualByValue(object1, object2, depth)\r\n }\r\n return false\r\n};\r\n","/*!\n * vue-router v4.0.11\n * (c) 2021 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst PolySymbol = (name) => \r\n// vr = vue router\r\nhasSymbol\r\n ? Symbol((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' + name : name)\r\n : ((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' : '_vr_') + name;\r\n// rvlm = Router View Location Matched\r\n/**\r\n * RouteRecord being rendered by the closest ancestor Router View. Used for\r\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\r\n * Location Matched\r\n *\r\n * @internal\r\n */\r\nconst matchedRouteKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : 'rvlm');\r\n/**\r\n * Allows overriding the router view depth to control which component in\r\n * `matched` is rendered. rvd stands for Router View Depth\r\n *\r\n * @internal\r\n */\r\nconst viewDepthKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : 'rvd');\r\n/**\r\n * Allows overriding the router instance returned by `useRouter` in tests. r\r\n * stands for router\r\n *\r\n * @internal\r\n */\r\nconst routerKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router' : 'r');\r\n/**\r\n * Allows overriding the current route returned by `useRoute` in tests. rl\r\n * stands for route location\r\n *\r\n * @internal\r\n */\r\nconst routeLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'route location' : 'rl');\r\n/**\r\n * Allows overriding the current route used by router-view. Internally this is\r\n * used when the `route` prop is passed.\r\n *\r\n * @internal\r\n */\r\nconst routerViewLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location' : 'rvl');\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\r\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module');\r\n}\r\nconst assign = Object.assign;\r\nfunction applyToParams(fn, params) {\r\n const newParams = {};\r\n for (const key in params) {\r\n const value = params[key];\r\n newParams[key] = Array.isArray(value) ? value.map(fn) : fn(value);\r\n }\r\n return newParams;\r\n}\r\nconst noop = () => { };\n\nfunction warn(msg) {\r\n // avoid using ...args as it breaks in older Edge builds\r\n const args = Array.from(arguments).slice(1);\r\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\r\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\r\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\r\n/**\r\n * Transforms an URI into a normalized history location\r\n *\r\n * @param parseQuery\r\n * @param location - URI to normalize\r\n * @param currentLocation - current absolute location. Allows resolving relative\r\n * paths. Must start with `/`. Defaults to `/`\r\n * @returns a normalized history location\r\n */\r\nfunction parseURL(parseQuery, location, currentLocation = '/') {\r\n let path, query = {}, searchString = '', hash = '';\r\n // Could use URL and URLSearchParams but IE 11 doesn't support it\r\n const searchPos = location.indexOf('?');\r\n const hashPos = location.indexOf('#', searchPos > -1 ? searchPos : 0);\r\n if (searchPos > -1) {\r\n path = location.slice(0, searchPos);\r\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\r\n query = parseQuery(searchString);\r\n }\r\n if (hashPos > -1) {\r\n path = path || location.slice(0, hashPos);\r\n // keep the # character\r\n hash = location.slice(hashPos, location.length);\r\n }\r\n // no search and no query\r\n path = resolveRelativePath(path != null ? path : location, currentLocation);\r\n // empty path means a relative query or hash `?foo=f`, `#thing`\r\n return {\r\n fullPath: path + (searchString && '?') + searchString + hash,\r\n path,\r\n query,\r\n hash,\r\n };\r\n}\r\n/**\r\n * Stringifies a URL object\r\n *\r\n * @param stringifyQuery\r\n * @param location\r\n */\r\nfunction stringifyURL(stringifyQuery, location) {\r\n const query = location.query ? stringifyQuery(location.query) : '';\r\n return location.path + (query && '?') + query + (location.hash || '');\r\n}\r\n/**\r\n * Strips off the base from the beginning of a location.pathname in a non\r\n * case-sensitive way.\r\n *\r\n * @param pathname - location.pathname\r\n * @param base - base to strip off\r\n */\r\nfunction stripBase(pathname, base) {\r\n // no base or base is not found at the beginning\r\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\r\n return pathname;\r\n return pathname.slice(base.length) || '/';\r\n}\r\n/**\r\n * Checks if two RouteLocation are equal. This means that both locations are\r\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\r\n * parameters and `hash` are the same\r\n *\r\n * @param a - first {@link RouteLocation}\r\n * @param b - second {@link RouteLocation}\r\n */\r\nfunction isSameRouteLocation(stringifyQuery, a, b) {\r\n const aLastIndex = a.matched.length - 1;\r\n const bLastIndex = b.matched.length - 1;\r\n return (aLastIndex > -1 &&\r\n aLastIndex === bLastIndex &&\r\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\r\n isSameRouteLocationParams(a.params, b.params) &&\r\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\r\n a.hash === b.hash);\r\n}\r\n/**\r\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\r\n * considered equal to the `RouteRecord` they are aliasing.\r\n *\r\n * @param a - first {@link RouteRecord}\r\n * @param b - second {@link RouteRecord}\r\n */\r\nfunction isSameRouteRecord(a, b) {\r\n // since the original record has an undefined value for aliasOf\r\n // but all aliases point to the original record, this will always compare\r\n // the original record\r\n return (a.aliasOf || a) === (b.aliasOf || b);\r\n}\r\nfunction isSameRouteLocationParams(a, b) {\r\n if (Object.keys(a).length !== Object.keys(b).length)\r\n return false;\r\n for (const key in a) {\r\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction isSameRouteLocationParamsValue(a, b) {\r\n return Array.isArray(a)\r\n ? isEquivalentArray(a, b)\r\n : Array.isArray(b)\r\n ? isEquivalentArray(b, a)\r\n : a === b;\r\n}\r\n/**\r\n * Check if two arrays are the same or if an array with one single entry is the\r\n * same as another primitive value. Used to check query and parameters\r\n *\r\n * @param a - array of values\r\n * @param b - array of values or a single value\r\n */\r\nfunction isEquivalentArray(a, b) {\r\n return Array.isArray(b)\r\n ? a.length === b.length && a.every((value, i) => value === b[i])\r\n : a.length === 1 && a[0] === b;\r\n}\r\n/**\r\n * Resolves a relative path that starts with `.`.\r\n *\r\n * @param to - path location we are resolving\r\n * @param from - currentLocation.path, should start with `/`\r\n */\r\nfunction resolveRelativePath(to, from) {\r\n if (to.startsWith('/'))\r\n return to;\r\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\r\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\r\n return to;\r\n }\r\n if (!to)\r\n return from;\r\n const fromSegments = from.split('/');\r\n const toSegments = to.split('/');\r\n let position = fromSegments.length - 1;\r\n let toPosition;\r\n let segment;\r\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\r\n segment = toSegments[toPosition];\r\n // can't go below zero\r\n if (position === 1 || segment === '.')\r\n continue;\r\n if (segment === '..')\r\n position--;\r\n // found something that is not relative path\r\n else\r\n break;\r\n }\r\n return (fromSegments.slice(0, position).join('/') +\r\n '/' +\r\n toSegments\r\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\r\n .join('/'));\r\n}\n\nvar NavigationType;\r\n(function (NavigationType) {\r\n NavigationType[\"pop\"] = \"pop\";\r\n NavigationType[\"push\"] = \"push\";\r\n})(NavigationType || (NavigationType = {}));\r\nvar NavigationDirection;\r\n(function (NavigationDirection) {\r\n NavigationDirection[\"back\"] = \"back\";\r\n NavigationDirection[\"forward\"] = \"forward\";\r\n NavigationDirection[\"unknown\"] = \"\";\r\n})(NavigationDirection || (NavigationDirection = {}));\r\n/**\r\n * Starting location for Histories\r\n */\r\nconst START = '';\r\n// Generic utils\r\n/**\r\n * Normalizes a base by removing any trailing slash and reading the base tag if\r\n * present.\r\n *\r\n * @param base - base to normalize\r\n */\r\nfunction normalizeBase(base) {\r\n if (!base) {\r\n if (isBrowser) {\r\n // respect tag\r\n const baseEl = document.querySelector('base');\r\n base = (baseEl && baseEl.getAttribute('href')) || '/';\r\n // strip full URL origin\r\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\r\n }\r\n else {\r\n base = '/';\r\n }\r\n }\r\n // ensure leading slash when it was removed by the regex above avoid leading\r\n // slash with hash because the file could be read from the disk like file://\r\n // and the leading slash would cause problems\r\n if (base[0] !== '/' && base[0] !== '#')\r\n base = '/' + base;\r\n // remove the trailing slash so all other method can just do `base + fullPath`\r\n // to build an href\r\n return removeTrailingSlash(base);\r\n}\r\n// remove any character before the hash\r\nconst BEFORE_HASH_RE = /^[^#]+#/;\r\nfunction createHref(base, location) {\r\n return base.replace(BEFORE_HASH_RE, '#') + location;\r\n}\n\nfunction getElementPosition(el, offset) {\r\n const docRect = document.documentElement.getBoundingClientRect();\r\n const elRect = el.getBoundingClientRect();\r\n return {\r\n behavior: offset.behavior,\r\n left: elRect.left - docRect.left - (offset.left || 0),\r\n top: elRect.top - docRect.top - (offset.top || 0),\r\n };\r\n}\r\nconst computeScrollPosition = () => ({\r\n left: window.pageXOffset,\r\n top: window.pageYOffset,\r\n});\r\nfunction scrollToPosition(position) {\r\n let scrollToOptions;\r\n if ('el' in position) {\r\n const positionEl = position.el;\r\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\r\n /**\r\n * `id`s can accept pretty much any characters, including CSS combinators\r\n * like `>` or `~`. It's still possible to retrieve elements using\r\n * `document.getElementById('~')` but it needs to be escaped when using\r\n * `document.querySelector('#\\\\~')` for it to be valid. The only\r\n * requirements for `id`s are them to be unique on the page and to not be\r\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\r\n * be properly escaped for it to work with `querySelector`. We could check\r\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\r\n * would make things inconsistent since they are valid characters for an\r\n * `id` but would need to be escaped when using `querySelector`, breaking\r\n * their usage and ending up in no selector returned. Selectors need to be\r\n * escaped:\r\n *\r\n * - `#1-thing` becomes `#\\31 -thing`\r\n * - `#with~symbols` becomes `#with\\\\~symbols`\r\n *\r\n * - More information about the topic can be found at\r\n * https://mathiasbynens.be/notes/html5-id-class.\r\n * - Practical example: https://mathiasbynens.be/demo/html5-id\r\n */\r\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\r\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\r\n try {\r\n const foundEl = document.querySelector(position.el);\r\n if (isIdSelector && foundEl) {\r\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n catch (err) {\r\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n }\r\n const el = typeof positionEl === 'string'\r\n ? isIdSelector\r\n ? document.getElementById(positionEl.slice(1))\r\n : document.querySelector(positionEl)\r\n : positionEl;\r\n if (!el) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\r\n return;\r\n }\r\n scrollToOptions = getElementPosition(el, position);\r\n }\r\n else {\r\n scrollToOptions = position;\r\n }\r\n if ('scrollBehavior' in document.documentElement.style)\r\n window.scrollTo(scrollToOptions);\r\n else {\r\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\r\n }\r\n}\r\nfunction getScrollKey(path, delta) {\r\n const position = history.state ? history.state.position - delta : -1;\r\n return position + path;\r\n}\r\nconst scrollPositions = new Map();\r\nfunction saveScrollPosition(key, scrollPosition) {\r\n scrollPositions.set(key, scrollPosition);\r\n}\r\nfunction getSavedScrollPosition(key) {\r\n const scroll = scrollPositions.get(key);\r\n // consume it so it's not used again\r\n scrollPositions.delete(key);\r\n return scroll;\r\n}\r\n// TODO: RFC about how to save scroll position\r\n/**\r\n * ScrollBehavior instance used by the router to compute and restore the scroll\r\n * position when navigating.\r\n */\r\n// export interface ScrollHandler {\r\n// // returns a scroll position that can be saved in history\r\n// compute(): ScrollPositionEntry\r\n// // can take an extended ScrollPositionEntry\r\n// scroll(position: ScrollPosition): void\r\n// }\r\n// export const scrollHandler: ScrollHandler = {\r\n// compute: computeScroll,\r\n// scroll: scrollToPosition,\r\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\r\n/**\r\n * Creates a normalized history location from a window.location object\r\n * @param location -\r\n */\r\nfunction createCurrentLocation(base, location) {\r\n const { pathname, search, hash } = location;\r\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\r\n const hashPos = base.indexOf('#');\r\n if (hashPos > -1) {\r\n let slicePos = hash.includes(base.slice(hashPos))\r\n ? base.slice(hashPos).length\r\n : 1;\r\n let pathFromHash = hash.slice(slicePos);\r\n // prepend the starting slash to hash so the url starts with /#\r\n if (pathFromHash[0] !== '/')\r\n pathFromHash = '/' + pathFromHash;\r\n return stripBase(pathFromHash, '');\r\n }\r\n const path = stripBase(pathname, base);\r\n return path + search + hash;\r\n}\r\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\r\n let listeners = [];\r\n let teardowns = [];\r\n // TODO: should it be a stack? a Dict. Check if the popstate listener\r\n // can trigger twice\r\n let pauseState = null;\r\n const popStateHandler = ({ state, }) => {\r\n const to = createCurrentLocation(base, location);\r\n const from = currentLocation.value;\r\n const fromState = historyState.value;\r\n let delta = 0;\r\n if (state) {\r\n currentLocation.value = to;\r\n historyState.value = state;\r\n // ignore the popstate and reset the pauseState\r\n if (pauseState && pauseState === from) {\r\n pauseState = null;\r\n return;\r\n }\r\n delta = fromState ? state.position - fromState.position : 0;\r\n }\r\n else {\r\n replace(to);\r\n }\r\n // console.log({ deltaFromCurrent })\r\n // Here we could also revert the navigation by calling history.go(-delta)\r\n // this listener will have to be adapted to not trigger again and to wait for the url\r\n // to be updated before triggering the listeners. Some kind of validation function would also\r\n // need to be passed to the listeners so the navigation can be accepted\r\n // call all listeners\r\n listeners.forEach(listener => {\r\n listener(currentLocation.value, from, {\r\n delta,\r\n type: NavigationType.pop,\r\n direction: delta\r\n ? delta > 0\r\n ? NavigationDirection.forward\r\n : NavigationDirection.back\r\n : NavigationDirection.unknown,\r\n });\r\n });\r\n };\r\n function pauseListeners() {\r\n pauseState = currentLocation.value;\r\n }\r\n function listen(callback) {\r\n // setup the listener and prepare teardown callbacks\r\n listeners.push(callback);\r\n const teardown = () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n teardowns.push(teardown);\r\n return teardown;\r\n }\r\n function beforeUnloadListener() {\r\n const { history } = window;\r\n if (!history.state)\r\n return;\r\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\r\n }\r\n function destroy() {\r\n for (const teardown of teardowns)\r\n teardown();\r\n teardowns = [];\r\n window.removeEventListener('popstate', popStateHandler);\r\n window.removeEventListener('beforeunload', beforeUnloadListener);\r\n }\r\n // setup the listeners and prepare teardown callbacks\r\n window.addEventListener('popstate', popStateHandler);\r\n window.addEventListener('beforeunload', beforeUnloadListener);\r\n return {\r\n pauseListeners,\r\n listen,\r\n destroy,\r\n };\r\n}\r\n/**\r\n * Creates a state object\r\n */\r\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\r\n return {\r\n back,\r\n current,\r\n forward,\r\n replaced,\r\n position: window.history.length,\r\n scroll: computeScroll ? computeScrollPosition() : null,\r\n };\r\n}\r\nfunction useHistoryStateNavigation(base) {\r\n const { history, location } = window;\r\n // private variables\r\n const currentLocation = {\r\n value: createCurrentLocation(base, location),\r\n };\r\n const historyState = { value: history.state };\r\n // build current history entry as this is a fresh navigation\r\n if (!historyState.value) {\r\n changeLocation(currentLocation.value, {\r\n back: null,\r\n current: currentLocation.value,\r\n forward: null,\r\n // the length is off by one, we need to decrease it\r\n position: history.length - 1,\r\n replaced: true,\r\n // don't add a scroll as the user may have an anchor and we want\r\n // scrollBehavior to be triggered without a saved position\r\n scroll: null,\r\n }, true);\r\n }\r\n function changeLocation(to, state, replace) {\r\n /**\r\n * if a base tag is provided and we are on a normal domain, we have to\r\n * respect the provided `base` attribute because pushState() will use it and\r\n * potentially erase anything before the `#` like at\r\n * https://github.com/vuejs/vue-router-next/issues/685 where a base of\r\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\r\n * there is no host, the `` tag makes no sense and if there isn't a\r\n * base tag we can just use everything after the `#`.\r\n */\r\n const hashIndex = base.indexOf('#');\r\n const url = hashIndex > -1\r\n ? (location.host && document.querySelector('base')\r\n ? base\r\n : base.slice(hashIndex)) + to\r\n : createBaseLocation() + base + to;\r\n try {\r\n // BROWSER QUIRK\r\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\r\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\r\n historyState.value = state;\r\n }\r\n catch (err) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Error with push/replace State', err);\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n // Force the navigation, this also resets the call count\r\n location[replace ? 'replace' : 'assign'](url);\r\n }\r\n }\r\n function replace(to, data) {\r\n const state = assign({}, history.state, buildState(historyState.value.back, \r\n // keep back and forward entries but override current position\r\n to, historyState.value.forward, true), data, { position: historyState.value.position });\r\n changeLocation(to, state, true);\r\n currentLocation.value = to;\r\n }\r\n function push(to, data) {\r\n // Add to current entry the information of where we are going\r\n // as well as saving the current position\r\n const currentState = assign({}, \r\n // use current history state to gracefully handle a wrong call to\r\n // history.replaceState\r\n // https://github.com/vuejs/vue-router-next/issues/366\r\n historyState.value, history.state, {\r\n forward: to,\r\n scroll: computeScrollPosition(),\r\n });\r\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\r\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\r\n `history.replaceState(history.state, '', url)\\n\\n` +\r\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\r\n }\r\n changeLocation(currentState.current, currentState, true);\r\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\r\n changeLocation(to, state, false);\r\n currentLocation.value = to;\r\n }\r\n return {\r\n location: currentLocation,\r\n state: historyState,\r\n push,\r\n replace,\r\n };\r\n}\r\n/**\r\n * Creates an HTML5 history. Most common history for single page applications.\r\n *\r\n * @param base -\r\n */\r\nfunction createWebHistory(base) {\r\n base = normalizeBase(base);\r\n const historyNavigation = useHistoryStateNavigation(base);\r\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\r\n function go(delta, triggerListeners = true) {\r\n if (!triggerListeners)\r\n historyListeners.pauseListeners();\r\n history.go(delta);\r\n }\r\n const routerHistory = assign({\r\n // it's overridden right after\r\n location: '',\r\n base,\r\n go,\r\n createHref: createHref.bind(null, base),\r\n }, historyNavigation, historyListeners);\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => historyNavigation.location.value,\r\n });\r\n Object.defineProperty(routerHistory, 'state', {\r\n enumerable: true,\r\n get: () => historyNavigation.state.value,\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\r\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\r\n *\r\n * @param base - Base applied to all urls, defaults to '/'\r\n * @returns a history object that can be passed to the router constructor\r\n */\r\nfunction createMemoryHistory(base = '') {\r\n let listeners = [];\r\n let queue = [START];\r\n let position = 0;\r\n function setLocation(location) {\r\n position++;\r\n if (position === queue.length) {\r\n // we are at the end, we can simply append a new entry\r\n queue.push(location);\r\n }\r\n else {\r\n // we are in the middle, we remove everything from here in the queue\r\n queue.splice(position);\r\n queue.push(location);\r\n }\r\n }\r\n function triggerListeners(to, from, { direction, delta }) {\r\n const info = {\r\n direction,\r\n delta,\r\n type: NavigationType.pop,\r\n };\r\n for (const callback of listeners) {\r\n callback(to, from, info);\r\n }\r\n }\r\n const routerHistory = {\r\n // rewritten by Object.defineProperty\r\n location: START,\r\n // TODO: should be kept in queue\r\n state: {},\r\n base,\r\n createHref: createHref.bind(null, base),\r\n replace(to) {\r\n // remove current entry and decrement position\r\n queue.splice(position--, 1);\r\n setLocation(to);\r\n },\r\n push(to, data) {\r\n setLocation(to);\r\n },\r\n listen(callback) {\r\n listeners.push(callback);\r\n return () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n },\r\n destroy() {\r\n listeners = [];\r\n queue = [START];\r\n position = 0;\r\n },\r\n go(delta, shouldTrigger = true) {\r\n const from = this.location;\r\n const direction = \r\n // we are considering delta === 0 going forward, but in abstract mode\r\n // using 0 for the delta doesn't make sense like it does in html5 where\r\n // it reloads the page\r\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\r\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\r\n if (shouldTrigger) {\r\n triggerListeners(this.location, from, {\r\n direction,\r\n delta,\r\n });\r\n }\r\n },\r\n };\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => queue[position],\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a hash history. Useful for web applications with no host (e.g.\r\n * `file://`) or when configuring a server to handle any URL is not possible.\r\n *\r\n * @param base - optional base to provide. Defaults to `location.pathname +\r\n * location.search` If there is a `` tag in the `head`, its value will be\r\n * ignored in favor of this parameter **but note it affects all the\r\n * history.pushState() calls**, meaning that if you use a `` tag, it's\r\n * `href` value **has to match this parameter** (ignoring anything after the\r\n * `#`).\r\n *\r\n * @example\r\n * ```js\r\n * // at https://example.com/folder\r\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\r\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\r\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\r\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\r\n * // you should avoid doing this because it changes the original url and breaks copying urls\r\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\r\n *\r\n * // at file:///usr/etc/folder/index.html\r\n * // for locations with no `host`, the base is ignored\r\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\r\n * ```\r\n */\r\nfunction createWebHashHistory(base) {\r\n // Make sure this implementation is fine in terms of encoding, specially for IE11\r\n // for `file://`, directly use the pathname and ignore the base\r\n // location.pathname contains an initial `/` even at the root: `https://example.com`\r\n base = location.host ? base || location.pathname + location.search : '';\r\n // allow the user to provide a `#` in the middle: `/base/#/app`\r\n if (!base.includes('#'))\r\n base += '#';\r\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\r\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\r\n }\r\n return createWebHistory(base);\r\n}\n\nfunction isRouteLocation(route) {\r\n return typeof route === 'string' || (route && typeof route === 'object');\r\n}\r\nfunction isRouteName(name) {\r\n return typeof name === 'string' || typeof name === 'symbol';\r\n}\n\n/**\r\n * Initial route location where the router is. Can be used in navigation guards\r\n * to differentiate the initial navigation.\r\n *\r\n * @example\r\n * ```js\r\n * import { START_LOCATION } from 'vue-router'\r\n *\r\n * router.beforeEach((to, from) => {\r\n * if (from === START_LOCATION) {\r\n * // initial navigation\r\n * }\r\n * })\r\n * ```\r\n */\r\nconst START_LOCATION_NORMALIZED = {\r\n path: '/',\r\n name: undefined,\r\n params: {},\r\n query: {},\r\n hash: '',\r\n fullPath: '/',\r\n matched: [],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n};\n\nconst NavigationFailureSymbol = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : 'nf');\r\n/**\r\n * Enumeration with all possible types for navigation failures. Can be passed to\r\n * {@link isNavigationFailure} to check for specific failures.\r\n */\r\nvar NavigationFailureType;\r\n(function (NavigationFailureType) {\r\n /**\r\n * An aborted navigation is a navigation that failed because a navigation\r\n * guard returned `false` or called `next(false)`\r\n */\r\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\r\n /**\r\n * A cancelled navigation is a navigation that failed because a more recent\r\n * navigation finished started (not necessarily finished).\r\n */\r\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\r\n /**\r\n * A duplicated navigation is a navigation that failed because it was\r\n * initiated while already being at the exact same location.\r\n */\r\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\r\n})(NavigationFailureType || (NavigationFailureType = {}));\r\n// DEV only debug messages\r\nconst ErrorTypeMessages = {\r\n [1 /* MATCHER_NOT_FOUND */]({ location, currentLocation }) {\r\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\r\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\r\n : ''}`;\r\n },\r\n [2 /* NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\r\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\r\n },\r\n [4 /* NAVIGATION_ABORTED */]({ from, to }) {\r\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\r\n },\r\n [8 /* NAVIGATION_CANCELLED */]({ from, to }) {\r\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\r\n },\r\n [16 /* NAVIGATION_DUPLICATED */]({ from, to }) {\r\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\r\n },\r\n};\r\nfunction createRouterError(type, params) {\r\n // keep full error messages in cjs versions\r\n if ((process.env.NODE_ENV !== 'production') || !true) {\r\n return assign(new Error(ErrorTypeMessages[type](params)), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n else {\r\n return assign(new Error(), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n}\r\nfunction isNavigationFailure(error, type) {\r\n return (error instanceof Error &&\r\n NavigationFailureSymbol in error &&\r\n (type == null || !!(error.type & type)));\r\n}\r\nconst propertiesToLog = ['params', 'query', 'hash'];\r\nfunction stringifyRoute(to) {\r\n if (typeof to === 'string')\r\n return to;\r\n if ('path' in to)\r\n return to.path;\r\n const location = {};\r\n for (const key of propertiesToLog) {\r\n if (key in to)\r\n location[key] = to[key];\r\n }\r\n return JSON.stringify(location, null, 2);\r\n}\n\n// default pattern for a param: non greedy everything but /\r\nconst BASE_PARAM_PATTERN = '[^/]+?';\r\nconst BASE_PATH_PARSER_OPTIONS = {\r\n sensitive: false,\r\n strict: false,\r\n start: true,\r\n end: true,\r\n};\r\n// Special Regex characters that must be escaped in static tokens\r\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\r\n/**\r\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\r\n *\r\n * @param segments - array of segments returned by tokenizePath\r\n * @param extraOptions - optional options for the regexp\r\n * @returns a PathParser\r\n */\r\nfunction tokensToParser(segments, extraOptions) {\r\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\r\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\r\n const score = [];\r\n // the regexp as a string\r\n let pattern = options.start ? '^' : '';\r\n // extracted keys\r\n const keys = [];\r\n for (const segment of segments) {\r\n // the root segment needs special treatment\r\n const segmentScores = segment.length ? [] : [90 /* Root */];\r\n // allow trailing slash\r\n if (options.strict && !segment.length)\r\n pattern += '/';\r\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\r\n const token = segment[tokenIndex];\r\n // resets the score if we are inside a sub segment /:a-other-:b\r\n let subSegmentScore = 40 /* Segment */ +\r\n (options.sensitive ? 0.25 /* BonusCaseSensitive */ : 0);\r\n if (token.type === 0 /* Static */) {\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n pattern += '/';\r\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\r\n subSegmentScore += 40 /* Static */;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional, regexp } = token;\r\n keys.push({\r\n name: value,\r\n repeatable,\r\n optional,\r\n });\r\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\r\n // the user provided a custom regexp /:id(\\\\d+)\r\n if (re !== BASE_PARAM_PATTERN) {\r\n subSegmentScore += 10 /* BonusCustomRegExp */;\r\n // make sure the regexp is valid before using it\r\n try {\r\n new RegExp(`(${re})`);\r\n }\r\n catch (err) {\r\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\r\n err.message);\r\n }\r\n }\r\n // when we repeat we must take care of the repeating leading slash\r\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n subPattern =\r\n // avoid an optional / if there are more segments e.g. /:p?-static\r\n // or /:p?-:p2\r\n optional && segment.length < 2\r\n ? `(?:/${subPattern})`\r\n : '/' + subPattern;\r\n if (optional)\r\n subPattern += '?';\r\n pattern += subPattern;\r\n subSegmentScore += 20 /* Dynamic */;\r\n if (optional)\r\n subSegmentScore += -8 /* BonusOptional */;\r\n if (repeatable)\r\n subSegmentScore += -20 /* BonusRepeatable */;\r\n if (re === '.*')\r\n subSegmentScore += -50 /* BonusWildcard */;\r\n }\r\n segmentScores.push(subSegmentScore);\r\n }\r\n // an empty array like /home/ -> [[{home}], []]\r\n // if (!segment.length) pattern += '/'\r\n score.push(segmentScores);\r\n }\r\n // only apply the strict bonus to the last score\r\n if (options.strict && options.end) {\r\n const i = score.length - 1;\r\n score[i][score[i].length - 1] += 0.7000000000000001 /* BonusStrict */;\r\n }\r\n // TODO: dev only warn double trailing slash\r\n if (!options.strict)\r\n pattern += '/?';\r\n if (options.end)\r\n pattern += '$';\r\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\r\n else if (options.strict)\r\n pattern += '(?:/|$)';\r\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\r\n function parse(path) {\r\n const match = path.match(re);\r\n const params = {};\r\n if (!match)\r\n return null;\r\n for (let i = 1; i < match.length; i++) {\r\n const value = match[i] || '';\r\n const key = keys[i - 1];\r\n params[key.name] = value && key.repeatable ? value.split('/') : value;\r\n }\r\n return params;\r\n }\r\n function stringify(params) {\r\n let path = '';\r\n // for optional parameters to allow to be empty\r\n let avoidDuplicatedSlash = false;\r\n for (const segment of segments) {\r\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\r\n path += '/';\r\n avoidDuplicatedSlash = false;\r\n for (const token of segment) {\r\n if (token.type === 0 /* Static */) {\r\n path += token.value;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional } = token;\r\n const param = value in params ? params[value] : '';\r\n if (Array.isArray(param) && !repeatable)\r\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\r\n const text = Array.isArray(param) ? param.join('/') : param;\r\n if (!text) {\r\n if (optional) {\r\n // if we have more than one optional param like /:a?-static we\r\n // don't need to care about the optional param\r\n if (segment.length < 2) {\r\n // remove the last slash as we could be at the end\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n // do not append a slash on the next iteration\r\n else\r\n avoidDuplicatedSlash = true;\r\n }\r\n }\r\n else\r\n throw new Error(`Missing required param \"${value}\"`);\r\n }\r\n path += text;\r\n }\r\n }\r\n }\r\n return path;\r\n }\r\n return {\r\n re,\r\n score,\r\n keys,\r\n parse,\r\n stringify,\r\n };\r\n}\r\n/**\r\n * Compares an array of numbers as used in PathParser.score and returns a\r\n * number. This function can be used to `sort` an array\r\n *\r\n * @param a - first array of numbers\r\n * @param b - second array of numbers\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n * should be sorted first\r\n */\r\nfunction compareScoreArray(a, b) {\r\n let i = 0;\r\n while (i < a.length && i < b.length) {\r\n const diff = b[i] - a[i];\r\n // only keep going if diff === 0\r\n if (diff)\r\n return diff;\r\n i++;\r\n }\r\n // if the last subsegment was Static, the shorter segments should be sorted first\r\n // otherwise sort the longest segment first\r\n if (a.length < b.length) {\r\n return a.length === 1 && a[0] === 40 /* Static */ + 40 /* Segment */\r\n ? -1\r\n : 1;\r\n }\r\n else if (a.length > b.length) {\r\n return b.length === 1 && b[0] === 40 /* Static */ + 40 /* Segment */\r\n ? 1\r\n : -1;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * Compare function that can be used with `sort` to sort an array of PathParser\r\n *\r\n * @param a - first PathParser\r\n * @param b - second PathParser\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n */\r\nfunction comparePathParserScore(a, b) {\r\n let i = 0;\r\n const aScore = a.score;\r\n const bScore = b.score;\r\n while (i < aScore.length && i < bScore.length) {\r\n const comp = compareScoreArray(aScore[i], bScore[i]);\r\n // do not return if both are equal\r\n if (comp)\r\n return comp;\r\n i++;\r\n }\r\n // if a and b share the same score entries but b has more, sort b first\r\n return bScore.length - aScore.length;\r\n // this is the ternary version\r\n // return aScore.length < bScore.length\r\n // ? 1\r\n // : aScore.length > bScore.length\r\n // ? -1\r\n // : 0\r\n}\n\nconst ROOT_TOKEN = {\r\n type: 0 /* Static */,\r\n value: '',\r\n};\r\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\r\n// After some profiling, the cache seems to be unnecessary because tokenizePath\r\n// (the slowest part of adding a route) is very fast\r\n// const tokenCache = new Map()\r\nfunction tokenizePath(path) {\r\n if (!path)\r\n return [[]];\r\n if (path === '/')\r\n return [[ROOT_TOKEN]];\r\n if (!path.startsWith('/')) {\r\n throw new Error((process.env.NODE_ENV !== 'production')\r\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\r\n : `Invalid path \"${path}\"`);\r\n }\r\n // if (tokenCache.has(path)) return tokenCache.get(path)!\r\n function crash(message) {\r\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\r\n }\r\n let state = 0 /* Static */;\r\n let previousState = state;\r\n const tokens = [];\r\n // the segment will always be valid because we get into the initial state\r\n // with the leading /\r\n let segment;\r\n function finalizeSegment() {\r\n if (segment)\r\n tokens.push(segment);\r\n segment = [];\r\n }\r\n // index on the path\r\n let i = 0;\r\n // char at index\r\n let char;\r\n // buffer of the value read\r\n let buffer = '';\r\n // custom regexp for a param\r\n let customRe = '';\r\n function consumeBuffer() {\r\n if (!buffer)\r\n return;\r\n if (state === 0 /* Static */) {\r\n segment.push({\r\n type: 0 /* Static */,\r\n value: buffer,\r\n });\r\n }\r\n else if (state === 1 /* Param */ ||\r\n state === 2 /* ParamRegExp */ ||\r\n state === 3 /* ParamRegExpEnd */) {\r\n if (segment.length > 1 && (char === '*' || char === '+'))\r\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\r\n segment.push({\r\n type: 1 /* Param */,\r\n value: buffer,\r\n regexp: customRe,\r\n repeatable: char === '*' || char === '+',\r\n optional: char === '*' || char === '?',\r\n });\r\n }\r\n else {\r\n crash('Invalid state to consume buffer');\r\n }\r\n buffer = '';\r\n }\r\n function addCharToBuffer() {\r\n buffer += char;\r\n }\r\n while (i < path.length) {\r\n char = path[i++];\r\n if (char === '\\\\' && state !== 2 /* ParamRegExp */) {\r\n previousState = state;\r\n state = 4 /* EscapeNext */;\r\n continue;\r\n }\r\n switch (state) {\r\n case 0 /* Static */:\r\n if (char === '/') {\r\n if (buffer) {\r\n consumeBuffer();\r\n }\r\n finalizeSegment();\r\n }\r\n else if (char === ':') {\r\n consumeBuffer();\r\n state = 1 /* Param */;\r\n }\r\n else {\r\n addCharToBuffer();\r\n }\r\n break;\r\n case 4 /* EscapeNext */:\r\n addCharToBuffer();\r\n state = previousState;\r\n break;\r\n case 1 /* Param */:\r\n if (char === '(') {\r\n state = 2 /* ParamRegExp */;\r\n }\r\n else if (VALID_PARAM_RE.test(char)) {\r\n addCharToBuffer();\r\n }\r\n else {\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n }\r\n break;\r\n case 2 /* ParamRegExp */:\r\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\r\n // it already works by escaping the closing )\r\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\r\n // is this really something people need since you can also write\r\n // /prefix_:p()_suffix\r\n if (char === ')') {\r\n // handle the escaped )\r\n if (customRe[customRe.length - 1] == '\\\\')\r\n customRe = customRe.slice(0, -1) + char;\r\n else\r\n state = 3 /* ParamRegExpEnd */;\r\n }\r\n else {\r\n customRe += char;\r\n }\r\n break;\r\n case 3 /* ParamRegExpEnd */:\r\n // same as finalizing a param\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n customRe = '';\r\n break;\r\n default:\r\n crash('Unknown state');\r\n break;\r\n }\r\n }\r\n if (state === 2 /* ParamRegExp */)\r\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\r\n consumeBuffer();\r\n finalizeSegment();\r\n // tokenCache.set(path, tokens)\r\n return tokens;\r\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\r\n const parser = tokensToParser(tokenizePath(record.path), options);\r\n // warn against params with the same name\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const existingKeys = new Set();\r\n for (const key of parser.keys) {\r\n if (existingKeys.has(key.name))\r\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\r\n existingKeys.add(key.name);\r\n }\r\n }\r\n const matcher = assign(parser, {\r\n record,\r\n parent,\r\n // these needs to be populated by the parent\r\n children: [],\r\n alias: [],\r\n });\r\n if (parent) {\r\n // both are aliases or both are not aliases\r\n // we don't want to mix them because the order is used when\r\n // passing originalRecord in Matcher.addRoute\r\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\r\n parent.children.push(matcher);\r\n }\r\n return matcher;\r\n}\n\n/**\r\n * Creates a Router Matcher.\r\n *\r\n * @internal\r\n * @param routes - array of initial routes\r\n * @param globalOptions - global route options\r\n */\r\nfunction createRouterMatcher(routes, globalOptions) {\r\n // normalized ordered array of matchers\r\n const matchers = [];\r\n const matcherMap = new Map();\r\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\r\n function getRecordMatcher(name) {\r\n return matcherMap.get(name);\r\n }\r\n function addRoute(record, parent, originalRecord) {\r\n // used later on to remove by name\r\n const isRootAdd = !originalRecord;\r\n const mainNormalizedRecord = normalizeRouteRecord(record);\r\n // we might be the child of an alias\r\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\r\n const options = mergeOptions(globalOptions, record);\r\n // generate an array of records to correctly handle aliases\r\n const normalizedRecords = [\r\n mainNormalizedRecord,\r\n ];\r\n if ('alias' in record) {\r\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\r\n for (const alias of aliases) {\r\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\r\n // this allows us to hold a copy of the `components` option\r\n // so that async components cache is hold on the original record\r\n components: originalRecord\r\n ? originalRecord.record.components\r\n : mainNormalizedRecord.components,\r\n path: alias,\r\n // we might be the child of an alias\r\n aliasOf: originalRecord\r\n ? originalRecord.record\r\n : mainNormalizedRecord,\r\n // the aliases are always of the same kind as the original since they\r\n // are defined on the same record\r\n }));\r\n }\r\n }\r\n let matcher;\r\n let originalMatcher;\r\n for (const normalizedRecord of normalizedRecords) {\r\n const { path } = normalizedRecord;\r\n // Build up the path for nested routes if the child isn't an absolute\r\n // route. Only add the / delimiter if the child path isn't empty and if the\r\n // parent path doesn't have a trailing slash\r\n if (parent && path[0] !== '/') {\r\n const parentPath = parent.record.path;\r\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\r\n normalizedRecord.path =\r\n parent.record.path + (path && connectingSlash + path);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\r\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\r\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\r\n }\r\n // create the object before hand so it can be passed to children\r\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\r\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\r\n checkMissingParamsInAbsolutePath(matcher, parent);\r\n // if we are an alias we must tell the original record that we exist\r\n // so we can be removed\r\n if (originalRecord) {\r\n originalRecord.alias.push(matcher);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkSameParams(originalRecord, matcher);\r\n }\r\n }\r\n else {\r\n // otherwise, the first record is the original and others are aliases\r\n originalMatcher = originalMatcher || matcher;\r\n if (originalMatcher !== matcher)\r\n originalMatcher.alias.push(matcher);\r\n // remove the route if named and only for the top record (avoid in nested calls)\r\n // this works because the original record is the first one\r\n if (isRootAdd && record.name && !isAliasRecord(matcher))\r\n removeRoute(record.name);\r\n }\r\n if ('children' in mainNormalizedRecord) {\r\n const children = mainNormalizedRecord.children;\r\n for (let i = 0; i < children.length; i++) {\r\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\r\n }\r\n }\r\n // if there was no original record, then the first one was not an alias and all\r\n // other alias (if any) need to reference this record when adding children\r\n originalRecord = originalRecord || matcher;\r\n // TODO: add normalized records for more flexibility\r\n // if (parent && isAliasRecord(originalRecord)) {\r\n // parent.children.push(originalRecord)\r\n // }\r\n insertMatcher(matcher);\r\n }\r\n return originalMatcher\r\n ? () => {\r\n // since other matchers are aliases, they should be removed by the original matcher\r\n removeRoute(originalMatcher);\r\n }\r\n : noop;\r\n }\r\n function removeRoute(matcherRef) {\r\n if (isRouteName(matcherRef)) {\r\n const matcher = matcherMap.get(matcherRef);\r\n if (matcher) {\r\n matcherMap.delete(matcherRef);\r\n matchers.splice(matchers.indexOf(matcher), 1);\r\n matcher.children.forEach(removeRoute);\r\n matcher.alias.forEach(removeRoute);\r\n }\r\n }\r\n else {\r\n const index = matchers.indexOf(matcherRef);\r\n if (index > -1) {\r\n matchers.splice(index, 1);\r\n if (matcherRef.record.name)\r\n matcherMap.delete(matcherRef.record.name);\r\n matcherRef.children.forEach(removeRoute);\r\n matcherRef.alias.forEach(removeRoute);\r\n }\r\n }\r\n }\r\n function getRoutes() {\r\n return matchers;\r\n }\r\n function insertMatcher(matcher) {\r\n let i = 0;\r\n // console.log('i is', { i })\r\n while (i < matchers.length &&\r\n comparePathParserScore(matcher, matchers[i]) >= 0)\r\n i++;\r\n // console.log('END i is', { i })\r\n // while (i < matchers.length && matcher.score <= matchers[i].score) i++\r\n matchers.splice(i, 0, matcher);\r\n // only add the original record to the name map\r\n if (matcher.record.name && !isAliasRecord(matcher))\r\n matcherMap.set(matcher.record.name, matcher);\r\n }\r\n function resolve(location, currentLocation) {\r\n let matcher;\r\n let params = {};\r\n let path;\r\n let name;\r\n if ('name' in location && location.name) {\r\n matcher = matcherMap.get(location.name);\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n });\r\n name = matcher.record.name;\r\n params = assign(\r\n // paramsFromLocation is a new object\r\n paramsFromLocation(currentLocation.params, \r\n // only keep params that exist in the resolved location\r\n // TODO: only keep optional params coming from a parent record\r\n matcher.keys.filter(k => !k.optional).map(k => k.name)), location.params);\r\n // throws if cannot be stringified\r\n path = matcher.stringify(params);\r\n }\r\n else if ('path' in location) {\r\n // no need to resolve the path with the matcher as it was provided\r\n // this also allows the user to control the encoding\r\n path = location.path;\r\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\r\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-router-next.`);\r\n }\r\n matcher = matchers.find(m => m.re.test(path));\r\n // matcher should have a value after the loop\r\n if (matcher) {\r\n // TODO: dev warning of unused params if provided\r\n // we know the matcher works because we tested the regexp\r\n params = matcher.parse(path);\r\n name = matcher.record.name;\r\n }\r\n // location is a relative path\r\n }\r\n else {\r\n // match by name or path of current route\r\n matcher = currentLocation.name\r\n ? matcherMap.get(currentLocation.name)\r\n : matchers.find(m => m.re.test(currentLocation.path));\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n currentLocation,\r\n });\r\n name = matcher.record.name;\r\n // since we are navigating to the same location, we don't need to pick the\r\n // params like when `name` is provided\r\n params = assign({}, currentLocation.params, location.params);\r\n path = matcher.stringify(params);\r\n }\r\n const matched = [];\r\n let parentMatcher = matcher;\r\n while (parentMatcher) {\r\n // reversed order so parents are at the beginning\r\n matched.unshift(parentMatcher.record);\r\n parentMatcher = parentMatcher.parent;\r\n }\r\n return {\r\n name,\r\n path,\r\n params,\r\n matched,\r\n meta: mergeMetaFields(matched),\r\n };\r\n }\r\n // add initial routes\r\n routes.forEach(route => addRoute(route));\r\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\r\n}\r\nfunction paramsFromLocation(params, keys) {\r\n const newParams = {};\r\n for (const key of keys) {\r\n if (key in params)\r\n newParams[key] = params[key];\r\n }\r\n return newParams;\r\n}\r\n/**\r\n * Normalizes a RouteRecordRaw. Creates a copy\r\n *\r\n * @param record\r\n * @returns the normalized version\r\n */\r\nfunction normalizeRouteRecord(record) {\r\n return {\r\n path: record.path,\r\n redirect: record.redirect,\r\n name: record.name,\r\n meta: record.meta || {},\r\n aliasOf: undefined,\r\n beforeEnter: record.beforeEnter,\r\n props: normalizeRecordProps(record),\r\n children: record.children || [],\r\n instances: {},\r\n leaveGuards: new Set(),\r\n updateGuards: new Set(),\r\n enterCallbacks: {},\r\n components: 'components' in record\r\n ? record.components || {}\r\n : { default: record.component },\r\n };\r\n}\r\n/**\r\n * Normalize the optional `props` in a record to always be an object similar to\r\n * components. Also accept a boolean for components.\r\n * @param record\r\n */\r\nfunction normalizeRecordProps(record) {\r\n const propsObject = {};\r\n // props does not exist on redirect records but we can set false directly\r\n const props = record.props || false;\r\n if ('component' in record) {\r\n propsObject.default = props;\r\n }\r\n else {\r\n // NOTE: we could also allow a function to be applied to every component.\r\n // Would need user feedback for use cases\r\n for (const name in record.components)\r\n propsObject[name] = typeof props === 'boolean' ? props : props[name];\r\n }\r\n return propsObject;\r\n}\r\n/**\r\n * Checks if a record or any of its parent is an alias\r\n * @param record\r\n */\r\nfunction isAliasRecord(record) {\r\n while (record) {\r\n if (record.record.aliasOf)\r\n return true;\r\n record = record.parent;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Merge meta fields of an array of records\r\n *\r\n * @param matched - array of matched records\r\n */\r\nfunction mergeMetaFields(matched) {\r\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\r\n}\r\nfunction mergeOptions(defaults, partialOptions) {\r\n const options = {};\r\n for (const key in defaults) {\r\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\r\n }\r\n return options;\r\n}\r\nfunction isSameParam(a, b) {\r\n return (a.name === b.name &&\r\n a.optional === b.optional &&\r\n a.repeatable === b.repeatable);\r\n}\r\n/**\r\n * Check if a path and its alias have the same required params\r\n *\r\n * @param a - original record\r\n * @param b - alias record\r\n */\r\nfunction checkSameParams(a, b) {\r\n for (const key of a.keys) {\r\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n for (const key of b.keys) {\r\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n}\r\nfunction checkMissingParamsInAbsolutePath(record, parent) {\r\n for (const key of parent.keys) {\r\n if (!record.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Absolute path \"${record.record.path}\" should have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\r\n }\r\n}\n\n/**\r\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\r\n * < > `\r\n *\r\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\r\n * defines some extra characters to be encoded. Most browsers do not encode them\r\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\r\n * also encode `!'()*`. Leaving unencoded only ASCII alphanumeric(`a-zA-Z0-9`)\r\n * plus `-._~`. This extra safety should be applied to query by patching the\r\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\r\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\r\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\r\n * encoded everywhere because some browsers like FF encode it when directly\r\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\r\n */\r\n// const EXTRA_RESERVED_RE = /[!'()*]/g\r\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\r\nconst HASH_RE = /#/g; // %23\r\nconst AMPERSAND_RE = /&/g; // %26\r\nconst SLASH_RE = /\\//g; // %2F\r\nconst EQUAL_RE = /=/g; // %3D\r\nconst IM_RE = /\\?/g; // %3F\r\nconst PLUS_RE = /\\+/g; // %2B\r\n/**\r\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\r\n * seems to be less flexible than not doing so and I can't find out the legacy\r\n * systems requiring this for regular requests like text/html. In the standard,\r\n * the encoding of the plus character is only mentioned for\r\n * application/x-www-form-urlencoded\r\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\r\n * leave the plus character as is in queries. To be more flexible, we allow the\r\n * plus character on the query but it can also be manually encoded by the user.\r\n *\r\n * Resources:\r\n * - https://url.spec.whatwg.org/#urlencoded-parsing\r\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\r\n */\r\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\r\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\r\nconst ENC_CARET_RE = /%5E/g; // ^\r\nconst ENC_BACKTICK_RE = /%60/g; // `\r\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\r\nconst ENC_PIPE_RE = /%7C/g; // |\r\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\r\nconst ENC_SPACE_RE = /%20/g; // }\r\n/**\r\n * Encode characters that need to be encoded on the path, search and hash\r\n * sections of the URL.\r\n *\r\n * @internal\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction commonEncode(text) {\r\n return encodeURI('' + text)\r\n .replace(ENC_PIPE_RE, '|')\r\n .replace(ENC_BRACKET_OPEN_RE, '[')\r\n .replace(ENC_BRACKET_CLOSE_RE, ']');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the hash section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeHash(text) {\r\n return commonEncode(text)\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^');\r\n}\r\n/**\r\n * Encode characters that need to be encoded query values on the query\r\n * section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeQueryValue(text) {\r\n return (commonEncode(text)\r\n // Encode the space as +, encode the + to differentiate it from the space\r\n .replace(PLUS_RE, '%2B')\r\n .replace(ENC_SPACE_RE, '+')\r\n .replace(HASH_RE, '%23')\r\n .replace(AMPERSAND_RE, '%26')\r\n .replace(ENC_BACKTICK_RE, '`')\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^'));\r\n}\r\n/**\r\n * Like `encodeQueryValue` but also encodes the `=` character.\r\n *\r\n * @param text - string to encode\r\n */\r\nfunction encodeQueryKey(text) {\r\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodePath(text) {\r\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL as a\r\n * param. This function encodes everything {@link encodePath} does plus the\r\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\r\n * string instead.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeParam(text) {\r\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\r\n}\r\n/**\r\n * Decode text using `decodeURIComponent`. Returns the original text if it\r\n * fails.\r\n *\r\n * @param text - string to decode\r\n * @returns decoded string\r\n */\r\nfunction decode(text) {\r\n try {\r\n return decodeURIComponent('' + text);\r\n }\r\n catch (err) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\r\n }\r\n return '' + text;\r\n}\n\n/**\r\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\r\n * version with the leading `?` and without Should work as URLSearchParams\r\n\n * @internal\r\n *\r\n * @param search - search string to parse\r\n * @returns a query object\r\n */\r\nfunction parseQuery(search) {\r\n const query = {};\r\n // avoid creating an object with an empty key and empty value\r\n // because of split('&')\r\n if (search === '' || search === '?')\r\n return query;\r\n const hasLeadingIM = search[0] === '?';\r\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\r\n for (let i = 0; i < searchParams.length; ++i) {\r\n // pre decode the + into space\r\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\r\n // allow the = character\r\n const eqPos = searchParam.indexOf('=');\r\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\r\n if (key in query) {\r\n // an extra variable for ts types\r\n let currentValue = query[key];\r\n if (!Array.isArray(currentValue)) {\r\n currentValue = query[key] = [currentValue];\r\n }\r\n currentValue.push(value);\r\n }\r\n else {\r\n query[key] = value;\r\n }\r\n }\r\n return query;\r\n}\r\n/**\r\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\r\n * doesn't prepend a `?`\r\n *\r\n * @internal\r\n *\r\n * @param query - query object to stringify\r\n * @returns string version of the query without the leading `?`\r\n */\r\nfunction stringifyQuery(query) {\r\n let search = '';\r\n for (let key in query) {\r\n const value = query[key];\r\n key = encodeQueryKey(key);\r\n if (value == null) {\r\n // only null adds the value\r\n if (value !== undefined) {\r\n search += (search.length ? '&' : '') + key;\r\n }\r\n continue;\r\n }\r\n // keep null values\r\n const values = Array.isArray(value)\r\n ? value.map(v => v && encodeQueryValue(v))\r\n : [value && encodeQueryValue(value)];\r\n values.forEach(value => {\r\n // skip undefined values in arrays as if they were not present\r\n // smaller code than using filter\r\n if (value !== undefined) {\r\n // only append & with non-empty search\r\n search += (search.length ? '&' : '') + key;\r\n if (value != null)\r\n search += '=' + value;\r\n }\r\n });\r\n }\r\n return search;\r\n}\r\n/**\r\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\r\n * numbers into strings, removing keys with an undefined value and replacing\r\n * undefined with null in arrays\r\n *\r\n * @param query - query object to normalize\r\n * @returns a normalized query object\r\n */\r\nfunction normalizeQuery(query) {\r\n const normalizedQuery = {};\r\n for (const key in query) {\r\n const value = query[key];\r\n if (value !== undefined) {\r\n normalizedQuery[key] = Array.isArray(value)\r\n ? value.map(v => (v == null ? null : '' + v))\r\n : value == null\r\n ? value\r\n : '' + value;\r\n }\r\n }\r\n return normalizedQuery;\r\n}\n\n/**\r\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\r\n */\r\nfunction useCallbacks() {\r\n let handlers = [];\r\n function add(handler) {\r\n handlers.push(handler);\r\n return () => {\r\n const i = handlers.indexOf(handler);\r\n if (i > -1)\r\n handlers.splice(i, 1);\r\n };\r\n }\r\n function reset() {\r\n handlers = [];\r\n }\r\n return {\r\n add,\r\n list: () => handlers,\r\n reset,\r\n };\r\n}\n\nfunction registerGuard(record, name, guard) {\r\n const removeFromList = () => {\r\n record[name].delete(guard);\r\n };\r\n onUnmounted(removeFromList);\r\n onDeactivated(removeFromList);\r\n onActivated(() => {\r\n record[name].add(guard);\r\n });\r\n record[name].add(guard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the component for the current\r\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\r\n * used in any component. The guard is removed when the component is unmounted.\r\n *\r\n * @param leaveGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteLeave(leaveGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found. Are you missing a component?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the current location is about\r\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\r\n * component. The guard is removed when the component is unmounted.\r\n *\r\n * @param updateGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteUpdate(updateGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found. Are you missing a component?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'updateGuards', updateGuard);\r\n}\r\nfunction guardToPromiseFn(guard, to, from, record, name) {\r\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\r\n const enterCallbackArray = record &&\r\n // name is defined if record is because of the function overload\r\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\r\n return () => new Promise((resolve, reject) => {\r\n const next = (valid) => {\r\n if (valid === false)\r\n reject(createRouterError(4 /* NAVIGATION_ABORTED */, {\r\n from,\r\n to,\r\n }));\r\n else if (valid instanceof Error) {\r\n reject(valid);\r\n }\r\n else if (isRouteLocation(valid)) {\r\n reject(createRouterError(2 /* NAVIGATION_GUARD_REDIRECT */, {\r\n from: to,\r\n to: valid,\r\n }));\r\n }\r\n else {\r\n if (enterCallbackArray &&\r\n // since enterCallbackArray is truthy, both record and name also are\r\n record.enterCallbacks[name] === enterCallbackArray &&\r\n typeof valid === 'function')\r\n enterCallbackArray.push(valid);\r\n resolve();\r\n }\r\n };\r\n // wrapping with Promise.resolve allows it to work with both async and sync guards\r\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\r\n let guardCall = Promise.resolve(guardReturn);\r\n if (guard.length < 3)\r\n guardCall = guardCall.then(next);\r\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\r\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\r\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\r\n guardCall = guardCall.then(resolvedValue => {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n return Promise.reject(new Error('Invalid navigation guard'));\r\n }\r\n return resolvedValue;\r\n });\r\n // TODO: test me!\r\n }\r\n else if (guardReturn !== undefined) {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n reject(new Error('Invalid navigation guard'));\r\n return;\r\n }\r\n }\r\n }\r\n guardCall.catch(err => reject(err));\r\n });\r\n}\r\nfunction canOnlyBeCalledOnce(next, to, from) {\r\n let called = 0;\r\n return function () {\r\n if (called++ === 1)\r\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\r\n // @ts-expect-error: we put it in the original one because it's easier to check\r\n next._called = true;\r\n if (called === 1)\r\n next.apply(null, arguments);\r\n };\r\n}\r\nfunction extractComponentsGuards(matched, guardType, to, from) {\r\n const guards = [];\r\n for (const record of matched) {\r\n for (const name in record.components) {\r\n let rawComponent = record.components[name];\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!rawComponent ||\r\n (typeof rawComponent !== 'object' &&\r\n typeof rawComponent !== 'function')) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\r\n ` a valid component. Received \"${String(rawComponent)}\".`);\r\n // throw to ensure we stop here but warn to ensure the message isn't\r\n // missed by the user\r\n throw new Error('Invalid route component');\r\n }\r\n else if ('then' in rawComponent) {\r\n // warn if user wrote import('/component.vue') instead of () =>\r\n // import('./component.vue')\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\r\n `Promise instead of a function that returns a Promise. Did you ` +\r\n `write \"import('./MyPage.vue')\" instead of ` +\r\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\r\n `production if not fixed.`);\r\n const promise = rawComponent;\r\n rawComponent = () => promise;\r\n }\r\n else if (rawComponent.__asyncLoader &&\r\n // warn only once per component\r\n !rawComponent.__warnedDefineAsync) {\r\n rawComponent.__warnedDefineAsync = true;\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\r\n `using \"defineAsyncComponent()\". ` +\r\n `Write \"() => import('./MyPage.vue')\" instead of ` +\r\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\r\n }\r\n }\r\n // skip update and leave guards if the route component is not mounted\r\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\r\n continue;\r\n if (isRouteComponent(rawComponent)) {\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = rawComponent.__vccOpts || rawComponent;\r\n const guard = options[guardType];\r\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\r\n }\r\n else {\r\n // start requesting the chunk already\r\n let componentPromise = rawComponent();\r\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\r\n componentPromise = Promise.resolve(componentPromise);\r\n }\r\n guards.push(() => componentPromise.then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n record.components[name] = resolvedComponent;\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = resolvedComponent.__vccOpts || resolvedComponent;\r\n const guard = options[guardType];\r\n return guard && guardToPromiseFn(guard, to, from, record, name)();\r\n }));\r\n }\r\n }\r\n }\r\n return guards;\r\n}\r\n/**\r\n * Allows differentiating lazy components from functional components and vue-class-component\r\n *\r\n * @param component\r\n */\r\nfunction isRouteComponent(component) {\r\n return (typeof component === 'object' ||\r\n 'displayName' in component ||\r\n 'props' in component ||\r\n '__vccOpts' in component);\r\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\r\n// `isExactActive` behavior should go through an RFC\r\nfunction useLink(props) {\r\n const router = inject(routerKey);\r\n const currentRoute = inject(routeLocationKey);\r\n const route = computed(() => router.resolve(unref(props.to)));\r\n const activeRecordIndex = computed(() => {\r\n const { matched } = route.value;\r\n const { length } = matched;\r\n const routeMatched = matched[length - 1];\r\n const currentMatched = currentRoute.matched;\r\n if (!routeMatched || !currentMatched.length)\r\n return -1;\r\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\r\n if (index > -1)\r\n return index;\r\n // possible parent record\r\n const parentRecordPath = getOriginalPath(matched[length - 2]);\r\n return (\r\n // we are dealing with nested routes\r\n length > 1 &&\r\n // if the parent and matched route have the same path, this link is\r\n // referring to the empty child. Or we currently are on a different\r\n // child of the same parent\r\n getOriginalPath(routeMatched) === parentRecordPath &&\r\n // avoid comparing the child with its parent\r\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\r\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\r\n : index);\r\n });\r\n const isActive = computed(() => activeRecordIndex.value > -1 &&\r\n includesParams(currentRoute.params, route.value.params));\r\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\r\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\r\n isSameRouteLocationParams(currentRoute.params, route.value.params));\r\n function navigate(e = {}) {\r\n if (guardEvent(e)) {\r\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\r\n // avoid uncaught errors are they are logged anyway\r\n ).catch(noop);\r\n }\r\n return Promise.resolve();\r\n }\r\n // devtools only\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n const instance = getCurrentInstance();\r\n if (instance) {\r\n const linkContextDevtools = {\r\n route: route.value,\r\n isActive: isActive.value,\r\n isExactActive: isExactActive.value,\r\n };\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools = instance.__vrl_devtools || [];\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools.push(linkContextDevtools);\r\n watchEffect(() => {\r\n linkContextDevtools.route = route.value;\r\n linkContextDevtools.isActive = isActive.value;\r\n linkContextDevtools.isExactActive = isExactActive.value;\r\n }, { flush: 'post' });\r\n }\r\n }\r\n return {\r\n route,\r\n href: computed(() => route.value.href),\r\n isActive,\r\n isExactActive,\r\n navigate,\r\n };\r\n}\r\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterLink',\r\n props: {\r\n to: {\r\n type: [String, Object],\r\n required: true,\r\n },\r\n replace: Boolean,\r\n activeClass: String,\r\n // inactiveClass: String,\r\n exactActiveClass: String,\r\n custom: Boolean,\r\n ariaCurrentValue: {\r\n type: String,\r\n default: 'page',\r\n },\r\n },\r\n useLink,\r\n setup(props, { slots }) {\r\n const link = reactive(useLink(props));\r\n const { options } = inject(routerKey);\r\n const elClass = computed(() => ({\r\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\r\n // [getLinkClass(\r\n // props.inactiveClass,\r\n // options.linkInactiveClass,\r\n // 'router-link-inactive'\r\n // )]: !link.isExactActive,\r\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\r\n }));\r\n return () => {\r\n const children = slots.default && slots.default(link);\r\n return props.custom\r\n ? children\r\n : h('a', {\r\n 'aria-current': link.isExactActive\r\n ? props.ariaCurrentValue\r\n : null,\r\n href: link.href,\r\n // this would override user added attrs but Vue will still add\r\n // the listener so we end up triggering both\r\n onClick: link.navigate,\r\n class: elClass.value,\r\n }, children);\r\n };\r\n },\r\n});\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to render a link that triggers a navigation on click.\r\n */\r\nconst RouterLink = RouterLinkImpl;\r\nfunction guardEvent(e) {\r\n // don't redirect with control keys\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\r\n return;\r\n // don't redirect when preventDefault called\r\n if (e.defaultPrevented)\r\n return;\r\n // don't redirect on right click\r\n if (e.button !== undefined && e.button !== 0)\r\n return;\r\n // don't redirect if `target=\"_blank\"`\r\n // @ts-expect-error getAttribute does exist\r\n if (e.currentTarget && e.currentTarget.getAttribute) {\r\n // @ts-expect-error getAttribute exists\r\n const target = e.currentTarget.getAttribute('target');\r\n if (/\\b_blank\\b/i.test(target))\r\n return;\r\n }\r\n // this may be a Weex event which doesn't have this method\r\n if (e.preventDefault)\r\n e.preventDefault();\r\n return true;\r\n}\r\nfunction includesParams(outer, inner) {\r\n for (const key in inner) {\r\n const innerValue = inner[key];\r\n const outerValue = outer[key];\r\n if (typeof innerValue === 'string') {\r\n if (innerValue !== outerValue)\r\n return false;\r\n }\r\n else {\r\n if (!Array.isArray(outerValue) ||\r\n outerValue.length !== innerValue.length ||\r\n innerValue.some((value, i) => value !== outerValue[i]))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Get the original path value of a record by following its aliasOf\r\n * @param record\r\n */\r\nfunction getOriginalPath(record) {\r\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\r\n}\r\n/**\r\n * Utility class to get the active class based on defaults.\r\n * @param propClass\r\n * @param globalClass\r\n * @param defaultClass\r\n */\r\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\r\n ? propClass\r\n : globalClass != null\r\n ? globalClass\r\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterView',\r\n // #674 we manually inherit them\r\n inheritAttrs: false,\r\n props: {\r\n name: {\r\n type: String,\r\n default: 'default',\r\n },\r\n route: Object,\r\n },\r\n setup(props, { attrs, slots }) {\r\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\r\n const injectedRoute = inject(routerViewLocationKey);\r\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\r\n const depth = inject(viewDepthKey, 0);\r\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth]);\r\n provide(viewDepthKey, depth + 1);\r\n provide(matchedRouteKey, matchedRouteRef);\r\n provide(routerViewLocationKey, routeToDisplay);\r\n const viewRef = ref();\r\n // watch at the same time the component instance, the route record we are\r\n // rendering, and the name\r\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\r\n // copy reused instances\r\n if (to) {\r\n // this will update the instance for new instances as well as reused\r\n // instances when navigating to a new route\r\n to.instances[name] = instance;\r\n // the component instance is reused for a different route or name so\r\n // we copy any saved update or leave guards. With async setup, the\r\n // mounting component will mount before the matchedRoute changes,\r\n // making instance === oldInstance, so we check if guards have been\r\n // added before. This works because we remove guards when\r\n // unmounting/deactivating components\r\n if (from && from !== to && instance && instance === oldInstance) {\r\n if (!to.leaveGuards.size) {\r\n to.leaveGuards = from.leaveGuards;\r\n }\r\n if (!to.updateGuards.size) {\r\n to.updateGuards = from.updateGuards;\r\n }\r\n }\r\n }\r\n // trigger beforeRouteEnter next callbacks\r\n if (instance &&\r\n to &&\r\n // if there is no instance but to and from are the same this might be\r\n // the first visit\r\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\r\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\r\n }\r\n }, { flush: 'post' });\r\n return () => {\r\n const route = routeToDisplay.value;\r\n const matchedRoute = matchedRouteRef.value;\r\n const ViewComponent = matchedRoute && matchedRoute.components[props.name];\r\n // we need the value at the time we render because when we unmount, we\r\n // navigated to a different location so the value is different\r\n const currentName = props.name;\r\n if (!ViewComponent) {\r\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\r\n }\r\n // props from route configuration\r\n const routePropsOption = matchedRoute.props[props.name];\r\n const routeProps = routePropsOption\r\n ? routePropsOption === true\r\n ? route.params\r\n : typeof routePropsOption === 'function'\r\n ? routePropsOption(route)\r\n : routePropsOption\r\n : null;\r\n const onVnodeUnmounted = vnode => {\r\n // remove the instance reference to prevent leak\r\n if (vnode.component.isUnmounted) {\r\n matchedRoute.instances[currentName] = null;\r\n }\r\n };\r\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\r\n onVnodeUnmounted,\r\n ref: viewRef,\r\n }));\r\n return (\r\n // pass the vnode to the slot as a prop.\r\n // h and both accept vnodes\r\n normalizeSlot(slots.default, { Component: component, route }) ||\r\n component);\r\n };\r\n },\r\n});\r\nfunction normalizeSlot(slot, data) {\r\n if (!slot)\r\n return null;\r\n const slotContent = slot(data);\r\n return slotContent.length === 1 ? slotContent[0] : slotContent;\r\n}\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to display the current route the user is at.\r\n */\r\nconst RouterView = RouterViewImpl;\r\n// warn against deprecated usage with & \r\n// due to functional component being no longer eager in Vue 3\r\nfunction warnDeprecatedUsage() {\r\n const instance = getCurrentInstance();\r\n const parentName = instance.parent && instance.parent.type.name;\r\n if (parentName &&\r\n (parentName === 'KeepAlive' || parentName.includes('Transition'))) {\r\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\r\n warn(` can no longer be used directly inside or .\\n` +\r\n `Use slot props instead:\\n\\n` +\r\n `\\n` +\r\n ` <${comp}>\\n` +\r\n ` \\n` +\r\n ` \\n` +\r\n ``);\r\n }\r\n}\n\nfunction formatRouteLocation(routeLocation, tooltip) {\r\n const copy = assign({}, routeLocation, {\r\n // remove variables that can contain vue instances\r\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\r\n });\r\n return {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: routeLocation.fullPath,\r\n tooltip,\r\n value: copy,\r\n },\r\n };\r\n}\r\nfunction formatDisplay(display) {\r\n return {\r\n _custom: {\r\n display,\r\n },\r\n };\r\n}\r\n// to support multiple router instances\r\nlet routerId = 0;\r\nfunction addDevtools(app, router, matcher) {\r\n // Take over router.beforeEach and afterEach\r\n // make sure we are not registering the devtool twice\r\n if (router.__hasDevtools)\r\n return;\r\n router.__hasDevtools = true;\r\n // increment to support multiple router instances\r\n const id = routerId++;\r\n setupDevtoolsPlugin({\r\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\r\n label: 'Vue Router',\r\n packageName: 'vue-router',\r\n homepage: 'https://next.router.vuejs.org/',\r\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\r\n componentStateTypes: ['Routing'],\r\n app,\r\n }, api => {\r\n // display state added by the router\r\n api.on.inspectComponent((payload, ctx) => {\r\n if (payload.instanceData) {\r\n payload.instanceData.state.push({\r\n type: 'Routing',\r\n key: '$route',\r\n editable: false,\r\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\r\n });\r\n }\r\n });\r\n // mark router-link as active\r\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\r\n // if multiple useLink are used\r\n if (Array.isArray(componentInstance.__vrl_devtools)) {\r\n componentInstance.__devtoolsApi = api;\r\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\r\n let backgroundColor = ORANGE_400;\r\n let tooltip = '';\r\n if (devtoolsData.isExactActive) {\r\n backgroundColor = LIME_500;\r\n tooltip = 'This is exactly active';\r\n }\r\n else if (devtoolsData.isActive) {\r\n backgroundColor = BLUE_600;\r\n tooltip = 'This link is active';\r\n }\r\n node.tags.push({\r\n label: devtoolsData.route.path,\r\n textColor: 0,\r\n tooltip,\r\n backgroundColor,\r\n });\r\n });\r\n }\r\n });\r\n watch(router.currentRoute, () => {\r\n // refresh active state\r\n refreshRoutesView();\r\n api.notifyComponentUpdate();\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n const navigationsLayerId = 'router:navigations:' + id;\r\n api.addTimelineLayer({\r\n id: navigationsLayerId,\r\n label: `Router${id ? ' ' + id : ''} Navigations`,\r\n color: 0x40a8c4,\r\n });\r\n // const errorsLayerId = 'router:errors'\r\n // api.addTimelineLayer({\r\n // id: errorsLayerId,\r\n // label: 'Router Errors',\r\n // color: 0xea5455,\r\n // })\r\n router.onError((error, to) => {\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'Error during Navigation',\r\n subtitle: to.fullPath,\r\n logType: 'error',\r\n time: Date.now(),\r\n data: { error },\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n // attached to `meta` and used to group events\r\n let navigationId = 0;\r\n router.beforeEach((to, from) => {\r\n const data = {\r\n guard: formatDisplay('beforeEach'),\r\n from: formatRouteLocation(from, 'Current Location during this navigation'),\r\n to: formatRouteLocation(to, 'Target location'),\r\n };\r\n // Used to group navigations together, hide from devtools\r\n Object.defineProperty(to.meta, '__navigationId', {\r\n value: navigationId++,\r\n });\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n time: Date.now(),\r\n title: 'Start of navigation',\r\n subtitle: to.fullPath,\r\n data,\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n router.afterEach((to, from, failure) => {\r\n const data = {\r\n guard: formatDisplay('afterEach'),\r\n };\r\n if (failure) {\r\n data.failure = {\r\n _custom: {\r\n type: Error,\r\n readOnly: true,\r\n display: failure ? failure.message : '',\r\n tooltip: 'Navigation Failure',\r\n value: failure,\r\n },\r\n };\r\n data.status = formatDisplay('❌');\r\n }\r\n else {\r\n data.status = formatDisplay('✅');\r\n }\r\n // we set here to have the right order\r\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\r\n data.to = formatRouteLocation(to, 'Target location');\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'End of navigation',\r\n subtitle: to.fullPath,\r\n time: Date.now(),\r\n data,\r\n logType: failure ? 'warning' : 'default',\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n /**\r\n * Inspector of Existing routes\r\n */\r\n const routerInspectorId = 'router-inspector:' + id;\r\n api.addInspector({\r\n id: routerInspectorId,\r\n label: 'Routes' + (id ? ' ' + id : ''),\r\n icon: 'book',\r\n treeFilterPlaceholder: 'Search routes',\r\n });\r\n function refreshRoutesView() {\r\n // the routes view isn't active\r\n if (!activeRoutesPayload)\r\n return;\r\n const payload = activeRoutesPayload;\r\n // children routes will appear as nested\r\n let routes = matcher.getRoutes().filter(route => !route.parent);\r\n // reset match state to false\r\n routes.forEach(resetMatchStateOnRouteRecord);\r\n // apply a match state if there is a payload\r\n if (payload.filter) {\r\n routes = routes.filter(route => \r\n // save matches state based on the payload\r\n isRouteMatching(route, payload.filter.toLowerCase()));\r\n }\r\n // mark active routes\r\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\r\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\r\n }\r\n let activeRoutesPayload;\r\n api.on.getInspectorTree(payload => {\r\n activeRoutesPayload = payload;\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n refreshRoutesView();\r\n }\r\n });\r\n /**\r\n * Display information about the currently selected route record\r\n */\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n const routes = matcher.getRoutes();\r\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\r\n if (route) {\r\n payload.state = {\r\n options: formatRouteRecordMatcherForStateInspector(route),\r\n };\r\n }\r\n }\r\n });\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n}\r\nfunction modifierForKey(key) {\r\n if (key.optional) {\r\n return key.repeatable ? '*' : '?';\r\n }\r\n else {\r\n return key.repeatable ? '+' : '';\r\n }\r\n}\r\nfunction formatRouteRecordMatcherForStateInspector(route) {\r\n const { record } = route;\r\n const fields = [\r\n { editable: false, key: 'path', value: record.path },\r\n ];\r\n if (record.name != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'name',\r\n value: record.name,\r\n });\r\n }\r\n fields.push({ editable: false, key: 'regexp', value: route.re });\r\n if (route.keys.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'keys',\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.keys\r\n .map(key => `${key.name}${modifierForKey(key)}`)\r\n .join(' '),\r\n tooltip: 'Param keys',\r\n value: route.keys,\r\n },\r\n },\r\n });\r\n }\r\n if (record.redirect != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'redirect',\r\n value: record.redirect,\r\n });\r\n }\r\n if (route.alias.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'aliases',\r\n value: route.alias.map(alias => alias.record.path),\r\n });\r\n }\r\n fields.push({\r\n key: 'score',\r\n editable: false,\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.score.map(score => score.join(', ')).join(' | '),\r\n tooltip: 'Score used to sort routes',\r\n value: route.score,\r\n },\r\n },\r\n });\r\n return fields;\r\n}\r\n/**\r\n * Extracted from tailwind palette\r\n */\r\nconst PINK_500 = 0xec4899;\r\nconst BLUE_600 = 0x2563eb;\r\nconst LIME_500 = 0x84cc16;\r\nconst CYAN_400 = 0x22d3ee;\r\nconst ORANGE_400 = 0xfb923c;\r\n// const GRAY_100 = 0xf4f4f5\r\nconst DARK = 0x666666;\r\nfunction formatRouteRecordForInspector(route) {\r\n const tags = [];\r\n const { record } = route;\r\n if (record.name != null) {\r\n tags.push({\r\n label: String(record.name),\r\n textColor: 0,\r\n backgroundColor: CYAN_400,\r\n });\r\n }\r\n if (record.aliasOf) {\r\n tags.push({\r\n label: 'alias',\r\n textColor: 0,\r\n backgroundColor: ORANGE_400,\r\n });\r\n }\r\n if (route.__vd_match) {\r\n tags.push({\r\n label: 'matches',\r\n textColor: 0,\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n if (route.__vd_exactActive) {\r\n tags.push({\r\n label: 'exact',\r\n textColor: 0,\r\n backgroundColor: LIME_500,\r\n });\r\n }\r\n if (route.__vd_active) {\r\n tags.push({\r\n label: 'active',\r\n textColor: 0,\r\n backgroundColor: BLUE_600,\r\n });\r\n }\r\n if (record.redirect) {\r\n tags.push({\r\n label: 'redirect: ' +\r\n (typeof record.redirect === 'string' ? record.redirect : 'Object'),\r\n textColor: 0xffffff,\r\n backgroundColor: DARK,\r\n });\r\n }\r\n // add an id to be able to select it. Using the `path` is not possible because\r\n // empty path children would collide with their parents\r\n let id = record.__vd_id;\r\n if (id == null) {\r\n id = String(routeRecordId++);\r\n record.__vd_id = id;\r\n }\r\n return {\r\n id,\r\n label: record.path,\r\n tags,\r\n children: route.children.map(formatRouteRecordForInspector),\r\n };\r\n}\r\n// incremental id for route records and inspector state\r\nlet routeRecordId = 0;\r\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\r\nfunction markRouteRecordActive(route, currentRoute) {\r\n // no route will be active if matched is empty\r\n // reset the matching state\r\n const isExactActive = currentRoute.matched.length &&\r\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\r\n route.__vd_exactActive = route.__vd_active = isExactActive;\r\n if (!isExactActive) {\r\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\r\n }\r\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\r\n}\r\nfunction resetMatchStateOnRouteRecord(route) {\r\n route.__vd_match = false;\r\n route.children.forEach(resetMatchStateOnRouteRecord);\r\n}\r\nfunction isRouteMatching(route, filter) {\r\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\r\n route.__vd_match = false;\r\n if (!found || found.length < 3) {\r\n return false;\r\n }\r\n // use a regexp without $ at the end to match nested routes better\r\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\r\n if (nonEndingRE.test(filter)) {\r\n // mark children as matches\r\n route.children.forEach(child => isRouteMatching(child, filter));\r\n // exception case: `/`\r\n if (route.record.path !== '/' || filter === '/') {\r\n route.__vd_match = route.re.test(filter);\r\n return true;\r\n }\r\n // hide the / route\r\n return false;\r\n }\r\n const path = route.record.path.toLowerCase();\r\n const decodedPath = decode(path);\r\n // also allow partial matching on the path\r\n if (!filter.startsWith('/') &&\r\n (decodedPath.includes(filter) || path.includes(filter)))\r\n return true;\r\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\r\n return true;\r\n if (route.record.name && String(route.record.name).includes(filter))\r\n return true;\r\n return route.children.some(child => isRouteMatching(child, filter));\r\n}\r\nfunction omit(obj, keys) {\r\n const ret = {};\r\n for (const key in obj) {\r\n if (!keys.includes(key)) {\r\n // @ts-expect-error\r\n ret[key] = obj[key];\r\n }\r\n }\r\n return ret;\r\n}\n\n/**\r\n * Creates a Router instance that can be used by a Vue app.\r\n *\r\n * @param options - {@link RouterOptions}\r\n */\r\nfunction createRouter(options) {\r\n const matcher = createRouterMatcher(options.routes, options);\r\n const parseQuery$1 = options.parseQuery || parseQuery;\r\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\r\n const routerHistory = options.history;\r\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\r\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\r\n ' https://next.router.vuejs.org/api/#history.');\r\n const beforeGuards = useCallbacks();\r\n const beforeResolveGuards = useCallbacks();\r\n const afterGuards = useCallbacks();\r\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\r\n let pendingLocation = START_LOCATION_NORMALIZED;\r\n // leave the scrollRestoration if no scrollBehavior is provided\r\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\r\n history.scrollRestoration = 'manual';\r\n }\r\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\r\n const encodeParams = applyToParams.bind(null, encodeParam);\r\n const decodeParams = \r\n // @ts-expect-error: intentionally avoid the type check\r\n applyToParams.bind(null, decode);\r\n function addRoute(parentOrRoute, route) {\r\n let parent;\r\n let record;\r\n if (isRouteName(parentOrRoute)) {\r\n parent = matcher.getRecordMatcher(parentOrRoute);\r\n record = route;\r\n }\r\n else {\r\n record = parentOrRoute;\r\n }\r\n return matcher.addRoute(record, parent);\r\n }\r\n function removeRoute(name) {\r\n const recordMatcher = matcher.getRecordMatcher(name);\r\n if (recordMatcher) {\r\n matcher.removeRoute(recordMatcher);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\r\n }\r\n }\r\n function getRoutes() {\r\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\r\n }\r\n function hasRoute(name) {\r\n return !!matcher.getRecordMatcher(name);\r\n }\r\n function resolve(rawLocation, currentLocation) {\r\n // const objectLocation = routerLocationAsObject(rawLocation)\r\n // we create a copy to modify it later\r\n currentLocation = assign({}, currentLocation || currentRoute.value);\r\n if (typeof rawLocation === 'string') {\r\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\r\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\r\n const href = routerHistory.createHref(locationNormalized.fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//'))\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${rawLocation}\"`);\r\n }\r\n }\r\n // locationNormalized is always a new object\r\n return assign(locationNormalized, matchedRoute, {\r\n params: decodeParams(matchedRoute.params),\r\n hash: decode(locationNormalized.hash),\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n let matcherLocation;\r\n // path could be relative in object as well\r\n if ('path' in rawLocation) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n 'params' in rawLocation &&\r\n !('name' in rawLocation) &&\r\n Object.keys(rawLocation.params).length) {\r\n warn(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\r\n }\r\n matcherLocation = assign({}, rawLocation, {\r\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\r\n });\r\n }\r\n else {\r\n // remove any nullish param\r\n const targetParams = assign({}, rawLocation.params);\r\n for (const key in targetParams) {\r\n if (targetParams[key] == null) {\r\n delete targetParams[key];\r\n }\r\n }\r\n // pass encoded values to the matcher so it can produce encoded path and fullPath\r\n matcherLocation = assign({}, rawLocation, {\r\n params: encodeParams(rawLocation.params),\r\n });\r\n // current location params are decoded, we need to encode them in case the\r\n // matcher merges the params\r\n currentLocation.params = encodeParams(currentLocation.params);\r\n }\r\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\r\n const hash = rawLocation.hash || '';\r\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\r\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\r\n }\r\n // decoding them) the matcher might have merged current location params so\r\n // we need to run the decoding again\r\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\r\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\r\n hash: encodeHash(hash),\r\n path: matchedRoute.path,\r\n }));\r\n const href = routerHistory.createHref(fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//')) {\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n }\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\r\n }\r\n }\r\n return assign({\r\n fullPath,\r\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\r\n // hash\r\n hash,\r\n query: \r\n // if the user is using a custom query lib like qs, we might have\r\n // nested objects, so we keep the query as is, meaning it can contain\r\n // numbers at `$route.query`, but at the point, the user will have to\r\n // use their own type anyway.\r\n // https://github.com/vuejs/vue-router-next/issues/328#issuecomment-649481567\r\n stringifyQuery$1 === stringifyQuery\r\n ? normalizeQuery(rawLocation.query)\r\n : (rawLocation.query || {}),\r\n }, matchedRoute, {\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n function locationAsObject(to) {\r\n return typeof to === 'string'\r\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\r\n : assign({}, to);\r\n }\r\n function checkCanceledNavigation(to, from) {\r\n if (pendingLocation !== to) {\r\n return createRouterError(8 /* NAVIGATION_CANCELLED */, {\r\n from,\r\n to,\r\n });\r\n }\r\n }\r\n function push(to) {\r\n return pushWithRedirect(to);\r\n }\r\n function replace(to) {\r\n return push(assign(locationAsObject(to), { replace: true }));\r\n }\r\n function handleRedirectRecord(to) {\r\n const lastMatched = to.matched[to.matched.length - 1];\r\n if (lastMatched && lastMatched.redirect) {\r\n const { redirect } = lastMatched;\r\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\r\n if (typeof newTargetLocation === 'string') {\r\n newTargetLocation =\r\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\r\n ? (newTargetLocation = locationAsObject(newTargetLocation))\r\n : // force empty params\r\n { path: newTargetLocation };\r\n // @ts-expect-error: force empty params when a string is passed to let\r\n // the router parse them again\r\n newTargetLocation.params = {};\r\n }\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !('path' in newTargetLocation) &&\r\n !('name' in newTargetLocation)) {\r\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\r\n throw new Error('Invalid redirect');\r\n }\r\n return assign({\r\n query: to.query,\r\n hash: to.hash,\r\n params: to.params,\r\n }, newTargetLocation);\r\n }\r\n }\r\n function pushWithRedirect(to, redirectedFrom) {\r\n const targetLocation = (pendingLocation = resolve(to));\r\n const from = currentRoute.value;\r\n const data = to.state;\r\n const force = to.force;\r\n // to could be a string where `replace` is a function\r\n const replace = to.replace === true;\r\n const shouldRedirect = handleRedirectRecord(targetLocation);\r\n if (shouldRedirect)\r\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // keep original redirectedFrom if it exists\r\n redirectedFrom || targetLocation);\r\n // if it was a redirect we already called `pushWithRedirect` above\r\n const toLocation = targetLocation;\r\n toLocation.redirectedFrom = redirectedFrom;\r\n let failure;\r\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\r\n failure = createRouterError(16 /* NAVIGATION_DUPLICATED */, { to: toLocation, from });\r\n // trigger scroll to allow scrolling to the same anchor\r\n handleScroll(from, from, \r\n // this is a push, the only way for it to be triggered from a\r\n // history.listen is with a redirect, which makes it become a push\r\n true, \r\n // This cannot be the first navigation because the initial location\r\n // cannot be manually navigated to\r\n false);\r\n }\r\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\r\n .catch((error) => isNavigationFailure(error)\r\n ? error\r\n : // reject any unknown error\r\n triggerError(error, toLocation, from))\r\n .then((failure) => {\r\n if (failure) {\r\n if (isNavigationFailure(failure, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n // we are redirecting to the same location we were already at\r\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\r\n // and we have done it a couple of times\r\n redirectedFrom &&\r\n // @ts-expect-error: added only in dev\r\n (redirectedFrom._count = redirectedFrom._count\r\n ? // @ts-expect-error\r\n redirectedFrom._count + 1\r\n : 1) > 10) {\r\n warn(`Detected an infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow. This will break in production if not fixed.`);\r\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\r\n }\r\n return pushWithRedirect(\r\n // keep options\r\n assign(locationAsObject(failure.to), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // preserve the original redirectedFrom if any\r\n redirectedFrom || toLocation);\r\n }\r\n }\r\n else {\r\n // if we fail we don't finalize the navigation\r\n failure = finalizeNavigation(toLocation, from, true, replace, data);\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n return failure;\r\n });\r\n }\r\n /**\r\n * Helper to reject and skip all navigation guards if a new navigation happened\r\n * @param to\r\n * @param from\r\n */\r\n function checkCanceledNavigationAndReject(to, from) {\r\n const error = checkCanceledNavigation(to, from);\r\n return error ? Promise.reject(error) : Promise.resolve();\r\n }\r\n // TODO: refactor the whole before guards by internally using router.beforeEach\r\n function navigate(to, from) {\r\n let guards;\r\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\r\n // all components here have been resolved once because we are leaving\r\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\r\n // leavingRecords is already reversed\r\n for (const record of leavingRecords) {\r\n record.leaveGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeRouteLeave guards\r\n return (runGuardQueue(guards)\r\n .then(() => {\r\n // check global guards beforeEach\r\n guards = [];\r\n for (const guard of beforeGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check in components beforeRouteUpdate\r\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\r\n for (const record of updatingRecords) {\r\n record.updateGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check the route beforeEnter\r\n guards = [];\r\n for (const record of to.matched) {\r\n // do not trigger beforeEnter on reused views\r\n if (record.beforeEnter && !from.matched.includes(record)) {\r\n if (Array.isArray(record.beforeEnter)) {\r\n for (const beforeEnter of record.beforeEnter)\r\n guards.push(guardToPromiseFn(beforeEnter, to, from));\r\n }\r\n else {\r\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\r\n }\r\n }\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise\r\n // clear existing enterCallbacks, these are added by extractComponentsGuards\r\n to.matched.forEach(record => (record.enterCallbacks = {}));\r\n // check in-component beforeRouteEnter\r\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check global guards beforeResolve\r\n guards = [];\r\n for (const guard of beforeResolveGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n // catch any navigation canceled\r\n .catch(err => isNavigationFailure(err, 8 /* NAVIGATION_CANCELLED */)\r\n ? err\r\n : Promise.reject(err)));\r\n }\r\n function triggerAfterEach(to, from, failure) {\r\n // navigation is confirmed, call afterGuards\r\n // TODO: wrap with error handlers\r\n for (const guard of afterGuards.list())\r\n guard(to, from, failure);\r\n }\r\n /**\r\n * - Cleans up any navigation guards\r\n * - Changes the url if necessary\r\n * - Calls the scrollBehavior\r\n */\r\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\r\n // a more recent navigation took place\r\n const error = checkCanceledNavigation(toLocation, from);\r\n if (error)\r\n return error;\r\n // only consider as push if it's not the first navigation\r\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\r\n const state = !isBrowser ? {} : history.state;\r\n // change URL only if the user did a push/replace and if it's not the initial navigation because\r\n // it's just reflecting the url\r\n if (isPush) {\r\n // on the initial navigation, we want to reuse the scroll position from\r\n // history state if it exists\r\n if (replace || isFirstNavigation)\r\n routerHistory.replace(toLocation.fullPath, assign({\r\n scroll: isFirstNavigation && state && state.scroll,\r\n }, data));\r\n else\r\n routerHistory.push(toLocation.fullPath, data);\r\n }\r\n // accept current navigation\r\n currentRoute.value = toLocation;\r\n handleScroll(toLocation, from, isPush, isFirstNavigation);\r\n markAsReady();\r\n }\r\n let removeHistoryListener;\r\n // attach listener to history to trigger navigations\r\n function setupListeners() {\r\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\r\n // cannot be a redirect route because it was in history\r\n const toLocation = resolve(to);\r\n // due to dynamic routing, and to hash history with manual navigation\r\n // (manually changing the url or calling history.hash = '#/somewhere'),\r\n // there could be a redirect record in history\r\n const shouldRedirect = handleRedirectRecord(toLocation);\r\n if (shouldRedirect) {\r\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\r\n return;\r\n }\r\n pendingLocation = toLocation;\r\n const from = currentRoute.value;\r\n // TODO: should be moved to web history?\r\n if (isBrowser) {\r\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\r\n }\r\n navigate(toLocation, from)\r\n .catch((error) => {\r\n if (isNavigationFailure(error, 4 /* NAVIGATION_ABORTED */ | 8 /* NAVIGATION_CANCELLED */)) {\r\n return error;\r\n }\r\n if (isNavigationFailure(error, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\r\n // false) but this is bug prone as we have no way to wait the\r\n // navigation to be finished before calling pushWithRedirect. Using\r\n // a setTimeout of 16ms seems to work but there is not guarantee for\r\n // it to work on every browser. So Instead we do not restore the\r\n // history entry and trigger a new navigation as requested by the\r\n // navigation guard.\r\n // the error is already handled by router.push we just want to avoid\r\n // logging the error\r\n pushWithRedirect(error.to, toLocation\r\n // avoid an uncaught rejection, let push call triggerError\r\n )\r\n .then(failure => {\r\n // manual change in hash history #916 ending up in the URL not\r\n // changing but it was changed by the manual url change, so we\r\n // need to manually change it ourselves\r\n if (isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ |\r\n 16 /* NAVIGATION_DUPLICATED */) &&\r\n !info.delta &&\r\n info.type === NavigationType.pop) {\r\n routerHistory.go(-1, false);\r\n }\r\n })\r\n .catch(noop);\r\n // avoid the then branch\r\n return Promise.reject();\r\n }\r\n // do not restore history on unknown direction\r\n if (info.delta)\r\n routerHistory.go(-info.delta, false);\r\n // unrecognized error, transfer to the global handler\r\n return triggerError(error, toLocation, from);\r\n })\r\n .then((failure) => {\r\n failure =\r\n failure ||\r\n finalizeNavigation(\r\n // after navigation, all matched components are resolved\r\n toLocation, from, false);\r\n // revert the navigation\r\n if (failure) {\r\n if (info.delta) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n else if (info.type === NavigationType.pop &&\r\n isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ | 16 /* NAVIGATION_DUPLICATED */)) {\r\n // manual change in hash history #916\r\n // it's like a push but lacks the information of the direction\r\n routerHistory.go(-1, false);\r\n }\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n })\r\n .catch(noop);\r\n });\r\n }\r\n // Initialization and Errors\r\n let readyHandlers = useCallbacks();\r\n let errorHandlers = useCallbacks();\r\n let ready;\r\n /**\r\n * Trigger errorHandlers added via onError and throws the error as well\r\n *\r\n * @param error - error to throw\r\n * @param to - location we were navigating to when the error happened\r\n * @param from - location we were navigating from when the error happened\r\n * @returns the error as a rejected promise\r\n */\r\n function triggerError(error, to, from) {\r\n markAsReady(error);\r\n const list = errorHandlers.list();\r\n if (list.length) {\r\n list.forEach(handler => handler(error, to, from));\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('uncaught error during route navigation:');\r\n }\r\n console.error(error);\r\n }\r\n return Promise.reject(error);\r\n }\r\n function isReady() {\r\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\r\n return Promise.resolve();\r\n return new Promise((resolve, reject) => {\r\n readyHandlers.add([resolve, reject]);\r\n });\r\n }\r\n /**\r\n * Mark the router as ready, resolving the promised returned by isReady(). Can\r\n * only be called once, otherwise does nothing.\r\n * @param err - optional error\r\n */\r\n function markAsReady(err) {\r\n if (ready)\r\n return;\r\n ready = true;\r\n setupListeners();\r\n readyHandlers\r\n .list()\r\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\r\n readyHandlers.reset();\r\n }\r\n // Scroll behavior\r\n function handleScroll(to, from, isPush, isFirstNavigation) {\r\n const { scrollBehavior } = options;\r\n if (!isBrowser || !scrollBehavior)\r\n return Promise.resolve();\r\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\r\n ((isFirstNavigation || !isPush) &&\r\n history.state &&\r\n history.state.scroll) ||\r\n null;\r\n return nextTick()\r\n .then(() => scrollBehavior(to, from, scrollPosition))\r\n .then(position => position && scrollToPosition(position))\r\n .catch(err => triggerError(err, to, from));\r\n }\r\n const go = (delta) => routerHistory.go(delta);\r\n let started;\r\n const installedApps = new Set();\r\n const router = {\r\n currentRoute,\r\n addRoute,\r\n removeRoute,\r\n hasRoute,\r\n getRoutes,\r\n resolve,\r\n options,\r\n push,\r\n replace,\r\n go,\r\n back: () => go(-1),\r\n forward: () => go(1),\r\n beforeEach: beforeGuards.add,\r\n beforeResolve: beforeResolveGuards.add,\r\n afterEach: afterGuards.add,\r\n onError: errorHandlers.add,\r\n isReady,\r\n install(app) {\r\n const router = this;\r\n app.component('RouterLink', RouterLink);\r\n app.component('RouterView', RouterView);\r\n app.config.globalProperties.$router = router;\r\n Object.defineProperty(app.config.globalProperties, '$route', {\r\n enumerable: true,\r\n get: () => unref(currentRoute),\r\n });\r\n // this initial navigation is only necessary on client, on server it doesn't\r\n // make sense because it will create an extra unnecessary navigation and could\r\n // lead to problems\r\n if (isBrowser &&\r\n // used for the initial navigation client side to avoid pushing\r\n // multiple times when the router is used in multiple apps\r\n !started &&\r\n currentRoute.value === START_LOCATION_NORMALIZED) {\r\n // see above\r\n started = true;\r\n push(routerHistory.location).catch(err => {\r\n if ((process.env.NODE_ENV !== 'production'))\r\n warn('Unexpected error when starting the router:', err);\r\n });\r\n }\r\n const reactiveRoute = {};\r\n for (const key in START_LOCATION_NORMALIZED) {\r\n // @ts-expect-error: the key matches\r\n reactiveRoute[key] = computed(() => currentRoute.value[key]);\r\n }\r\n app.provide(routerKey, router);\r\n app.provide(routeLocationKey, reactive(reactiveRoute));\r\n app.provide(routerViewLocationKey, currentRoute);\r\n const unmountApp = app.unmount;\r\n installedApps.add(app);\r\n app.unmount = function () {\r\n installedApps.delete(app);\r\n // the router is not attached to an app anymore\r\n if (installedApps.size < 1) {\r\n // invalidate the current navigation\r\n pendingLocation = START_LOCATION_NORMALIZED;\r\n removeHistoryListener && removeHistoryListener();\r\n currentRoute.value = START_LOCATION_NORMALIZED;\r\n started = false;\r\n ready = false;\r\n }\r\n unmountApp();\r\n };\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n addDevtools(app, router, matcher);\r\n }\r\n },\r\n };\r\n return router;\r\n}\r\nfunction runGuardQueue(guards) {\r\n return guards.reduce((promise, guard) => promise.then(() => guard()), Promise.resolve());\r\n}\r\nfunction extractChangingRecords(to, from) {\r\n const leavingRecords = [];\r\n const updatingRecords = [];\r\n const enteringRecords = [];\r\n const len = Math.max(from.matched.length, to.matched.length);\r\n for (let i = 0; i < len; i++) {\r\n const recordFrom = from.matched[i];\r\n if (recordFrom) {\r\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\r\n updatingRecords.push(recordFrom);\r\n else\r\n leavingRecords.push(recordFrom);\r\n }\r\n const recordTo = to.matched[i];\r\n if (recordTo) {\r\n // the type doesn't matter because we are comparing per reference\r\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\r\n enteringRecords.push(recordTo);\r\n }\r\n }\r\n }\r\n return [leavingRecords, updatingRecords, enteringRecords];\r\n}\n\n/**\r\n * Returns the router instance. Equivalent to using `$router` inside\r\n * templates.\r\n */\r\nfunction useRouter() {\r\n return inject(routerKey);\r\n}\r\n/**\r\n * Returns the current route location. Equivalent to using `$route` inside\r\n * templates.\r\n */\r\nfunction useRoute() {\r\n return inject(routeLocationKey);\r\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","/*global module*/\nvar Buffer = require('safe-buffer').Buffer;\nvar DataStream = require('./data-stream');\nvar jwa = require('jwa');\nvar Stream = require('stream');\nvar toString = require('./tostring');\nvar util = require('util');\n\nfunction base64url(string, encoding) {\n return Buffer\n .from(string, encoding)\n .toString('base64')\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction jwsSecuredInput(header, payload, encoding) {\n encoding = encoding || 'utf8';\n var encodedHeader = base64url(toString(header), 'binary');\n var encodedPayload = base64url(toString(payload), encoding);\n return util.format('%s.%s', encodedHeader, encodedPayload);\n}\n\nfunction jwsSign(opts) {\n var header = opts.header;\n var payload = opts.payload;\n var secretOrKey = opts.secret || opts.privateKey;\n var encoding = opts.encoding;\n var algo = jwa(header.alg);\n var securedInput = jwsSecuredInput(header, payload, encoding);\n var signature = algo.sign(securedInput, secretOrKey);\n return util.format('%s.%s', securedInput, signature);\n}\n\nfunction SignStream(opts) {\n var secret = opts.secret||opts.privateKey||opts.key;\n var secretStream = new DataStream(secret);\n this.readable = true;\n this.header = opts.header;\n this.encoding = opts.encoding;\n this.secret = this.privateKey = this.key = secretStream;\n this.payload = new DataStream(opts.payload);\n this.secret.once('close', function () {\n if (!this.payload.writable && this.readable)\n this.sign();\n }.bind(this));\n\n this.payload.once('close', function () {\n if (!this.secret.writable && this.readable)\n this.sign();\n }.bind(this));\n}\nutil.inherits(SignStream, Stream);\n\nSignStream.prototype.sign = function sign() {\n try {\n var signature = jwsSign({\n header: this.header,\n payload: this.payload.buffer,\n secret: this.secret.buffer,\n encoding: this.encoding\n });\n this.emit('done', signature);\n this.emit('data', signature);\n this.emit('end');\n this.readable = false;\n return signature;\n } catch (e) {\n this.readable = false;\n this.emit('error', e);\n this.emit('close');\n }\n};\n\nSignStream.sign = jwsSign;\n\nmodule.exports = SignStream;\n","import { defineComponent, toRaw, unref, openBlock, createBlock, resolveDynamicComponent, mergeProps, withCtx, createTextVNode, createVNode, toDisplayString, resolveComponent, createCommentVNode, Fragment, toHandlers, withModifiers, TransitionGroup, renderSlot, renderList, nextTick, createApp, provide, getCurrentInstance, inject } from 'vue';\n\nconst isFunction = value => typeof value === \"function\";\n\nconst isString = value => typeof value === \"string\";\n\nconst isNonEmptyString = value => isString(value) && value.trim().length > 0;\n\nconst isNumber = value => typeof value === \"number\";\n\nconst isUndefined = value => typeof value === \"undefined\";\n\nconst isObject = value => typeof value === \"object\" && value !== null;\n\nconst isJSX = obj => hasProp(obj, \"tag\") && isNonEmptyString(obj.tag);\n\nconst isTouchEvent = event => window.TouchEvent && event instanceof TouchEvent;\n\nconst isToastComponent = obj => hasProp(obj, \"component\") && isToastContent(obj.component);\n\nconst isVueComponent = c => isFunction(c) || isObject(c);\n\nconst isToastContent = obj => // Ignore undefined\n!isUndefined(obj) && ( // Is a string\nisString(obj) || // Regular Vue component\nisVueComponent(obj) || // Nested object\nisToastComponent(obj));\n\nconst isDOMRect = obj => isObject(obj) && [\"height\", \"width\", \"right\", \"left\", \"top\", \"bottom\"].every(p => isNumber(obj[p]));\n\nconst hasProp = (obj, propKey) => (isObject(obj) || isFunction(obj)) && propKey in obj;\n/**\r\n * ID generator\r\n */\n\n\nconst getId = (i => () => i++)(0);\n\nfunction getX(event) {\n return isTouchEvent(event) ? event.targetTouches[0].clientX : event.clientX;\n}\n\nfunction getY(event) {\n return isTouchEvent(event) ? event.targetTouches[0].clientY : event.clientY;\n}\n\nconst removeElement = el => {\n if (!isUndefined(el.remove)) {\n el.remove();\n } else if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n};\n\nconst getVueComponentFromObj = obj => {\n if (isToastComponent(obj)) {\n // Recurse if component prop\n return getVueComponentFromObj(obj.component);\n }\n\n if (isJSX(obj)) {\n // Create render function for JSX\n return defineComponent({\n render() {\n return obj;\n }\n\n });\n } // Return regular string or raw object\n\n\n return typeof obj === \"string\" ? obj : toRaw(unref(obj));\n};\n\nconst normalizeToastComponent = obj => {\n if (typeof obj === \"string\") {\n return obj;\n }\n\n const props = hasProp(obj, \"props\") && isObject(obj.props) ? obj.props : {};\n const listeners = hasProp(obj, \"listeners\") && isObject(obj.listeners) ? obj.listeners : {};\n return {\n component: getVueComponentFromObj(obj),\n props,\n listeners\n };\n};\n\nconst isBrowser = () => typeof window !== \"undefined\";\n\nclass EventBus {\n constructor() {\n this.allHandlers = {};\n }\n\n getHandlers(eventType) {\n return this.allHandlers[eventType] || [];\n }\n\n on(eventType, handler) {\n const handlers = this.getHandlers(eventType);\n handlers.push(handler);\n this.allHandlers[eventType] = handlers;\n }\n\n off(eventType, handler) {\n const handlers = this.getHandlers(eventType);\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n\n emit(eventType, event) {\n const handlers = this.getHandlers(eventType);\n handlers.forEach(handler => handler(event));\n }\n\n}\nconst isEventBusInterface = e => [\"on\", \"off\", \"emit\"].every(f => hasProp(e, f) && isFunction(e[f]));\n\nvar TYPE;\n\n(function (TYPE) {\n TYPE[\"SUCCESS\"] = \"success\";\n TYPE[\"ERROR\"] = \"error\";\n TYPE[\"WARNING\"] = \"warning\";\n TYPE[\"INFO\"] = \"info\";\n TYPE[\"DEFAULT\"] = \"default\";\n})(TYPE || (TYPE = {}));\n\nvar POSITION;\n\n(function (POSITION) {\n POSITION[\"TOP_LEFT\"] = \"top-left\";\n POSITION[\"TOP_CENTER\"] = \"top-center\";\n POSITION[\"TOP_RIGHT\"] = \"top-right\";\n POSITION[\"BOTTOM_LEFT\"] = \"bottom-left\";\n POSITION[\"BOTTOM_CENTER\"] = \"bottom-center\";\n POSITION[\"BOTTOM_RIGHT\"] = \"bottom-right\";\n})(POSITION || (POSITION = {}));\n\nvar EVENTS;\n\n(function (EVENTS) {\n EVENTS[\"ADD\"] = \"add\";\n EVENTS[\"DISMISS\"] = \"dismiss\";\n EVENTS[\"UPDATE\"] = \"update\";\n EVENTS[\"CLEAR\"] = \"clear\";\n EVENTS[\"UPDATE_DEFAULTS\"] = \"update_defaults\";\n})(EVENTS || (EVENTS = {}));\n\nconst VT_NAMESPACE = \"Vue-Toastification\";\n\nconst COMMON = {\n type: {\n type: String,\n default: TYPE.DEFAULT\n },\n classNames: {\n type: [String, Array],\n default: () => []\n },\n trueBoolean: {\n type: Boolean,\n default: true\n }\n};\nconst ICON = {\n type: COMMON.type,\n customIcon: {\n type: [String, Boolean, Object, Function],\n default: true\n }\n};\nconst CLOSE_BUTTON = {\n component: {\n type: [String, Object, Function, Boolean],\n default: \"button\"\n },\n classNames: COMMON.classNames,\n showOnHover: {\n type: Boolean,\n default: false\n },\n ariaLabel: {\n type: String,\n default: \"close\"\n }\n};\nconst PROGRESS_BAR = {\n timeout: {\n type: [Number, Boolean],\n default: 5000\n },\n hideProgressBar: {\n type: Boolean,\n default: false\n },\n isRunning: {\n type: Boolean,\n default: false\n }\n};\nconst TRANSITION = {\n transition: {\n type: [Object, String],\n default: `${VT_NAMESPACE}__bounce`\n }\n};\nconst CORE_TOAST = {\n position: {\n type: String,\n default: POSITION.TOP_RIGHT\n },\n draggable: COMMON.trueBoolean,\n draggablePercent: {\n type: Number,\n default: 0.6\n },\n pauseOnFocusLoss: COMMON.trueBoolean,\n pauseOnHover: COMMON.trueBoolean,\n closeOnClick: COMMON.trueBoolean,\n timeout: PROGRESS_BAR.timeout,\n hideProgressBar: PROGRESS_BAR.hideProgressBar,\n toastClassName: COMMON.classNames,\n bodyClassName: COMMON.classNames,\n icon: ICON.customIcon,\n closeButton: CLOSE_BUTTON.component,\n closeButtonClassName: CLOSE_BUTTON.classNames,\n showCloseButtonOnHover: CLOSE_BUTTON.showOnHover,\n accessibility: {\n type: Object,\n default: () => ({\n toastRole: \"alert\",\n closeButtonLabel: \"close\"\n })\n },\n rtl: {\n type: Boolean,\n default: false\n },\n eventBus: {\n type: Object,\n required: true,\n default: new EventBus()\n }\n};\nconst TOAST = {\n id: {\n type: [String, Number],\n required: true,\n default: 0\n },\n type: COMMON.type,\n content: {\n type: [String, Object, Function],\n required: true,\n default: \"\"\n },\n onClick: {\n type: Function,\n default: () => {}\n },\n onClose: {\n type: Function,\n default:\n /* istanbul ignore next */\n () => {}\n }\n};\nconst CONTAINER = {\n container: {\n type: [Object, Function],\n default: () => document.body\n },\n newestOnTop: COMMON.trueBoolean,\n maxToasts: {\n type: Number,\n default: 20\n },\n transition: TRANSITION.transition,\n toastDefaults: Object,\n filterBeforeCreate: {\n type: Function,\n default: toast => toast\n },\n filterToasts: {\n type: Function,\n default: toasts => toasts\n },\n containerClassName: COMMON.classNames,\n onMounted: Function\n};\nvar PROPS = {\n CORE_TOAST,\n TOAST,\n CONTAINER,\n PROGRESS_BAR,\n ICON,\n TRANSITION,\n CLOSE_BUTTON\n};\n\nvar script = defineComponent({\n name: \"VtProgressBar\",\n props: PROPS.PROGRESS_BAR,\n\n // TODO: The typescript compiler is not playing nice with emit types\n // Rollback this change once ts is able to infer emit types\n // emits: [\"close-toast\"],\n data() {\n return {\n hasClass: true\n };\n },\n\n computed: {\n style() {\n return {\n animationDuration: `${this.timeout}ms`,\n animationPlayState: this.isRunning ? \"running\" : \"paused\",\n opacity: this.hideProgressBar ? 0 : 1\n };\n },\n\n cpClass() {\n return this.hasClass ? `${VT_NAMESPACE}__progress-bar` : \"\";\n }\n\n },\n watch: {\n timeout() {\n this.hasClass = false;\n this.$nextTick(() => this.hasClass = true);\n }\n\n },\n\n mounted() {\n this.$el.addEventListener(\"animationend\", this.animationEnded);\n },\n\n beforeUnmount() {\n this.$el.removeEventListener(\"animationend\", this.animationEnded);\n },\n\n methods: {\n animationEnded() {\n // See TODO on line 16\n // eslint-disable-next-line vue/require-explicit-emits\n this.$emit(\"close-toast\");\n }\n\n }\n});\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createBlock(\"div\", {\n style: _ctx.style,\n class: _ctx.cpClass\n }, null, 6 /* CLASS, STYLE */))\n}\n\nscript.render = render;\nscript.__file = \"src/components/VtProgressBar.vue\";\n\nvar script$1 = defineComponent({\n name: \"VtCloseButton\",\n props: PROPS.CLOSE_BUTTON,\n computed: {\n buttonComponent() {\n if (this.component !== false) {\n return getVueComponentFromObj(this.component);\n }\n\n return \"button\";\n },\n\n classes() {\n const classes = [`${VT_NAMESPACE}__close-button`];\n\n if (this.showOnHover) {\n classes.push(\"show-on-hover\");\n }\n\n return classes.concat(this.classNames);\n }\n\n }\n});\n\nconst _hoisted_1 = /*#__PURE__*/createTextVNode(\" × \");\n\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createBlock(resolveDynamicComponent(_ctx.buttonComponent), mergeProps({\n \"aria-label\": _ctx.ariaLabel,\n class: _ctx.classes\n }, _ctx.$attrs), {\n default: withCtx(() => [\n _hoisted_1\n ]),\n _: 1\n }, 16 /* FULL_PROPS */, [\"aria-label\", \"class\"]))\n}\n\nscript$1.render = render$1;\nscript$1.__file = \"src/components/VtCloseButton.vue\";\n\nvar script$2 = {};\n\nconst _hoisted_1$1 = {\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n \"data-prefix\": \"fas\",\n \"data-icon\": \"check-circle\",\n class: \"svg-inline--fa fa-check-circle fa-w-16\",\n role: \"img\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\"\n};\nconst _hoisted_2 = /*#__PURE__*/createVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"\n}, null, -1 /* HOISTED */);\n\nfunction render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createBlock(\"svg\", _hoisted_1$1, [\n _hoisted_2\n ]))\n}\n\nscript$2.render = render$2;\nscript$2.__file = \"src/components/icons/VtSuccessIcon.vue\";\n\nvar script$3 = {};\n\nconst _hoisted_1$2 = {\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n \"data-prefix\": \"fas\",\n \"data-icon\": \"info-circle\",\n class: \"svg-inline--fa fa-info-circle fa-w-16\",\n role: \"img\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\"\n};\nconst _hoisted_2$1 = /*#__PURE__*/createVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"\n}, null, -1 /* HOISTED */);\n\nfunction render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createBlock(\"svg\", _hoisted_1$2, [\n _hoisted_2$1\n ]))\n}\n\nscript$3.render = render$3;\nscript$3.__file = \"src/components/icons/VtInfoIcon.vue\";\n\nvar script$4 = {};\n\nconst _hoisted_1$3 = {\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n \"data-prefix\": \"fas\",\n \"data-icon\": \"exclamation-circle\",\n class: \"svg-inline--fa fa-exclamation-circle fa-w-16\",\n role: \"img\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\"\n};\nconst _hoisted_2$2 = /*#__PURE__*/createVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"\n}, null, -1 /* HOISTED */);\n\nfunction render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createBlock(\"svg\", _hoisted_1$3, [\n _hoisted_2$2\n ]))\n}\n\nscript$4.render = render$4;\nscript$4.__file = \"src/components/icons/VtWarningIcon.vue\";\n\nvar script$5 = {};\n\nconst _hoisted_1$4 = {\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n \"data-prefix\": \"fas\",\n \"data-icon\": \"exclamation-triangle\",\n class: \"svg-inline--fa fa-exclamation-triangle fa-w-18\",\n role: \"img\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 576 512\"\n};\nconst _hoisted_2$3 = /*#__PURE__*/createVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"\n}, null, -1 /* HOISTED */);\n\nfunction render$5(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createBlock(\"svg\", _hoisted_1$4, [\n _hoisted_2$3\n ]))\n}\n\nscript$5.render = render$5;\nscript$5.__file = \"src/components/icons/VtErrorIcon.vue\";\n\nvar script$6 = defineComponent({\n name: \"VtIcon\",\n props: PROPS.ICON,\n computed: {\n customIconChildren() {\n return hasProp(this.customIcon, \"iconChildren\") ? this.trimValue(this.customIcon.iconChildren) : \"\";\n },\n\n customIconClass() {\n if (isString(this.customIcon)) {\n return this.trimValue(this.customIcon);\n } else if (hasProp(this.customIcon, \"iconClass\")) {\n return this.trimValue(this.customIcon.iconClass);\n }\n\n return \"\";\n },\n\n customIconTag() {\n if (hasProp(this.customIcon, \"iconTag\")) {\n return this.trimValue(this.customIcon.iconTag, \"i\");\n }\n\n return \"i\";\n },\n\n hasCustomIcon() {\n return this.customIconClass.length > 0;\n },\n\n component() {\n if (this.hasCustomIcon) {\n return this.customIconTag;\n }\n\n if (isToastContent(this.customIcon)) {\n return getVueComponentFromObj(this.customIcon);\n }\n\n return this.iconTypeComponent;\n },\n\n iconTypeComponent() {\n const types = {\n [TYPE.DEFAULT]: script$3,\n [TYPE.INFO]: script$3,\n [TYPE.SUCCESS]: script$2,\n [TYPE.ERROR]: script$5,\n [TYPE.WARNING]: script$4\n };\n return types[this.type];\n },\n\n iconClasses() {\n const classes = [`${VT_NAMESPACE}__icon`];\n\n if (this.hasCustomIcon) {\n return classes.concat(this.customIconClass);\n }\n\n return classes;\n }\n\n },\n methods: {\n trimValue(value, empty = \"\") {\n return isNonEmptyString(value) ? value.trim() : empty;\n }\n\n }\n});\n\nfunction render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createBlock(resolveDynamicComponent(_ctx.component), { class: _ctx.iconClasses }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(_ctx.customIconChildren), 1 /* TEXT */)\n ]),\n _: 1\n }, 8 /* PROPS */, [\"class\"]))\n}\n\nscript$6.render = render$6;\nscript$6.__file = \"src/components/VtIcon.vue\";\n\nvar script$7 = defineComponent({\n name: \"VtToast\",\n components: {\n ProgressBar: script,\n CloseButton: script$1,\n Icon: script$6\n },\n inheritAttrs: false,\n props: Object.assign({}, PROPS.CORE_TOAST, PROPS.TOAST),\n\n data() {\n const data = {\n isRunning: true,\n disableTransitions: false,\n beingDragged: false,\n dragStart: 0,\n dragPos: {\n x: 0,\n y: 0\n },\n dragRect: {}\n };\n return data;\n },\n\n computed: {\n classes() {\n const classes = [`${VT_NAMESPACE}__toast`, `${VT_NAMESPACE}__toast--${this.type}`, `${this.position}`].concat(this.toastClassName);\n\n if (this.disableTransitions) {\n classes.push(\"disable-transition\");\n }\n\n if (this.rtl) {\n classes.push(`${VT_NAMESPACE}__toast--rtl`);\n }\n\n return classes;\n },\n\n bodyClasses() {\n const classes = [`${VT_NAMESPACE}__toast-${isString(this.content) ? \"body\" : \"component-body\"}`].concat(this.bodyClassName);\n return classes;\n },\n\n /* istanbul ignore next */\n draggableStyle() {\n if (this.dragStart === this.dragPos.x) {\n return {};\n } else if (this.beingDragged) {\n return {\n transform: `translateX(${this.dragDelta}px)`,\n opacity: 1 - Math.abs(this.dragDelta / this.removalDistance)\n };\n } else {\n return {\n transition: \"transform 0.2s, opacity 0.2s\",\n transform: \"translateX(0)\",\n opacity: 1\n };\n }\n },\n\n dragDelta() {\n return this.beingDragged ? this.dragPos.x - this.dragStart : 0;\n },\n\n removalDistance() {\n if (isDOMRect(this.dragRect)) {\n return (this.dragRect.right - this.dragRect.left) * this.draggablePercent;\n }\n\n return 0;\n }\n\n },\n\n mounted() {\n if (this.draggable) {\n this.draggableSetup();\n }\n\n if (this.pauseOnFocusLoss) {\n this.focusSetup();\n }\n },\n\n beforeUnmount() {\n if (this.draggable) {\n this.draggableCleanup();\n }\n\n if (this.pauseOnFocusLoss) {\n this.focusCleanup();\n }\n },\n\n methods: {\n getVueComponentFromObj,\n\n closeToast() {\n this.eventBus.emit(EVENTS.DISMISS, this.id);\n },\n\n clickHandler() {\n if (this.onClick) {\n this.onClick(this.closeToast);\n }\n\n if (this.closeOnClick) {\n if (!this.beingDragged || this.dragStart === this.dragPos.x) {\n this.closeToast();\n }\n }\n },\n\n timeoutHandler() {\n this.closeToast();\n },\n\n hoverPause() {\n if (this.pauseOnHover) {\n this.isRunning = false;\n }\n },\n\n hoverPlay() {\n if (this.pauseOnHover) {\n this.isRunning = true;\n }\n },\n\n focusPause() {\n this.isRunning = false;\n },\n\n focusPlay() {\n this.isRunning = true;\n },\n\n focusSetup() {\n addEventListener(\"blur\", this.focusPause);\n addEventListener(\"focus\", this.focusPlay);\n },\n\n focusCleanup() {\n removeEventListener(\"blur\", this.focusPause);\n removeEventListener(\"focus\", this.focusPlay);\n },\n\n draggableSetup() {\n const element = this.$el;\n element.addEventListener(\"touchstart\", this.onDragStart, {\n passive: true\n });\n element.addEventListener(\"mousedown\", this.onDragStart);\n addEventListener(\"touchmove\", this.onDragMove, {\n passive: false\n });\n addEventListener(\"mousemove\", this.onDragMove);\n addEventListener(\"touchend\", this.onDragEnd);\n addEventListener(\"mouseup\", this.onDragEnd);\n },\n\n draggableCleanup() {\n const element = this.$el;\n element.removeEventListener(\"touchstart\", this.onDragStart);\n element.removeEventListener(\"mousedown\", this.onDragStart);\n removeEventListener(\"touchmove\", this.onDragMove);\n removeEventListener(\"mousemove\", this.onDragMove);\n removeEventListener(\"touchend\", this.onDragEnd);\n removeEventListener(\"mouseup\", this.onDragEnd);\n },\n\n onDragStart(event) {\n this.beingDragged = true;\n this.dragPos = {\n x: getX(event),\n y: getY(event)\n };\n this.dragStart = getX(event);\n this.dragRect = this.$el.getBoundingClientRect();\n },\n\n onDragMove(event) {\n if (this.beingDragged) {\n event.preventDefault();\n\n if (this.isRunning) {\n this.isRunning = false;\n }\n\n this.dragPos = {\n x: getX(event),\n y: getY(event)\n };\n }\n },\n\n onDragEnd() {\n if (this.beingDragged) {\n if (Math.abs(this.dragDelta) >= this.removalDistance) {\n this.disableTransitions = true;\n this.$nextTick(() => this.closeToast());\n } else {\n setTimeout(() => {\n this.beingDragged = false;\n\n if (isDOMRect(this.dragRect) && this.pauseOnHover && this.dragRect.bottom >= this.dragPos.y && this.dragPos.y >= this.dragRect.top && this.dragRect.left <= this.dragPos.x && this.dragPos.x <= this.dragRect.right) {\n this.isRunning = false;\n } else {\n this.isRunning = true;\n }\n });\n }\n }\n }\n\n }\n});\n\nfunction render$7(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Icon = resolveComponent(\"Icon\");\n const _component_CloseButton = resolveComponent(\"CloseButton\");\n const _component_ProgressBar = resolveComponent(\"ProgressBar\");\n\n return (openBlock(), createBlock(\"div\", {\n class: _ctx.classes,\n style: _ctx.draggableStyle,\n onClick: _cache[1] || (_cache[1] = (...args) => (_ctx.clickHandler(...args))),\n onMouseenter: _cache[2] || (_cache[2] = (...args) => (_ctx.hoverPause(...args))),\n onMouseleave: _cache[3] || (_cache[3] = (...args) => (_ctx.hoverPlay(...args)))\n }, [\n (_ctx.icon)\n ? (openBlock(), createBlock(_component_Icon, {\n key: 0,\n \"custom-icon\": _ctx.icon,\n type: _ctx.type\n }, null, 8 /* PROPS */, [\"custom-icon\", \"type\"]))\n : createCommentVNode(\"v-if\", true),\n createVNode(\"div\", {\n role: _ctx.accessibility.toastRole || 'alert',\n class: _ctx.bodyClasses\n }, [\n (typeof _ctx.content === 'string')\n ? (openBlock(), createBlock(Fragment, { key: 0 }, [\n createTextVNode(toDisplayString(_ctx.content), 1 /* TEXT */)\n ], 64 /* STABLE_FRAGMENT */))\n : (openBlock(), createBlock(resolveDynamicComponent(_ctx.getVueComponentFromObj(_ctx.content)), mergeProps({\n key: 1,\n \"toast-id\": _ctx.id\n }, _ctx.content.props, toHandlers(_ctx.content.listeners), { onCloseToast: _ctx.closeToast }), null, 16 /* FULL_PROPS */, [\"toast-id\", \"onCloseToast\"]))\n ], 10 /* CLASS, PROPS */, [\"role\"]),\n (!!_ctx.closeButton)\n ? (openBlock(), createBlock(_component_CloseButton, {\n key: 1,\n component: _ctx.closeButton,\n \"class-names\": _ctx.closeButtonClassName,\n \"show-on-hover\": _ctx.showCloseButtonOnHover,\n \"aria-label\": _ctx.accessibility.closeButtonLabel,\n onClick: withModifiers(_ctx.closeToast, [\"stop\"])\n }, null, 8 /* PROPS */, [\"component\", \"class-names\", \"show-on-hover\", \"aria-label\", \"onClick\"]))\n : createCommentVNode(\"v-if\", true),\n (_ctx.timeout)\n ? (openBlock(), createBlock(_component_ProgressBar, {\n key: 2,\n \"is-running\": _ctx.isRunning,\n \"hide-progress-bar\": _ctx.hideProgressBar,\n timeout: _ctx.timeout,\n onCloseToast: _ctx.timeoutHandler\n }, null, 8 /* PROPS */, [\"is-running\", \"hide-progress-bar\", \"timeout\", \"onCloseToast\"]))\n : createCommentVNode(\"v-if\", true)\n ], 38 /* CLASS, STYLE, HYDRATE_EVENTS */))\n}\n\nscript$7.render = render$7;\nscript$7.__file = \"src/components/VtToast.vue\";\n\n// Transition methods taken from https://github.com/BinarCode/vue2-transitions\nvar script$8 = defineComponent({\n name: \"VtTransition\",\n props: PROPS.TRANSITION,\n emits: [\"leave\"],\n methods: {\n leave(el) {\n el.style.left = el.offsetLeft + \"px\";\n el.style.top = el.offsetTop + \"px\";\n el.style.width = getComputedStyle(el).width;\n el.style.position = \"absolute\";\n }\n\n }\n});\n\nfunction render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createBlock(TransitionGroup, {\n tag: \"div\",\n \"enter-active-class\": \n _ctx.transition.enter ? _ctx.transition.enter : `${_ctx.transition}-enter-active`\n ,\n \"move-class\": _ctx.transition.move ? _ctx.transition.move : `${_ctx.transition}-move`,\n \"leave-active-class\": \n _ctx.transition.leave ? _ctx.transition.leave : `${_ctx.transition}-leave-active`\n ,\n onLeave: _ctx.leave\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8 /* PROPS */, [\"enter-active-class\", \"move-class\", \"leave-active-class\", \"onLeave\"]))\n}\n\nscript$8.render = render$8;\nscript$8.__file = \"src/components/VtTransition.vue\";\n\nvar script$9 = defineComponent({\n name: \"VueToastification\",\n components: {\n Toast: script$7,\n VtTransition: script$8\n },\n props: Object.assign({}, PROPS.CORE_TOAST, PROPS.CONTAINER, PROPS.TRANSITION),\n\n data() {\n const data = {\n count: 0,\n positions: Object.values(POSITION),\n toasts: {},\n defaults: {}\n };\n return data;\n },\n\n computed: {\n toastArray() {\n return Object.values(this.toasts);\n },\n\n filteredToasts() {\n return this.defaults.filterToasts(this.toastArray);\n }\n\n },\n\n beforeMount() {\n const events = this.eventBus;\n events.on(EVENTS.ADD, this.addToast);\n events.on(EVENTS.CLEAR, this.clearToasts);\n events.on(EVENTS.DISMISS, this.dismissToast);\n events.on(EVENTS.UPDATE, this.updateToast);\n events.on(EVENTS.UPDATE_DEFAULTS, this.updateDefaults);\n this.defaults = this.$props;\n },\n\n mounted() {\n this.setup(this.container);\n },\n\n methods: {\n async setup(container) {\n if (isFunction(container)) {\n container = await container();\n }\n\n removeElement(this.$el);\n container.appendChild(this.$el);\n },\n\n setToast(props) {\n if (!isUndefined(props.id)) {\n this.toasts[props.id] = props;\n }\n },\n\n addToast(params) {\n params.content = normalizeToastComponent(params.content);\n const props = Object.assign({}, this.defaults, params.type && this.defaults.toastDefaults && this.defaults.toastDefaults[params.type], params);\n const toast = this.defaults.filterBeforeCreate(props, this.toastArray);\n toast && this.setToast(toast);\n },\n\n dismissToast(id) {\n const toast = this.toasts[id];\n\n if (!isUndefined(toast) && !isUndefined(toast.onClose)) {\n toast.onClose();\n }\n\n delete this.toasts[id];\n },\n\n clearToasts() {\n Object.keys(this.toasts).forEach(id => {\n this.dismissToast(id);\n });\n },\n\n getPositionToasts(position) {\n const toasts = this.filteredToasts.filter(toast => toast.position === position).slice(0, this.defaults.maxToasts);\n return this.defaults.newestOnTop ? toasts.reverse() : toasts;\n },\n\n updateDefaults(update) {\n // Update container if changed\n if (!isUndefined(update.container)) {\n this.setup(update.container);\n }\n\n this.defaults = Object.assign({}, this.defaults, update);\n },\n\n updateToast({\n id,\n options,\n create\n }) {\n if (this.toasts[id]) {\n // If a timeout is defined, and is equal to the one before, change it\n // a little so the progressBar is reset\n if (options.timeout && options.timeout === this.toasts[id].timeout) {\n options.timeout++;\n }\n\n this.setToast(Object.assign({}, this.toasts[id], options));\n } else if (create) {\n this.addToast(Object.assign({}, {\n id\n }, options));\n }\n },\n\n getClasses(position) {\n const classes = [`${VT_NAMESPACE}__container`, position];\n return classes.concat(this.defaults.containerClassName);\n }\n\n }\n});\n\nfunction render$9(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_Toast = resolveComponent(\"Toast\");\n const _component_VtTransition = resolveComponent(\"VtTransition\");\n\n return (openBlock(), createBlock(\"div\", null, [\n (openBlock(true), createBlock(Fragment, null, renderList(_ctx.positions, (pos) => {\n return (openBlock(), createBlock(\"div\", { key: pos }, [\n createVNode(_component_VtTransition, {\n transition: _ctx.defaults.transition,\n class: _ctx.getClasses(pos)\n }, {\n default: withCtx(() => [\n (openBlock(true), createBlock(Fragment, null, renderList(_ctx.getPositionToasts(pos), (toast) => {\n return (openBlock(), createBlock(_component_Toast, mergeProps({\n key: toast.id\n }, toast), null, 16 /* FULL_PROPS */))\n }), 128 /* KEYED_FRAGMENT */))\n ]),\n _: 2\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"transition\", \"class\"])\n ]))\n }), 128 /* KEYED_FRAGMENT */))\n ]))\n}\n\nscript$9.render = render$9;\nscript$9.__file = \"src/components/VtToastContainer.vue\";\n\nconst buildInterface = (globalOptions = {}, mountContainer = true) => {\n const events = globalOptions.eventBus = globalOptions.eventBus || new EventBus();\n\n if (mountContainer) {\n nextTick(() => {\n const app = createApp(script$9, Object.assign({}, globalOptions));\n const component = app.mount(document.createElement(\"div\"));\n const onMounted = globalOptions.onMounted;\n\n if (!isUndefined(onMounted)) {\n onMounted(component, app);\n }\n });\n }\n /**\r\n * Display a toast\r\n */\n\n\n const toast = (content, options) => {\n const props = Object.assign({}, {\n id: getId(),\n type: TYPE.DEFAULT\n }, options, {\n content\n });\n events.emit(EVENTS.ADD, props);\n return props.id;\n };\n /**\r\n * Clear all toasts\r\n */\n\n\n toast.clear = () => events.emit(EVENTS.CLEAR, undefined);\n /**\r\n * Update Plugin Defaults\r\n */\n\n\n toast.updateDefaults = update => {\n events.emit(EVENTS.UPDATE_DEFAULTS, update);\n };\n /**\r\n * Dismiss toast specified by an id\r\n */\n\n\n toast.dismiss = id => {\n events.emit(EVENTS.DISMISS, id);\n };\n\n function updateToast(id, {\n content,\n options\n }, create = false) {\n const opt = Object.assign({}, options, {\n content\n });\n events.emit(EVENTS.UPDATE, {\n id,\n options: opt,\n create\n });\n }\n\n toast.update = updateToast;\n /**\r\n * Display a success toast\r\n */\n\n toast.success = (content, options) => toast(content, Object.assign({}, options, {\n type: TYPE.SUCCESS\n }));\n /**\r\n * Display an info toast\r\n */\n\n\n toast.info = (content, options) => toast(content, Object.assign({}, options, {\n type: TYPE.INFO\n }));\n /**\r\n * Display an error toast\r\n */\n\n\n toast.error = (content, options) => toast(content, Object.assign({}, options, {\n type: TYPE.ERROR\n }));\n /**\r\n * Display a warning toast\r\n */\n\n\n toast.warning = (content, options) => toast(content, Object.assign({}, options, {\n type: TYPE.WARNING\n }));\n\n return toast;\n};\n\nconst createMockToastInterface = () => {\n const toast = () => console.warn(\"[Vue Toastification] This plugin does not support SSR!\");\n\n return new Proxy(toast, {\n get() {\n return toast;\n }\n\n });\n};\n\nfunction createToastInterface(optionsOrEventBus) {\n if (!isBrowser()) {\n return createMockToastInterface();\n }\n\n if (isEventBusInterface(optionsOrEventBus)) {\n return buildInterface({\n eventBus: optionsOrEventBus\n }, false);\n }\n\n return buildInterface(optionsOrEventBus, true);\n}\n\nconst toastInjectionKey = Symbol(\"VueToastification\");\nconst globalEventBus = new EventBus();\n\nconst VueToastificationPlugin = (App, options) => {\n const inter = createToastInterface(Object.assign({\n eventBus: globalEventBus\n }, options));\n App.provide(toastInjectionKey, inter);\n};\n\nconst provideToast = options => {\n const toast = createToastInterface(options);\n provide(toastInjectionKey, toast);\n};\n\nconst useToast = eventBus => {\n if (eventBus) {\n return createToastInterface(eventBus);\n }\n\n const toast = getCurrentInstance() ? inject(toastInjectionKey) : undefined;\n return toast ? toast : createToastInterface(globalEventBus);\n};\n\nexport default VueToastificationPlugin;\nexport { EventBus, POSITION, TYPE, createToastInterface, globalEventBus, provideToast, toastInjectionKey, useToast };\n//# sourceMappingURL=index.js.map\n","var JsonWebTokenError = require('./JsonWebTokenError');\n\nvar TokenExpiredError = function (message, expiredAt) {\n JsonWebTokenError.call(this, message);\n this.name = 'TokenExpiredError';\n this.expiredAt = expiredAt;\n};\n\nTokenExpiredError.prototype = Object.create(JsonWebTokenError.prototype);\n\nTokenExpiredError.prototype.constructor = TokenExpiredError;\n\nmodule.exports = TokenExpiredError;","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","/**\r\n * DevExtreme (esm/ui/shared/grouped_data_converter_mixin.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"../../core/utils/type\";\r\nvar isCorrectStructure = data => Array.isArray(data) && data.every(item => {\r\n var hasTwoFields = 2 === Object.keys(item).length;\r\n var hasCorrectFields = \"key\" in item && \"items\" in item;\r\n return hasTwoFields && hasCorrectFields && Array.isArray(item.items)\r\n});\r\nexport default {\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n var hasSimpleItems = false;\r\n var data = {};\r\n if (this._getGroupedOption() && isCorrectStructure(dataSource)) {\r\n data = dataSource.reduce((accumulator, item) => {\r\n var items = item.items.map(innerItem => {\r\n if (!isObject(innerItem)) {\r\n innerItem = {\r\n text: innerItem\r\n };\r\n hasSimpleItems = true\r\n }\r\n if (!(\"key\" in innerItem)) {\r\n innerItem.key = item.key\r\n }\r\n return innerItem\r\n });\r\n return accumulator.concat(items)\r\n }, []);\r\n dataSource = {\r\n store: {\r\n type: \"array\",\r\n data: data\r\n },\r\n group: {\r\n selector: \"key\",\r\n keepInitialKeyOrder: true\r\n }\r\n };\r\n if (hasSimpleItems) {\r\n dataSource.searchExpr = \"text\"\r\n }\r\n }\r\n return dataSource\r\n }\r\n};\r\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","/**\r\n * DevExtreme (esm/events/index.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nexport var on = eventsEngine.on;\r\nexport var one = eventsEngine.one;\r\nexport var off = eventsEngine.off;\r\nexport var trigger = eventsEngine.trigger;\r\nexport var triggerHandler = eventsEngine.triggerHandler;\r\nexport var Event = eventsEngine.Event;\r\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","/**\r\n * DevExtreme (esm/events/contextmenu.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent,\r\n isMouseEvent\r\n} from \"./utils/index\";\r\nimport holdEvent from \"./hold\";\r\nvar CONTEXTMENU_NAMESPACE = \"dxContexMenu\";\r\nvar CONTEXTMENU_NAMESPACED_EVENT_NAME = addNamespace(\"contextmenu\", CONTEXTMENU_NAMESPACE);\r\nvar HOLD_NAMESPACED_EVENT_NAME = addNamespace(holdEvent.name, CONTEXTMENU_NAMESPACE);\r\nvar CONTEXTMENU_EVENT_NAME = \"dxcontextmenu\";\r\nvar ContextMenu = Class.inherit({\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, CONTEXTMENU_NAMESPACED_EVENT_NAME, this._contextMenuHandler.bind(this));\r\n if (touch || devices.isSimulator()) {\r\n eventsEngine.on($element, HOLD_NAMESPACED_EVENT_NAME, this._holdHandler.bind(this))\r\n }\r\n },\r\n _holdHandler: function(e) {\r\n if (isMouseEvent(e) && !devices.isSimulator()) {\r\n return\r\n }\r\n this._fireContextMenu(e)\r\n },\r\n _contextMenuHandler: function(e) {\r\n this._fireContextMenu(e)\r\n },\r\n _fireContextMenu: function(e) {\r\n return fireEvent({\r\n type: CONTEXTMENU_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\" + CONTEXTMENU_NAMESPACE)\r\n }\r\n});\r\nregisterEvent(CONTEXTMENU_EVENT_NAME, new ContextMenu);\r\nexport var name = CONTEXTMENU_EVENT_NAME;\r\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","/**\r\n * DevExtreme (esm/events/hold.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n eventData,\r\n eventDelta\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar abs = Math.abs;\r\nvar HOLD_EVENT_NAME = \"dxhold\";\r\nvar HOLD_TIMEOUT = 750;\r\nvar TOUCH_BOUNDARY = 5;\r\nvar HoldEmitter = Emitter.inherit({\r\n start: function(e) {\r\n this._startEventData = eventData(e);\r\n this._startTimer(e)\r\n },\r\n _startTimer: function(e) {\r\n var holdTimeout = \"timeout\" in this ? this.timeout : HOLD_TIMEOUT;\r\n this._holdTimer = setTimeout(function() {\r\n this._requestAccept(e);\r\n this._fireEvent(HOLD_EVENT_NAME, e, {\r\n target: e.target\r\n });\r\n this._forgetAccept()\r\n }.bind(this), holdTimeout)\r\n },\r\n move: function(e) {\r\n if (this._touchWasMoved(e)) {\r\n this._cancel(e)\r\n }\r\n },\r\n _touchWasMoved: function(e) {\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n return abs(delta.x) > TOUCH_BOUNDARY || abs(delta.y) > TOUCH_BOUNDARY\r\n },\r\n end: function() {\r\n this._stopTimer()\r\n },\r\n _stopTimer: function() {\r\n clearTimeout(this._holdTimer)\r\n },\r\n cancel: function() {\r\n this._stopTimer()\r\n },\r\n dispose: function() {\r\n this._stopTimer()\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: HoldEmitter,\r\n bubble: true,\r\n events: [HOLD_EVENT_NAME]\r\n});\r\nexport default {\r\n name: HOLD_EVENT_NAME\r\n};\r\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","/**\r\n * DevExtreme (esm/core/utils/view_port.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport callbacks from \"./callbacks\";\r\nvar changeCallback = callbacks();\r\nvar $originalViewPort = $();\r\nvar value = function() {\r\n var $current;\r\n return function(element) {\r\n if (!arguments.length) {\r\n return $current\r\n }\r\n var $element = $(element);\r\n $originalViewPort = $element;\r\n var isNewViewportFound = !!$element.length;\r\n var prevViewPort = value();\r\n $current = isNewViewportFound ? $element : $(\"body\");\r\n changeCallback.fire(isNewViewportFound ? value() : $(), prevViewPort)\r\n }\r\n}();\r\nready((function() {\r\n value(\".dx-viewport\")\r\n}));\r\nexport {\r\n value,\r\n changeCallback\r\n};\r\nexport function originalViewPort() {\r\n return $originalViewPort\r\n}\r\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","/**\r\n * DevExtreme (esm/ui/drop_down_menu.js)\r\n * Version: 21.1.5\r\n * Build date: Mon Aug 02 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport Button from \"./button\";\r\nimport Popover from \"./popover\";\r\nimport DataHelperMixin from \"../data_helper\";\r\nimport List from \"./list\";\r\nimport {\r\n isMaterial\r\n} from \"./themes\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../core/templates/child_default_template\";\r\nvar DROP_DOWN_MENU_CLASS = \"dx-dropdownmenu\";\r\nvar DROP_DOWN_MENU_POPUP_CLASS = \"dx-dropdownmenu-popup\";\r\nvar DROP_DOWN_MENU_POPUP_WRAPPER_CLASS = \"dx-dropdownmenu-popup-wrapper\";\r\nvar DROP_DOWN_MENU_LIST_CLASS = \"dx-dropdownmenu-list\";\r\nvar DROP_DOWN_MENU_BUTTON_CLASS = \"dx-dropdownmenu-button\";\r\nvar POPUP_OPTION_MAP = {\r\n popupWidth: \"width\",\r\n popupHeight: \"height\",\r\n popupMaxHeight: \"maxHeight\",\r\n popupAutoResizeEnabled: \"autoResizeEnabled\"\r\n};\r\nvar BUTTON_OPTION_MAP = {\r\n buttonIcon: \"icon\",\r\n buttonText: \"text\",\r\n buttonWidth: \"width\",\r\n buttonHeight: \"height\",\r\n buttonTemplate: \"template\"\r\n};\r\nvar DropDownMenu = Widget.inherit({\r\n _supportedKeys: function() {\r\n var extension = {};\r\n if (!this.option(\"opened\") || !this._list.option(\"focusedElement\")) {\r\n extension = this._button._supportedKeys()\r\n }\r\n return extend(this.callBase(), extension, {\r\n tab: function() {\r\n this._popup && this._popup.hide()\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n items: [],\r\n onItemClick: null,\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n buttonText: \"\",\r\n buttonIcon: \"overflow\",\r\n buttonWidth: void 0,\r\n buttonHeight: void 0,\r\n buttonTemplate: \"content\",\r\n onButtonClick: null,\r\n usePopover: false,\r\n popupWidth: \"auto\",\r\n popupHeight: \"auto\",\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n opened: false,\r\n selectionMode: \"none\",\r\n selectedItemKeys: [],\r\n deferRendering: false,\r\n popupPosition: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\",\r\n offset: {\r\n v: 1\r\n }\r\n },\r\n popupAnimation: void 0,\r\n onItemRendered: null,\r\n menuWidget: List,\r\n popupMaxHeight: void 0,\r\n closeOnClick: true,\r\n useInkRipple: false,\r\n container: void 0,\r\n popupAutoResizeEnabled: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n usePopover: true\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 4\r\n }\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n popupPosition: {\r\n my: \"top \" + (this.option(\"rtlEnabled\") ? \"left\" : \"right\"),\r\n at: \"top \" + (this.option(\"rtlEnabled\") ? \"left\" : \"right\"),\r\n collision: \"flipfit\"\r\n },\r\n popupAnimation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 0\r\n },\r\n to: {\r\n scale: 1\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 1\r\n },\r\n to: {\r\n scale: 0\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n if (\"android\" === devices.current().platform) {\r\n if (!options.popupPosition) {\r\n options.popupPosition = {\r\n at: (options.usePopover ? \"bottom \" : \"top \") + (options.rtlEnabled ? \"left\" : \"right\")\r\n }\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_MENU_CLASS);\r\n this._initDataSource();\r\n this._initItemClickAction();\r\n this._initButtonClickAction()\r\n },\r\n _initItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initButtonClickAction: function() {\r\n this._buttonClickAction = this._createActionByOption(\"onButtonClick\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new ChildDefaultTemplate(\"content\")\r\n });\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n this._renderButton();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.setAria({\r\n role: \"menubar\",\r\n haspopup: true,\r\n expanded: this.option(\"opened\")\r\n })\r\n },\r\n _renderContentImpl: function() {\r\n if (this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n if (this._popup) {\r\n this._popup.$element().remove();\r\n delete this._$popup\r\n }\r\n },\r\n _renderButton: function() {\r\n var $button = this.$element().addClass(DROP_DOWN_MENU_BUTTON_CLASS);\r\n var config = this._buttonOptions();\r\n this._button = this._createComponent($button, Button, config)\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this._button._toggleActiveState($element, value, e)\r\n },\r\n _buttonOptions: function() {\r\n return {\r\n text: this.option(\"buttonText\"),\r\n icon: this.option(\"buttonIcon\"),\r\n width: this.option(\"buttonWidth\"),\r\n height: this.option(\"buttonHeight\"),\r\n useInkRipple: this.option(\"useInkRipple\"),\r\n template: this.option(\"buttonTemplate\"),\r\n focusStateEnabled: false,\r\n onClick: function(e) {\r\n this.option(\"opened\", !this.option(\"opened\"));\r\n this._buttonClickAction(e)\r\n }.bind(this)\r\n }\r\n },\r\n _toggleMenuVisibility: function(opened) {\r\n var state = void 0 === opened ? !this._popup.option(\"visible\") : opened;\r\n if (opened) {\r\n this._renderPopup()\r\n }\r\n this._popup.toggle(state);\r\n this.setAria(\"expanded\", state)\r\n },\r\n _renderPopup: function() {\r\n if (this._$popup) {\r\n return\r\n }\r\n var $popup = this._$popup = $(\"
    \").appendTo(this.$element());\r\n var config = this._popupOptions();\r\n this._popup = this._createComponent($popup, Popover, config)\r\n },\r\n _popupOptions: function() {\r\n var usePopup = !this.option(\"usePopover\");\r\n return {\r\n onInitialized: function(args) {\r\n args.component.$wrapper().addClass(DROP_DOWN_MENU_POPUP_WRAPPER_CLASS).toggleClass(DROP_DOWN_MENU_POPUP_CLASS, usePopup)\r\n },\r\n visible: this.option(\"opened\"),\r\n deferRendering: false,\r\n contentTemplate: function(contentElement) {\r\n this._renderList(contentElement)\r\n }.bind(this),\r\n position: this.option(\"popupPosition\"),\r\n animation: this.option(\"popupAnimation\"),\r\n onOptionChanged: function(args) {\r\n if (\"visible\" === args.name) {\r\n this.option(\"opened\", args.value)\r\n }\r\n }.bind(this),\r\n target: this.$element(),\r\n height: this.option(\"popupHeight\"),\r\n width: this.option(\"popupWidth\"),\r\n maxHeight: this.option(\"popupMaxHeight\"),\r\n container: this.option(\"container\"),\r\n autoResizeEnabled: this.option(\"popupAutoResizeEnabled\")\r\n }\r\n },\r\n _renderList: function(contentElement) {\r\n var $content = $(contentElement);\r\n var listConfig = this._listOptions();\r\n $content.addClass(DROP_DOWN_MENU_LIST_CLASS);\r\n this._list = this._createComponent($content, this.option(\"menuWidget\"), listConfig);\r\n this._list._getAriaTarget = function() {\r\n return this.$element()\r\n }.bind(this);\r\n this._setListDataSource();\r\n var listMaxHeight = .5 * $(window).height();\r\n if ($content.height() > listMaxHeight) {\r\n $content.height(listMaxHeight)\r\n }\r\n },\r\n _listOptions: function() {\r\n return {\r\n pageLoadMode: \"scrollBottom\",\r\n indicateLoading: false,\r\n noDataText: \"\",\r\n selectionMode: this.option(\"selectionMode\"),\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n onItemClick: function(e) {\r\n if (this.option(\"closeOnClick\")) {\r\n this.option(\"opened\", false)\r\n }\r\n this._itemClickAction(e)\r\n }.bind(this),\r\n tabIndex: -1,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n }\r\n }\r\n },\r\n _setListDataSource: function() {\r\n if (this._list) {\r\n this._list.option(\"dataSource\", this._dataSource || this.option(\"items\"))\r\n }\r\n delete this._deferRendering\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._list])\r\n },\r\n _toggleVisibility: function(visible) {\r\n this.callBase(visible);\r\n this._button.option(\"visible\", visible)\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n switch (name) {\r\n case \"items\":\r\n case \"dataSource\":\r\n if (this.option(\"deferRendering\") && !this.option(\"opened\")) {\r\n this._deferRendering = true\r\n } else {\r\n this._refreshDataSource();\r\n this._setListDataSource()\r\n }\r\n break;\r\n case \"itemTemplate\":\r\n if (this._list) {\r\n this._list.option(name, this._getTemplate(value))\r\n }\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._buttonClickAction();\r\n break;\r\n case \"buttonIcon\":\r\n case \"buttonText\":\r\n case \"buttonWidth\":\r\n case \"buttonHeight\":\r\n case \"buttonTemplate\":\r\n this._button.option(BUTTON_OPTION_MAP[name], value);\r\n this._renderPopup();\r\n break;\r\n case \"popupWidth\":\r\n case \"popupHeight\":\r\n case \"popupMaxHeight\":\r\n case \"popupAutoResizeEnabled\":\r\n this._popup.option(POPUP_OPTION_MAP[name], value);\r\n break;\r\n case \"usePopover\":\r\n case \"menuWidget\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"activeStateEnabled\":\r\n if (this._list) {\r\n this._list.option(name, value)\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectionMode\":\r\n case \"selectedItemKeys\":\r\n case \"onItemRendered\":\r\n if (this._list) {\r\n this._list.option(name, value)\r\n }\r\n break;\r\n case \"opened\":\r\n if (this._deferRendering) {\r\n this._refreshDataSource();\r\n this._setListDataSource()\r\n }\r\n this._toggleMenuVisibility(value);\r\n break;\r\n case \"deferRendering\":\r\n case \"popupPosition\":\r\n case \"closeOnClick\":\r\n break;\r\n case \"container\":\r\n this._popup && this._popup.option(args.name, args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n open: function() {\r\n this.option(\"opened\", true)\r\n },\r\n close: function() {\r\n this.option(\"opened\", false)\r\n }\r\n}).include(DataHelperMixin);\r\nregisterComponent(\"dxDropDownMenu\", DropDownMenu);\r\nexport default DropDownMenu;\r\n","/*!\n * pinia v2.0.0-beta.5\n * (c) 2021 Eduardo San Martin Morote\n * @license MIT\n */\nimport { warn, toRaw, ref, markRaw, getCurrentInstance, inject, provide, computed, reactive, watch, onUnmounted, isRef, isReactive, createApp } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\r\n * setActivePinia must be called to handle SSR at the top of functions like\r\n * `fetch`, `setup`, `serverPrefetch` and others\r\n */\r\nlet activePinia;\r\n/**\r\n * Sets or unsets the active pinia. Used in SSR and internally when calling\r\n * actions and getters\r\n *\r\n * @param pinia - Pinia instance\r\n */\r\nconst setActivePinia = (pinia) => (activePinia = pinia);\r\n/**\r\n * Get the currently active pinia\r\n */\r\nconst getActivePinia = () => {\r\n if ((process.env.NODE_ENV !== 'production') && !activePinia) {\r\n warn(`[🍍]: getActivePinia was called with no active Pinia. Did you forget to install pinia?\\n\\n` +\r\n `const pinia = createPinia()\\n` +\r\n `app.use(pinia)\\n\\n` +\r\n `This will fail in production.`);\r\n }\r\n return activePinia;\r\n};\r\n/**\r\n * Map of stores based on a Pinia instance. Allows setting and retrieving stores\r\n * for the current running application (with its pinia).\r\n */\r\nconst storesMap = new WeakMap();\r\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\no) {\r\n return (o &&\r\n typeof o === 'object' &&\r\n Object.prototype.toString.call(o) === '[object Object]' &&\r\n typeof o.toJSON !== 'function');\r\n}\r\n// type DeepReadonly = { readonly [P in keyof T]: DeepReadonly }\r\n// TODO: can we change these to numbers?\r\n/**\r\n * Possible types for SubscriptionCallback\r\n */\r\nvar MutationType;\r\n(function (MutationType) {\r\n /**\r\n * Direct mutation of the state:\r\n *\r\n * - `store.name = 'new name'`\r\n * - `store.$state.name = 'new name'`\r\n * - `store.list.push('new item')`\r\n */\r\n MutationType[\"direct\"] = \"direct\";\r\n /**\r\n * Mutated the state with `$patch` and an object\r\n *\r\n * - `store.$patch({ name: 'newName' })`\r\n */\r\n MutationType[\"patchObject\"] = \"patch object\";\r\n /**\r\n * Mutated the state with `$patch` and a function\r\n *\r\n * - `store.$patch(state => state.name = 'newName')`\r\n */\r\n MutationType[\"patchFunction\"] = \"patch function\";\r\n // maybe reset? for $state = {} and $reset\r\n})(MutationType || (MutationType = {}));\n\nconst IS_CLIENT = typeof window !== 'undefined';\n\n/*\r\n * FileSaver.js A saveAs() FileSaver implementation.\r\n *\r\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\r\n * Morote.\r\n *\r\n * License : MIT\r\n */\r\n// The one and only way of getting global scope in all environments\r\n// https://stackoverflow.com/q/3277182/1008999\r\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\r\n ? window\r\n : typeof self === 'object' && self.self === self\r\n ? self\r\n : typeof global === 'object' && global.global === global\r\n ? global\r\n : typeof globalThis === 'object'\r\n ? globalThis\r\n : { HTMLElement: null })();\r\nfunction bom(blob, { autoBom = false } = {}) {\r\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\r\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\r\n if (autoBom &&\r\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\r\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\r\n }\r\n return blob;\r\n}\r\nfunction download(url, name, opts) {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.onload = function () {\r\n saveAs(xhr.response, name, opts);\r\n };\r\n xhr.onerror = function () {\r\n console.error('could not download file');\r\n };\r\n xhr.send();\r\n}\r\nfunction corsEnabled(url) {\r\n const xhr = new XMLHttpRequest();\r\n // use sync to avoid popup blocker\r\n xhr.open('HEAD', url, false);\r\n try {\r\n xhr.send();\r\n }\r\n catch (e) { }\r\n return xhr.status >= 200 && xhr.status <= 299;\r\n}\r\n// `a.click()` doesn't work for all browsers (#465)\r\nfunction click(node) {\r\n try {\r\n node.dispatchEvent(new MouseEvent('click'));\r\n }\r\n catch (e) {\r\n const evt = document.createEvent('MouseEvents');\r\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\r\n node.dispatchEvent(evt);\r\n }\r\n}\r\nconst _navigator = \r\n typeof navigator === 'object' ? navigator : { userAgent: '' };\r\n// Detect WebView inside a native macOS app by ruling out all browsers\r\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\r\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\r\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\r\n /AppleWebKit/.test(_navigator.userAgent) &&\r\n !/Safari/.test(_navigator.userAgent))();\r\nconst saveAs = !IS_CLIENT\r\n ? () => { } // noop\r\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\r\n 'download' in HTMLAnchorElement.prototype && !isMacOSWebView\r\n ? downloadSaveAs\r\n : // Use msSaveOrOpenBlob as a second approach\r\n 'msSaveOrOpenBlob' in _navigator\r\n ? msSaveAs\r\n : // Fallback to using FileReader and a popup\r\n fileSaverSaveAs;\r\nfunction downloadSaveAs(blob, name = 'download', opts) {\r\n const a = document.createElement('a');\r\n a.download = name;\r\n a.rel = 'noopener'; // tabnabbing\r\n // TODO: detect chrome extensions & packaged apps\r\n // a.target = '_blank'\r\n if (typeof blob === 'string') {\r\n // Support regular links\r\n a.href = blob;\r\n if (a.origin !== location.origin) {\r\n if (corsEnabled(a.href)) {\r\n download(blob, name, opts);\r\n }\r\n else {\r\n a.target = '_blank';\r\n click(a);\r\n }\r\n }\r\n else {\r\n click(a);\r\n }\r\n }\r\n else {\r\n // Support blobs\r\n a.href = URL.createObjectURL(blob);\r\n setTimeout(function () {\r\n URL.revokeObjectURL(a.href);\r\n }, 4e4); // 40s\r\n setTimeout(function () {\r\n click(a);\r\n }, 0);\r\n }\r\n}\r\nfunction msSaveAs(blob, name = 'download', opts) {\r\n if (typeof blob === 'string') {\r\n if (corsEnabled(blob)) {\r\n download(blob, name, opts);\r\n }\r\n else {\r\n const a = document.createElement('a');\r\n a.href = blob;\r\n a.target = '_blank';\r\n setTimeout(function () {\r\n click(a);\r\n });\r\n }\r\n }\r\n else {\r\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\r\n }\r\n}\r\nfunction fileSaverSaveAs(blob, name, opts, popup) {\r\n // Open a popup immediately do go around popup blocker\r\n // Mostly only available on user interaction and the fileReader is async so...\r\n popup = popup || open('', '_blank');\r\n if (popup) {\r\n popup.document.title = popup.document.body.innerText = 'downloading...';\r\n }\r\n if (typeof blob === 'string')\r\n return download(blob, name, opts);\r\n const force = blob.type === 'application/octet-stream';\r\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\r\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\r\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\r\n typeof FileReader !== 'undefined') {\r\n // Safari doesn't allow downloading of blob URLs\r\n const reader = new FileReader();\r\n reader.onloadend = function () {\r\n let url = reader.result;\r\n if (typeof url !== 'string') {\r\n popup = null;\r\n throw new Error('Wrong reader.result type');\r\n }\r\n url = isChromeIOS\r\n ? url\r\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\r\n if (popup) {\r\n popup.location.href = url;\r\n }\r\n else {\r\n location.assign(url);\r\n }\r\n popup = null; // reverse-tabnabbing #460\r\n };\r\n reader.readAsDataURL(blob);\r\n }\r\n else {\r\n const url = URL.createObjectURL(blob);\r\n if (popup)\r\n popup.location.assign(url);\r\n else\r\n location.href = url;\r\n popup = null; // reverse-tabnabbing #460\r\n setTimeout(function () {\r\n URL.revokeObjectURL(url);\r\n }, 4e4); // 40s\r\n }\r\n}\n\n/**\r\n * Shows a toast or console.log\r\n *\r\n * @param message - message to log\r\n * @param type - different color of the tooltip\r\n */\r\nfunction toastMessage(message, type) {\r\n const piniaMessage = '🍍 ' + message;\r\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\r\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\r\n }\r\n else if (type === 'error') {\r\n console.error(piniaMessage);\r\n }\r\n else if (type === 'warn') {\r\n console.warn(piniaMessage);\r\n }\r\n else {\r\n console.log(piniaMessage);\r\n }\r\n}\r\nfunction isPinia(o) {\r\n return '_a' in o && 'install' in o;\r\n}\n\nfunction checkClipboardAccess() {\r\n if (!('clipboard' in navigator)) {\r\n toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\r\n return true;\r\n }\r\n}\r\nfunction checkNotFocusedError(error) {\r\n if (error.message.toLowerCase().includes('document is not focused')) {\r\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\r\n return true;\r\n }\r\n}\r\nasync function actionGlobalCopyState(pinia) {\r\n if (checkClipboardAccess())\r\n return;\r\n try {\r\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\r\n toastMessage('Global state copied to clipboard.');\r\n }\r\n catch (error) {\r\n if (checkNotFocusedError(error))\r\n return;\r\n toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\r\n console.error(error);\r\n }\r\n}\r\nasync function actionGlobalPasteState(pinia) {\r\n if (checkClipboardAccess())\r\n return;\r\n try {\r\n pinia.state.value = JSON.parse(await navigator.clipboard.readText());\r\n toastMessage('Global state pasted from clipboard.');\r\n }\r\n catch (error) {\r\n if (checkNotFocusedError(error))\r\n return;\r\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\r\n console.error(error);\r\n }\r\n}\r\nasync function actionGlobalSaveState(pinia) {\r\n try {\r\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\r\n type: 'text/plain;charset=utf-8',\r\n }), 'pinia-state.json');\r\n }\r\n catch (error) {\r\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\r\n console.error(error);\r\n }\r\n}\r\nlet fileInput;\r\nfunction getFileOpener() {\r\n if (!fileInput) {\r\n fileInput = document.createElement('input');\r\n fileInput.type = 'file';\r\n fileInput.accept = '.json';\r\n }\r\n function openFile() {\r\n return new Promise((resolve, reject) => {\r\n fileInput.onchange = async () => {\r\n const files = fileInput.files;\r\n if (!files)\r\n return resolve(null);\r\n const file = files.item(0);\r\n if (!file)\r\n return resolve(null);\r\n return resolve({ text: await file.text(), file });\r\n };\r\n fileInput.oncancel = () => resolve(null);\r\n fileInput.onerror = reject;\r\n fileInput.click();\r\n });\r\n }\r\n return openFile;\r\n}\r\nasync function actionGlobalOpenStateFile(pinia) {\r\n try {\r\n const open = await getFileOpener();\r\n const result = await open();\r\n if (!result)\r\n return;\r\n const { text, file } = result;\r\n pinia.state.value = JSON.parse(text);\r\n toastMessage(`Global state imported from \"${file.name}\".`);\r\n }\r\n catch (error) {\r\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\r\n console.error(error);\r\n }\r\n}\n\nfunction formatDisplay(display) {\r\n return {\r\n _custom: {\r\n display,\r\n },\r\n };\r\n}\r\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\r\nconst PINIA_ROOT_ID = '_root';\r\nfunction formatStoreForInspectorTree(store) {\r\n return '$id' in store\r\n ? {\r\n id: store.$id,\r\n label: store.$id,\r\n }\r\n : {\r\n id: PINIA_ROOT_ID,\r\n label: PINIA_ROOT_LABEL,\r\n };\r\n}\r\nfunction formatStoreForInspectorState(store) {\r\n if (isPinia(store)) {\r\n const state = {\r\n state: Object.keys(store.state.value).map((storeId) => ({\r\n editable: true,\r\n key: storeId,\r\n value: store.state.value[storeId],\r\n })),\r\n };\r\n // TODO: use this version when possible\r\n // Object.keys(store.state.value).forEach((storeId) => {\r\n // const currentState = store.state.value[storeId]\r\n // state[storeId] = Object.keys(currentState).map((key) => ({\r\n // // is not possible to made editable because no way to get the storeId in\r\n // // edit inspector state callback\r\n // editable: false,\r\n // key,\r\n // value: currentState[key],\r\n // }))\r\n // })\r\n return state;\r\n }\r\n const state = {\r\n state: Object.keys(store.$state).map((key) => ({\r\n editable: true,\r\n key,\r\n // @ts-expect-error\r\n value: store.$state[key],\r\n })),\r\n };\r\n // avoid adding empty getters\r\n if (store._getters && store._getters.length) {\r\n state.getters = store._getters.map((getterName) => ({\r\n editable: false,\r\n key: getterName,\r\n // @ts-expect-error\r\n value: store[getterName],\r\n }));\r\n }\r\n if (store._customProperties.size) {\r\n state.customProperties = Array.from(store._customProperties).map((key) => ({\r\n editable: true,\r\n key,\r\n // @ts-expect-error\r\n value: store[key],\r\n }));\r\n }\r\n return state;\r\n}\r\nfunction formatEventData(events) {\r\n if (!events)\r\n return {};\r\n if (Array.isArray(events)) {\r\n // TODO: handle add and delete for arrays and objects\r\n return events.reduce((data, event) => {\r\n data.keys.push(event.key);\r\n data.operations.push(event.type);\r\n data.oldValue[event.key] = event.oldValue;\r\n data.newValue[event.key] = event.newValue;\r\n return data;\r\n }, {\r\n oldValue: {},\r\n keys: [],\r\n operations: [],\r\n newValue: {},\r\n });\r\n }\r\n else {\r\n return {\r\n operation: formatDisplay(events.type),\r\n key: formatDisplay(events.key),\r\n oldValue: events.oldValue,\r\n newValue: events.newValue,\r\n };\r\n }\r\n}\r\nfunction formatMutationType(type) {\r\n switch (type) {\r\n case MutationType.direct:\r\n return 'mutation';\r\n case MutationType.patchFunction:\r\n return '$patch';\r\n case MutationType.patchObject:\r\n return '$patch';\r\n default:\r\n return 'unknown';\r\n }\r\n}\n\n/**\r\n * Registered stores used for devtools.\r\n */\r\nconst registeredStores = /*#__PURE__*/ new Map();\r\nlet isAlreadyInstalled;\r\n// timeline can be paused when directly changing the state\r\nlet isTimelineActive = true;\r\nconst componentStateTypes = [];\r\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\r\nconst INSPECTOR_ID = 'pinia';\r\nfunction addDevtools(app, store) {\r\n // TODO: we probably need to ensure the latest version of the store is kept:\r\n // without effectScope, multiple stores will be created and will have a\r\n // limited lifespan for getters.\r\n // add a dev only variable that is removed in unmounted and replace the store\r\n let hasSubscribed = true;\r\n const storeType = '🍍 ' + store.$id;\r\n if (!registeredStores.has(store.$id)) {\r\n registeredStores.set(store.$id, store);\r\n componentStateTypes.push(storeType);\r\n hasSubscribed = false;\r\n }\r\n setupDevtoolsPlugin({\r\n id: 'dev.esm.pinia',\r\n label: 'Pinia 🍍',\r\n logo: 'https://pinia.esm.dev/logo.svg',\r\n packageName: 'pinia',\r\n homepage: 'https://pinia.esm.dev',\r\n componentStateTypes,\r\n app,\r\n }, (api) => {\r\n if (!isAlreadyInstalled) {\r\n api.addTimelineLayer({\r\n id: MUTATIONS_LAYER_ID,\r\n label: `Pinia 🍍`,\r\n color: 0xe5df88,\r\n });\r\n api.addInspector({\r\n id: INSPECTOR_ID,\r\n label: 'Pinia 🍍',\r\n icon: 'storage',\r\n treeFilterPlaceholder: 'Search stores',\r\n actions: [\r\n {\r\n icon: 'content_copy',\r\n action: () => {\r\n actionGlobalCopyState(store._p);\r\n },\r\n tooltip: 'Serialize and copy the state',\r\n },\r\n {\r\n icon: 'content_paste',\r\n action: async () => {\r\n await actionGlobalPasteState(store._p);\r\n api.sendInspectorTree(INSPECTOR_ID);\r\n api.sendInspectorState(INSPECTOR_ID);\r\n },\r\n tooltip: 'Replace the state with the content of your clipboard',\r\n },\r\n {\r\n icon: 'save',\r\n action: () => {\r\n actionGlobalSaveState(store._p);\r\n },\r\n tooltip: 'Save the state as a JSON file',\r\n },\r\n {\r\n icon: 'folder_open',\r\n action: async () => {\r\n await actionGlobalOpenStateFile(store._p);\r\n api.sendInspectorTree(INSPECTOR_ID);\r\n api.sendInspectorState(INSPECTOR_ID);\r\n },\r\n tooltip: 'Import the state from a JSON file',\r\n },\r\n ],\r\n });\r\n api.on.inspectComponent((payload, ctx) => {\r\n const proxy = (payload.componentInstance &&\r\n payload.componentInstance.proxy);\r\n if (proxy && proxy._pStores) {\r\n const piniaStores = payload.componentInstance.proxy._pStores;\r\n Object.values(piniaStores).forEach((store) => {\r\n payload.instanceData.state.push({\r\n type: storeType,\r\n key: 'state',\r\n editable: true,\r\n value: store.$state,\r\n });\r\n if (store._getters && store._getters.length) {\r\n payload.instanceData.state.push({\r\n type: storeType,\r\n key: 'getters',\r\n editable: false,\r\n value: store._getters.reduce((getters, key) => {\r\n // @ts-expect-error\r\n getters[key] = store[key];\r\n return getters;\r\n }, {}),\r\n });\r\n }\r\n });\r\n }\r\n });\r\n api.on.getInspectorTree((payload) => {\r\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\r\n let stores = [store._p];\r\n stores = stores.concat(Array.from(registeredStores.values()));\r\n payload.rootNodes = (payload.filter\r\n ? stores.filter((store) => '$id' in store\r\n ? store.$id\r\n .toLowerCase()\r\n .includes(payload.filter.toLowerCase())\r\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\r\n : stores).map(formatStoreForInspectorTree);\r\n }\r\n });\r\n api.on.getInspectorState((payload) => {\r\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\r\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\r\n ? store._p\r\n : registeredStores.get(payload.nodeId);\r\n if (!inspectedStore) {\r\n // this could be the selected store restored for a different project\r\n // so it's better not to say anything here\r\n return;\r\n }\r\n if (inspectedStore) {\r\n payload.state = formatStoreForInspectorState(inspectedStore);\r\n }\r\n }\r\n });\r\n api.on.editInspectorState((payload, ctx) => {\r\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\r\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\r\n ? store._p\r\n : registeredStores.get(payload.nodeId);\r\n if (!inspectedStore) {\r\n return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\r\n }\r\n const { path } = payload;\r\n if (!isPinia(store)) {\r\n // access only the state\r\n if (path.length !== 1 ||\r\n !store._customProperties.has(path[0]) ||\r\n path[0] in store.$state) {\r\n path.unshift('$state');\r\n }\r\n }\r\n else {\r\n path.unshift('state', 'value');\r\n }\r\n isTimelineActive = false;\r\n payload.set(inspectedStore, path, payload.state.value);\r\n isTimelineActive = true;\r\n }\r\n });\r\n api.on.editComponentState((payload) => {\r\n if (payload.type.startsWith('🍍')) {\r\n const storeId = payload.type.replace(/^🍍\\s*/, '');\r\n const store = registeredStores.get(storeId);\r\n if (!store) {\r\n return toastMessage(`store \"${storeId}\" not found`, 'error');\r\n }\r\n const { path } = payload;\r\n if (path[0] !== 'state') {\r\n return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\r\n }\r\n // rewrite the first entry to be able to directly set the state as\r\n // well as any other path\r\n path[0] = '$state';\r\n isTimelineActive = false;\r\n payload.set(store, path, payload.state.value);\r\n isTimelineActive = true;\r\n }\r\n });\r\n isAlreadyInstalled = true;\r\n }\r\n else {\r\n api.sendInspectorTree(INSPECTOR_ID);\r\n api.sendInspectorState(INSPECTOR_ID);\r\n }\r\n // avoid subscribing to mutations and actions twice\r\n if (hasSubscribed)\r\n return;\r\n store.$onAction(({ after, onError, name, args, store }) => {\r\n const groupId = runningActionId++;\r\n api.addTimelineEvent({\r\n layerId: MUTATIONS_LAYER_ID,\r\n event: {\r\n time: Date.now(),\r\n title: '🛫 ' + name,\r\n subtitle: 'start',\r\n data: {\r\n action: formatDisplay(name),\r\n args,\r\n },\r\n groupId,\r\n },\r\n });\r\n after((result) => {\r\n api.addTimelineEvent({\r\n layerId: MUTATIONS_LAYER_ID,\r\n event: {\r\n time: Date.now(),\r\n title: '🛬 ' + name,\r\n subtitle: 'end',\r\n data: {\r\n action: formatDisplay(name),\r\n args,\r\n result,\r\n },\r\n groupId,\r\n },\r\n });\r\n });\r\n onError((error) => {\r\n api.addTimelineEvent({\r\n layerId: MUTATIONS_LAYER_ID,\r\n event: {\r\n time: Date.now(),\r\n logType: 'error',\r\n title: '💥 ' + name,\r\n subtitle: 'end',\r\n data: {\r\n action: formatDisplay(name),\r\n args,\r\n error,\r\n },\r\n groupId,\r\n },\r\n });\r\n });\r\n });\r\n store.$subscribe(({ events, type }, state) => {\r\n if (!isTimelineActive)\r\n return;\r\n // rootStore.state[store.id] = state\r\n api.notifyComponentUpdate();\r\n api.sendInspectorState(INSPECTOR_ID);\r\n const eventData = {\r\n time: Date.now(),\r\n title: formatMutationType(type),\r\n data: formatEventData(events),\r\n groupId: activeAction,\r\n };\r\n // reset for the next mutation\r\n activeAction = undefined;\r\n if (type === MutationType.patchFunction) {\r\n eventData.subtitle = '⤵️';\r\n }\r\n else if (type === MutationType.patchObject) {\r\n eventData.subtitle = '🧩';\r\n }\r\n else if (events && !Array.isArray(events)) {\r\n eventData.subtitle = events.type;\r\n }\r\n if (events) {\r\n eventData.data['rawEvent(s)'] = {\r\n _custom: {\r\n display: 'DebuggerEvent',\r\n type: 'object',\r\n tooltip: 'raw DebuggerEvent[]',\r\n value: events,\r\n },\r\n };\r\n }\r\n api.addTimelineEvent({\r\n layerId: MUTATIONS_LAYER_ID,\r\n event: eventData,\r\n });\r\n });\r\n // trigger an update so it can display new registered stores\r\n // @ts-ignore\r\n api.notifyComponentUpdate();\r\n toastMessage(`\"${store.$id}\" store installed`);\r\n });\r\n}\r\nlet runningActionId = 0;\r\nlet activeAction;\r\n/**\r\n * pinia.use(devtoolsPlugin)\r\n */\r\nfunction devtoolsPlugin({ app, store, options, pinia }) {\r\n // original actions of the store as they are given by pinia. We are going to override them\r\n const actions = Object.keys(options.actions || {}).reduce((storeActions, actionName) => {\r\n // @ts-expect-error\r\n // use toRaw to avoid tracking #541\r\n storeActions[actionName] = toRaw(store)[actionName];\r\n return storeActions;\r\n }, {});\r\n for (const actionName in actions) {\r\n // @ts-expect-error\r\n store[actionName] = function () {\r\n setActivePinia(pinia);\r\n // the running action id is incremented in a before action hook\r\n const _actionId = runningActionId;\r\n const trackedStore = new Proxy(store, {\r\n get(...args) {\r\n activeAction = _actionId;\r\n return Reflect.get(...args);\r\n },\r\n set(...args) {\r\n activeAction = _actionId;\r\n return Reflect.set(...args);\r\n },\r\n });\r\n return actions[actionName].apply(trackedStore, arguments);\r\n };\r\n }\r\n addDevtools(app, \r\n // @ts-expect-error: FIXME: if possible...\r\n store);\r\n}\n\n/**\r\n * Creates a Pinia instance to be used by the application\r\n */\r\nfunction createPinia() {\r\n // NOTE: here we could check the window object for a state and directly set it\r\n // if there is anything like it with Vue 3 SSR\r\n const state = ref({});\r\n let localApp;\r\n let _p = [];\r\n // plugins added before calling app.use(pinia)\r\n const toBeInstalled = [];\r\n const pinia = markRaw({\r\n install(app) {\r\n pinia._a = localApp = app;\r\n app.provide(piniaSymbol, pinia);\r\n app.config.globalProperties.$pinia = pinia;\r\n if (IS_CLIENT) {\r\n // this allows calling useStore() outside of a component setup after\r\n // installing pinia's plugin\r\n setActivePinia(pinia);\r\n }\r\n toBeInstalled.forEach((plugin) => _p.push(plugin));\r\n },\r\n use(plugin) {\r\n if (!localApp) {\r\n toBeInstalled.push(plugin);\r\n }\r\n else {\r\n _p.push(plugin);\r\n }\r\n return this;\r\n },\r\n _p,\r\n // it's actually undefined here\r\n _a: localApp,\r\n state,\r\n });\r\n // pinia devtools rely on dev only features so they cannot be forced unless\r\n // the dev build of Vue is used\r\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\r\n pinia.use(devtoolsPlugin);\r\n }\r\n return pinia;\r\n}\n\nfunction innerPatch(target, patchToApply) {\r\n // TODO: get all keys like symbols as well\r\n for (const key in patchToApply) {\r\n const subPatch = patchToApply[key];\r\n const targetValue = target[key];\r\n if (isPlainObject(targetValue) &&\r\n isPlainObject(subPatch) &&\r\n !isRef(subPatch) &&\r\n !isReactive(subPatch)) {\r\n target[key] = innerPatch(targetValue, subPatch);\r\n }\r\n else {\r\n // @ts-ignore\r\n target[key] = subPatch;\r\n }\r\n }\r\n return target;\r\n}\r\nconst { assign } = Object;\r\n/**\r\n * Create an object of computed properties referring to\r\n *\r\n * @param rootStateRef - pinia.state\r\n * @param id - unique name\r\n */\r\nfunction computedFromState(rootStateRef, id) {\r\n // let asComputed = computed()\r\n const reactiveObject = {};\r\n const state = rootStateRef.value[id];\r\n for (const key in state) {\r\n // @ts-expect-error: the key matches\r\n reactiveObject[key] = computed({\r\n get: () => rootStateRef.value[id][key],\r\n set: (value) => (rootStateRef.value[id][key] = value),\r\n });\r\n }\r\n return reactiveObject;\r\n}\r\n/**\r\n * Creates a store with its state object. This is meant to be augmented with getters and actions\r\n *\r\n * @param id - unique identifier of the store, like a name. eg: main, cart, user\r\n * @param buildState - function to build the initial state\r\n * @param initialState - initial state applied to the store, Must be correctly typed to infer typings\r\n */\r\nfunction initStore($id, buildState = () => ({}), initialState) {\r\n const pinia = getActivePinia();\r\n pinia.state.value[$id] = initialState || buildState();\r\n // const state: Ref = toRef(_p.state.value, $id)\r\n let isListening = true;\r\n let subscriptions = markRaw([]);\r\n let actionSubscriptions = markRaw([]);\r\n let debuggerEvents;\r\n function $patch(partialStateOrMutator) {\r\n let subscriptionMutation;\r\n isListening = false;\r\n // reset the debugger events since patches are sync\r\n /* istanbul ignore else */\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n debuggerEvents = [];\r\n }\r\n if (typeof partialStateOrMutator === 'function') {\r\n partialStateOrMutator(pinia.state.value[$id]);\r\n subscriptionMutation = {\r\n type: MutationType.patchFunction,\r\n storeId: $id,\r\n events: debuggerEvents,\r\n };\r\n }\r\n else {\r\n innerPatch(pinia.state.value[$id], partialStateOrMutator);\r\n subscriptionMutation = {\r\n type: MutationType.patchObject,\r\n payload: partialStateOrMutator,\r\n storeId: $id,\r\n events: debuggerEvents,\r\n };\r\n }\r\n isListening = true;\r\n // because we paused the watcher, we need to manually call the subscriptions\r\n subscriptions.forEach((callback) => {\r\n callback(subscriptionMutation, pinia.state.value[$id]);\r\n });\r\n }\r\n function $subscribe(callback) {\r\n subscriptions.push(callback);\r\n // watch here to link the subscription to the current active instance\r\n // e.g. inside the setup of a component\r\n const options = { deep: true, flush: 'sync' };\r\n /* istanbul ignore else */\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n options.onTrigger = (event) => {\r\n if (isListening) {\r\n debuggerEvents = event;\r\n }\r\n else {\r\n // let patch send all the events together later\r\n /* istanbul ignore else */\r\n if (Array.isArray(debuggerEvents)) {\r\n debuggerEvents.push(event);\r\n }\r\n else {\r\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\r\n }\r\n }\r\n };\r\n }\r\n const stopWatcher = watch(() => pinia.state.value[$id], (state, oldState) => {\r\n if (isListening) {\r\n callback({\r\n storeId: $id,\r\n type: MutationType.direct,\r\n events: debuggerEvents,\r\n }, state);\r\n }\r\n }, options);\r\n const removeSubscription = () => {\r\n const idx = subscriptions.indexOf(callback);\r\n if (idx > -1) {\r\n subscriptions.splice(idx, 1);\r\n stopWatcher();\r\n }\r\n };\r\n if (getCurrentInstance()) {\r\n onUnmounted(removeSubscription);\r\n }\r\n return removeSubscription;\r\n }\r\n function $onAction(callback) {\r\n actionSubscriptions.push(callback);\r\n const removeSubscription = () => {\r\n const idx = actionSubscriptions.indexOf(callback);\r\n if (idx > -1) {\r\n actionSubscriptions.splice(idx, 1);\r\n }\r\n };\r\n if (getCurrentInstance()) {\r\n onUnmounted(removeSubscription);\r\n }\r\n return removeSubscription;\r\n }\r\n function $reset() {\r\n pinia.state.value[$id] = buildState();\r\n }\r\n const storeWithState = {\r\n $id,\r\n _p: pinia,\r\n _as: actionSubscriptions,\r\n // $state is added underneath\r\n $patch,\r\n $subscribe,\r\n $onAction,\r\n $reset,\r\n };\r\n const injectionSymbol = (process.env.NODE_ENV !== 'production')\r\n ? Symbol(`PiniaStore(${$id})`)\r\n : /* istanbul ignore next */\r\n Symbol();\r\n return [\r\n storeWithState,\r\n {\r\n get: () => pinia.state.value[$id],\r\n set: (newState) => {\r\n isListening = false;\r\n pinia.state.value[$id] = newState;\r\n isListening = true;\r\n },\r\n },\r\n injectionSymbol,\r\n ];\r\n}\r\nconst noop = () => { };\r\n/**\r\n * Creates a store bound to the lifespan of where the function is called. This\r\n * means creating the store inside of a component's setup will bound it to the\r\n * lifespan of that component while creating it outside of a component will\r\n * create an ever living store\r\n *\r\n * @param partialStore - store with state returned by initStore\r\n * @param descriptor - descriptor to setup $state property\r\n * @param $id - unique name of the store\r\n * @param getters - getters of the store\r\n * @param actions - actions of the store\r\n */\r\nfunction buildStoreToUse(partialStore, descriptor, $id, getters = {}, actions = {}, options) {\r\n const pinia = getActivePinia();\r\n const computedGetters = {};\r\n for (const getterName in getters) {\r\n // @ts-ignore: it's only readonly for the users\r\n computedGetters[getterName] = computed(() => {\r\n setActivePinia(pinia);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n // @ts-expect-error: the argument count is correct\r\n return getters[getterName].call(store, store);\r\n });\r\n }\r\n const wrappedActions = {};\r\n for (const actionName in actions) {\r\n wrappedActions[actionName] = function () {\r\n setActivePinia(pinia);\r\n const args = Array.from(arguments);\r\n const localStore = this || store;\r\n let afterCallback = noop;\r\n let onErrorCallback = noop;\r\n function after(callback) {\r\n afterCallback = callback;\r\n }\r\n function onError(callback) {\r\n onErrorCallback = callback;\r\n }\r\n partialStore._as.forEach((callback) => {\r\n // @ts-expect-error\r\n callback({ args, name: actionName, store: localStore, after, onError });\r\n });\r\n let ret;\r\n try {\r\n ret = actions[actionName].apply(localStore, args);\r\n Promise.resolve(ret).then(afterCallback).catch(onErrorCallback);\r\n }\r\n catch (error) {\r\n onErrorCallback(error);\r\n throw error;\r\n }\r\n return ret;\r\n };\r\n }\r\n const store = reactive(assign((process.env.NODE_ENV !== 'production') && IS_CLIENT\r\n ? // devtools custom properties\r\n {\r\n _customProperties: markRaw(new Set()),\r\n }\r\n : {}, partialStore, \r\n // using this means no new properties can be added as state\r\n computedFromState(pinia.state, $id), computedGetters, wrappedActions));\r\n // use this instead of a computed with setter to be able to create it anywhere\r\n // without linking the computed lifespan to wherever the store is first\r\n // created.\r\n Object.defineProperty(store, '$state', descriptor);\r\n // add getters for devtools\r\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\r\n store._getters = markRaw(Object.keys(getters));\r\n }\r\n // apply all plugins\r\n pinia._p.forEach((extender) => {\r\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\r\n // @ts-expect-error: conflict between A and ActionsTree\r\n const extensions = extender({ store, app: pinia._a, pinia, options });\r\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\r\n assign(store, extensions);\r\n }\r\n else {\r\n // @ts-expect-error: conflict between A and ActionsTree\r\n assign(store, extender({ store, app: pinia._a, pinia, options }));\r\n }\r\n });\r\n return store;\r\n}\r\n/**\r\n * Creates a `useStore` function that retrieves the store instance\r\n * @param options - options to define the store\r\n */\r\nfunction defineStore(options) {\r\n const { id, state, getters, actions } = options;\r\n function useStore(pinia) {\r\n const currentInstance = getCurrentInstance();\r\n // only run provide when pinia hasn't been manually passed\r\n const shouldProvide = currentInstance && !pinia;\r\n // avoid injecting if `useStore` when not possible\r\n pinia =\r\n // in test mode, ignore the argument provided as we can always retrieve a\r\n // pinia instance with getActivePinia()\r\n ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\r\n (currentInstance && inject(piniaSymbol));\r\n if (pinia)\r\n setActivePinia(pinia);\r\n // TODO: worth warning on server if no piniaKey as it can leak data\r\n pinia = getActivePinia();\r\n let storeCache = storesMap.get(pinia);\r\n if (!storeCache)\r\n storesMap.set(pinia, (storeCache = new Map()));\r\n let storeAndDescriptor = storeCache.get(id);\r\n let store;\r\n if (!storeAndDescriptor) {\r\n storeAndDescriptor = initStore(id, state, pinia.state.value[id]);\r\n // @ts-expect-error: annoying to type\r\n storeCache.set(id, storeAndDescriptor);\r\n store = buildStoreToUse(storeAndDescriptor[0], storeAndDescriptor[1], id, getters, actions, options);\r\n // allow children to reuse this store instance to avoid creating a new\r\n // store for each child\r\n if (shouldProvide) {\r\n provide(storeAndDescriptor[2], store);\r\n }\r\n }\r\n else {\r\n store =\r\n (currentInstance && inject(storeAndDescriptor[2], null)) ||\r\n buildStoreToUse(storeAndDescriptor[0], storeAndDescriptor[1], id, getters, actions, options);\r\n }\r\n // save stores in instances to access them devtools\r\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT && currentInstance && currentInstance.proxy) {\r\n const vm = currentInstance.proxy;\r\n const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\r\n // @ts-expect-error: still can't cast Store with generics to Store\r\n cache[store.$id] = store;\r\n }\r\n return store;\r\n }\r\n // needed by map helpers\r\n useStore.$id = id;\r\n return useStore;\r\n}\n\nfunction getCachedStore(vm, useStore) {\r\n const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\r\n const id = useStore.$id;\r\n return (cache[id] ||\r\n (cache[id] = useStore(vm.$pinia)));\r\n}\r\nlet mapStoreSuffix = 'Store';\r\n/**\r\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\r\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\r\n * interface if you need are using TypeScript.\r\n *\r\n * @param suffix - new suffix\r\n */\r\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\r\n) {\r\n mapStoreSuffix = suffix;\r\n}\r\n/**\r\n * Allows using stores without the composition API (`setup()`) by generating an\r\n * object to be spread in the `computed` field of a component. It accepts a list\r\n * of store definitions.\r\n *\r\n * @example\r\n * ```js\r\n * export default {\r\n * computed: {\r\n * // other computed properties\r\n * ...mapStores(useUserStore, useCartStore)\r\n * },\r\n *\r\n * created() {\r\n * this.userStore // store with id \"user\"\r\n * this.cartStore // store with id \"cart\"\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @param stores - list of stores to map to an object\r\n */\r\nfunction mapStores(...stores) {\r\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\r\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\r\n `Replace\\n` +\r\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\r\n `with\\n` +\r\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\r\n `This will fail in production if not fixed.`);\r\n stores = stores[0];\r\n }\r\n return stores.reduce((reduced, useStore) => {\r\n // @ts-ignore: $id is added by defineStore\r\n reduced[useStore.$id + mapStoreSuffix] = function () {\r\n return getCachedStore(this, useStore);\r\n };\r\n return reduced;\r\n }, {});\r\n}\r\n/**\r\n * Allows using state and getters from one store without using the composition\r\n * API (`setup()`) by generating an object to be spread in the `computed` field\r\n * of a component.\r\n *\r\n * @param useStore - store to map from\r\n * @param keysOrMapper - array or object\r\n */\r\nfunction mapState(useStore, keysOrMapper) {\r\n return Array.isArray(keysOrMapper)\r\n ? keysOrMapper.reduce((reduced, key) => {\r\n reduced[key] = function () {\r\n // @ts-expect-error\r\n return getCachedStore(this, useStore)[key];\r\n };\r\n return reduced;\r\n }, {})\r\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\r\n reduced[key] = function () {\r\n const store = getCachedStore(this, useStore);\r\n const storeKey = keysOrMapper[key];\r\n // for some reason TS is unable to infer the type of storeKey to be a\r\n // function\r\n return typeof storeKey === 'function'\r\n ? storeKey.call(this, store)\r\n : store[storeKey];\r\n };\r\n return reduced;\r\n }, {});\r\n}\r\n/**\r\n * Alias for `mapState()`. You should use `mapState()` instead.\r\n * @deprecated use `mapState()` instead.\r\n */\r\nconst mapGetters = mapState;\r\n/**\r\n * Allows directly using actions from your store without using the composition\r\n * API (`setup()`) by generating an object to be spread in the `methods` field\r\n * of a component.\r\n *\r\n * @param useStore - store to map from\r\n * @param keysOrMapper - array or object\r\n */\r\nfunction mapActions(useStore, keysOrMapper) {\r\n return Array.isArray(keysOrMapper)\r\n ? keysOrMapper.reduce((reduced, key) => {\r\n // @ts-expect-error\r\n reduced[key] = function (...args) {\r\n // @ts-expect-error\r\n return getCachedStore(this, useStore)[key](...args);\r\n };\r\n return reduced;\r\n }, {})\r\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\r\n // @ts-expect-error\r\n reduced[key] = function (...args) {\r\n // @ts-expect-error\r\n return getCachedStore(this, useStore)[keysOrMapper[key]](...args);\r\n };\r\n return reduced;\r\n }, {});\r\n}\r\n/**\r\n * Allows using state and getters from one store without using the composition\r\n * API (`setup()`) by generating an object to be spread in the `computed` field\r\n * of a component.\r\n *\r\n * @param useStore - store to map from\r\n * @param keysOrMapper - array or object\r\n */\r\nfunction mapWritableState(useStore, keysOrMapper) {\r\n return Array.isArray(keysOrMapper)\r\n ? keysOrMapper.reduce((reduced, key) => {\r\n // @ts-ignore\r\n reduced[key] = {\r\n get() {\r\n // @ts-expect-error\r\n return getCachedStore(this, useStore)[key];\r\n },\r\n set(value) {\r\n // it's easier to type it here as any\r\n // @ts-expect-error\r\n return (getCachedStore(this, useStore)[key] = value);\r\n },\r\n };\r\n return reduced;\r\n }, {})\r\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\r\n // @ts-ignore\r\n reduced[key] = {\r\n get() {\r\n // @ts-expect-error\r\n return getCachedStore(this, useStore)[keysOrMapper[key]];\r\n },\r\n set(value) {\r\n // it's easier to type it here as any\r\n // @ts-expect-error\r\n return (getCachedStore(this, useStore)[keysOrMapper[key]] =\r\n value);\r\n },\r\n };\r\n return reduced;\r\n }, {});\r\n}\n\n/**\r\n * Creates a pinia instance designed for unit tests that **requires mocking**\r\n * the stores. By default, **all actions are mocked** and therefore not\r\n * executed. This allows you to unit test your store and components separately.\r\n * You can change this with the `stubActions` option. If you are using jest,\r\n * they are replaced with `jest.fn()`, otherwise, you must provide your own\r\n * `createSpy` option.\r\n *\r\n * @internal - STILL NOT RELEASED, DO NOT USE. It will be likely moved to its\r\n * own package.\r\n *\r\n * @param options - options to configure the testing pinia\r\n * @returns a augmented pinia instance\r\n */\r\nfunction createTestingPinia({ plugins = [], stubActions = true, stubPatch = false, fakeApp = false, createSpy, } = {}) {\r\n const pinia = createPinia();\r\n plugins.forEach((plugin) => pinia.use(plugin));\r\n // @ts-ignore\r\n createSpy = createSpy || (typeof jest !== undefined && jest.fn);\r\n if (!createSpy) {\r\n throw new Error('You must configure the `createSpy` option.');\r\n }\r\n // Cache of all actions to share them across all stores\r\n const spiedActions = new Map();\r\n pinia.use(({ store, options }) => {\r\n if (!spiedActions.has(options.id)) {\r\n spiedActions.set(options.id, {});\r\n }\r\n const actionsCache = spiedActions.get(options.id);\r\n Object.keys(options.actions || {}).forEach((action) => {\r\n actionsCache[action] =\r\n actionsCache[action] ||\r\n (stubActions\r\n ? createSpy()\r\n : // @ts-expect-error:\r\n createSpy(store[action]));\r\n // @ts-expect-error:\r\n store[action] = actionsCache[action];\r\n });\r\n store.$patch = stubPatch ? createSpy() : createSpy(store.$patch);\r\n });\r\n if (fakeApp) {\r\n const app = createApp({});\r\n app.use(pinia);\r\n }\r\n pinia._testing = true;\r\n setActivePinia(pinia);\r\n return Object.assign({\r\n resetSpyCache() {\r\n spiedActions.clear();\r\n },\r\n get app() {\r\n return this._a;\r\n },\r\n }, pinia);\r\n}\n\nexport { MutationType, createPinia, createTestingPinia, defineStore, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix };\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var bufferEqual = require('buffer-equal-constant-time');\nvar Buffer = require('safe-buffer').Buffer;\nvar crypto = require('crypto');\nvar formatEcdsa = require('ecdsa-sig-formatter');\nvar util = require('util');\n\nvar MSG_INVALID_ALGORITHM = '\"%s\" is not a valid algorithm.\\n Supported algorithms are:\\n \"HS256\", \"HS384\", \"HS512\", \"RS256\", \"RS384\", \"RS512\", \"PS256\", \"PS384\", \"PS512\", \"ES256\", \"ES384\", \"ES512\" and \"none\".'\nvar MSG_INVALID_SECRET = 'secret must be a string or buffer';\nvar MSG_INVALID_VERIFIER_KEY = 'key must be a string or a buffer';\nvar MSG_INVALID_SIGNER_KEY = 'key must be a string, a buffer or an object';\n\nvar supportsKeyObjects = typeof crypto.createPublicKey === 'function';\nif (supportsKeyObjects) {\n MSG_INVALID_VERIFIER_KEY += ' or a KeyObject';\n MSG_INVALID_SECRET += 'or a KeyObject';\n}\n\nfunction checkIsPublicKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.type !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.asymmetricKeyType !== 'string') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_VERIFIER_KEY);\n }\n};\n\nfunction checkIsPrivateKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return;\n }\n\n if (typeof key === 'object') {\n return;\n }\n\n throw typeError(MSG_INVALID_SIGNER_KEY);\n};\n\nfunction checkIsSecretKey(key) {\n if (Buffer.isBuffer(key)) {\n return;\n }\n\n if (typeof key === 'string') {\n return key;\n }\n\n if (!supportsKeyObjects) {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key !== 'object') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (key.type !== 'secret') {\n throw typeError(MSG_INVALID_SECRET);\n }\n\n if (typeof key.export !== 'function') {\n throw typeError(MSG_INVALID_SECRET);\n }\n}\n\nfunction fromBase64(base64) {\n return base64\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n}\n\nfunction toBase64(base64url) {\n base64url = base64url.toString();\n\n var padding = 4 - base64url.length % 4;\n if (padding !== 4) {\n for (var i = 0; i < padding; ++i) {\n base64url += '=';\n }\n }\n\n return base64url\n .replace(/\\-/g, '+')\n .replace(/_/g, '/');\n}\n\nfunction typeError(template) {\n var args = [].slice.call(arguments, 1);\n var errMsg = util.format.bind(util, template).apply(null, args);\n return new TypeError(errMsg);\n}\n\nfunction bufferOrString(obj) {\n return Buffer.isBuffer(obj) || typeof obj === 'string';\n}\n\nfunction normalizeInput(thing) {\n if (!bufferOrString(thing))\n thing = JSON.stringify(thing);\n return thing;\n}\n\nfunction createHmacSigner(bits) {\n return function sign(thing, secret) {\n checkIsSecretKey(secret);\n thing = normalizeInput(thing);\n var hmac = crypto.createHmac('sha' + bits, secret);\n var sig = (hmac.update(thing), hmac.digest('base64'))\n return fromBase64(sig);\n }\n}\n\nfunction createHmacVerifier(bits) {\n return function verify(thing, signature, secret) {\n var computedSig = createHmacSigner(bits)(thing, secret);\n return bufferEqual(Buffer.from(signature), Buffer.from(computedSig));\n }\n}\n\nfunction createKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n // Even though we are specifying \"RSA\" here, this works with ECDSA\n // keys as well.\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign(privateKey, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify(publicKey, signature, 'base64');\n }\n}\n\nfunction createPSSKeySigner(bits) {\n return function sign(thing, privateKey) {\n checkIsPrivateKey(privateKey);\n thing = normalizeInput(thing);\n var signer = crypto.createSign('RSA-SHA' + bits);\n var sig = (signer.update(thing), signer.sign({\n key: privateKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, 'base64'));\n return fromBase64(sig);\n }\n}\n\nfunction createPSSKeyVerifier(bits) {\n return function verify(thing, signature, publicKey) {\n checkIsPublicKey(publicKey);\n thing = normalizeInput(thing);\n signature = toBase64(signature);\n var verifier = crypto.createVerify('RSA-SHA' + bits);\n verifier.update(thing);\n return verifier.verify({\n key: publicKey,\n padding: crypto.constants.RSA_PKCS1_PSS_PADDING,\n saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST\n }, signature, 'base64');\n }\n}\n\nfunction createECDSASigner(bits) {\n var inner = createKeySigner(bits);\n return function sign() {\n var signature = inner.apply(null, arguments);\n signature = formatEcdsa.derToJose(signature, 'ES' + bits);\n return signature;\n };\n}\n\nfunction createECDSAVerifer(bits) {\n var inner = createKeyVerifier(bits);\n return function verify(thing, signature, publicKey) {\n signature = formatEcdsa.joseToDer(signature, 'ES' + bits).toString('base64');\n var result = inner(thing, signature, publicKey);\n return result;\n };\n}\n\nfunction createNoneSigner() {\n return function sign() {\n return '';\n }\n}\n\nfunction createNoneVerifier() {\n return function verify(thing, signature) {\n return signature === '';\n }\n}\n\nmodule.exports = function jwa(algorithm) {\n var signerFactories = {\n hs: createHmacSigner,\n rs: createKeySigner,\n ps: createPSSKeySigner,\n es: createECDSASigner,\n none: createNoneSigner,\n }\n var verifierFactories = {\n hs: createHmacVerifier,\n rs: createKeyVerifier,\n ps: createPSSKeyVerifier,\n es: createECDSAVerifer,\n none: createNoneVerifier,\n }\n var match = algorithm.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/i);\n if (!match)\n throw typeError(MSG_INVALID_ALGORITHM, algorithm);\n var algo = (match[1] || match[3]).toLowerCase();\n var bits = match[2];\n\n return {\n sign: signerFactories[algo](bits),\n verify: verifierFactories[algo](bits),\n }\n};\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","import { extend, isArray, isMap, isIntegerKey, isSymbol, hasOwn, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\n\nlet activeEffectScope;\r\nconst effectScopeStack = [];\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n this.active = true;\r\n this.effects = [];\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n run(fn) {\r\n if (this.active) {\r\n try {\r\n this.on();\r\n return fn();\r\n }\r\n finally {\r\n this.off();\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n on() {\r\n if (this.active) {\r\n effectScopeStack.push(this);\r\n activeEffectScope = this;\r\n }\r\n }\r\n off() {\r\n if (this.active) {\r\n effectScopeStack.pop();\r\n activeEffectScope = effectScopeStack[effectScopeStack.length - 1];\r\n }\r\n }\r\n stop(fromParent) {\r\n if (this.active) {\r\n this.effects.forEach(e => e.stop());\r\n this.cleanups.forEach(cleanup => cleanup());\r\n if (this.scopes) {\r\n this.scopes.forEach(e => e.stop(true));\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope) {\r\n scope = scope || activeEffectScope;\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`onScopeDispose() is called when there is no active effect scope` +\r\n ` to be associated with.`);\r\n }\r\n}\n\nconst createDep = (effects) => {\r\n const dep = new Set(effects);\r\n dep.w = 0;\r\n dep.n = 0;\r\n return dep;\r\n};\r\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\r\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\r\nconst initDepMarkers = ({ deps }) => {\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].w |= trackOpBit; // set was tracked\r\n }\r\n }\r\n};\r\nconst finalizeDepMarkers = (effect) => {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n let ptr = 0;\r\n for (let i = 0; i < deps.length; i++) {\r\n const dep = deps[i];\r\n if (wasTracked(dep) && !newTracked(dep)) {\r\n dep.delete(effect);\r\n }\r\n else {\r\n deps[ptr++] = dep;\r\n }\r\n // clear bits\r\n dep.w &= ~trackOpBit;\r\n dep.n &= ~trackOpBit;\r\n }\r\n deps.length = ptr;\r\n }\r\n};\n\nconst targetMap = new WeakMap();\r\n// The number of effects currently being tracked recursively.\r\nlet effectTrackDepth = 0;\r\nlet trackOpBit = 1;\r\n/**\r\n * The bitwise track markers support at most 30 levels op recursion.\r\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\r\n * When recursion depth is greater, fall back to using a full cleanup.\r\n */\r\nconst maxMarkerBits = 30;\r\nconst effectStack = [];\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nclass ReactiveEffect {\r\n constructor(fn, scheduler = null, scope) {\r\n this.fn = fn;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n recordEffectScope(this, scope);\r\n }\r\n run() {\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n if (!effectStack.includes(this)) {\r\n try {\r\n effectStack.push((activeEffect = this));\r\n enableTracking();\r\n trackOpBit = 1 << ++effectTrackDepth;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n initDepMarkers(this);\r\n }\r\n else {\r\n cleanupEffect(this);\r\n }\r\n return this.fn();\r\n }\r\n finally {\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n finalizeDepMarkers(this);\r\n }\r\n trackOpBit = 1 << --effectTrackDepth;\r\n resetTracking();\r\n effectStack.pop();\r\n const n = effectStack.length;\r\n activeEffect = n > 0 ? effectStack[n - 1] : undefined;\r\n }\r\n }\r\n }\r\n stop() {\r\n if (this.active) {\r\n cleanupEffect(this);\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction cleanupEffect(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn);\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (!isTracking()) {\r\n return;\r\n }\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = createDep()));\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { effect: activeEffect, target, type, key }\r\n : undefined;\r\n trackEffects(dep, eventInfo);\r\n}\r\nfunction isTracking() {\r\n return shouldTrack && activeEffect !== undefined;\r\n}\r\nfunction trackEffects(dep, debuggerEventExtraInfo) {\r\n let shouldTrack = false;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n if (!newTracked(dep)) {\r\n dep.n |= trackOpBit; // set newly tracked\r\n shouldTrack = !wasTracked(dep);\r\n }\r\n }\r\n else {\r\n // Full cleanup mode.\r\n shouldTrack = !dep.has(activeEffect);\r\n }\r\n if (shouldTrack) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\r\n activeEffect.onTrack(Object.assign({\r\n effect: activeEffect\r\n }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\" /* CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n deps = [...depsMap.values()];\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n deps.push(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* ADD */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n deps.push(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* DELETE */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* SET */:\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { target, type, key, newValue, oldValue, oldTarget }\r\n : undefined;\r\n if (deps.length === 1) {\r\n if (deps[0]) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(deps[0], eventInfo);\r\n }\r\n else {\r\n triggerEffects(deps[0]);\r\n }\r\n }\r\n }\r\n else {\r\n const effects = [];\r\n for (const dep of deps) {\r\n if (dep) {\r\n effects.push(...dep);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(createDep(effects), eventInfo);\r\n }\r\n else {\r\n triggerEffects(createDep(effects));\r\n }\r\n }\r\n}\r\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\r\n // spread into array for stabilization\r\n for (const effect of isArray(dep) ? dep : [...dep]) {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\r\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\r\n }\r\n if (effect.scheduler) {\r\n effect.scheduler();\r\n }\r\n else {\r\n effect.run();\r\n }\r\n }\r\n }\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol)\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return arr[key](...args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n });\r\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - does not apply for Array + integer key.\r\n const shouldUnwrap = !targetIsArray || !isIntegerKey(key);\r\n return shouldUnwrap ? res.value : res;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (!shallow) {\r\n value = toRaw(value);\r\n oldValue = toRaw(oldValue);\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key)\r\n ? Number(key) < target.length\r\n : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n // don't trigger if target is something up in the prototype chain of original\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\nfunction deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\" /* HAS */, key);\r\n }\r\n return result;\r\n}\r\nfunction ownKeys(target) {\r\n track(target, \"iterate\" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\r\n return Reflect.ownKeys(target);\r\n}\r\nconst mutableHandlers = {\r\n get,\r\n set,\r\n deleteProperty,\r\n has,\r\n ownKeys\r\n};\r\nconst readonlyHandlers = {\r\n get: readonlyGet,\r\n set(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n },\r\n deleteProperty(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\r\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, rawKey);\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n else if (target !== rawTarget) {\r\n // #3602 readonly(reactive(Map))\r\n // ensure that the nested reactive `Map` can do tracking for itself\r\n target.get(key);\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, rawKey);\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* DELETE */ ? false : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\n iteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n });\r\n return [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n ];\r\n}\r\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (target && target[\"__v_isReadonly\" /* IS_READONLY */]) {\r\n return target;\r\n }\r\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\r\n}\r\n/**\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\r\n}\r\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n // target is already a Proxy, return it.\r\n // exception: calling readonly() on a reactive object\r\n if (target[\"__v_raw\" /* RAW */] &&\r\n !(isReadonly && target[\"__v_isReactive\" /* IS_REACTIVE */])) {\r\n return target;\r\n }\r\n // target already has corresponding Proxy\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n // only a whitelist of value types can be observed.\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* RAW */]);\r\n }\r\n return !!(value && value[\"__v_isReactive\" /* IS_REACTIVE */]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\" /* IS_READONLY */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\" /* RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* SKIP */, true);\r\n return value;\r\n}\n\nfunction trackRefValue(ref) {\r\n if (isTracking()) {\r\n ref = toRaw(ref);\r\n if (!ref.dep) {\r\n ref.dep = createDep();\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n trackEffects(ref.dep, {\r\n target: ref,\r\n type: \"get\" /* GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n trackEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction triggerRefValue(ref, newVal) {\r\n ref = toRaw(ref);\r\n if (ref.dep) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(ref.dep, {\r\n target: ref,\r\n type: \"set\" /* SET */,\r\n key: 'value',\r\n newValue: newVal\r\n });\r\n }\r\n else {\r\n triggerEffects(ref.dep);\r\n }\r\n }\r\n}\r\nconst convert = (val) => isObject(val) ? reactive(val) : val;\r\nfunction isRef(r) {\r\n return Boolean(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nclass RefImpl {\r\n constructor(value, _shallow) {\r\n this._shallow = _shallow;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._rawValue = _shallow ? value : toRaw(value);\r\n this._value = _shallow ? value : convert(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n newVal = this._shallow ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = this._shallow ? newVal : convert(newVal);\r\n triggerRefValue(this, newVal);\r\n }\r\n }\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nfunction triggerRef(ref) {\r\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key) {\r\n this._object = _object;\r\n this._key = _key;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n return this._object[this._key];\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key) {\r\n const val = object[key];\r\n return isRef(val) ? val : new ObjectRefImpl(object, key);\r\n}\n\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly) {\r\n this._setter = _setter;\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this.effect = new ReactiveEffect(getter, () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n triggerRefValue(this);\r\n }\r\n });\r\n this[\"__v_isReadonly\" /* IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n trackRefValue(self);\r\n if (self._dirty) {\r\n self._dirty = false;\r\n self._value = self.effect.run();\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\nfunction computed(getterOrOptions, debugOptions) {\r\n let getter;\r\n let setter;\r\n if (isFunction(getterOrOptions)) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, isFunction(getterOrOptions) || !getterOrOptions.set);\r\n if ((process.env.NODE_ENV !== 'production') && debugOptions) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\n\nvar _a;\r\nconst tick = Promise.resolve();\r\nconst queue = [];\r\nlet queued = false;\r\nconst scheduler = (fn) => {\r\n queue.push(fn);\r\n if (!queued) {\r\n queued = true;\r\n tick.then(flush);\r\n }\r\n};\r\nconst flush = () => {\r\n for (let i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n queue.length = 0;\r\n queued = false;\r\n};\r\nclass DeferredComputedRefImpl {\r\n constructor(getter) {\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this[_a] = true;\r\n let compareTarget;\r\n let hasCompareTarget = false;\r\n let scheduled = false;\r\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\r\n if (this.dep) {\r\n if (computedTrigger) {\r\n compareTarget = this._value;\r\n hasCompareTarget = true;\r\n }\r\n else if (!scheduled) {\r\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\r\n scheduled = true;\r\n hasCompareTarget = false;\r\n scheduler(() => {\r\n if (this.effect.active && this._get() !== valueToCompare) {\r\n triggerRefValue(this);\r\n }\r\n scheduled = false;\r\n });\r\n }\r\n // chained upstream computeds are notified synchronously to ensure\r\n // value invalidation in case of sync access; normal effects are\r\n // deferred to be triggered in scheduler.\r\n for (const e of this.dep) {\r\n if (e.computed) {\r\n e.scheduler(true /* computedTrigger */);\r\n }\r\n }\r\n }\r\n this._dirty = true;\r\n });\r\n this.effect.computed = true;\r\n }\r\n _get() {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n return (this._value = this.effect.run());\r\n }\r\n return this._value;\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n return toRaw(this)._get();\r\n }\r\n}\r\n_a = \"__v_isReadonly\" /* IS_READONLY */;\r\nfunction deferredComputed(getter) {\r\n return new DeferredComputedRefImpl(getter);\r\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { toRaw, ref, pauseTracking, resetTracking, reactive, computed, isRef, shallowReactive, trigger, ReactiveEffect, isProxy, shallowReadonly, track, EffectScope, markRaw, proxyRefs, isReactive, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, computed, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { extend, isFunction as isFunction$1, isArray, hasOwn, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, isModelListener, isObject as isObject$1, remove, isString, invokeArrayFns, isPromise as isPromise$1, NOOP, def, isReservedProp, EMPTY_ARR, capitalize, toRawType, makeMap, NO, getGlobalThis, normalizeClass, normalizeStyle, isGloballyWhitelisted, hasChanged, isSet, isMap, isPlainObject } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const globalObject = typeof global !== 'undefined'\r\n ? global\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : {};\r\n globalObject.__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, component) {\r\n if (!component) {\r\n warn(`HMR API usage is out of date.\\n` +\r\n `Please upgrade vue-loader/vite/rollup-plugin-vue or other relevant ` +\r\n `dependency that handles Vue SFC compilation.`);\r\n component = {};\r\n }\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n component: isClassComponent(component) ? component.__vccOpts : component,\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n if (newRender)\r\n record.component.render = newRender;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n Array.from(record.instances).forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n const { component, instances } = record;\r\n if (!hmrDirtyComponents.has(component)) {\r\n // 1. Update existing comp definition to match new one\r\n newComp = isClassComponent(newComp) ? newComp.__vccOpts : newComp;\r\n extend(component, newComp);\r\n for (const key in component) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete component[key];\r\n }\r\n }\r\n // 2. Mark component dirty. This forces the renderer to replace the component\r\n // on patch.\r\n hmrDirtyComponents.add(component);\r\n // 3. Make sure to unmark the component after the reload.\r\n queuePostFlushCb(() => {\r\n hmrDirtyComponents.delete(component);\r\n });\r\n }\r\n Array.from(instances).forEach(instance => {\r\n // invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(component);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(component);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n });\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nfunction setDevtoolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n // TODO queue if devtools is undefined\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment: Comment$1,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n if (!devtools)\r\n return;\r\n devtools.emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n if (!devtools)\r\n return;\r\n devtools.emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nconst deprecationData = {\r\n [\"GLOBAL_MOUNT\" /* GLOBAL_MOUNT */]: {\r\n message: `The global app bootstrapping API has changed: vm.$mount() and the \"el\" ` +\r\n `option have been removed. Use createApp(RootComponent).mount() instead.`,\r\n link: `https://v3.vuejs.org/guide/migration/global-api.html#mounting-app-instance`\r\n },\r\n [\"GLOBAL_MOUNT_CONTAINER\" /* GLOBAL_MOUNT_CONTAINER */]: {\r\n message: `Vue detected directives on the mount container. ` +\r\n `In Vue 3, the container is no longer considered part of the template ` +\r\n `and will not be processed/replaced.`,\r\n link: `https://v3.vuejs.org/guide/migration/mount-changes.html`\r\n },\r\n [\"GLOBAL_EXTEND\" /* GLOBAL_EXTEND */]: {\r\n message: `Vue.extend() has been removed in Vue 3. ` +\r\n `Use defineComponent() instead.`,\r\n link: `https://v3.vuejs.org/api/global-api.html#definecomponent`\r\n },\r\n [\"GLOBAL_PROTOTYPE\" /* GLOBAL_PROTOTYPE */]: {\r\n message: `Vue.prototype is no longer available in Vue 3. ` +\r\n `Use app.config.globalProperties instead.`,\r\n link: `https://v3.vuejs.org/guide/migration/global-api.html#vue-prototype-replaced-by-config-globalproperties`\r\n },\r\n [\"GLOBAL_SET\" /* GLOBAL_SET */]: {\r\n message: `Vue.set() has been removed as it is no longer needed in Vue 3. ` +\r\n `Simply use native JavaScript mutations.`\r\n },\r\n [\"GLOBAL_DELETE\" /* GLOBAL_DELETE */]: {\r\n message: `Vue.delete() has been removed as it is no longer needed in Vue 3. ` +\r\n `Simply use native JavaScript mutations.`\r\n },\r\n [\"GLOBAL_OBSERVABLE\" /* GLOBAL_OBSERVABLE */]: {\r\n message: `Vue.observable() has been removed. ` +\r\n `Use \\`import { reactive } from \"vue\"\\` from Composition API instead.`,\r\n link: `https://v3.vuejs.org/api/basic-reactivity.html`\r\n },\r\n [\"GLOBAL_PRIVATE_UTIL\" /* GLOBAL_PRIVATE_UTIL */]: {\r\n message: `Vue.util has been removed. Please refactor to avoid its usage ` +\r\n `since it was an internal API even in Vue 2.`\r\n },\r\n [\"CONFIG_SILENT\" /* CONFIG_SILENT */]: {\r\n message: `config.silent has been removed because it is not good practice to ` +\r\n `intentionally suppress warnings. You can use your browser console's ` +\r\n `filter features to focus on relevant messages.`\r\n },\r\n [\"CONFIG_DEVTOOLS\" /* CONFIG_DEVTOOLS */]: {\r\n message: `config.devtools has been removed. To enable devtools for ` +\r\n `production, configure the __VUE_PROD_DEVTOOLS__ compile-time flag.`,\r\n link: `https://github.com/vuejs/vue-next/tree/master/packages/vue#bundler-build-feature-flags`\r\n },\r\n [\"CONFIG_KEY_CODES\" /* CONFIG_KEY_CODES */]: {\r\n message: `config.keyCodes has been removed. ` +\r\n `In Vue 3, you can directly use the kebab-case key names as v-on modifiers.`,\r\n link: `https://v3.vuejs.org/guide/migration/keycode-modifiers.html`\r\n },\r\n [\"CONFIG_PRODUCTION_TIP\" /* CONFIG_PRODUCTION_TIP */]: {\r\n message: `config.productionTip has been removed.`,\r\n link: `https://v3.vuejs.org/guide/migration/global-api.html#config-productiontip-removed`\r\n },\r\n [\"CONFIG_IGNORED_ELEMENTS\" /* CONFIG_IGNORED_ELEMENTS */]: {\r\n message: () => {\r\n let msg = `config.ignoredElements has been removed.`;\r\n if (isRuntimeOnly()) {\r\n msg += ` Pass the \"isCustomElement\" option to @vue/compiler-dom instead.`;\r\n }\r\n else {\r\n msg += ` Use config.isCustomElement instead.`;\r\n }\r\n return msg;\r\n },\r\n link: `https://v3.vuejs.org/guide/migration/global-api.html#config-ignoredelements-is-now-config-iscustomelement`\r\n },\r\n [\"CONFIG_WHITESPACE\" /* CONFIG_WHITESPACE */]: {\r\n // this warning is only relevant in the full build when using runtime\r\n // compilation, so it's put in the runtime compatConfig list.\r\n message: `Vue 3 compiler's whitespace option will default to \"condense\" instead of ` +\r\n `\"preserve\". To suppress this warning, provide an explicit value for ` +\r\n `\\`config.compilerOptions.whitespace\\`.`\r\n },\r\n [\"CONFIG_OPTION_MERGE_STRATS\" /* CONFIG_OPTION_MERGE_STRATS */]: {\r\n message: `config.optionMergeStrategies no longer exposes internal strategies. ` +\r\n `Use custom merge functions instead.`\r\n },\r\n [\"INSTANCE_SET\" /* INSTANCE_SET */]: {\r\n message: `vm.$set() has been removed as it is no longer needed in Vue 3. ` +\r\n `Simply use native JavaScript mutations.`\r\n },\r\n [\"INSTANCE_DELETE\" /* INSTANCE_DELETE */]: {\r\n message: `vm.$delete() has been removed as it is no longer needed in Vue 3. ` +\r\n `Simply use native JavaScript mutations.`\r\n },\r\n [\"INSTANCE_DESTROY\" /* INSTANCE_DESTROY */]: {\r\n message: `vm.$destroy() has been removed. Use app.unmount() instead.`,\r\n link: `https://v3.vuejs.org/api/application-api.html#unmount`\r\n },\r\n [\"INSTANCE_EVENT_EMITTER\" /* INSTANCE_EVENT_EMITTER */]: {\r\n message: `vm.$on/$once/$off() have been removed. ` +\r\n `Use an external event emitter library instead.`,\r\n link: `https://v3.vuejs.org/guide/migration/events-api.html`\r\n },\r\n [\"INSTANCE_EVENT_HOOKS\" /* INSTANCE_EVENT_HOOKS */]: {\r\n message: event => `\"${event}\" lifecycle events are no longer supported. From templates, ` +\r\n `use the \"vnode\" prefix instead of \"hook:\". For example, @${event} ` +\r\n `should be changed to @vnode-${event.slice(5)}. ` +\r\n `From JavaScript, use Composition API to dynamically register lifecycle ` +\r\n `hooks.`,\r\n link: `https://v3.vuejs.org/guide/migration/vnode-lifecycle-events.html`\r\n },\r\n [\"INSTANCE_CHILDREN\" /* INSTANCE_CHILDREN */]: {\r\n message: `vm.$children has been removed. Consider refactoring your logic ` +\r\n `to avoid relying on direct access to child components.`,\r\n link: `https://v3.vuejs.org/guide/migration/children.html`\r\n },\r\n [\"INSTANCE_LISTENERS\" /* INSTANCE_LISTENERS */]: {\r\n message: `vm.$listeners has been removed. In Vue 3, parent v-on listeners are ` +\r\n `included in vm.$attrs and it is no longer necessary to separately use ` +\r\n `v-on=\"$listeners\" if you are already using v-bind=\"$attrs\". ` +\r\n `(Note: the Vue 3 behavior only applies if this compat config is disabled)`,\r\n link: `https://v3.vuejs.org/guide/migration/listeners-removed.html`\r\n },\r\n [\"INSTANCE_SCOPED_SLOTS\" /* INSTANCE_SCOPED_SLOTS */]: {\r\n message: `vm.$scopedSlots has been removed. Use vm.$slots instead.`,\r\n link: `https://v3.vuejs.org/guide/migration/slots-unification.html`\r\n },\r\n [\"INSTANCE_ATTRS_CLASS_STYLE\" /* INSTANCE_ATTRS_CLASS_STYLE */]: {\r\n message: componentName => `Component <${componentName || 'Anonymous'}> has \\`inheritAttrs: false\\` but is ` +\r\n `relying on class/style fallthrough from parent. In Vue 3, class/style ` +\r\n `are now included in $attrs and will no longer fallthrough when ` +\r\n `inheritAttrs is false. If you are already using v-bind=\"$attrs\" on ` +\r\n `component root it should render the same end result. ` +\r\n `If you are binding $attrs to a non-root element and expecting ` +\r\n `class/style to fallthrough on root, you will need to now manually bind ` +\r\n `them on root via :class=\"$attrs.class\".`,\r\n link: `https://v3.vuejs.org/guide/migration/attrs-includes-class-style.html`\r\n },\r\n [\"OPTIONS_DATA_FN\" /* OPTIONS_DATA_FN */]: {\r\n message: `The \"data\" option can no longer be a plain object. ` +\r\n `Always use a function.`,\r\n link: `https://v3.vuejs.org/guide/migration/data-option.html`\r\n },\r\n [\"OPTIONS_DATA_MERGE\" /* OPTIONS_DATA_MERGE */]: {\r\n message: (key) => `Detected conflicting key \"${key}\" when merging data option values. ` +\r\n `In Vue 3, data keys are merged shallowly and will override one another.`,\r\n link: `https://v3.vuejs.org/guide/migration/data-option.html#mixin-merge-behavior-change`\r\n },\r\n [\"OPTIONS_BEFORE_DESTROY\" /* OPTIONS_BEFORE_DESTROY */]: {\r\n message: `\\`beforeDestroy\\` has been renamed to \\`beforeUnmount\\`.`\r\n },\r\n [\"OPTIONS_DESTROYED\" /* OPTIONS_DESTROYED */]: {\r\n message: `\\`destroyed\\` has been renamed to \\`unmounted\\`.`\r\n },\r\n [\"WATCH_ARRAY\" /* WATCH_ARRAY */]: {\r\n message: `\"watch\" option or vm.$watch on an array value will no longer ` +\r\n `trigger on array mutation unless the \"deep\" option is specified. ` +\r\n `If current usage is intended, you can disable the compat behavior and ` +\r\n `suppress this warning with:` +\r\n `\\n\\n configureCompat({ ${\"WATCH_ARRAY\" /* WATCH_ARRAY */}: false })\\n`,\r\n link: `https://v3.vuejs.org/guide/migration/watch.html`\r\n },\r\n [\"PROPS_DEFAULT_THIS\" /* PROPS_DEFAULT_THIS */]: {\r\n message: (key) => `props default value function no longer has access to \"this\". The compat ` +\r\n `build only offers access to this.$options.` +\r\n `(found in prop \"${key}\")`,\r\n link: `https://v3.vuejs.org/guide/migration/props-default-this.html`\r\n },\r\n [\"CUSTOM_DIR\" /* CUSTOM_DIR */]: {\r\n message: (legacyHook, newHook) => `Custom directive hook \"${legacyHook}\" has been removed. ` +\r\n `Use \"${newHook}\" instead.`,\r\n link: `https://v3.vuejs.org/guide/migration/custom-directives.html`\r\n },\r\n [\"V_FOR_REF\" /* V_FOR_REF */]: {\r\n message: `Ref usage on v-for no longer creates array ref values in Vue 3. ` +\r\n `Consider using function refs or refactor to avoid ref usage altogether.`,\r\n link: `https://v3.vuejs.org/guide/migration/array-refs.html`\r\n },\r\n [\"V_ON_KEYCODE_MODIFIER\" /* V_ON_KEYCODE_MODIFIER */]: {\r\n message: `Using keyCode as v-on modifier is no longer supported. ` +\r\n `Use kebab-case key name modifiers instead.`,\r\n link: `https://v3.vuejs.org/guide/migration/keycode-modifiers.html`\r\n },\r\n [\"ATTR_FALSE_VALUE\" /* ATTR_FALSE_VALUE */]: {\r\n message: (name) => `Attribute \"${name}\" with v-bind value \\`false\\` will render ` +\r\n `${name}=\"false\" instead of removing it in Vue 3. To remove the attribute, ` +\r\n `use \\`null\\` or \\`undefined\\` instead. If the usage is intended, ` +\r\n `you can disable the compat behavior and suppress this warning with:` +\r\n `\\n\\n configureCompat({ ${\"ATTR_FALSE_VALUE\" /* ATTR_FALSE_VALUE */}: false })\\n`,\r\n link: `https://v3.vuejs.org/guide/migration/attribute-coercion.html`\r\n },\r\n [\"ATTR_ENUMERATED_COERCION\" /* ATTR_ENUMERATED_COERCION */]: {\r\n message: (name, value, coerced) => `Enumerated attribute \"${name}\" with v-bind value \\`${value}\\` will ` +\r\n `${value === null ? `be removed` : `render the value as-is`} instead of coercing the value to \"${coerced}\" in Vue 3. ` +\r\n `Always use explicit \"true\" or \"false\" values for enumerated attributes. ` +\r\n `If the usage is intended, ` +\r\n `you can disable the compat behavior and suppress this warning with:` +\r\n `\\n\\n configureCompat({ ${\"ATTR_ENUMERATED_COERCION\" /* ATTR_ENUMERATED_COERCION */}: false })\\n`,\r\n link: `https://v3.vuejs.org/guide/migration/attribute-coercion.html`\r\n },\r\n [\"TRANSITION_CLASSES\" /* TRANSITION_CLASSES */]: {\r\n message: `` // this feature cannot be runtime-detected\r\n },\r\n [\"TRANSITION_GROUP_ROOT\" /* TRANSITION_GROUP_ROOT */]: {\r\n message: ` no longer renders a root element by ` +\r\n `default if no \"tag\" prop is specified. If you do not rely on the span ` +\r\n `for styling, you can disable the compat behavior and suppress this ` +\r\n `warning with:` +\r\n `\\n\\n configureCompat({ ${\"TRANSITION_GROUP_ROOT\" /* TRANSITION_GROUP_ROOT */}: false })\\n`,\r\n link: `https://v3.vuejs.org/guide/migration/transition-group.html`\r\n },\r\n [\"COMPONENT_ASYNC\" /* COMPONENT_ASYNC */]: {\r\n message: (comp) => {\r\n const name = getComponentName(comp);\r\n return (`Async component${name ? ` <${name}>` : `s`} should be explicitly created via \\`defineAsyncComponent()\\` ` +\r\n `in Vue 3. Plain functions will be treated as functional components in ` +\r\n `non-compat build. If you have already migrated all async component ` +\r\n `usage and intend to use plain functions for functional components, ` +\r\n `you can disable the compat behavior and suppress this ` +\r\n `warning with:` +\r\n `\\n\\n configureCompat({ ${\"COMPONENT_ASYNC\" /* COMPONENT_ASYNC */}: false })\\n`);\r\n },\r\n link: `https://v3.vuejs.org/guide/migration/async-components.html`\r\n },\r\n [\"COMPONENT_FUNCTIONAL\" /* COMPONENT_FUNCTIONAL */]: {\r\n message: (comp) => {\r\n const name = getComponentName(comp);\r\n return (`Functional component${name ? ` <${name}>` : `s`} should be defined as a plain function in Vue 3. The \"functional\" ` +\r\n `option has been removed. NOTE: Before migrating to use plain ` +\r\n `functions for functional components, first make sure that all async ` +\r\n `components usage have been migrated and its compat behavior has ` +\r\n `been disabled.`);\r\n },\r\n link: `https://v3.vuejs.org/guide/migration/functional-components.html`\r\n },\r\n [\"COMPONENT_V_MODEL\" /* COMPONENT_V_MODEL */]: {\r\n message: (comp) => {\r\n const configMsg = `opt-in to ` +\r\n `Vue 3 behavior on a per-component basis with \\`compatConfig: { ${\"COMPONENT_V_MODEL\" /* COMPONENT_V_MODEL */}: false }\\`.`;\r\n if (comp.props &&\r\n (isArray(comp.props)\r\n ? comp.props.includes('modelValue')\r\n : hasOwn(comp.props, 'modelValue'))) {\r\n return (`Component delcares \"modelValue\" prop, which is Vue 3 usage, but ` +\r\n `is running under Vue 2 compat v-model behavior. You can ${configMsg}`);\r\n }\r\n return (`v-model usage on component has changed in Vue 3. Component that expects ` +\r\n `to work with v-model should now use the \"modelValue\" prop and emit the ` +\r\n `\"update:modelValue\" event. You can update the usage and then ${configMsg}`);\r\n },\r\n link: `https://v3.vuejs.org/guide/migration/v-model.html`\r\n },\r\n [\"RENDER_FUNCTION\" /* RENDER_FUNCTION */]: {\r\n message: `Vue 3's render function API has changed. ` +\r\n `You can opt-in to the new API with:` +\r\n `\\n\\n configureCompat({ ${\"RENDER_FUNCTION\" /* RENDER_FUNCTION */}: false })\\n` +\r\n `\\n (This can also be done per-component via the \"compatConfig\" option.)`,\r\n link: `https://v3.vuejs.org/guide/migration/render-function-api.html`\r\n },\r\n [\"FILTERS\" /* FILTERS */]: {\r\n message: `filters have been removed in Vue 3. ` +\r\n `The \"|\" symbol will be treated as native JavaScript bitwise OR operator. ` +\r\n `Use method calls or computed properties instead.`,\r\n link: `https://v3.vuejs.org/guide/migration/filters.html`\r\n },\r\n [\"PRIVATE_APIS\" /* PRIVATE_APIS */]: {\r\n message: name => `\"${name}\" is a Vue 2 private API that no longer exists in Vue 3. ` +\r\n `If you are seeing this warning only due to a dependency, you can ` +\r\n `suppress this warning via { PRIVATE_APIS: 'supress-warning' }.`\r\n }\r\n};\r\nconst instanceWarned = Object.create(null);\r\nconst warnCount = Object.create(null);\r\nfunction warnDeprecation(key, instance, ...args) {\r\n if (!(process.env.NODE_ENV !== 'production')) {\r\n return;\r\n }\r\n instance = instance || getCurrentInstance();\r\n // check user config\r\n const config = getCompatConfigForKey(key, instance);\r\n if (config === 'suppress-warning') {\r\n return;\r\n }\r\n const dupKey = key + args.join('');\r\n let compId = instance && formatComponentName(instance, instance.type);\r\n if (compId === 'Anonymous' && instance) {\r\n compId = instance.uid;\r\n }\r\n // skip if the same warning is emitted for the same component type\r\n const componentDupKey = dupKey + compId;\r\n if (componentDupKey in instanceWarned) {\r\n return;\r\n }\r\n instanceWarned[componentDupKey] = true;\r\n // same warning, but different component. skip the long message and just\r\n // log the key and count.\r\n if (dupKey in warnCount) {\r\n warn(`(deprecation ${key}) (${++warnCount[dupKey] + 1})`);\r\n return;\r\n }\r\n warnCount[dupKey] = 0;\r\n const { message, link } = deprecationData[key];\r\n warn(`(deprecation ${key}) ${typeof message === 'function' ? message(...args) : message}${link ? `\\n Details: ${link}` : ``}`);\r\n if (!isCompatEnabled(key, instance, true)) {\r\n console.error(`^ The above deprecation's compat behavior is disabled and will likely ` +\r\n `lead to runtime errors.`);\r\n }\r\n}\r\nconst globalCompatConfig = {\r\n MODE: 2\r\n};\r\nfunction getCompatConfigForKey(key, instance) {\r\n const instanceConfig = instance && instance.type.compatConfig;\r\n if (instanceConfig && key in instanceConfig) {\r\n return instanceConfig[key];\r\n }\r\n return globalCompatConfig[key];\r\n}\r\nfunction isCompatEnabled(key, instance, enableForBuiltIn = false) {\r\n // skip compat for built-in components\r\n if (!enableForBuiltIn && instance && instance.type.__isBuiltIn) {\r\n return false;\r\n }\r\n const rawMode = getCompatConfigForKey('MODE', instance) || 2;\r\n const val = getCompatConfigForKey(key, instance);\r\n const mode = isFunction$1(rawMode)\r\n ? rawMode(instance && instance.type)\r\n : rawMode;\r\n if (mode === 2) {\r\n return val !== false;\r\n }\r\n else {\r\n return val === true || val === 'suppress-warning';\r\n }\r\n}\n\nfunction emit(instance, event, ...rawArgs) {\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction$1(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n else if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction$1(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, null);\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n cache.set(comp, normalized);\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n let fallthroughAttrs;\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n ;\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment$1) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n if (false &&\r\n isCompatEnabled(\"INSTANCE_ATTRS_CLASS_STYLE\" /* INSTANCE_ATTRS_CLASS_STYLE */, instance) &&\r\n vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */ &&\r\n root.shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) ;\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment$1);\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment$1 || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||\r\n vnode.type === Comment$1 // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction$1(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction$1(s)) {\r\n const isCompiledSlot = s._c;\r\n if (isCompiledSlot) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (isCompiledSlot) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the intance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction$1(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if ((process.env.NODE_ENV !== 'production') && children.length > 1) {\r\n warn(' can only be used on a single element or component. Use ' +\r\n ' for lists.');\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') && mode && !['in-out', 'out-in', 'default'].includes(mode)) {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n // at this point children has a guaranteed length of 1.\r\n const child = children[0];\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment$1 &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out' && innerChild.type !== Comment$1) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n hook(el, done);\r\n if (hook.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n onLeave(el, done);\r\n if (onLeave.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment$1) {\r\n ret.push(child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-op\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return isFunction$1(options) ? { setup: options, name: options.name } : options;\r\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\r\nfunction defineAsyncComponent(source) {\r\n if (isFunction$1(source)) {\r\n source = { loader: source };\r\n }\r\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n suspensible = true, onError: userOnError } = source;\r\n let pendingRequest = null;\r\n let resolvedComp;\r\n let retries = 0;\r\n const retry = () => {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n const load = () => {\r\n let thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest =\r\n loader()\r\n .catch(err => {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise((resolve, reject) => {\r\n const userRetry = () => resolve(retry());\r\n const userFail = () => reject(err);\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then((comp) => {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && !comp) {\r\n warn(`Async component loader resolved to undefined. ` +\r\n `If you are using retry(), make sure to return its return value.`);\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject$1(comp) && !isFunction$1(comp)) {\r\n throw new Error(`Invalid async component load result: ${comp}`);\r\n }\r\n resolvedComp = comp;\r\n return comp;\r\n })));\r\n };\r\n return defineComponent({\r\n name: 'AsyncComponentWrapper',\r\n __asyncLoader: load,\r\n get __asyncResolved() {\r\n return resolvedComp;\r\n },\r\n setup() {\r\n const instance = currentInstance;\r\n // already resolved\r\n if (resolvedComp) {\r\n return () => createInnerComp(resolvedComp, instance);\r\n }\r\n const onError = (err) => {\r\n pendingRequest = null;\r\n handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\r\n };\r\n // suspense-controlled or SSR.\r\n if ((suspensible && instance.suspense) ||\r\n (false )) {\r\n return load()\r\n .then(comp => {\r\n return () => createInnerComp(comp, instance);\r\n })\r\n .catch(err => {\r\n onError(err);\r\n return () => errorComponent\r\n ? createVNode(errorComponent, {\r\n error: err\r\n })\r\n : null;\r\n });\r\n }\r\n const loaded = ref(false);\r\n const error = ref();\r\n const delayed = ref(!!delay);\r\n if (delay) {\r\n setTimeout(() => {\r\n delayed.value = false;\r\n }, delay);\r\n }\r\n if (timeout != null) {\r\n setTimeout(() => {\r\n if (!loaded.value && !error.value) {\r\n const err = new Error(`Async component timed out after ${timeout}ms.`);\r\n onError(err);\r\n error.value = err;\r\n }\r\n }, timeout);\r\n }\r\n load()\r\n .then(() => {\r\n loaded.value = true;\r\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\r\n // parent is keep-alive, force update so the loaded component's\r\n // name is taken into account\r\n queueJob(instance.parent.update);\r\n }\r\n })\r\n .catch(err => {\r\n onError(err);\r\n error.value = err;\r\n });\r\n return () => {\r\n if (loaded.value && resolvedComp) {\r\n return createInnerComp(resolvedComp, instance);\r\n }\r\n else if (error.value && errorComponent) {\r\n return createVNode(errorComponent, {\r\n error: error.value\r\n });\r\n }\r\n else if (loadingComponent && !delayed.value) {\r\n return createVNode(loadingComponent);\r\n }\r\n };\r\n }\r\n });\r\n}\r\nfunction createInnerComp(comp, { vnode: { ref, props, children } }) {\r\n const vnode = createVNode(comp, props, children);\r\n // ensure inner component inherits the async wrapper's ref owner\r\n vnode.ref = ref;\r\n return vnode;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\r\n // for KeepAlive, we just need to render its children\r\n if (!sharedContext.renderer) {\r\n return slots.default;\r\n }\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n instance.__v_cache = cache;\r\n }\r\n const parentSuspense = instance.suspense;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n sharedContext.deactivate = (vnode) => {\r\n const instance = vnode.component;\r\n move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);\r\n queuePostRenderEffect(() => {\r\n if (instance.da) {\r\n invokeArrayFns(instance.da);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n instance.isDeactivated = true;\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n function unmount(vnode) {\r\n // reset the shapeFlag so it can be properly unmounted\r\n resetShapeFlag(vnode);\r\n _unmount(vnode, instance, parentSuspense);\r\n }\r\n function pruneCache(filter) {\r\n cache.forEach((vnode, key) => {\r\n const name = getComponentName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n // prune cache on include/exclude prop change\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => !matches(exclude, name));\r\n }, \r\n // prune post-render after `current` has been updated\r\n { flush: 'post', deep: true });\r\n // cache sub tree after render\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\r\n }\r\n };\r\n onMounted(cacheSubtree);\r\n onUpdated(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n const vnode = getInnerChild(subTree);\r\n if (cached.type === vnode.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(vnode);\r\n // but invoke its deactivated hook here\r\n const da = vnode.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n const rawVNode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(rawVNode) ||\r\n (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&\r\n !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {\r\n current = null;\r\n return rawVNode;\r\n }\r\n let vnode = getInnerChild(rawVNode);\r\n const comp = vnode.type;\r\n // for async components, name check should be based in its loaded\r\n // inner component if available\r\n const name = getComponentName(isAsyncWrapper(vnode)\r\n ? vnode.type.__asyncResolved || {}\r\n : comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n current = vnode;\r\n return rawVNode;\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {\r\n rawVNode.ssContent = vnode;\r\n }\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return rawVNode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').indexOf(name) > -1;\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n // In addition to registering it on the target instance, we walk up the parent\r\n // chain and register it on all ancestor instances that are keep-alive roots.\r\n // This avoids the need to walk the entire component tree when invoking these\r\n // hooks, and more importantly, avoids the need to track child components in\r\n // arrays.\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n // injectHook wraps the original for error handling, so make sure to remove\r\n // the wrapped version.\r\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], injected);\r\n }, target);\r\n}\r\nfunction resetShapeFlag(vnode) {\r\n let shapeFlag = vnode.shapeFlag;\r\n if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {\r\n shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n }\r\n if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {\r\n shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;\r\n }\r\n vnode.shapeFlag = shapeFlag;\r\n}\r\nfunction getInnerChild(vnode) {\r\n return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;\r\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n const hooks = target[type] || (target[type] = []);\r\n // cache the error handling wrapper for injected hooks so the same hook\r\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\r\n // handling\".\r\n const wrappedHook = hook.__weh ||\r\n (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n // Set currentInstance during hook invocation.\r\n // This assumes the hook does not synchronously trigger other hooks, which\r\n // can only be false when the user does something really funky.\r\n setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n unsetCurrentInstance();\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n }\r\n else {\r\n hooks.push(wrappedHook);\r\n }\r\n return wrappedHook;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\r\n warn(`${apiName} is called when there is no active component instance to be ` +\r\n `associated with. ` +\r\n `Lifecycle injection APIs can only be used during execution of setup().` +\r\n (` If you are using async setup(), make sure to register lifecycle ` +\r\n `hooks before the first await statement.`\r\n ));\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \r\n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\r\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* SERVER_PREFETCH */) &&\r\n injectHook(lifecycle, hook, target);\r\nconst onBeforeMount = createHook(\"bm\" /* BEFORE_MOUNT */);\r\nconst onMounted = createHook(\"m\" /* MOUNTED */);\r\nconst onBeforeUpdate = createHook(\"bu\" /* BEFORE_UPDATE */);\r\nconst onUpdated = createHook(\"u\" /* UPDATED */);\r\nconst onBeforeUnmount = createHook(\"bum\" /* BEFORE_UNMOUNT */);\r\nconst onUnmounted = createHook(\"um\" /* UNMOUNTED */);\r\nconst onServerPrefetch = createHook(\"sp\" /* SERVER_PREFETCH */);\r\nconst onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nfunction onErrorCaptured(hook, target = currentInstance) {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n}\n\nfunction createDuplicateChecker() {\r\n const cache = Object.create(null);\r\n return (type, key) => {\r\n if (cache[key]) {\r\n warn(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\r\n }\r\n else {\r\n cache[key] = type;\r\n }\r\n };\r\n}\r\nlet shouldCacheAccess = true;\r\nfunction applyOptions(instance) {\r\n const options = resolveMergedOptions(instance);\r\n const publicThis = instance.proxy;\r\n const ctx = instance.ctx;\r\n // do not cache property access on public proxy during state initialization\r\n shouldCacheAccess = false;\r\n // call beforeCreate first before accessing other options since\r\n // the hook may mutate resolved options (#2791)\r\n if (options.beforeCreate) {\r\n callHook(options.beforeCreate, instance, \"bc\" /* BEFORE_CREATE */);\r\n }\r\n const { \r\n // state\r\n data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, \r\n // lifecycle\r\n created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, \r\n // public API\r\n expose, inheritAttrs, \r\n // assets\r\n components, directives, filters } = options;\r\n const checkDuplicateProperties = (process.env.NODE_ENV !== 'production') ? createDuplicateChecker() : null;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const [propsOptions] = instance.propsOptions;\r\n if (propsOptions) {\r\n for (const key in propsOptions) {\r\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\r\n }\r\n }\r\n }\r\n // options initialization order (to be consistent with Vue 2):\r\n // - props (already done outside of this function)\r\n // - inject\r\n // - methods\r\n // - data (deferred since it relies on `this` access)\r\n // - computed\r\n // - watch (deferred since it relies on `this` access)\r\n if (injectOptions) {\r\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);\r\n }\r\n if (methods) {\r\n for (const key in methods) {\r\n const methodHandler = methods[key];\r\n if (isFunction$1(methodHandler)) {\r\n // In dev mode, we use the `createRenderContext` function to define\r\n // methods to the proxy target, and those are read-only but\r\n // reconfigurable, so it needs to be redefined here\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n Object.defineProperty(ctx, key, {\r\n value: methodHandler.bind(publicThis),\r\n configurable: true,\r\n enumerable: true,\r\n writable: true\r\n });\r\n }\r\n else {\r\n ctx[key] = methodHandler.bind(publicThis);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. ` +\r\n `Did you reference the function correctly?`);\r\n }\r\n }\r\n }\r\n if (dataOptions) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction$1(dataOptions)) {\r\n warn(`The data option must be a function. ` +\r\n `Plain object usage is no longer supported.`);\r\n }\r\n const data = dataOptions.call(publicThis, publicThis);\r\n if ((process.env.NODE_ENV !== 'production') && isPromise$1(data)) {\r\n warn(`data() returned a Promise - note data() cannot be async; If you ` +\r\n `intend to perform data fetching before component renders, use ` +\r\n `async setup() + .`);\r\n }\r\n if (!isObject$1(data)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`data() should return an object.`);\r\n }\r\n else {\r\n instance.data = reactive(data);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n for (const key in data) {\r\n checkDuplicateProperties(\"Data\" /* DATA */, key);\r\n // expose data on ctx during dev\r\n if (key[0] !== '$' && key[0] !== '_') {\r\n Object.defineProperty(ctx, key, {\r\n configurable: true,\r\n enumerable: true,\r\n get: () => data[key],\r\n set: NOOP\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // state initialization complete at this point - start caching access\r\n shouldCacheAccess = true;\r\n if (computedOptions) {\r\n for (const key in computedOptions) {\r\n const opt = computedOptions[key];\r\n const get = isFunction$1(opt)\r\n ? opt.bind(publicThis, publicThis)\r\n : isFunction$1(opt.get)\r\n ? opt.get.bind(publicThis, publicThis)\r\n : NOOP;\r\n if ((process.env.NODE_ENV !== 'production') && get === NOOP) {\r\n warn(`Computed property \"${key}\" has no getter.`);\r\n }\r\n const set = !isFunction$1(opt) && isFunction$1(opt.set)\r\n ? opt.set.bind(publicThis)\r\n : (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n warn(`Write operation failed: computed property \"${key}\" is readonly.`);\r\n }\r\n : NOOP;\r\n const c = computed({\r\n get,\r\n set\r\n });\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => c.value,\r\n set: v => (c.value = v)\r\n });\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\r\n }\r\n }\r\n }\r\n if (watchOptions) {\r\n for (const key in watchOptions) {\r\n createWatcher(watchOptions[key], ctx, publicThis, key);\r\n }\r\n }\r\n if (provideOptions) {\r\n const provides = isFunction$1(provideOptions)\r\n ? provideOptions.call(publicThis)\r\n : provideOptions;\r\n Reflect.ownKeys(provides).forEach(key => {\r\n provide(key, provides[key]);\r\n });\r\n }\r\n if (created) {\r\n callHook(created, instance, \"c\" /* CREATED */);\r\n }\r\n function registerLifecycleHook(register, hook) {\r\n if (isArray(hook)) {\r\n hook.forEach(_hook => register(_hook.bind(publicThis)));\r\n }\r\n else if (hook) {\r\n register(hook.bind(publicThis));\r\n }\r\n }\r\n registerLifecycleHook(onBeforeMount, beforeMount);\r\n registerLifecycleHook(onMounted, mounted);\r\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\r\n registerLifecycleHook(onUpdated, updated);\r\n registerLifecycleHook(onActivated, activated);\r\n registerLifecycleHook(onDeactivated, deactivated);\r\n registerLifecycleHook(onErrorCaptured, errorCaptured);\r\n registerLifecycleHook(onRenderTracked, renderTracked);\r\n registerLifecycleHook(onRenderTriggered, renderTriggered);\r\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\r\n registerLifecycleHook(onUnmounted, unmounted);\r\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\r\n if (isArray(expose)) {\r\n if (expose.length) {\r\n const exposed = instance.exposed || (instance.exposed = {});\r\n expose.forEach(key => {\r\n Object.defineProperty(exposed, key, {\r\n get: () => publicThis[key],\r\n set: val => (publicThis[key] = val)\r\n });\r\n });\r\n }\r\n else if (!instance.exposed) {\r\n instance.exposed = {};\r\n }\r\n }\r\n // options that are handled when creating the instance but also need to be\r\n // applied from mixins\r\n if (render && instance.render === NOOP) {\r\n instance.render = render;\r\n }\r\n if (inheritAttrs != null) {\r\n instance.inheritAttrs = inheritAttrs;\r\n }\r\n // asset options.\r\n if (components)\r\n instance.components = components;\r\n if (directives)\r\n instance.directives = directives;\r\n}\r\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\r\n if (isArray(injectOptions)) {\r\n injectOptions = normalizeInject(injectOptions);\r\n }\r\n for (const key in injectOptions) {\r\n const opt = injectOptions[key];\r\n let injected;\r\n if (isObject$1(opt)) {\r\n if ('default' in opt) {\r\n injected = inject(opt.from || key, opt.default, true /* treat default function as factory */);\r\n }\r\n else {\r\n injected = inject(opt.from || key);\r\n }\r\n }\r\n else {\r\n injected = inject(opt);\r\n }\r\n if (isRef(injected)) {\r\n // TODO remove the check in 3.3\r\n if (unwrapRef) {\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => injected.value,\r\n set: v => (injected.value = v)\r\n });\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injected property \"${key}\" is a ref and will be auto-unwrapped ` +\r\n `and no longer needs \\`.value\\` in the next minor release. ` +\r\n `To opt-in to the new behavior now, ` +\r\n `set \\`app.config.unwrapInjectedRef = true\\` (this config is ` +\r\n `temporary and will not be needed in the future.)`);\r\n }\r\n ctx[key] = injected;\r\n }\r\n }\r\n else {\r\n ctx[key] = injected;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\r\n }\r\n }\r\n}\r\nfunction callHook(hook, instance, type) {\r\n callWithAsyncErrorHandling(isArray(hook)\r\n ? hook.map(h => h.bind(instance.proxy))\r\n : hook.bind(instance.proxy), instance, type);\r\n}\r\nfunction createWatcher(raw, ctx, publicThis, key) {\r\n const getter = key.includes('.')\r\n ? createPathGetter(publicThis, key)\r\n : () => publicThis[key];\r\n if (isString(raw)) {\r\n const handler = ctx[raw];\r\n if (isFunction$1(handler)) {\r\n watch(getter, handler);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw}\"`, handler);\r\n }\r\n }\r\n else if (isFunction$1(raw)) {\r\n watch(getter, raw.bind(publicThis));\r\n }\r\n else if (isObject$1(raw)) {\r\n if (isArray(raw)) {\r\n raw.forEach(r => createWatcher(r, ctx, publicThis, key));\r\n }\r\n else {\r\n const handler = isFunction$1(raw.handler)\r\n ? raw.handler.bind(publicThis)\r\n : ctx[raw.handler];\r\n if (isFunction$1(handler)) {\r\n watch(getter, handler, raw);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\r\n }\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch option: \"${key}\"`, raw);\r\n }\r\n}\r\n/**\r\n * Resolve merged options and cache it on the component.\r\n * This is done only once per-component since the merging does not involve\r\n * instances.\r\n */\r\nfunction resolveMergedOptions(instance) {\r\n const base = instance.type;\r\n const { mixins, extends: extendsOptions } = base;\r\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;\r\n const cached = cache.get(base);\r\n let resolved;\r\n if (cached) {\r\n resolved = cached;\r\n }\r\n else if (!globalMixins.length && !mixins && !extendsOptions) {\r\n {\r\n resolved = base;\r\n }\r\n }\r\n else {\r\n resolved = {};\r\n if (globalMixins.length) {\r\n globalMixins.forEach(m => mergeOptions(resolved, m, optionMergeStrategies, true));\r\n }\r\n mergeOptions(resolved, base, optionMergeStrategies);\r\n }\r\n cache.set(base, resolved);\r\n return resolved;\r\n}\r\nfunction mergeOptions(to, from, strats, asMixin = false) {\r\n const { mixins, extends: extendsOptions } = from;\r\n if (extendsOptions) {\r\n mergeOptions(to, extendsOptions, strats, true);\r\n }\r\n if (mixins) {\r\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\r\n }\r\n for (const key in from) {\r\n if (asMixin && key === 'expose') {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`\"expose\" option is ignored when declared in mixins or extends. ` +\r\n `It should only be declared in the base component itself.`);\r\n }\r\n else {\r\n const strat = internalOptionMergeStrats[key] || (strats && strats[key]);\r\n to[key] = strat ? strat(to[key], from[key]) : from[key];\r\n }\r\n }\r\n return to;\r\n}\r\nconst internalOptionMergeStrats = {\r\n data: mergeDataFn,\r\n props: mergeObjectOptions,\r\n emits: mergeObjectOptions,\r\n // objects\r\n methods: mergeObjectOptions,\r\n computed: mergeObjectOptions,\r\n // lifecycle\r\n beforeCreate: mergeAsArray,\r\n created: mergeAsArray,\r\n beforeMount: mergeAsArray,\r\n mounted: mergeAsArray,\r\n beforeUpdate: mergeAsArray,\r\n updated: mergeAsArray,\r\n beforeDestroy: mergeAsArray,\r\n destroyed: mergeAsArray,\r\n activated: mergeAsArray,\r\n deactivated: mergeAsArray,\r\n errorCaptured: mergeAsArray,\r\n serverPrefetch: mergeAsArray,\r\n // assets\r\n components: mergeObjectOptions,\r\n directives: mergeObjectOptions,\r\n // watch\r\n watch: mergeWatchOptions,\r\n // provide / inject\r\n provide: mergeDataFn,\r\n inject: mergeInject\r\n};\r\nfunction mergeDataFn(to, from) {\r\n if (!from) {\r\n return to;\r\n }\r\n if (!to) {\r\n return from;\r\n }\r\n return function mergedDataFn() {\r\n return (extend)(isFunction$1(to) ? to.call(this, this) : to, isFunction$1(from) ? from.call(this, this) : from);\r\n };\r\n}\r\nfunction mergeInject(to, from) {\r\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\r\n}\r\nfunction normalizeInject(raw) {\r\n if (isArray(raw)) {\r\n const res = {};\r\n for (let i = 0; i < raw.length; i++) {\r\n res[raw[i]] = raw[i];\r\n }\r\n return res;\r\n }\r\n return raw;\r\n}\r\nfunction mergeAsArray(to, from) {\r\n return to ? [...new Set([].concat(to, from))] : from;\r\n}\r\nfunction mergeObjectOptions(to, from) {\r\n return to ? extend(extend(Object.create(null), to), from) : from;\r\n}\r\nfunction mergeWatchOptions(to, from) {\r\n if (!to)\r\n return from;\r\n if (!from)\r\n return to;\r\n const merged = extend(Object.create(null), to);\r\n for (const key in from) {\r\n merged[key] = mergeAsArray(to[key], from[key]);\r\n }\r\n return merged;\r\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\r\nisSSR = false) {\r\n const props = {};\r\n const attrs = {};\r\n def(attrs, InternalObjectKey, 1);\r\n instance.propsDefaults = Object.create(null);\r\n setFullProps(instance, rawProps, props, attrs);\r\n // ensure all declared prop keys are present\r\n for (const key in instance.propsOptions[0]) {\r\n if (!(key in props)) {\r\n props[key] = undefined;\r\n }\r\n }\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n if (isStateful) {\r\n // stateful\r\n instance.props = isSSR ? props : shallowReactive(props);\r\n }\r\n else {\r\n if (!instance.type.props) {\r\n // functional w/ optional props, props === attrs\r\n instance.props = attrs;\r\n }\r\n else {\r\n // functional w/ declared props\r\n instance.props = props;\r\n }\r\n }\r\n instance.attrs = attrs;\r\n}\r\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\r\n const { props, attrs, vnode: { patchFlag } } = instance;\r\n const rawCurrentProps = toRaw(props);\r\n const [options] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n if (\r\n // always force full diff in dev\r\n // - #1942 if hmr is enabled with sfc component\r\n // - vite#872 non-sfc component used by sfc component\r\n !((process.env.NODE_ENV !== 'production') &&\r\n (instance.type.__hmrId ||\r\n (instance.parent && instance.parent.type.__hmrId))) &&\r\n (optimized || patchFlag > 0) &&\r\n !(patchFlag & 16 /* FULL_PROPS */)) {\r\n if (patchFlag & 8 /* PROPS */) {\r\n // Compiler-generated props & no keys change, just set the updated\r\n // the props.\r\n const propsToUpdate = instance.vnode.dynamicProps;\r\n for (let i = 0; i < propsToUpdate.length; i++) {\r\n let key = propsToUpdate[i];\r\n // PROPS flag guarantees rawProps to be non-null\r\n const value = rawProps[key];\r\n if (options) {\r\n // attr / props separation was done on init and will be consistent\r\n // in this code path, so just check if attrs have it.\r\n if (hasOwn(attrs, key)) {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n else {\r\n const camelizedKey = camelize(key);\r\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false /* isAbsent */);\r\n }\r\n }\r\n else {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // full props update.\r\n if (setFullProps(instance, rawProps, props, attrs)) {\r\n hasAttrsChanged = true;\r\n }\r\n // in case of dynamic props, check if we need to delete keys from\r\n // the props object\r\n let kebabKey;\r\n for (const key in rawCurrentProps) {\r\n if (!rawProps ||\r\n // for camelCase\r\n (!hasOwn(rawProps, key) &&\r\n // it's possible the original props was passed in as kebab-case\r\n // and converted to camelCase (#955)\r\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\r\n if (options) {\r\n if (rawPrevProps &&\r\n // for camelCase\r\n (rawPrevProps[key] !== undefined ||\r\n // for kebab-case\r\n rawPrevProps[kebabKey] !== undefined)) {\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, undefined, instance, true /* isAbsent */);\r\n }\r\n }\r\n else {\r\n delete props[key];\r\n }\r\n }\r\n }\r\n // in the case of functional component w/o props declaration, props and\r\n // attrs point to the same object so it should already have been updated.\r\n if (attrs !== rawCurrentProps) {\r\n for (const key in attrs) {\r\n if (!rawProps || !hasOwn(rawProps, key)) {\r\n delete attrs[key];\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n // trigger updates for $attrs in case it's used in component slots\r\n if (hasAttrsChanged) {\r\n trigger(instance, \"set\" /* SET */, '$attrs');\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n let rawCastValues;\r\n if (rawProps) {\r\n for (let key in rawProps) {\r\n // key, ref are reserved and never passed down\r\n if (isReservedProp(key)) {\r\n continue;\r\n }\r\n const value = rawProps[key];\r\n // prop option names are camelized during normalization, so to support\r\n // kebab -> camel conversion here we need to camelize the key.\r\n let camelKey;\r\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\r\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\r\n props[camelKey] = value;\r\n }\r\n else {\r\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\r\n }\r\n }\r\n else if (!isEmitListener(instance.emitsOptions, key)) {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n if (needCastKeys) {\r\n const rawCurrentProps = toRaw(props);\r\n const castValues = rawCastValues || EMPTY_OBJ;\r\n for (let i = 0; i < needCastKeys.length; i++) {\r\n const key = needCastKeys[i];\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));\r\n }\r\n }\r\n return hasAttrsChanged;\r\n}\r\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\r\n const opt = options[key];\r\n if (opt != null) {\r\n const hasDefault = hasOwn(opt, 'default');\r\n // default values\r\n if (hasDefault && value === undefined) {\r\n const defaultValue = opt.default;\r\n if (opt.type !== Function && isFunction$1(defaultValue)) {\r\n const { propsDefaults } = instance;\r\n if (key in propsDefaults) {\r\n value = propsDefaults[key];\r\n }\r\n else {\r\n setCurrentInstance(instance);\r\n value = propsDefaults[key] = defaultValue.call(null, props);\r\n unsetCurrentInstance();\r\n }\r\n }\r\n else {\r\n value = defaultValue;\r\n }\r\n }\r\n // boolean casting\r\n if (opt[0 /* shouldCast */]) {\r\n if (isAbsent && !hasDefault) {\r\n value = false;\r\n }\r\n else if (opt[1 /* shouldCastTrue */] &&\r\n (value === '' || value === hyphenate(key))) {\r\n value = true;\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.propsCache;\r\n const cached = cache.get(comp);\r\n if (cached) {\r\n return cached;\r\n }\r\n const raw = comp.props;\r\n const normalized = {};\r\n const needCastKeys = [];\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction$1(comp)) {\r\n const extendProps = (raw) => {\r\n hasExtends = true;\r\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\r\n extend(normalized, props);\r\n if (keys)\r\n needCastKeys.push(...keys);\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendProps);\r\n }\r\n if (comp.extends) {\r\n extendProps(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendProps);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, EMPTY_ARR);\r\n return EMPTY_ARR;\r\n }\r\n if (isArray(raw)) {\r\n for (let i = 0; i < raw.length; i++) {\r\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\r\n warn(`props must be strings when using array syntax.`, raw[i]);\r\n }\r\n const normalizedKey = camelize(raw[i]);\r\n if (validatePropName(normalizedKey)) {\r\n normalized[normalizedKey] = EMPTY_OBJ;\r\n }\r\n }\r\n }\r\n else if (raw) {\r\n if ((process.env.NODE_ENV !== 'production') && !isObject$1(raw)) {\r\n warn(`invalid props options`, raw);\r\n }\r\n for (const key in raw) {\r\n const normalizedKey = camelize(key);\r\n if (validatePropName(normalizedKey)) {\r\n const opt = raw[key];\r\n const prop = (normalized[normalizedKey] =\r\n isArray(opt) || isFunction$1(opt) ? { type: opt } : opt);\r\n if (prop) {\r\n const booleanIndex = getTypeIndex(Boolean, prop.type);\r\n const stringIndex = getTypeIndex(String, prop.type);\r\n prop[0 /* shouldCast */] = booleanIndex > -1;\r\n prop[1 /* shouldCastTrue */] =\r\n stringIndex < 0 || booleanIndex < stringIndex;\r\n // if the prop needs boolean casting or default value\r\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\r\n needCastKeys.push(normalizedKey);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const res = [normalized, needCastKeys];\r\n cache.set(comp, res);\r\n return res;\r\n}\r\nfunction validatePropName(key) {\r\n if (key[0] !== '$') {\r\n return true;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\r\n }\r\n return false;\r\n}\r\n// use function string name to check type constructors\r\n// so that it works across vms / iframes.\r\nfunction getType(ctor) {\r\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\r\n return match ? match[1] : ctor === null ? 'null' : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (isArray(expectedTypes)) {\r\n return expectedTypes.findIndex(t => isSameType(t, type));\r\n }\r\n else if (isFunction$1(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProps(rawProps, props, instance) {\r\n const resolvedValues = toRaw(props);\r\n const options = instance.propsOptions[0];\r\n for (const key in options) {\r\n let opt = options[key];\r\n if (opt == null)\r\n continue;\r\n validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProp(name, value, prop, isAbsent) {\r\n const { type, required, validator } = prop;\r\n // required!\r\n if (required && isAbsent) {\r\n warn('Missing required prop: \"' + name + '\"');\r\n return;\r\n }\r\n // missing but optional\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n // type check\r\n if (type != null && type !== true) {\r\n let isValid = false;\r\n const types = isArray(type) ? type : [type];\r\n const expectedTypes = [];\r\n // value is valid as long as one of the specified types match\r\n for (let i = 0; i < types.length && !isValid; i++) {\r\n const { valid, expectedType } = assertType(value, types[i]);\r\n expectedTypes.push(expectedType || '');\r\n isValid = valid;\r\n }\r\n if (!isValid) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes));\r\n return;\r\n }\r\n }\r\n // custom validator\r\n if (validator && !validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\r\n }\r\n}\r\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\r\n/**\r\n * dev only\r\n */\r\nfunction assertType(value, type) {\r\n let valid;\r\n const expectedType = getType(type);\r\n if (isSimpleType(expectedType)) {\r\n const t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isObject$1(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else if (expectedType === 'null') {\r\n valid = value === null;\r\n }\r\n else {\r\n valid = value instanceof type;\r\n }\r\n return {\r\n valid,\r\n expectedType\r\n };\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\r\n ` Expected ${expectedTypes.map(capitalize).join(' | ')}`;\r\n const expectedType = expectedTypes[0];\r\n const receivedType = toRawType(value);\r\n const expectedValue = styleValue(value, expectedType);\r\n const receivedValue = styleValue(value, receivedType);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += ` with value ${expectedValue}`;\r\n }\r\n message += `, got ${receivedType} `;\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += `with value ${receivedValue}.`;\r\n }\r\n return message;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return `\"${value}\"`;\r\n }\r\n else if (type === 'Number') {\r\n return `${Number(value)}`;\r\n }\r\n else {\r\n return `${value}`;\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isExplicable(type) {\r\n const explicitTypes = ['string', 'number', 'boolean'];\r\n return explicitTypes.some(elem => type.toLowerCase() === elem);\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isBoolean(...args) {\r\n return args.some(elem => elem.toLowerCase() === 'boolean');\r\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\r\nconst normalizeSlotValue = (value) => isArray(value)\r\n ? value.map(normalizeVNode)\r\n : [normalizeVNode(value)];\r\nconst normalizeSlot = (key, rawSlot, ctx) => {\r\n const normalized = withCtx((...args) => {\r\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\r\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\r\n `this will not track dependencies used in the slot. ` +\r\n `Invoke the slot function inside the render function instead.`);\r\n }\r\n return normalizeSlotValue(rawSlot(...args));\r\n }, ctx);\r\n normalized._c = false;\r\n return normalized;\r\n};\r\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\r\n const ctx = rawSlots._ctx;\r\n for (const key in rawSlots) {\r\n if (isInternalKey(key))\r\n continue;\r\n const value = rawSlots[key];\r\n if (isFunction$1(value)) {\r\n slots[key] = normalizeSlot(key, value, ctx);\r\n }\r\n else if (value != null) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !(false )) {\r\n warn(`Non-function value encountered for slot \"${key}\". ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(value);\r\n slots[key] = () => normalized;\r\n }\r\n }\r\n};\r\nconst normalizeVNodeSlots = (instance, children) => {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !isKeepAlive(instance.vnode) &&\r\n !(false )) {\r\n warn(`Non-function value encountered for default slot. ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(children);\r\n instance.slots.default = () => normalized;\r\n};\r\nconst initSlots = (instance, children) => {\r\n if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // users can get the shallow readonly version of the slots object through `this.$slots`,\r\n // we should avoid the proxy object polluting the slots of the internal instance\r\n instance.slots = toRaw(children);\r\n // make compiler marker non-enumerable\r\n def(children, '_', type);\r\n }\r\n else {\r\n normalizeObjectSlots(children, (instance.slots = {}));\r\n }\r\n }\r\n else {\r\n instance.slots = {};\r\n if (children) {\r\n normalizeVNodeSlots(instance, children);\r\n }\r\n }\r\n def(instance.slots, InternalObjectKey, 1);\r\n};\r\nconst updateSlots = (instance, children, optimized) => {\r\n const { vnode, slots } = instance;\r\n let needDeletionCheck = true;\r\n let deletionComparisonTarget = EMPTY_OBJ;\r\n if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // compiled slots.\r\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\r\n // Parent was HMR updated so slot content may have changed.\r\n // force update slots and mark instance for hmr as well\r\n extend(slots, children);\r\n }\r\n else if (optimized && type === 1 /* STABLE */) {\r\n // compiled AND stable.\r\n // no need to update, and skip stale slots removal.\r\n needDeletionCheck = false;\r\n }\r\n else {\r\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\r\n // normalization.\r\n extend(slots, children);\r\n // #2893\r\n // when rendering the optimized slots by manually written render function,\r\n // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,\r\n // i.e. let the `renderSlot` create the bailed Fragment\r\n if (!optimized && type === 1 /* STABLE */) {\r\n delete slots._;\r\n }\r\n }\r\n }\r\n else {\r\n needDeletionCheck = !children.$stable;\r\n normalizeObjectSlots(children, slots);\r\n }\r\n deletionComparisonTarget = children;\r\n }\r\n else if (children) {\r\n // non slot object children (direct value) passed to a component\r\n normalizeVNodeSlots(instance, children);\r\n deletionComparisonTarget = { default: 1 };\r\n }\r\n // delete stale slots\r\n if (needDeletionCheck) {\r\n for (const key in slots) {\r\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\r\n delete slots[key];\r\n }\r\n }\r\n }\r\n};\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text');\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn('Do not use built-in directive ids as custom directive id: ' + name);\r\n }\r\n}\r\n/**\r\n * Adds directives to a VNode.\r\n */\r\nfunction withDirectives(vnode, directives) {\r\n const internalInstance = currentRenderingInstance;\r\n if (internalInstance === null) {\r\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = internalInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (isFunction$1(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n if (dir.deep) {\r\n traverse(value);\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n return vnode;\r\n}\r\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\r\n const bindings = vnode.dirs;\r\n const oldBindings = prevVNode && prevVNode.dirs;\r\n for (let i = 0; i < bindings.length; i++) {\r\n const binding = bindings[i];\r\n if (oldBindings) {\r\n binding.oldValue = oldBindings[i].value;\r\n }\r\n let hook = binding.dir[name];\r\n if (hook) {\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [\r\n vnode.el,\r\n binding,\r\n vnode,\r\n prevVNode\r\n ]);\r\n resetTracking();\r\n }\r\n }\r\n}\n\nfunction createAppContext() {\r\n return {\r\n app: null,\r\n config: {\r\n isNativeTag: NO,\r\n performance: false,\r\n globalProperties: {},\r\n optionMergeStrategies: {},\r\n errorHandler: undefined,\r\n warnHandler: undefined,\r\n compilerOptions: {}\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: Object.create(null),\r\n optionsCache: new WeakMap(),\r\n propsCache: new WeakMap(),\r\n emitsCache: new WeakMap()\r\n };\r\n}\r\nlet uid = 0;\r\nfunction createAppAPI(render, hydrate) {\r\n return function createApp(rootComponent, rootProps = null) {\r\n if (rootProps != null && !isObject$1(rootProps)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\r\n rootProps = null;\r\n }\r\n const context = createAppContext();\r\n const installedPlugins = new Set();\r\n let isMounted = false;\r\n const app = (context.app = {\r\n _uid: uid++,\r\n _component: rootComponent,\r\n _props: rootProps,\r\n _container: null,\r\n _context: context,\r\n _instance: null,\r\n version,\r\n get config() {\r\n return context.config;\r\n },\r\n set config(v) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`app.config cannot be replaced. Modify individual options instead.`);\r\n }\r\n },\r\n use(plugin, ...options) {\r\n if (installedPlugins.has(plugin)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\r\n }\r\n else if (plugin && isFunction$1(plugin.install)) {\r\n installedPlugins.add(plugin);\r\n plugin.install(app, ...options);\r\n }\r\n else if (isFunction$1(plugin)) {\r\n installedPlugins.add(plugin);\r\n plugin(app, ...options);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`A plugin must either be a function or an object with an \"install\" ` +\r\n `function.`);\r\n }\r\n return app;\r\n },\r\n mixin(mixin) {\r\n if (__VUE_OPTIONS_API__) {\r\n if (!context.mixins.includes(mixin)) {\r\n context.mixins.push(mixin);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixin has already been applied to target app' +\r\n (mixin.name ? `: ${mixin.name}` : ''));\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixins are only available in builds supporting Options API');\r\n }\r\n return app;\r\n },\r\n component(name, component) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateComponentName(name, context.config);\r\n }\r\n if (!component) {\r\n return context.components[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\r\n warn(`Component \"${name}\" has already been registered in target app.`);\r\n }\r\n context.components[name] = component;\r\n return app;\r\n },\r\n directive(name, directive) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateDirectiveName(name);\r\n }\r\n if (!directive) {\r\n return context.directives[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\r\n warn(`Directive \"${name}\" has already been registered in target app.`);\r\n }\r\n context.directives[name] = directive;\r\n return app;\r\n },\r\n mount(rootContainer, isHydrate, isSVG) {\r\n if (!isMounted) {\r\n const vnode = createVNode(rootComponent, rootProps);\r\n // store app context on the root VNode.\r\n // this will be set on the root instance on initial mount.\r\n vnode.appContext = context;\r\n // HMR root reload\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.reload = () => {\r\n render(cloneVNode(vnode), rootContainer, isSVG);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer, isSVG);\r\n }\r\n isMounted = true;\r\n app._container = rootContainer;\r\n rootContainer.__vue_app__ = app;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = vnode.component;\r\n devtoolsInitApp(app, version);\r\n }\r\n return vnode.component.proxy;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`App has already been mounted.\\n` +\r\n `If you want to remount the same app, move your app creation logic ` +\r\n `into a factory function and create fresh app instances for each ` +\r\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\r\n }\r\n },\r\n unmount() {\r\n if (isMounted) {\r\n render(null, app._container);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = null;\r\n devtoolsUnmountApp(app);\r\n }\r\n delete app._container.__vue_app__;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot unmount an app that is not mounted.`);\r\n }\r\n },\r\n provide(key, value) {\r\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\r\n warn(`App already provides property with key \"${String(key)}\". ` +\r\n `It will be overwritten with the new value.`);\r\n }\r\n // TypeScript doesn't allow symbols as index type\r\n // https://github.com/Microsoft/TypeScript/issues/24587\r\n context.provides[key] = value;\r\n return app;\r\n }\r\n });\r\n return app;\r\n };\r\n}\n\nlet hasMismatch = false;\r\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\r\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\r\n// Note: hydration is DOM-specific\r\n// But we have to place it in core due to tight coupling with core - splitting\r\n// it out creates a ton of unnecessary complexity.\r\n// Hydration also depends on some renderer internal logic which needs to be\r\n// passed in via arguments.\r\nfunction createHydrationFunctions(rendererInternals) {\r\n const { mt: mountComponent, p: patch, o: { patchProp, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\r\n const hydrate = (vnode, container) => {\r\n if (!container.hasChildNodes()) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Attempting to hydrate existing markup but container is empty. ` +\r\n `Performing full mount instead.`);\r\n patch(null, vnode, container);\r\n flushPostFlushCbs();\r\n return;\r\n }\r\n hasMismatch = false;\r\n hydrateNode(container.firstChild, vnode, null, null, null);\r\n flushPostFlushCbs();\r\n if (hasMismatch && !false) {\r\n // this error should show up in production\r\n console.error(`Hydration completed but contains mismatches.`);\r\n }\r\n };\r\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);\r\n const { type, ref, shapeFlag } = vnode;\r\n const domType = node.nodeType;\r\n vnode.el = node;\r\n let nextNode = null;\r\n switch (type) {\r\n case Text:\r\n if (domType !== 3 /* TEXT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n if (node.data !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text mismatch:` +\r\n `\\n- Client: ${JSON.stringify(node.data)}` +\r\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\r\n node.data = vnode.children;\r\n }\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Comment$1:\r\n if (domType !== 8 /* COMMENT */ || isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Static:\r\n if (domType !== 1 /* ELEMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n // determine anchor, adopt content\r\n nextNode = node;\r\n // if the static vnode has its content stripped during build,\r\n // adopt it from the server-rendered HTML.\r\n const needToAdoptContent = !vnode.children.length;\r\n for (let i = 0; i < vnode.staticCount; i++) {\r\n if (needToAdoptContent)\r\n vnode.children += nextNode.outerHTML;\r\n if (i === vnode.staticCount - 1) {\r\n vnode.anchor = nextNode;\r\n }\r\n nextNode = nextSibling(nextNode);\r\n }\r\n return nextNode;\r\n }\r\n break;\r\n case Fragment:\r\n if (!isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n if (domType !== 1 /* ELEMENT */ ||\r\n vnode.type.toLowerCase() !==\r\n node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n // when setting up the render effect, if the initial vnode already\r\n // has .el set, the component will perform hydration instead of mount\r\n // on its sub-tree.\r\n vnode.slotScopeIds = slotScopeIds;\r\n const container = parentNode(node);\r\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\r\n // component may be async, so in the case of fragments we cannot rely\r\n // on component's rendered output to determine the end of the fragment\r\n // instead, we do a lookahead to find the end anchor node.\r\n nextNode = isFragmentStart\r\n ? locateClosingAsyncAnchor(node)\r\n : nextSibling(node);\r\n // #3787\r\n // if component is async, it may get moved / unmounted before its\r\n // inner component is loaded, so we need to give it a placeholder\r\n // vnode that matches its adopted DOM.\r\n if (isAsyncWrapper(vnode)) {\r\n let subTree;\r\n if (isFragmentStart) {\r\n subTree = createVNode(Fragment);\r\n subTree.anchor = nextNode\r\n ? nextNode.previousSibling\r\n : container.lastChild;\r\n }\r\n else {\r\n subTree =\r\n node.nodeType === 3 ? createTextVNode('') : createVNode('div');\r\n }\r\n subTree.el = node;\r\n vnode.component.subTree = subTree;\r\n }\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n if (domType !== 8 /* COMMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);\r\n }\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n if (ref != null) {\r\n setRef(ref, null, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { type, props, patchFlag, shapeFlag, dirs } = vnode;\r\n // #4006 for form elements with non-string v-model value bindings\r\n // e.g.