{"version":3,"file":"for-cardform-js.js","sources":["webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/adapters/xhr.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/axios.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/cancel/Cancel.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/cancel/CancelToken.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/cancel/isCancel.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/Axios.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/InterceptorManager.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/buildFullPath.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/createError.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/dispatchRequest.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/enhanceError.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/mergeConfig.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/settle.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/transformData.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/defaults.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/env/data.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/bind.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/buildURL.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/combineURLs.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/cookies.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/isAxiosError.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/parseHeaders.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/spread.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/validator.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/utils.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/blueimp-md5@2.16.0/node_modules/blueimp-md5/js/md5.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/bowser@2.11.0/node_modules/bowser/es5.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/callBound.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/actual/array/find-index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/actual/array/find.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/actual/array/for-each.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/actual/array/from.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/actual/array/is-array.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/es/array/find-index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/es/array/find.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/es/array/for-each.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/es/array/from.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/es/array/is-array.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/es/object/assign.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/es/promise/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/es/string/from-code-point.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/a-callable.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/a-constructor.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/a-possible-prototype.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/add-to-unscopables.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/an-instance.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/an-object.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/array-for-each.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/array-from.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/array-includes.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/array-iteration.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/array-method-is-strict.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/array-slice.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/array-species-constructor.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/array-species-create.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/classof-raw.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/classof.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/clear-error-stack.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/copy-constructor-properties.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/correct-prototype-getter.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/create-iterator-constructor.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/create-property-descriptor.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/create-property.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/define-iterator.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/descriptors.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/document-create-element.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/dom-iterables.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/dom-token-list-prototype.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/engine-is-browser.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/engine-is-ios.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/engine-is-node.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/engine-user-agent.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/engine-v8-version.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/entry-unbind.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/enum-bug-keys.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/error-stack-installable.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/export.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/fails.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/function-apply.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/function-bind-context.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/function-bind-native.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/function-call.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/function-name.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/function-uncurry-this.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/get-built-in.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/get-iterator-method.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/get-iterator.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/get-method.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/global.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/has-own-property.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/hidden-keys.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/host-report-errors.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/html.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/ie8-dom-define.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/indexed-object.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/inspect-source.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/install-error-cause.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/internal-state.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/is-array-iterator-method.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/is-array.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/is-callable.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/is-constructor.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/is-forced.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/is-object.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/is-pure.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/is-symbol.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/iterate.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/iterator-close.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/iterators-core.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/iterators.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/length-of-array-like.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/microtask.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/native-symbol.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/native-weak-map.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/new-promise-capability.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/normalize-string-argument.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-assign.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-create.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-define-properties.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-define-property.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-get-own-property-names.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-get-prototype-of.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-is-prototype-of.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-keys-internal.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-keys.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-set-prototype-of.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/object-to-string.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/own-keys.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/path.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/perform.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/promise-constructor-detection.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/promise-native-constructor.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/promise-resolve.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/queue.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/redefine-all.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/redefine.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/require-object-coercible.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/set-global.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/set-species.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/set-to-string-tag.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/shared-key.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/shared-store.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/shared.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/species-constructor.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/string-multibyte.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/task.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/to-absolute-index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/to-indexed-object.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/to-length.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/to-object.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/to-primitive.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/to-property-key.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/to-string-tag-support.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/to-string.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/try-to-string.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/uid.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/validate-arguments-length.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/internals/well-known-symbol.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.aggregate-error.constructor.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.aggregate-error.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.array.find-index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.array.find.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.array.for-each.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.array.from.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.array.is-array.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.array.iterator.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.object.assign.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.object.to-string.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.promise.all-settled.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.promise.all.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.promise.any.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.promise.catch.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.promise.constructor.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.promise.finally.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.promise.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.promise.race.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.promise.reject.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.promise.resolve.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.string.from-code-point.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/es.string.iterator.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/stable/array/find-index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/stable/array/find.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/stable/array/for-each.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/stable/array/from.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/stable/array/is-array.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/core-js@3.22.2/node_modules/core-js/web/dom-collections.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/define-properties@1.2.1/node_modules/define-properties/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/dom-to-image-more@2.8.0/node_modules/dom-to-image-more/src/dom-to-image-more.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/dompurify@3.1.6/node_modules/dompurify/dist/purify.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/es-object-atoms@1.0.0/node_modules/es-object-atoms/RequireObjectCoercible.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/for-each@0.3.3/node_modules/for-each/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/shams.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/has@1.0.4/node_modules/has/src/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/is-callable@1.2.7/node_modules/is-callable/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_DataView.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Hash.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_ListCache.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Map.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_MapCache.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Promise.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Set.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_SetCache.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Stack.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Uint8Array.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_WeakMap.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayFilter.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayLikeKeys.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayPush.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arraySome.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assocIndexOf.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetAllKeys.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsArguments.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqual.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqualDeep.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNative.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsTypedArray.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeys.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTimes.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnary.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cacheHas.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_coreJsData.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalArrays.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalByTag.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalObjects.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeys.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMapData.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getNative.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getPrototype.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbols.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getTag.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getValue.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashClear.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashDelete.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashGet.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashHas.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashSet.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIndex.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKeyable.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isMasked.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isPrototype.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheClear.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheDelete.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheGet.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheHas.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheSet.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheClear.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheDelete.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheGet.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheHas.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheSet.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapToArray.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeCreate.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeys.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overArg.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheAdd.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheHas.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToArray.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackClear.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackDelete.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackGet.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackHas.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackSet.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toSource.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/eq.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArguments.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArray.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLike.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isElement.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isEqual.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFunction.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isLength.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNil.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNumber.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isPlainObject.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isTypedArray.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isUndefined.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keys.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubArray.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubFalse.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/node-polyglot@2.4.0/node_modules/node-polyglot/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/object-inspect@1.13.2/node_modules/object-inspect/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/implementation.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/isArguments.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/prop-types@15.7.2/node_modules/prop-types/factoryWithThrowingShims.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/prop-types@15.7.2/node_modules/prop-types/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/prop-types@15.7.2/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/qs@6.11.2/node_modules/qs/lib/formats.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/qs@6.11.2/node_modules/qs/lib/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/qs@6.11.2/node_modules/qs/lib/parse.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/qs@6.11.2/node_modules/qs/lib/stringify.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/qs@6.11.2/node_modules/qs/lib/utils.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/react@18.3.0/node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/react@18.3.0/node_modules/react/cjs/react.production.min.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/react@18.3.0/node_modules/react/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/react@18.3.0/node_modules/react/jsx-runtime.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/side-channel@1.0.6/node_modules/side-channel/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/string.prototype.trim@1.2.9/node_modules/string.prototype.trim/implementation.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/string.prototype.trim@1.2.9/node_modules/string.prototype.trim/index.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/string.prototype.trim@1.2.9/node_modules/string.prototype.trim/polyfill.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/string.prototype.trim@1.2.9/node_modules/string.prototype.trim/shim.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/warning@4.0.3/node_modules/warning/warning.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/es-abstract@1.23.3/node_modules/es-abstract/2024/ToString.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_define_property.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_object_spread.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_object_spread_props.js","webpack://@jotforminc/umd-bundler/../../libs/form-common/src/constants.js","webpack://@jotforminc/umd-bundler/../../libs/form-common/src/utils.js","webpack://@jotforminc/umd-bundler/../../libs/constants/src/months/index.js","webpack://@jotforminc/umd-bundler/../../libs/form-common/src/appointment.js","webpack://@jotforminc/umd-bundler/../../libs/constants/src/countries/index.js","webpack://@jotforminc/umd-bundler/../../libs/constants/src/genders/index.js","webpack://@jotforminc/umd-bundler/../../libs/constants/src/days/index.js","webpack://@jotforminc/umd-bundler/../../libs/form-common/src/components/FormLogo.js","webpack://@jotforminc/umd-bundler/../../libs/constants/src/texts/index.js","webpack://@jotforminc/umd-bundler/../../libs/utils/src/dom.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/whatwg-fetch@3.0.0/node_modules/whatwg-fetch/fetch.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/polyfill.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/utils.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/constants.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/progress.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/overlay.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/uploader.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/SummaryPage.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/ShoppingBag.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/ProductPages.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/Donation.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/patch.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/address.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/slider.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/matrix.js","webpack://@jotforminc/umd-bundler/../../libs/constants/src/email/index.js","webpack://@jotforminc/umd-bundler/../../libs/translation/src/domHelper.js","webpack://@jotforminc/umd-bundler/../../libs/translation/src/Translation.js","webpack://@jotforminc/umd-bundler/../../libs/translation/src/constants/index.js","webpack://@jotforminc/umd-bundler/../../libs/translation/src/utils.js","webpack://@jotforminc/umd-bundler/../../libs/translation/src/hof.js","webpack://@jotforminc/umd-bundler/../../libs/translation/src/index.js","webpack://@jotforminc/umd-bundler/../../libs/translation/src/global.js","webpack://@jotforminc/umd-bundler/../../libs/utils/src/validation.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/verificationPrompterBox.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/validationHelper.js","webpack://@jotforminc/umd-bundler/../../libs/storage-helper/src/constants.js","webpack://@jotforminc/umd-bundler/../../libs/storage-helper/src/index.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/storage.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/email.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/emojiSlider.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/feedbackIframeMessager.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/Fullscreen.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/optionsBase.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/dropdown.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/EmojiPicker.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/textarea.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/payment.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/dateHandler.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/datetime.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/embedOptionsApiClient.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/embedOptions.js","webpack://@jotforminc/umd-bundler/../../../node_modules/.pnpm/nanoid@4.0.2/node_modules/nanoid/index.browser.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/saveAndContinueLater.js","webpack://@jotforminc/umd-bundler/../../cdns/for-cardform-js/src/index.js"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.24.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*\n * JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\n\n/* global define */\n\n/* eslint-disable strict */\n\n;(function ($) {\n 'use strict'\n\n /**\n * Add integers, wrapping at 2^32.\n * This uses 16-bit operations internally to work around bugs in interpreters.\n *\n * @param {number} x First integer\n * @param {number} y Second integer\n * @returns {number} Sum\n */\n function safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff)\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16)\n return (msw << 16) | (lsw & 0xffff)\n }\n\n /**\n * Bitwise rotate a 32-bit number to the left.\n *\n * @param {number} num 32-bit number\n * @param {number} cnt Rotation count\n * @returns {number} Rotated number\n */\n function bitRotateLeft(num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt))\n }\n\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} q q\n * @param {number} a a\n * @param {number} b b\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5ff(a, b, c, d, x, s, t) {\n return md5cmn((b & c) | (~b & d), a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5gg(a, b, c, d, x, s, t) {\n return md5cmn((b & d) | (c & ~d), a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t)\n }\n /**\n * Basic operation the algorithm uses.\n *\n * @param {number} a a\n * @param {number} b b\n * @param {number} c c\n * @param {number} d d\n * @param {number} x x\n * @param {number} s s\n * @param {number} t t\n * @returns {number} Result\n */\n function md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t)\n }\n\n /**\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n *\n * @param {Array} x Array of little-endian words\n * @param {number} len Bit length\n * @returns {Array} MD5 Array\n */\n function binlMD5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32\n x[(((len + 64) >>> 9) << 4) + 14] = len\n\n var i\n var olda\n var oldb\n var oldc\n var oldd\n var a = 1732584193\n var b = -271733879\n var c = -1732584194\n var d = 271733878\n\n for (i = 0; i < x.length; i += 16) {\n olda = a\n oldb = b\n oldc = c\n oldd = d\n\n a = md5ff(a, b, c, d, x[i], 7, -680876936)\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063)\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)\n\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)\n b = md5gg(b, c, d, a, x[i], 20, -373897302)\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)\n\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558)\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)\n d = md5hh(d, a, b, c, x[i], 11, -358537222)\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)\n\n a = md5ii(a, b, c, d, x[i], 6, -198630844)\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)\n\n a = safeAdd(a, olda)\n b = safeAdd(b, oldb)\n c = safeAdd(c, oldc)\n d = safeAdd(d, oldd)\n }\n return [a, b, c, d]\n }\n\n /**\n * Convert an array of little-endian words to a string\n *\n * @param {Array} input MD5 Array\n * @returns {string} MD5 string\n */\n function binl2rstr(input) {\n var i\n var output = ''\n var length32 = input.length * 32\n for (i = 0; i < length32; i += 8) {\n output += String.fromCharCode((input[i >> 5] >>> i % 32) & 0xff)\n }\n return output\n }\n\n /**\n * Convert a raw string to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n *\n * @param {string} input Raw input string\n * @returns {Array} Array of little-endian words\n */\n function rstr2binl(input) {\n var i\n var output = []\n output[(input.length >> 2) - 1] = undefined\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0\n }\n var length8 = input.length * 8\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32\n }\n return output\n }\n\n /**\n * Calculate the MD5 of a raw string\n *\n * @param {string} s Input string\n * @returns {string} Raw MD5 string\n */\n function rstrMD5(s) {\n return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))\n }\n\n /**\n * Calculates the HMAC-MD5 of a key and some data (raw strings)\n *\n * @param {string} key HMAC key\n * @param {string} data Raw input string\n * @returns {string} Raw MD5 string\n */\n function rstrHMACMD5(key, data) {\n var i\n var bkey = rstr2binl(key)\n var ipad = []\n var opad = []\n var hash\n ipad[15] = opad[15] = undefined\n if (bkey.length > 16) {\n bkey = binlMD5(bkey, key.length * 8)\n }\n for (i = 0; i < 16; i += 1) {\n ipad[i] = bkey[i] ^ 0x36363636\n opad[i] = bkey[i] ^ 0x5c5c5c5c\n }\n hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)\n return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))\n }\n\n /**\n * Convert a raw string to a hex string\n *\n * @param {string} input Raw input string\n * @returns {string} Hex encoded string\n */\n function rstr2hex(input) {\n var hexTab = '0123456789abcdef'\n var output = ''\n var x\n var i\n for (i = 0; i < input.length; i += 1) {\n x = input.charCodeAt(i)\n output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f)\n }\n return output\n }\n\n /**\n * Encode a string as UTF-8\n *\n * @param {string} input Input string\n * @returns {string} UTF8 string\n */\n function str2rstrUTF8(input) {\n return unescape(encodeURIComponent(input))\n }\n\n /**\n * Encodes input string as raw MD5 string\n *\n * @param {string} s Input string\n * @returns {string} Raw MD5 string\n */\n function rawMD5(s) {\n return rstrMD5(str2rstrUTF8(s))\n }\n /**\n * Encodes input string as Hex encoded string\n *\n * @param {string} s Input string\n * @returns {string} Hex encoded string\n */\n function hexMD5(s) {\n return rstr2hex(rawMD5(s))\n }\n /**\n * Calculates the raw HMAC-MD5 for the given key and data\n *\n * @param {string} k HMAC key\n * @param {string} d Input string\n * @returns {string} Raw MD5 string\n */\n function rawHMACMD5(k, d) {\n return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))\n }\n /**\n * Calculates the Hex encoded HMAC-MD5 for the given key and data\n *\n * @param {string} k HMAC key\n * @param {string} d Input string\n * @returns {string} Raw MD5 string\n */\n function hexHMACMD5(k, d) {\n return rstr2hex(rawHMACMD5(k, d))\n }\n\n /**\n * Calculates MD5 value for a given string.\n * If a key is provided, calculates the HMAC-MD5 value.\n * Returns a Hex encoded string unless the raw argument is given.\n *\n * @param {string} string Input string\n * @param {string} [key] HMAC key\n * @param {boolean} [raw] Raw output switch\n * @returns {string} MD5 output\n */\n function md5(string, key, raw) {\n if (!key) {\n if (!raw) {\n return hexMD5(string)\n }\n return rawMD5(string)\n }\n if (!raw) {\n return hexHMACMD5(key, string)\n }\n return rawHMACMD5(key, string)\n }\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return md5\n })\n } else if (typeof module === 'object' && module.exports) {\n module.exports = md5\n } else {\n $.md5 = md5\n }\n})(this)\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]1?i-1:0),a=1;a0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","var parent = require('../../stable/array/find-index');\n\nmodule.exports = parent;\n","var parent = require('../../stable/array/find');\n\nmodule.exports = parent;\n","var parent = require('../../stable/array/for-each');\n\nmodule.exports = parent;\n","var parent = require('../../stable/array/from');\n\nmodule.exports = parent;\n","var parent = require('../../stable/array/is-array');\n\nmodule.exports = parent;\n","require('../../modules/es.array.find-index');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'findIndex');\n","require('../../modules/es.array.find');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'find');\n","require('../../modules/es.array.for-each');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'forEach');\n","require('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","require('../../modules/es.array.is-array');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.isArray;\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","require('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","require('../../modules/es.string.from-code-point');\nvar path = require('../../internals/path');\n\nmodule.exports = path.String.fromCodePoint;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\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');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\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-x/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\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 = lengthOfArrayLike(O);\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","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\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 (isConstructor(C) && (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","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","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\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-x/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 uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","module.exports = typeof window == 'object' && typeof Deno != 'object';\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\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 // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && 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;\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\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 fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\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 options.name - the .name of the function if it does not match the key\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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\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 getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\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","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.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(it, '') : Object(it);\n} : Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\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 TypeError = global.TypeError;\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 = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(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 hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es-x/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\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);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\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 (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es-x/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","/* eslint-disable es-x/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-x/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","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\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-x/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\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-x/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 ? concat(objectKeys(S), 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 || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-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-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\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++], props[key]);\n return O;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\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 hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/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 (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\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-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\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' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\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\nvar concat = uncurryThis([].concat);\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 ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\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 name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\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 isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\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 global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\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","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\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.22.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.22.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\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 : aConstructor(S);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (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 global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\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 Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\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 if (hasOwn(queue, 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(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, 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);\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 isCallable(global.postMessage) &&\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 toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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 = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\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","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n return passed;\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar installErrorCause = require('../internals/install-error-cause');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Error = global.Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n installErrorCause(that, options);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, Error);\nelse copyConstructorProperties($AggregateError, Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n AggregateError: $AggregateError\n});\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es-x/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es-x/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es-x/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar redefine = require('../internals/redefine');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n redefine(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n Internal.prototype = redefineAll(PromisePrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n // eslint-disable-next-line unicorn/no-thenable -- safe\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n }\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n redefine(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar RangeError = global.RangeError;\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es-x/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\nvar join = uncurryThis([].join);\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fromCodePoint: function fromCodePoint(x) {\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n elements[i] = code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);\n } return join(elements, '');\n }\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","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\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\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var parent = require('../../es/array/find-index');\n\nmodule.exports = parent;\n","var parent = require('../../es/array/find');\n\nmodule.exports = parent;\n","var parent = require('../../es/array/for-each');\n\nmodule.exports = parent;\n","var parent = require('../../es/array/from');\n\nmodule.exports = parent;\n","var parent = require('../../es/array/is-array');\n\nmodule.exports = parent;\n","require('../modules/web.dom-collections.for-each');\nrequire('../modules/web.dom-collections.iterator');\nvar path = require('../internals/path');\n\nmodule.exports = path;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","(function(global) {\n 'use strict';\n\n var util = newUtil();\n var inliner = newInliner();\n var fontFaces = newFontFaces();\n var images = newImages();\n\n // Default impl options\n var defaultOptions = {\n // Default is to fail on error, no placeholder\n imagePlaceholder: undefined,\n // Default cache bust is false, it will use the cache\n cacheBust: false,\n // Use (existing) authentication credentials for external URIs (CORS requests)\n useCredentials: false\n };\n\n var domtoimage = {\n toSvg: toSvg,\n toPng: toPng,\n toJpeg: toJpeg,\n toBlob: toBlob,\n toPixelData: toPixelData,\n toCanvas: toCanvas,\n impl: {\n fontFaces: fontFaces,\n images: images,\n util: util,\n inliner: inliner,\n options: {}\n }\n };\n\n if (typeof exports === \"object\" && typeof module === \"object\")\n module.exports = domtoimage;\n else\n global.domtoimage = domtoimage;\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options\n * @param {Function} options.filter - Should return true if passed node should be included in the output\n * (excluding node means excluding it's children as well). Not called on the root node.\n * @param {String} options.bgcolor - color for the background, any valid CSS color value.\n * @param {Number} options.width - width to be applied to node before rendering.\n * @param {Number} options.height - height to be applied to node before rendering.\n * @param {Object} options.style - an object whose properties to be copied to node's style before rendering.\n * @param {Number} options.quality - a Number between 0 and 1 indicating image quality (applicable to JPEG only),\n defaults to 1.0.\n * @param {Number} options.scale - a Number multiplier to scale up the canvas before rendering to reduce fuzzy images, defaults to 1.0.\n * @param {String} options.imagePlaceholder - dataURL to use as a placeholder for failed images, default behaviour is to fail fast on images we can't fetch\n * @param {Boolean} options.cacheBust - set to true to cache bust by appending the time to the request url\n * @return {Promise} - A promise that is fulfilled with a SVG image data URL\n * */\n function toSvg(node, options) {\n options = options || {};\n copyOptions(options);\n return Promise.resolve(node)\n .then(function(node) {\n return cloneNode(node, options.filter, true);\n })\n .then(embedFonts)\n .then(inlineImages)\n .then(applyOptions)\n .then(function(clone) {\n return makeSvgDataUri(clone,\n options.width || util.width(node),\n options.height || util.height(node)\n );\n });\n\n function applyOptions(clone) {\n if (options.bgcolor) clone.style.backgroundColor = options.bgcolor;\n if (options.width) clone.style.width = options.width + 'px';\n if (options.height) clone.style.height = options.height + 'px';\n\n if (options.style)\n Object.keys(options.style).forEach(function(property) {\n clone.style[property] = options.style[property];\n });\n\n return clone;\n }\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a Uint8Array containing RGBA pixel data.\n * */\n function toPixelData(node, options) {\n return draw(node, options || {})\n .then(function(canvas) {\n return canvas.getContext('2d').getImageData(\n 0,\n 0,\n util.width(node),\n util.height(node)\n ).data;\n });\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a PNG image data URL\n * */\n function toPng(node, options) {\n return draw(node, options || {})\n .then(function(canvas) {\n return canvas.toDataURL();\n });\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a JPEG image data URL\n * */\n function toJpeg(node, options) {\n options = options || {};\n return draw(node, options)\n .then(function(canvas) {\n return canvas.toDataURL('image/jpeg', options.quality || 1.0);\n });\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a PNG image blob\n * */\n function toBlob(node, options) {\n return draw(node, options || {})\n .then(util.canvasToBlob);\n }\n\n /**\n * @param {Node} node - The DOM Node object to render\n * @param {Object} options - Rendering options, @see {@link toSvg}\n * @return {Promise} - A promise that is fulfilled with a canvas object\n * */\n function toCanvas(node, options) {\n return draw(node, options || {});\n }\n\n function copyOptions(options) {\n // Copy options to impl options for use in impl\n if (typeof(options.imagePlaceholder) === 'undefined') {\n domtoimage.impl.options.imagePlaceholder = defaultOptions.imagePlaceholder;\n } else {\n domtoimage.impl.options.imagePlaceholder = options.imagePlaceholder;\n }\n\n if (typeof(options.cacheBust) === 'undefined') {\n domtoimage.impl.options.cacheBust = defaultOptions.cacheBust;\n } else {\n domtoimage.impl.options.cacheBust = options.cacheBust;\n }\n\n if(typeof(options.useCredentials) === 'undefined') {\n domtoimage.impl.options.useCredentials = defaultOptions.useCredentials;\n } else {\n domtoimage.impl.options.useCredentials = options.useCredentials;\n }\n }\n\n function draw(domNode, options) {\n return toSvg(domNode, options)\n .then(util.makeImage)\n .then(util.delay(100))\n .then(function(image) {\n var scale = typeof(options.scale) !== 'number' ? 1 : options.scale;\n var canvas = newCanvas(domNode, scale);\n var ctx = canvas.getContext('2d');\n if (image) {\n ctx.scale(scale, scale);\n ctx.drawImage(image, 0, 0);\n }\n return canvas;\n });\n\n function newCanvas(domNode, scale) {\n var canvas = document.createElement('canvas');\n canvas.width = (options.width || util.width(domNode)) * scale;\n canvas.height = (options.height || util.height(domNode)) * scale;\n\n if (options.bgcolor) {\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = options.bgcolor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n\n return canvas;\n }\n }\n\n function cloneNode(node, filter, root) {\n if (!root && filter && !filter(node)) return Promise.resolve();\n\n return Promise.resolve(node)\n .then(makeNodeCopy)\n .then(function(clone) {\n return cloneChildren(node, clone, filter);\n })\n .then(function(clone) {\n return processClone(node, clone);\n });\n\n function makeNodeCopy(node) {\n if (node instanceof HTMLCanvasElement) return util.makeImage(node.toDataURL());\n return node.cloneNode(false);\n }\n\n function cloneChildren(original, clone, filter) {\n var children = original.childNodes;\n if (children.length === 0) return Promise.resolve(clone);\n\n return cloneChildrenInOrder(clone, util.asArray(children), filter)\n .then(function() {\n return clone;\n });\n\n function cloneChildrenInOrder(parent, children, filter) {\n var done = Promise.resolve();\n children.forEach(function(child) {\n done = done\n .then(function() {\n return cloneNode(child, filter);\n })\n .then(function(childClone) {\n if (childClone) parent.appendChild(childClone);\n });\n });\n return done;\n }\n }\n\n function processClone(original, clone) {\n if (!(clone instanceof Element)) return clone;\n\n return Promise.resolve()\n .then(cloneStyle)\n .then(clonePseudoElements)\n .then(copyUserInput)\n .then(fixSvg)\n .then(function() {\n return clone;\n });\n\n function cloneStyle() {\n copyStyle(window.getComputedStyle(original), clone.style);\n\n function copyStyle(source, target) {\n if (source.cssText) {\n target.cssText = source.cssText;\n target.font = source.font; // here, we re-assign the font prop.\n } else copyProperties(source, target);\n\n function copyProperties(source, target) {\n util.asArray(source).forEach(function(name) {\n target.setProperty(\n name,\n source.getPropertyValue(name),\n source.getPropertyPriority(name)\n );\n });\n }\n }\n }\n\n function clonePseudoElements() {\n [':before', ':after'].forEach(function(element) {\n clonePseudoElement(element);\n });\n\n function clonePseudoElement(element) {\n var style = window.getComputedStyle(original, element);\n var content = style.getPropertyValue('content');\n\n if (content === '' || content === 'none') return;\n\n var className = util.uid();\n var currentClass = clone.getAttribute('class');\n if (currentClass) {\n clone.setAttribute('class', currentClass + ' ' + className);\n }\n\n var styleElement = document.createElement('style');\n styleElement.appendChild(formatPseudoElementStyle(className, element, style));\n clone.appendChild(styleElement);\n\n function formatPseudoElementStyle(className, element, style) {\n var selector = '.' + className + ':' + element;\n var cssText = style.cssText ? formatCssText(style) : formatCssProperties(style);\n return document.createTextNode(selector + '{' + cssText + '}');\n\n function formatCssText(style) {\n var content = style.getPropertyValue('content');\n return style.cssText + ' content: ' + content + ';';\n }\n\n function formatCssProperties(style) {\n\n return util.asArray(style)\n .map(formatProperty)\n .join('; ') + ';';\n\n function formatProperty(name) {\n return name + ': ' +\n style.getPropertyValue(name) +\n (style.getPropertyPriority(name) ? ' !important' : '');\n }\n }\n }\n }\n }\n\n function copyUserInput() {\n if (original instanceof HTMLTextAreaElement) clone.innerHTML = original.value;\n if (original instanceof HTMLInputElement) clone.setAttribute(\"value\", original.value);\n }\n\n function fixSvg() {\n if (!(clone instanceof SVGElement)) return;\n clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (!(clone instanceof SVGRectElement)) return;\n ['width', 'height'].forEach(function(attribute) {\n var value = clone.getAttribute(attribute);\n if (!value) return;\n\n clone.style.setProperty(attribute, value);\n });\n }\n }\n }\n\n function embedFonts(node) {\n return fontFaces.resolveAll()\n .then(function(cssText) {\n var styleNode = document.createElement('style');\n node.appendChild(styleNode);\n styleNode.appendChild(document.createTextNode(cssText));\n return node;\n });\n }\n\n function inlineImages(node) {\n return images.inlineAll(node)\n .then(function() {\n return node;\n });\n }\n\n function makeSvgDataUri(node, width, height) {\n return Promise.resolve(node)\n .then(function(node) {\n node.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml');\n return new XMLSerializer().serializeToString(node);\n })\n .then(util.escapeXhtml)\n .then(function(xhtml) {\n return '' + xhtml + '';\n })\n .then(function(foreignObject) {\n return '' +\n foreignObject + '';\n })\n .then(function(svg) {\n return 'data:image/svg+xml;charset=utf-8,' + svg;\n });\n }\n\n function newUtil() {\n return {\n escape: escape,\n parseExtension: parseExtension,\n mimeType: mimeType,\n dataAsUrl: dataAsUrl,\n isDataUrl: isDataUrl,\n canvasToBlob: canvasToBlob,\n resolveUrl: resolveUrl,\n getAndEncode: getAndEncode,\n uid: uid(),\n delay: delay,\n asArray: asArray,\n escapeXhtml: escapeXhtml,\n makeImage: makeImage,\n width: width,\n height: height\n };\n\n function mimes() {\n /*\n * Only WOFF and EOT mime types for fonts are 'real'\n * see http://www.iana.org/assignments/media-types/media-types.xhtml\n */\n var WOFF = 'application/font-woff';\n var JPEG = 'image/jpeg';\n\n return {\n 'woff': WOFF,\n 'woff2': WOFF,\n 'ttf': 'application/font-truetype',\n 'eot': 'application/vnd.ms-fontobject',\n 'png': 'image/png',\n 'jpg': JPEG,\n 'jpeg': JPEG,\n 'gif': 'image/gif',\n 'tiff': 'image/tiff',\n 'svg': 'image/svg+xml'\n };\n }\n\n function parseExtension(url) {\n var match = /\\.([^\\.\\/]*?)(\\?|$)/g.exec(url);\n if (match) return match[1];\n else return '';\n }\n\n function mimeType(url) {\n var extension = parseExtension(url).toLowerCase();\n return mimes()[extension] || '';\n }\n\n function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n }\n\n function toBlob(canvas) {\n return new Promise(function(resolve) {\n var binaryString = window.atob(canvas.toDataURL().split(',')[1]);\n var length = binaryString.length;\n var binaryArray = new Uint8Array(length);\n\n for (var i = 0; i < length; i++)\n binaryArray[i] = binaryString.charCodeAt(i);\n\n resolve(new Blob([binaryArray], {\n type: 'image/png'\n }));\n });\n }\n\n function canvasToBlob(canvas) {\n if (canvas.toBlob)\n return new Promise(function(resolve) {\n canvas.toBlob(resolve);\n });\n\n return toBlob(canvas);\n }\n\n function resolveUrl(url, baseUrl) {\n var doc = document.implementation.createHTMLDocument();\n var base = doc.createElement('base');\n doc.head.appendChild(base);\n var a = doc.createElement('a');\n doc.body.appendChild(a);\n base.href = baseUrl;\n a.href = url;\n return a.href;\n }\n\n function uid() {\n var index = 0;\n\n return function() {\n return 'u' + fourRandomChars() + index++;\n\n function fourRandomChars() {\n /* see http://stackoverflow.com/a/6248722/2519373 */\n return ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4);\n }\n };\n }\n\n function makeImage(uri) {\n if (uri === 'data:,') return Promise.resolve();\n return new Promise(function(resolve, reject) {\n var image = new Image();\n if(domtoimage.impl.options.useCredentials) {\n image.crossOrigin = 'use-credentials';\n }\n image.onload = function() {\n resolve(image);\n };\n image.onerror = reject;\n image.src = uri;\n });\n }\n\n function getAndEncode(url) {\n var TIMEOUT = 30000;\n if (domtoimage.impl.options.cacheBust) {\n // Cache bypass so we dont have CORS issues with cached images\n // Source: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n url += ((/\\?/).test(url) ? \"&\" : \"?\") + (new Date()).getTime();\n }\n\n return new Promise(function(resolve) {\n var request = new XMLHttpRequest();\n\n request.onreadystatechange = done;\n request.ontimeout = timeout;\n request.responseType = 'blob';\n request.timeout = TIMEOUT;\n if(domtoimage.impl.options.useCredentials) {\n request.withCredentials = true;\n }\n request.open('GET', url, true);\n request.send();\n\n var placeholder;\n if (domtoimage.impl.options.imagePlaceholder) {\n var split = domtoimage.impl.options.imagePlaceholder.split(/,/);\n if (split && split[1]) {\n placeholder = split[1];\n }\n }\n\n function done() {\n if (request.readyState !== 4) return;\n\n if (request.status !== 200) {\n if (placeholder) {\n resolve(placeholder);\n } else {\n fail('cannot fetch resource: ' + url + ', status: ' + request.status);\n }\n\n return;\n }\n\n var encoder = new FileReader();\n encoder.onloadend = function() {\n var content = encoder.result.split(/,/)[1];\n resolve(content);\n };\n encoder.readAsDataURL(request.response);\n }\n\n function timeout() {\n if (placeholder) {\n resolve(placeholder);\n } else {\n fail('timeout of ' + TIMEOUT + 'ms occured while fetching resource: ' + url);\n }\n }\n\n function fail(message) {\n console.error(message);\n resolve('');\n }\n });\n }\n\n function dataAsUrl(content, type) {\n return 'data:' + type + ';base64,' + content;\n }\n\n function escape(string) {\n return string.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n }\n\n function delay(ms) {\n return function(arg) {\n return new Promise(function(resolve) {\n setTimeout(function() {\n resolve(arg);\n }, ms);\n });\n };\n }\n\n function asArray(arrayLike) {\n var array = [];\n var length = arrayLike.length;\n for (var i = 0; i < length; i++) array.push(arrayLike[i]);\n return array;\n }\n\n function escapeXhtml(string) {\n return string.replace(/#/g, '%23').replace(/\\n/g, '%0A');\n }\n\n function width(node) {\n var leftBorder = px(node, 'border-left-width');\n var rightBorder = px(node, 'border-right-width');\n return node.scrollWidth + leftBorder + rightBorder;\n }\n\n function height(node) {\n var topBorder = px(node, 'border-top-width');\n var bottomBorder = px(node, 'border-bottom-width');\n return node.scrollHeight + topBorder + bottomBorder;\n }\n\n function px(node, styleProperty) {\n var value = window.getComputedStyle(node).getPropertyValue(styleProperty);\n return parseFloat(value.replace('px', ''));\n }\n }\n\n function newInliner() {\n var URL_REGEX = /url\\(['\"]?([^'\"]+?)['\"]?\\)/g;\n\n return {\n inlineAll: inlineAll,\n shouldProcess: shouldProcess,\n impl: {\n readUrls: readUrls,\n inline: inline\n }\n };\n\n function shouldProcess(string) {\n return string.search(URL_REGEX) !== -1;\n }\n\n function readUrls(string) {\n var result = [];\n var match;\n while ((match = URL_REGEX.exec(string)) !== null) {\n result.push(match[1]);\n }\n return result.filter(function(url) {\n return !util.isDataUrl(url);\n });\n }\n\n function inline(string, url, baseUrl, get) {\n return Promise.resolve(url)\n .then(function(url) {\n return baseUrl ? util.resolveUrl(url, baseUrl) : url;\n })\n .then(get || util.getAndEncode)\n .then(function(data) {\n return util.dataAsUrl(data, util.mimeType(url));\n })\n .then(function(dataUrl) {\n return string.replace(urlAsRegex(url), '$1' + dataUrl + '$3');\n });\n\n function urlAsRegex(url) {\n return new RegExp('(url\\\\([\\'\"]?)(' + util.escape(url) + ')([\\'\"]?\\\\))', 'g');\n }\n }\n\n function inlineAll(string, baseUrl, get) {\n if (nothingToInline()) return Promise.resolve(string);\n\n return Promise.resolve(string)\n .then(readUrls)\n .then(function(urls) {\n var done = Promise.resolve(string);\n urls.forEach(function(url) {\n done = done.then(function(string) {\n return inline(string, url, baseUrl, get);\n });\n });\n return done;\n });\n\n function nothingToInline() {\n return !shouldProcess(string);\n }\n }\n }\n\n function newFontFaces() {\n return {\n resolveAll: resolveAll,\n impl: {\n readAll: readAll\n }\n };\n\n function resolveAll() {\n return readAll(document)\n .then(function(webFonts) {\n return Promise.all(\n webFonts.map(function(webFont) {\n return webFont.resolve();\n })\n );\n })\n .then(function(cssStrings) {\n return cssStrings.join('\\n');\n });\n }\n\n function readAll() {\n return Promise.resolve(util.asArray(document.styleSheets))\n .then(getCssRules)\n .then(selectWebFontRules)\n .then(function(rules) {\n return rules.map(newWebFont);\n });\n\n function selectWebFontRules(cssRules) {\n return cssRules\n .filter(function(rule) {\n return rule.type === CSSRule.FONT_FACE_RULE;\n })\n .filter(function(rule) {\n return inliner.shouldProcess(rule.style.getPropertyValue('src'));\n });\n }\n\n function getCssRules(styleSheets) {\n var cssRules = [];\n styleSheets.forEach(function(sheet) {\n if (sheet.hasOwnProperty(\"cssRules\")) {\n try {\n util.asArray(sheet.cssRules || []).forEach(cssRules.push.bind(cssRules));\n } catch (e) {\n console.log('Error while reading CSS rules from ' + sheet.href, e.toString());\n }\n }\n });\n return cssRules;\n }\n\n function newWebFont(webFontRule) {\n return {\n resolve: function resolve() {\n var baseUrl = (webFontRule.parentStyleSheet || {}).href;\n return inliner.inlineAll(webFontRule.cssText, baseUrl);\n },\n src: function() {\n return webFontRule.style.getPropertyValue('src');\n }\n };\n }\n }\n }\n\n function newImages() {\n return {\n inlineAll: inlineAll,\n impl: {\n newImage: newImage\n }\n };\n\n function newImage(element) {\n return {\n inline: inline\n };\n\n function inline(get) {\n if (util.isDataUrl(element.src)) return Promise.resolve();\n\n return Promise.resolve(element.src)\n .then(get || util.getAndEncode)\n .then(function(data) {\n return util.dataAsUrl(data, util.mimeType(element.src));\n })\n .then(function(dataUrl) {\n return new Promise(function(resolve, reject) {\n element.onload = resolve;\n // for any image with invalid src(such as ), just ignore it\n element.onerror = resolve;\n element.src = dataUrl;\n });\n });\n }\n }\n\n function inlineAll(node) {\n if (!(node instanceof Element)) return Promise.resolve(node);\n\n return inlineBackground(node)\n .then(function() {\n if (node instanceof HTMLImageElement)\n return newImage(node).inline();\n else\n return Promise.all(\n util.asArray(node.childNodes).map(function(child) {\n return inlineAll(child);\n })\n );\n });\n\n function inlineBackground(node) {\n var background = node.style.getPropertyValue('background');\n\n if (!background) return Promise.resolve(node);\n\n return inliner.inlineAll(background)\n .then(function(inlined) {\n node.style.setProperty(\n 'background',\n inlined,\n node.style.getPropertyPriority('background')\n );\n })\n .then(function() {\n return node;\n });\n }\n }\n }\n})(this);\n","/*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param {Function} func - The function to be wrapped and called.\n * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param {Function} func - The constructor function to be wrapped and called.\n * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n\n /**\n * Add properties to a lookup table\n *\n * @param {Object} set - The set to which elements will be added.\n * @param {Array} array - The array containing elements to be added to the set.\n * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns {Object} The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n\n /**\n * Clean up an array to harden against CSPP\n *\n * @param {Array} array - The array to be cleaned.\n * @returns {Array} The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n\n /**\n * Shallow clone an object\n *\n * @param {Object} object - The object to be cloned.\n * @returns {Object} A new object that copies the original.\n */\n function clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param {Object} object - The object to look up the getter function in its prototype chain.\n * @param {String} prop - The property name for which to find the getter function.\n * @returns {Function} The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n ERB_EXPR: ERB_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR,\n DATA_ATTR: DATA_ATTR,\n ARIA_ATTR: ARIA_ATTR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n DOCTYPE_NAME: DOCTYPE_NAME,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT\n });\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n };\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '3.1.6';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n const HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'annotation-xml']);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n\n /**\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param {Node} root The root element or node to start traversing on.\n * @return {NodeIterator} The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param {Node} object object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function _isNode(object) {\n return typeof Node === 'function' && object instanceof Node;\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n arrayForEach(hooks[entryPoint], hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param {string} tagName name of the tag of the node to sanitize\n * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n const {\n attributes\n } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} cfg object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {String} tag Tag name of containing element.\n * @param {String} attr Attribute name.\n * @param {String} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\n\n/** @type {import('./RequireObjectCoercible')} */\nmodule.exports = function RequireObjectCoercible(value) {\n\tif (value == null) {\n\t\tthrow new $TypeError((arguments.length > 0 && arguments[1]) || ('Cannot call method on ' + value));\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasOwnProperty = {}.hasOwnProperty;\nvar call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(hasOwnProperty) : function (O, P) {\n return call.call(hasOwnProperty, O, P);\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\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 nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var isObjectLike = require('./isObjectLike'),\n isPlainObject = require('./isPlainObject');\n\n/**\n * Checks if `value` is likely a DOM element.\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 a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nmodule.exports = isElement;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is `null` or `undefined`.\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 nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\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\n * classified as numbers, use the `_.isFinite` method.\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 a number, 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) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\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 != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","// (c) 2012-2018 Airbnb, Inc.\n//\n// polyglot.js may be freely distributed under the terms of the BSD\n// license. For all licensing information, details, and documention:\n// http://airbnb.github.com/polyglot.js\n//\n//\n// Polyglot.js is an I18n helper library written in JavaScript, made to\n// work both in the browser and in Node. It provides a simple solution for\n// interpolation and pluralization, based off of Airbnb's\n// experience adding I18n functionality to its Backbone.js and Node apps.\n//\n// Polylglot is agnostic to your translation backend. It doesn't perform any\n// translation; it simply gives you a way to manage translated phrases from\n// your client- or server-side JavaScript application.\n//\n\n'use strict';\n\nvar forEach = require('for-each');\nvar warning = require('warning');\nvar has = require('has');\nvar trim = require('string.prototype.trim');\n\nvar warn = function warn(message) {\n warning(false, message);\n};\n\nvar replace = String.prototype.replace;\nvar split = String.prototype.split;\n\n// #### Pluralization methods\n// The string that separates the different phrase possibilities.\nvar delimiter = '||||';\n\nvar russianPluralGroups = function (n) {\n var lastTwo = n % 100;\n var end = lastTwo % 10;\n if (lastTwo !== 11 && end === 1) {\n return 0;\n }\n if (2 <= end && end <= 4 && !(lastTwo >= 12 && lastTwo <= 14)) {\n return 1;\n }\n return 2;\n};\n\nvar defaultPluralRules = {\n // Mapping from pluralization group plural logic.\n pluralTypes: {\n arabic: function (n) {\n // http://www.arabeyes.org/Plural_Forms\n if (n < 3) { return n; }\n var lastTwo = n % 100;\n if (lastTwo >= 3 && lastTwo <= 10) return 3;\n return lastTwo >= 11 ? 4 : 5;\n },\n bosnian_serbian: russianPluralGroups,\n chinese: function () { return 0; },\n croatian: russianPluralGroups,\n french: function (n) { return n > 1 ? 1 : 0; },\n german: function (n) { return n !== 1 ? 1 : 0; },\n russian: russianPluralGroups,\n lithuanian: function (n) {\n if (n % 10 === 1 && n % 100 !== 11) { return 0; }\n return n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19) ? 1 : 2;\n },\n czech: function (n) {\n if (n === 1) { return 0; }\n return (n >= 2 && n <= 4) ? 1 : 2;\n },\n polish: function (n) {\n if (n === 1) { return 0; }\n var end = n % 10;\n return 2 <= end && end <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2;\n },\n icelandic: function (n) { return (n % 10 !== 1 || n % 100 === 11) ? 1 : 0; },\n slovenian: function (n) {\n var lastTwo = n % 100;\n if (lastTwo === 1) {\n return 0;\n }\n if (lastTwo === 2) {\n return 1;\n }\n if (lastTwo === 3 || lastTwo === 4) {\n return 2;\n }\n return 3;\n }\n },\n\n // Mapping from pluralization group to individual language codes/locales.\n // Will look up based on exact match, if not found and it's a locale will parse the locale\n // for language code, and if that does not exist will default to 'en'\n pluralTypeToLanguages: {\n arabic: ['ar'],\n bosnian_serbian: ['bs-Latn-BA', 'bs-Cyrl-BA', 'srl-RS', 'sr-RS'],\n chinese: ['id', 'id-ID', 'ja', 'ko', 'ko-KR', 'lo', 'ms', 'th', 'th-TH', 'zh'],\n croatian: ['hr', 'hr-HR'],\n german: ['fa', 'da', 'de', 'en', 'es', 'fi', 'el', 'he', 'hi-IN', 'hu', 'hu-HU', 'it', 'nl', 'no', 'pt', 'sv', 'tr'],\n french: ['fr', 'tl', 'pt-br'],\n russian: ['ru', 'ru-RU'],\n lithuanian: ['lt'],\n czech: ['cs', 'cs-CZ', 'sk'],\n polish: ['pl'],\n icelandic: ['is'],\n slovenian: ['sl-SL']\n }\n};\n\nfunction langToTypeMap(mapping) {\n var ret = {};\n forEach(mapping, function (langs, type) {\n forEach(langs, function (lang) {\n ret[lang] = type;\n });\n });\n return ret;\n}\n\nfunction pluralTypeName(pluralRules, locale) {\n var langToPluralType = langToTypeMap(pluralRules.pluralTypeToLanguages);\n return langToPluralType[locale]\n || langToPluralType[split.call(locale, /-/, 1)[0]]\n || langToPluralType.en;\n}\n\nfunction pluralTypeIndex(pluralRules, locale, count) {\n return pluralRules.pluralTypes[pluralTypeName(pluralRules, locale)](count);\n}\n\nfunction escape(token) {\n return token.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction constructTokenRegex(opts) {\n var prefix = (opts && opts.prefix) || '%{';\n var suffix = (opts && opts.suffix) || '}';\n\n if (prefix === delimiter || suffix === delimiter) {\n throw new RangeError('\"' + delimiter + '\" token is reserved for pluralization');\n }\n\n return new RegExp(escape(prefix) + '(.*?)' + escape(suffix), 'g');\n}\n\nvar defaultTokenRegex = /%\\{(.*?)\\}/g;\n\n// ### transformPhrase(phrase, substitutions, locale)\n//\n// Takes a phrase string and transforms it by choosing the correct\n// plural form and interpolating it.\n//\n// transformPhrase('Hello, %{name}!', {name: 'Spike'});\n// // \"Hello, Spike!\"\n//\n// The correct plural form is selected if substitutions.smart_count\n// is set. You can pass in a number instead of an Object as `substitutions`\n// as a shortcut for `smart_count`.\n//\n// transformPhrase('%{smart_count} new messages |||| 1 new message', {smart_count: 1}, 'en');\n// // \"1 new message\"\n//\n// transformPhrase('%{smart_count} new messages |||| 1 new message', {smart_count: 2}, 'en');\n// // \"2 new messages\"\n//\n// transformPhrase('%{smart_count} new messages |||| 1 new message', 5, 'en');\n// // \"5 new messages\"\n//\n// You should pass in a third argument, the locale, to specify the correct plural type.\n// It defaults to `'en'` with 2 plural forms.\nfunction transformPhrase(phrase, substitutions, locale, tokenRegex, pluralRules) {\n if (typeof phrase !== 'string') {\n throw new TypeError('Polyglot.transformPhrase expects argument #1 to be string');\n }\n\n if (substitutions == null) {\n return phrase;\n }\n\n var result = phrase;\n var interpolationRegex = tokenRegex || defaultTokenRegex;\n var pluralRulesOrDefault = pluralRules || defaultPluralRules;\n\n // allow number as a pluralization shortcut\n var options = typeof substitutions === 'number' ? { smart_count: substitutions } : substitutions;\n\n // Select plural form: based on a phrase text that contains `n`\n // plural forms separated by `delimiter`, a `locale`, and a `substitutions.smart_count`,\n // choose the correct plural form. This is only done if `count` is set.\n if (options.smart_count != null && result) {\n var texts = split.call(result, delimiter);\n result = trim(texts[pluralTypeIndex(pluralRulesOrDefault, locale || 'en', options.smart_count)] || texts[0]);\n }\n\n // Interpolate: Creates a `RegExp` object for each interpolation placeholder.\n result = replace.call(result, interpolationRegex, function (expression, argument) {\n if (!has(options, argument) || options[argument] == null) { return expression; }\n return options[argument];\n });\n\n return result;\n}\n\n// ### Polyglot class constructor\nfunction Polyglot(options) {\n var opts = options || {};\n this.phrases = {};\n this.extend(opts.phrases || {});\n this.currentLocale = opts.locale || 'en';\n var allowMissing = opts.allowMissing ? transformPhrase : null;\n this.onMissingKey = typeof opts.onMissingKey === 'function' ? opts.onMissingKey : allowMissing;\n this.warn = opts.warn || warn;\n this.tokenRegex = constructTokenRegex(opts.interpolation);\n this.pluralRules = opts.pluralRules || defaultPluralRules;\n}\n\n// ### polyglot.locale([locale])\n//\n// Get or set locale. Internally, Polyglot only uses locale for pluralization.\nPolyglot.prototype.locale = function (newLocale) {\n if (newLocale) this.currentLocale = newLocale;\n return this.currentLocale;\n};\n\n// ### polyglot.extend(phrases)\n//\n// Use `extend` to tell Polyglot how to translate a given key.\n//\n// polyglot.extend({\n// \"hello\": \"Hello\",\n// \"hello_name\": \"Hello, %{name}\"\n// });\n//\n// The key can be any string. Feel free to call `extend` multiple times;\n// it will override any phrases with the same key, but leave existing phrases\n// untouched.\n//\n// It is also possible to pass nested phrase objects, which get flattened\n// into an object with the nested keys concatenated using dot notation.\n//\n// polyglot.extend({\n// \"nav\": {\n// \"hello\": \"Hello\",\n// \"hello_name\": \"Hello, %{name}\",\n// \"sidebar\": {\n// \"welcome\": \"Welcome\"\n// }\n// }\n// });\n//\n// console.log(polyglot.phrases);\n// // {\n// // 'nav.hello': 'Hello',\n// // 'nav.hello_name': 'Hello, %{name}',\n// // 'nav.sidebar.welcome': 'Welcome'\n// // }\n//\n// `extend` accepts an optional second argument, `prefix`, which can be used\n// to prefix every key in the phrases object with some string, using dot\n// notation.\n//\n// polyglot.extend({\n// \"hello\": \"Hello\",\n// \"hello_name\": \"Hello, %{name}\"\n// }, \"nav\");\n//\n// console.log(polyglot.phrases);\n// // {\n// // 'nav.hello': 'Hello',\n// // 'nav.hello_name': 'Hello, %{name}'\n// // }\n//\n// This feature is used internally to support nested phrase objects.\nPolyglot.prototype.extend = function (morePhrases, prefix) {\n forEach(morePhrases, function (phrase, key) {\n var prefixedKey = prefix ? prefix + '.' + key : key;\n if (typeof phrase === 'object') {\n this.extend(phrase, prefixedKey);\n } else {\n this.phrases[prefixedKey] = phrase;\n }\n }, this);\n};\n\n// ### polyglot.unset(phrases)\n// Use `unset` to selectively remove keys from a polyglot instance.\n//\n// polyglot.unset(\"some_key\");\n// polyglot.unset({\n// \"hello\": \"Hello\",\n// \"hello_name\": \"Hello, %{name}\"\n// });\n//\n// The unset method can take either a string (for the key), or an object hash with\n// the keys that you would like to unset.\nPolyglot.prototype.unset = function (morePhrases, prefix) {\n if (typeof morePhrases === 'string') {\n delete this.phrases[morePhrases];\n } else {\n forEach(morePhrases, function (phrase, key) {\n var prefixedKey = prefix ? prefix + '.' + key : key;\n if (typeof phrase === 'object') {\n this.unset(phrase, prefixedKey);\n } else {\n delete this.phrases[prefixedKey];\n }\n }, this);\n }\n};\n\n// ### polyglot.clear()\n//\n// Clears all phrases. Useful for special cases, such as freeing\n// up memory if you have lots of phrases but no longer need to\n// perform any translation. Also used internally by `replace`.\nPolyglot.prototype.clear = function () {\n this.phrases = {};\n};\n\n// ### polyglot.replace(phrases)\n//\n// Completely replace the existing phrases with a new set of phrases.\n// Normally, just use `extend` to add more phrases, but under certain\n// circumstances, you may want to make sure no old phrases are lying around.\nPolyglot.prototype.replace = function (newPhrases) {\n this.clear();\n this.extend(newPhrases);\n};\n\n\n// ### polyglot.t(key, options)\n//\n// The most-used method. Provide a key, and `t` will return the\n// phrase.\n//\n// polyglot.t(\"hello\");\n// => \"Hello\"\n//\n// The phrase value is provided first by a call to `polyglot.extend()` or\n// `polyglot.replace()`.\n//\n// Pass in an object as the second argument to perform interpolation.\n//\n// polyglot.t(\"hello_name\", {name: \"Spike\"});\n// => \"Hello, Spike\"\n//\n// If you like, you can provide a default value in case the phrase is missing.\n// Use the special option key \"_\" to specify a default.\n//\n// polyglot.t(\"i_like_to_write_in_language\", {\n// _: \"I like to write in %{language}.\",\n// language: \"JavaScript\"\n// });\n// => \"I like to write in JavaScript.\"\n//\nPolyglot.prototype.t = function (key, options) {\n var phrase, result;\n var opts = options == null ? {} : options;\n if (typeof this.phrases[key] === 'string') {\n phrase = this.phrases[key];\n } else if (typeof opts._ === 'string') {\n phrase = opts._;\n } else if (this.onMissingKey) {\n var onMissingKey = this.onMissingKey;\n result = onMissingKey(key, opts, this.currentLocale, this.tokenRegex, this.pluralRules);\n } else {\n this.warn('Missing translation for key: \"' + key + '\"');\n result = key;\n }\n if (typeof phrase === 'string') {\n result = transformPhrase(phrase, opts, this.currentLocale, this.tokenRegex, this.pluralRules);\n }\n return result;\n};\n\n\n// ### polyglot.has(key)\n//\n// Check if polyglot has a translation for given key\nPolyglot.prototype.has = function (key) {\n return has(this.phrases, key);\n};\n\n// export transformPhrase\nPolyglot.transformPhrase = function transform(phrase, substitutions, locale) {\n return transformPhrase(phrase, substitutions, locale);\n};\n\nmodule.exports = Polyglot;\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (\n (typeof globalThis !== 'undefined' && obj === globalThis)\n || (typeof global !== 'undefined' && obj === global)\n ) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('.').listGetNode} */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\tfor (; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('.').listGet} */\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('.').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('.').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('.').listHas} */\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @type {WeakMap} */ var $wm;\n\t/** @type {Map} */ var $m;\n\t/** @type {import('.').RootNode} */ var $o;\n\n\t/** @type {import('.').Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nvar RequireObjectCoercible = require('es-object-atoms/RequireObjectCoercible');\nvar ToString = require('es-abstract/2024/ToString');\nvar callBound = require('call-bind/callBound');\nvar $replace = callBound('String.prototype.replace');\n\nvar mvsIsWS = (/^\\s$/).test('\\u180E');\n/* eslint-disable no-control-regex */\nvar leftWhitespace = mvsIsWS\n\t? /^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+/\n\t: /^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+/;\nvar rightWhitespace = mvsIsWS\n\t? /[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+$/\n\t: /[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+$/;\n/* eslint-enable no-control-regex */\n\nmodule.exports = function trim() {\n\tvar S = ToString(RequireObjectCoercible(this));\n\treturn $replace($replace(S, leftWhitespace, ''), rightWhitespace, '');\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\nvar RequireObjectCoercible = require('es-object-atoms/RequireObjectCoercible');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar bound = callBind(getPolyfill());\nvar boundMethod = function trim(receiver) {\n\tRequireObjectCoercible(receiver);\n\treturn bound(receiver);\n};\n\ndefine(boundMethod, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundMethod;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar zeroWidthSpace = '\\u200b';\nvar mongolianVowelSeparator = '\\u180E';\n\nmodule.exports = function getPolyfill() {\n\tif (\n\t\tString.prototype.trim\n\t\t&& zeroWidthSpace.trim() === zeroWidthSpace\n\t\t&& mongolianVowelSeparator.trim() === mongolianVowelSeparator\n\t\t&& ('_' + mongolianVowelSeparator).trim() === ('_' + mongolianVowelSeparator)\n\t\t&& (mongolianVowelSeparator + '_').trim() === (mongolianVowelSeparator + '_')\n\t) {\n\t\treturn String.prototype.trim;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimStringTrim() {\n\tvar polyfill = getPolyfill();\n\tdefine(String.prototype, { trim: polyfill }, {\n\t\ttrim: function testTrim() {\n\t\t\treturn String.prototype.trim !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $String = GetIntrinsic('%String%');\nvar $TypeError = require('es-errors/type');\n\n// https://262.ecma-international.org/6.0/#sec-tostring\n\nmodule.exports = function ToString(argument) {\n\tif (typeof argument === 'symbol') {\n\t\tthrow new $TypeError('Cannot convert a Symbol value to a string');\n\t}\n\treturn $String(argument);\n};\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });\n } else obj[key] = value;\n\n return obj;\n}\nexport { _define_property as _ };\n","import { _ as _define_property } from \"./_define_property.js\";\n\nfunction _object_spread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(\n Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n })\n );\n }\n\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n\n return target;\n}\nexport { _object_spread as _ };\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n\n if (Object.getOwnPropertyDescriptors) 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 return target;\n}\nexport { _object_spread_props as _ };\n","export const HiddenQuestionTypes = ['control_helper', 'control_hidden', 'control_autoincrement'];\n\nexport const BLOT_REGEX = /\\{([a-z0-9]*?-[a-z0-9]*?)\\}/gi;\nexport const TIMESTAMP_OF_2019 = 1546300000000;\n\nexport const paymentTypeWithShipping = [\n 'control_paypal',\n 'control_payment',\n 'control_stripe',\n 'control_stripeCheckout',\n 'control_stripeACH',\n 'control_stripeACHManual',\n 'control_authnet',\n 'control_bluepay',\n 'control_bluesnap',\n 'control_braintree',\n 'control_chargify',\n 'control_cardconnect',\n 'control_echeck',\n 'control_eway',\n 'control_2co',\n 'control_paypalpro',\n 'control_paypalcomplete',\n 'control_cybersource',\n 'control_paymentwall',\n 'control_paypalexpress',\n 'control_worldpay',\n 'control_dwolla',\n 'control_square',\n 'control_firstdata',\n 'control_paypalInvoicing',\n 'control_payjunction',\n 'control_wepay',\n 'control_worldpayus',\n 'control_payu',\n 'control_pagseguro',\n 'control_moneris',\n 'control_mollie',\n 'control_sofort',\n 'control_sensepass',\n 'control_paysafe',\n 'control_iyzico',\n 'control_skrill',\n 'control_gocardless',\n 'control_paypalSPB',\n 'control_payfast'\n];\n\nexport const paymentTypeWithTax = [\n 'control_payment',\n 'control_paypal',\n 'control_authnet',\n 'control_echeck',\n 'control_eway',\n 'control_stripe',\n 'control_stripeCheckout',\n 'control_stripeACH',\n 'control_stripeACHManual',\n 'control_paypalpro',\n 'control_paypalcomplete',\n 'control_cybersource',\n 'control_2co',\n 'control_paypalexpress',\n 'control_braintree',\n 'control_dwolla',\n 'control_square',\n 'control_bluepay',\n 'control_bluesnap',\n 'control_firstdata',\n 'control_paypalInvoicing',\n 'control_payjunction',\n 'control_paymentwall',\n 'control_wepay',\n 'control_worldpayus',\n 'control_chargify',\n 'control_cardconnect',\n 'control_payu',\n 'control_payuMoney',\n 'control_pagseguro',\n 'control_moneris',\n 'control_mollie',\n 'control_sofort',\n 'control_sensepass',\n 'control_skrill',\n 'control_paysafe',\n 'control_iyzico',\n 'control_gocardless',\n 'control_paypalSPB',\n 'control_payfast'\n];\n","import { capitalize, fixUTF } from '@jotforminc/utils';\nimport { unsupportedDecimalCurrencies } from '@jotforminc/payment-constants';\nimport { TIMESTAMP_OF_2019 } from './constants';\n\nif (global.Element && !global.Element.prototype.matches) {\n global.Element.prototype.matches = global.Element.prototype.matchesSelector\n || global.Element.prototype.mozMatchesSelector\n || global.Element.prototype.msMatchesSelector\n || global.Element.prototype.oMatchesSelector\n || global.Element.prototype.webkitMatchesSelector\n || function matchesFN(s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s);\n var i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {\n // eslist-disable-next-line\n }\n return i > -1;\n };\n}\n\nexport function htmlDecode(text, quoteS) {\n let quoteStyle = quoteS;\n let string = text ?? '';\n let optTemp = 0;\n let i = 0;\n let noquotes = false;\n if (typeof quoteStyle === 'undefined') {\n quoteStyle = 2;\n }\n string = string.toString().replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n const OPTS = {\n ENT_NOQUOTES: 0,\n ENT_HTML_QUOTE_SINGLE: 1,\n ENT_HTML_QUOTE_DOUBLE: 2,\n ENT_COMPAT: 2,\n ENT_QUOTES: 3,\n ENT_IGNORE: 4\n };\n if (quoteStyle === 0) {\n noquotes = true;\n }\n if (typeof quoteStyle !== 'number') {\n quoteStyle = [].concat(quoteStyle);\n for (i = 0; i < quoteStyle.length; i++) {\n if (OPTS[quoteStyle[i]] === 0) {\n noquotes = true;\n } else if (OPTS[quoteStyle[i]]) {\n optTemp = optTemp || OPTS[quoteStyle[i]];\n }\n }\n quoteStyle = optTemp;\n }\n if (quoteStyle && OPTS.ENT_HTML_QUOTE_SINGLE) {\n string = string.replace(/�*39;/g, \"'\").replace(/'/g, \"'\");\n }\n if (!noquotes) {\n string = string.replace(/"/g, '\"');\n string = string.replace(/&quot;/g, '\"');\n }\n\n string = string.replace(/&/g, '&');\n\n return string;\n}\n\nexport const isOldBlotId = id => Number(id) > TIMESTAMP_OF_2019;\nexport const setParsedId = ([x, y]) => (isOldBlotId(x) ? ({ id: x, label: y }) : ({ id: y, label: x }));\nexport const parseBlotId = (blotId = '') => setParsedId(blotId.split('-'));\nexport const setBlotId = id => label => (isOldBlotId(id) ? `${id}-${label}` : `${label}-${id}`);\n\nexport const getBlotOptions = (field) => {\n if (field.type === 'control_dropdown') {\n return [field.options.reduce((acc, o) => ({\n type: o.type,\n id: setBlotId(field.id)(o.type),\n default: field.label,\n options: [...(acc?.options || [acc.label]), o.label]\n }))];\n }\n\n return field.options || [];\n};\n\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function() {\n const context = this, args = arguments;\n const later = function() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\nexport const classNames = (obj) => {\n return Object.keys(obj).reduce((acc, key) => {\n if (!obj[key]) return acc;\n return [...acc, key];\n }, []).join(' ');\n};\n\nexport const assignObject = (...objects) => {\n return objects.reduce((acc, obj) => {\n Object.keys(obj).forEach((key) => {\n acc[key] = obj[key];\n });\n\n return acc;\n }, {});\n};\n\nexport const fillArray = (arr, value) => {\n const newArr = [];\n for (let i = 0; i < arr.length; i++) {\n newArr.push(value);\n }\n return newArr;\n};\n\nexport const getJSON = (url) => {\n if (typeof Ajax !== 'undefined') {\n return new Promise((resolve) => {\n new Ajax.Request(url, {\n evalJSON: 'force',\n method: 'GET',\n onComplete: response => resolve(response.responseJSON)\n });\n })\n }\n return fetch(url).then(res => res.json());\n};\n\nexport function getCDN() {\n return '/';\n}\n\nexport function getCurrentTime(prop, currentHour, currentMin, currentHourRange, currentMinRange) {\n const date = new Date();\n\n let hour = !currentHour ? date.getHours() : currentHour;\n let min = !currentMin ? date.getMinutes() : currentMin;\n let hourRange = !currentHourRange ? hour : currentHourRange;\n let minRange = !currentMin ? min : currentMinRange;\n\n const step = (prop.step.value) ? prop.step.value : 10;\n\n const getTime = function (timeHour, timeMinute) {\n let currentAmpm = '';\n\n let h = Number(timeHour);\n let m = Number(timeMinute);\n\n let twentyFour = true;\n if (prop.timeFormat.value === 'AM/PM') {\n twentyFour = false;\n currentAmpm = (h > 11) ? 'PM' : 'AM';\n h = (h > 12) ? h - 12 : h;\n h = (h === 0) ? 12 : h;\n }\n\n m = Math.round(m / step) * step;\n m = addZeros(m, 2);\n if (m >= 60) { // ntw roll over to next h/day\n m = '00';\n h++;\n if (twentyFour) {\n if (h === 24) h = 0;\n } else if (currentAmpm === 'AM' && h === 12) currentAmpm = 'PM';\n else if (currentAmpm === 'PM' && h === 12) currentAmpm = 'AM';\n else if (h === 13) h = 1;\n }\n return { hour: h.toString(), min: m, currentAmpm };\n };\n\n const fromD = getTime(hour, min);\n hour = prop.timeFormat.value === 'AM/PM' ? fromD.hour : addZeros(fromD.hour, 2);\n min = fromD.min;\n const currentAmpm = fromD.currentAmpm;\n\n const to = getTime(hourRange, minRange);\n hourRange = to.hour;\n minRange = to.min;\n const currentAmpmRange = to.currentAmpm;\n\n const time = {\n limit: prop.timeFormat.value === 'AM/PM' ? 12 : 23,\n start: prop.timeFormat.value === 'AM/PM' ? 1 : 0,\n step,\n\n hour,\n min,\n currentAmpm,\n\n hourRange,\n minRange,\n currentAmpmRange\n };\n\n return time;\n}\n\nexport function getDefaultTime(prop) {\n if (!prop.defaultTime.value || prop.defaultTime.value === 'none') {\n return '';\n }\n if (prop.defaultTime.value.indexOf('custom_') > -1) {\n let toCustomHour = false;\n let toCustomMinute = false;\n let fromD = prop.defaultTime.value.split('custom_')[1];\n // time range\n if (fromD.indexOf('-') > -1) {\n const range = fromD.split('-');\n const to = range[1];\n fromD = range[0];\n const toSplit = to.split(':');\n toCustomHour = toSplit[0];\n toCustomMinute = toSplit[1];\n }\n\n return getCurrentTime(prop, fromD.split(':')[0], fromD.split(':')[1], toCustomHour, toCustomMinute);\n }\n\n return getCurrentTime(prop);\n}\n\nexport function newlineToEntities(string) {\n return string.toString().replace(/\\n\\r?/g, ' ');\n}\n\n\n/**\n* Build parameters and settings for the widget\n*/\nexport function buildParams(_params, fieldNames, prop) {\n for (let i = 0; i < fieldNames.length; i++) {\n const key = fieldNames[i];\n if (key === '') { continue; }\n const el = prop[key];\n if (el && el.value) {\n let propvalue = (typeof el.value === 'string') ? htmlDecode(el.value) : el.value;\n\n // from here lets check chunks - lets include them\n if ('paramChunks' in prop && prop.paramChunks.value) {\n const chunkProps = prop.paramChunks.value;\n /* eslint guard-for-in:0 */\n for (const chunkKey in chunkProps) {\n const chunkProp = chunkProps[chunkKey];\n // if current key matches the mainpart\n // it means we have a chunks to merge\n if (chunkKey === key && chunkProp.parts) {\n for (let y = 0; y < chunkProp.parts.length; y++) {\n const partnameProp = chunkProp.parts[y];\n // if part name is registered as prop then concatenate to final value\n if (prop[partnameProp] && prop[partnameProp].value) {\n propvalue += prop[partnameProp].value;\n }\n }\n }\n }\n /* eslint guard-for-in:1 */\n }\n\n // push the data to settings array\n _params.push({\n name: key,\n value: propvalue\n });\n\n // avoid memory leak\n propvalue = null;\n }\n }\n return _params;\n}\nexport function fixNumbers(number) {\n if (typeof number === 'string') {\n return number.replace(/\\D/gim, '');\n }\n return number;\n}\n\nexport function numberFormat(number, decimals, decPoint, thousandsSep) {\n let n = number;\n let prec = decimals;\n\n const toFixedFix = function (num, dec) {\n const k = Math.pow(10, dec);\n return (Math.round(num * k) / k).toString();\n };\n\n n = !isFinite(+n) ? 0 : +n;\n prec = !isFinite(+prec) ? 0 : Math.abs(prec);\n const sep = (typeof thousandsSep === 'undefined') ? ',' : thousandsSep;\n const dec = (typeof decPoint === 'undefined') ? '.' : decPoint;\n let s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec);\n const abs = toFixedFix(Math.abs(n), prec);\n let _;\n let i;\n\n if (abs >= 1000) {\n _ = abs.split(/\\D/);\n i = _[0].length % 3 || 3;\n _[0] = s.slice(0, i + (n < 0)) + _[0].slice(i).replace(/(\\d{3})/g, `${sep}$1`);\n s = _.join(dec);\n } else {\n s = s.replace('.', dec);\n }\n\n if (s.indexOf(dec) === -1 && prec > 1) {\n const preca = [];\n preca[prec - 1] = undefined;\n s += `${dec + preca.join(0)}0`;\n } else if (s.indexOf(dec) === s.length - 2 && s.length > 1) { // incorrect: 2.7, correct: 2.70\n s += '0';\n }\n\n return s;\n}\n\n\nexport function formatPrice(priceAmount, currency, priceID, nofree, decimalMark) {\n const curr = !currency ? 'USD' : currency;\n\n const id = priceID || '';\n let amount = priceAmount;\n // decimal places\n const dec = unsupportedDecimalCurrencies.indexOf(curr) > -1 ? 0 : 2;\n\n if (parseFloat(amount) === 0 && nofree !== true) {\n amount = 'Free'.locale();\n } else {\n const useComma = decimalMark && decimalMark === 'comma';\n amount = numberFormat(amount, dec, (useComma ? ',' : '.'), (useComma ? '.' : ',')); // Format the number for money currency\n }\n let symbol;\n switch (curr) {\n case 'EUR': symbol = ['€', curr]; break;\n case 'GBP': symbol = ['£', curr]; break;\n case 'BRL': symbol = ['R$', '']; break;\n case 'JPY': symbol = ['Â¥', curr]; break;\n case 'USD': symbol = ['$', '']; break;\n case 'AUD':\n case 'CAD':\n case 'NZD':\n case 'SGD':\n case 'HKD':\n case 'CLP':\n symbol = ['$', curr]; break;\n case 'TRY':\n symbol = ['', 'TL']; break;\n default:\n symbol = ['', curr]; break;\n }\n\n let out;\n // the word 'free' can be in other languages\n // parse and check if it's a number to determine if it's free or not\n if (isNaN(parseInt(amount, 10))) {\n out = ` ${amount} `;\n } else {\n out = `${symbol[0]}${amount} ${symbol[1]}`;\n }\n return out;\n}\n/**\n * Makes formatted text for products. Just like paypal\n * @param {Object} name\n * @param {Object} price\n * @param {Object} curr\n * @param {Object} duration\n * @param {Object} setupfee\n * @param {Object} trial\n * @param {Object} id\n * @param {Object} times (number of subscription payments)\n * @param {Boolean} noPrice\n * @param {Boolean} passive Whether env is form builder or not\n * @param {Boolean} customPrice Whether the item's price is variable/user-defined (for subscriptions only)\n */\nexport function makeProductText(name, price, curr, duration, setupfee, productTrial, id, times, noPrice, passive, customPrice, customPriceSource) {\n let text = '';\n let currDisplay = curr ? curr : undefined;\n\n switch (curr) {\n\n case 'TRY':\n currDisplay = 'TL';\n break;\n\n // case 'USD':\n // currDisplay = '$';\n // break;\n\n default:\n currDisplay = curr;\n break;\n\n }\n\n let fprice = noPrice ? '' : `${formatPrice(price || 0, currDisplay, id || '')}`; // Get formatted price\n let fsetupfee = `${formatPrice(Number(setupfee) || 0, curr, id ? id.replace('price', 'setupfee') : '')}`; // Get calculated and formatted setupfee\n let setuptext = ''; // setupfee text will be here\n const trialText = setupfee > 0 ? fsetupfee : 'Free'.locale();\n const installmentText = '.'; // installmentText placeholder\n\n\n if (customPrice === '1') {\n const readOnly = customPriceSource > 0 || passive;\n\n fprice = ` 0) {\n fprice += ` data-price-source=\"${customPriceSource}\"`;\n }\n\n fprice += `/>${currDisplay}`;\n }\n\n /** re-implement if requested\n *\n if(times && !isNaN(times)) {\n installmentText = times !== '1' ? \", for \" + times + \" installments.\" : \".\";\n }\n **/\n\n let trial;\n if (duration && productTrial && productTrial.toLowerCase() !== 'none' && productTrial !== 'Enabled') { // If trial period is set\n trial = productTrial.locale();\n if (trial === 'One Day') { // Special text for 1 day trial\n text += `${trialText} ${'for the first day then,'.locale()} `;\n } else {\n text += `${trialText} ${'for the first '.locale()}${trial.toLowerCase()}${' then,'.locale()} `;\n }\n }\n\n if (trial === 'Enabled') {\n fsetupfee = 'Free'.locale();\n }\n\n setuptext = `${fsetupfee} ${'for the first payment then,'.locale()} `;\n\n if (duration) { // If recurring duration is set\n // If recurring times is equal to 1\n if (times === '1') {\n text += `${fprice} ${'one-time payment'.locale()}`;\n } else {\n switch (duration) {\n case 'Daily':\n setuptext = `${fsetupfee} ${'for the first day then,'.locale()} `;\n text += `${fprice} ${'for each day'.locale()}`;\n break;\n case 'Weekly':\n setuptext = `${fsetupfee} ${'for the first week then,'.locale()} `;\n text += `${fprice} ${'for each week'.locale()}`;\n break;\n case 'Bi-Weekly':\n text += `${fprice} ${'for each two weeks'.locale()}`;\n break;\n case 'Monthly':\n setuptext = `${fsetupfee} ${'for the first month then,'.locale()} `;\n text += `${fprice} ${'for each month'.locale()}`;\n break;\n case 'Bi-Monthly':\n text += `${fprice} ${'for each two months'.locale()}`;\n break;\n case 'Quarterly':\n text += `${fprice} ${'for each three months'.locale()}`;\n break;\n case 'Semi-Yearly':\n text += `${fprice} ${'for each six months'.locale()}`;\n break;\n case 'Yearly':\n setuptext = `${fsetupfee} for the first year then, `;\n text += `${fprice} ${'for each year'.locale()}`;\n break;\n case 'Bi-Yearly':\n text += `${fprice} ${'for each two years'.locale()}`;\n break;\n default:\n if (duration.match(/custom-/g)) {\n setuptext = `${fsetupfee} for the first ${duration.replace(/custom-/g, '')} days then,`;\n text += `${fprice} every ${duration.replace(/custom-/g, '')} days`;\n } else {\n // Default for monthly\n setuptext = `${fsetupfee} ${'for the first month then,'.locale()} `;\n text += `${fprice} ${'for each month'.locale()}`;\n }\n }\n }\n\n text += installmentText;\n\n if ((!trial || trial === 'None') && (setupfee > 0 || trial === 'Enabled')) { // Trial overwrites the setupfee\n text = setuptext + text; // Add setupfee text if no trial was set\n }\n\n text = `(${text})`; // Put long text in parenthesis\n } else {\n text += fprice; // Default price.\n }\n\n // Finish the sentence here\n // Place product name to first then, wrap details in span for easier styling\n return `${name || ''} ${text}`;\n}\n\n// build aria-labelledBy attribute for input field\n// Returns a string with two ids:\n// First one is top label id, the second one is sub label id\nexport function ariaLabelledBy(props, subLabelObject) {\n const topLabel = props?.id?.value && `label_${props.id.value}`;\n const subLabel = subLabelObject?.id && subLabelObject?.text && !props?.hiddenLabel && `sublabel_${subLabelObject.id}`;\n return [topLabel, subLabel].filter(Boolean).join(' ');\n}\n\nexport function parseJSON(data) {\n try {\n if (!data) { return false; }\n if (typeof data === typeof 'string') {\n return JSON.parse(data);\n }\n return data;\n } catch (e) {\n return false;\n }\n}\n\nexport function loadScript(file, callback = function () {}, arg) {\n try {\n const templateCache = {};\n templateCache[file] = callback;\n const script = global.document.createElement('script');\n script.type = 'text/javascript';\n script.src = `${file}?${(new Date()).getTime()}`;\n global.$(global.document.body).appendChild(script);\n if (arg === true) {\n callback();\n }\n } catch (e) {\n console.error(e);\n }\n}\n\nexport function getDefaultDate(defaultDate, format, dateSeparator) {\n let liteModeInitialValue = '';\n let year = '';\n let month = '';\n let day = '';\n if (defaultDate) {\n if (defaultDate === 'none') {\n return '';\n } else if (defaultDate === 'current') {\n const date = new Date();\n month = addZeros(date.getMonth() + 1, 2);\n day = addZeros(date.getDate(), 2);\n year = date.getYear() < 1000 ? date.getYear() + 1900 : date.getYear();\n } else if (typeof defaultDate === 'string' && defaultDate.indexOf('custom_') > -1) {\n const dateString = defaultDate.split('_')[1];\n if (dateString) {\n const dateComponents = dateString.split('-');\n if (dateComponents.length > 2) {\n year = dateComponents[0] || '';\n month = dateComponents[1] || '';\n day = dateComponents[2] || '';\n }\n }\n }\n liteModeInitialValue = month + dateSeparator + day + dateSeparator + year;\n if (format === 'ddmmyyyy') {\n liteModeInitialValue = day + dateSeparator + month + dateSeparator + year;\n } else if (format === 'yyyymmdd') {\n liteModeInitialValue = year + dateSeparator + month + dateSeparator + day;\n }\n }\n return {\n litemode: liteModeInitialValue,\n year,\n month,\n day\n };\n}\n\nexport function addZeros(num, totalDigits) {\n const n = num.toString();\n let pd = '';\n if (totalDigits > n.length) {\n for (let i = 0; i < (totalDigits - n.length); i++) {\n pd += '0';\n }\n }\n return pd + n.toString();\n}\n\n\nexport function makeQuestionName(text) {\n let name = text.replace(' ', '');\n const tokens = name.split(/\\s+/);\n name = fixUTF((tokens[1]) ? tokens[0].toLowerCase() + capitalize(tokens[1].toLowerCase()) : tokens[0].toLowerCase());\n name = name.replace(/\\W/gim, '');\n return name.length === 0 ? 'input' : name;\n}\n\nconst subLabelObj = (subLabelValue, key, id) => ({\n text: subLabelValue,\n id: id ? `${id}_${key}` : key\n});\n\n// Neil: id is for address sublabels - must have different element ID (89823)\nexport const subLabel = (prop, key, id) => (\n (prop.sublabels && prop.sublabels.value && (key in prop.sublabels.value))\n ? subLabelObj(prop.sublabels.value[key], key, id)\n : ''\n);\n\nexport const generateChecker = (obj1, obj2) => {\n return (prop) => {\n const { value: v1 } = obj1[prop] || {};\n const { value: v2 } = obj2[prop] || {};\n\n if (typeof v1 === 'object') {\n return JSON.stringify(v1) !== JSON.stringify(v2);\n }\n\n return v1 !== v2;\n };\n};\n","export const MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n","import {\n COUNTRIES, GENDERS, DAYS, MONTHS, FORM_TEXTS\n} from '@jotforminc/constants';\nimport { objectEntries } from '@jotforminc/utils';\nimport { fillArray, debounce, getJSON, assignObject, classNames } from './utils'\n\nlet lastHundredYears = [];\n(function () {\n const date = new Date();\n // get current year\n const cyear = (date.getYear() < 1000) ? date.getYear() + 1900 : date.getYear();\n const years = [];\n for (let year = cyear; year >= (cyear - 100); year--) {\n years.push(`${year}`);\n }\n\n lastHundredYears = years;\n}());\n\nif (typeof String.prototype.locale === 'undefined') {\n String.prototype.locale = function () {\n return this.toString();\n };\n}\n\nconst specialOptions = {\n None: {\n controls: 'dropdown,radio,checkbox,matrix'\n },\n 'US States': {\n controls: 'dropdown',\n value: ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'District of Columbia', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Puerto Rico', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virgin Islands', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming']\n },\n 'US States Abbr': {\n controls: 'dropdown',\n value: ['AL', 'AK', 'AR', 'AZ', 'CA', 'CO', 'CT', 'DC', 'DE', 'FL', 'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 'OK', 'OR', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VI', 'VA', 'WA', 'WV', 'WI', 'WY']\n },\n 'Canadian Provinces': {\n controls: 'dropdown',\n value: ['Alberta', 'British Columbia', 'Manitoba', 'New Brunswick', 'Newfoundland', 'Northwest Territories', 'Nova Scotia', 'Nunavut', 'Ontario', 'Prince Edward Island', 'Quebec', 'Saskatchewan', 'Yukon']\n },\n Countries: {\n controls: 'dropdown',\n value: COUNTRIES.map(country => country.locale())\n },\n 'Last 100 Years': {\n controls: 'dropdown',\n value: lastHundredYears\n },\n Gender: {\n controls: 'dropdown,radio,checkbox',\n value: GENDERS.map(gender => gender.locale())\n },\n Days: {\n controls: 'dropdown,radio,checkbox',\n value: DAYS.map(day => day.locale())\n },\n Months: {\n controls: 'dropdown,radio,checkbox',\n value: MONTHS.map(month => month.locale()),\n nonLocale: MONTHS\n },\n 'Time Zones': {\n controls: 'dropdown',\n value: ['[[Africa]]', 'Abidjan (GMT)', 'Accra (GMT)', 'Addis Ababa (GMT+03:00)', 'Algiers (GMT+01:00)', 'Asmara (GMT+03:00)', 'Bamako (GMT)', 'Bangui (GMT+01:00)', 'Banjul (GMT)', 'Bissau (GMT)', 'Blantyre (GMT+02:00)', 'Brazzaville (GMT+01:00)', 'Bujumbura (GMT+02:00)', 'Cairo (GMT+03:00)', 'Casablanca (GMT)', 'Ceuta (GMT+02:00)', 'Conakry (GMT)', 'Dakar (GMT)', 'Dar es Salaam (GMT+03:00)', 'Djibouti (GMT+03:00)', 'Douala (GMT+01:00)', 'El Aaiun (GMT)', 'Freetown (GMT)', 'Gaborone (GMT+02:00)', 'Harare (GMT+02:00)', 'Johannesburg (GMT+02:00)', 'Kampala (GMT+03:00)', 'Khartoum (GMT+03:00)', 'Kigali (GMT+02:00)', 'Kinshasa (GMT+01:00)', 'Lagos (GMT+01:00)', 'Libreville (GMT+01:00)', 'Lome (GMT)', 'Luanda (GMT+01:00)', 'Lubumbashi (GMT+02:00)', 'Lusaka (GMT+02:00)', 'Malabo (GMT+01:00)', 'Maputo (GMT+02:00)', 'Maseru (GMT+02:00)', 'Mbabane (GMT+02:00)', 'Mogadishu (GMT+03:00)', 'Monrovia (GMT)', 'Nairobi (GMT+03:00)', 'Ndjamena (GMT+01:00)', 'Niamey (GMT+01:00)', 'Nouakchott (GMT)', 'Ouagadougou (GMT)', 'Porto-Novo (GMT+01:00)', 'Sao Tome (GMT)', 'Tripoli (GMT+02:00)', 'Tunis (GMT+02:00)', 'Windhoek (GMT+01:00)', '[[America]]', 'Adak (GMT-09:00)', 'Anchorage (GMT-08:00)', 'Anguilla (GMT-04:00)', 'Antigua (GMT-04:00)', 'Araguaina (GMT-03:00)', 'Buenos Aires, Argentina (GMT-03:00)', 'Catamarca, Argentina (GMT-03:00)', 'Cordoba, Argentina (GMT-03:00)', 'Jujuy, Argentina (GMT-03:00)', 'La Rioja, Argentina (GMT-03:00)', 'Mendoza, Argentina (GMT-03:00)', 'Rio Gallegos, Argentina (GMT-03:00)', 'Salta, Argentina (GMT-03:00)', 'San Juan, Argentina (GMT-03:00)', 'San Luis, Argentina (GMT-04:00)', 'Tucuman, Argentina (GMT-03:00)', 'Ushuaia, Argentina (GMT-03:00)', 'Aruba (GMT-04:00)', 'Asuncion (GMT-04:00)', 'Atikokan (GMT-05:00)', 'Bahia (GMT-03:00)', 'Barbados (GMT-04:00)', 'Belem (GMT-03:00)', 'Belize (GMT-06:00)', 'Blanc-Sablon (GMT-04:00)', 'Boa Vista (GMT-04:00)', 'Bogota (GMT-05:00)', 'Boise (GMT-06:00)', 'Cambridge Bay (GMT-06:00)', 'Campo Grande (GMT-04:00)', 'Cancun (GMT-05:00)', 'Caracas (GMT-04:30)', 'Cayenne (GMT-03:00)', 'Cayman (GMT-05:00)', 'Chicago (GMT-05:00)', 'Chihuahua (GMT-06:00)', 'Costa Rica (GMT-06:00)', 'Cuiaba (GMT-04:00)', 'Curacao (GMT-04:00)', 'Danmarkshavn (GMT)', 'Dawson (GMT-07:00)', 'Dawson Creek (GMT-07:00)', 'Denver (GMT-06:00)', 'Detroit (GMT-04:00)', 'Dominica (GMT-04:00)', 'Edmonton (GMT-06:00)', 'Eirunepe (GMT-04:00)', 'El Salvador (GMT-06:00)', 'Fortaleza (GMT-03:00)', 'Glace Bay (GMT-03:00)', 'Godthab (GMT-02:00)', 'Goose Bay (GMT-03:00)', 'Grand Turk (GMT-04:00)', 'Grenada (GMT-04:00)', 'Guadeloupe (GMT-04:00)', 'Guatemala (GMT-06:00)', 'Guayaquil (GMT-05:00)', 'Guyana (GMT-04:00)', 'Halifax (GMT-03:00)', 'Havana (GMT-04:00)', 'Hermosillo (GMT-07:00)', 'Indianapolis, Indiana (GMT-04:00)', 'Knox, Indiana (GMT-05:00)', 'Marengo, Indiana (GMT-04:00)', 'Petersburg, Indiana (GMT-04:00)', 'Tell City, Indiana (GMT-05:00)', 'Vevay, Indiana (GMT-04:00)', 'Vincennes, Indiana (GMT-04:00)', 'Winamac, Indiana (GMT-04:00)', 'Inuvik (GMT-06:00)', 'Iqaluit (GMT-04:00)', 'Jamaica (GMT-05:00)', 'Juneau (GMT-08:00)', 'Louisville, Kentucky (GMT-04:00)', 'Monticello, Kentucky (GMT-04:00)', 'La Paz (GMT-04:00)', 'Lima (GMT-05:00)', 'Los Angeles (GMT-07:00)', 'Maceio (GMT-03:00)', 'Managua (GMT-06:00)', 'Manaus (GMT-04:00)', 'Marigot (GMT-04:00)', 'Martinique (GMT-04:00)', 'Mazatlan (GMT-06:00)', 'Menominee (GMT-05:00)', 'Merida (GMT-05:00)', 'Mexico City (GMT-05:00)', 'Miquelon (GMT-02:00)', 'Moncton (GMT-03:00)', 'Monterrey (GMT-05:00)', 'Montevideo (GMT-03:00)', 'Montreal (GMT-04:00)', 'Montserrat (GMT-04:00)', 'Nassau (GMT-04:00)', 'New York (GMT-04:00)', 'Nipigon (GMT-04:00)', 'Nome (GMT-08:00)', 'Noronha (GMT-02:00)', 'Center, North Dakota (GMT-05:00)', 'New Salem, North Dakota (GMT-05:00)', 'Panama (GMT-05:00)', 'Pangnirtung (GMT-04:00)', 'Paramaribo (GMT-03:00)', 'Phoenix (GMT-07:00)', 'Port-au-Prince (GMT-05:00)', 'Port of Spain (GMT-04:00)', 'Porto Velho (GMT-04:00)', 'Puerto Rico (GMT-04:00)', 'Rainy River (GMT-05:00)', 'Rankin Inlet (GMT-05:00)', 'Recife (GMT-03:00)', 'Regina (GMT-06:00)', 'Resolute (GMT-05:00)', 'Rio Branco (GMT-04:00)', 'Santarem (GMT-03:00)', 'Santiago (GMT-04:00)', 'Santo Domingo (GMT-04:00)', 'Sao Paulo (GMT-03:00)', 'Scoresbysund (GMT)', 'Shiprock (GMT-06:00)', 'St Barthelemy (GMT-04:00)', 'St Johns (GMT-02:30)', 'St Kitts (GMT-04:00)', 'St Lucia (GMT-04:00)', 'St Thomas (GMT-04:00)', 'St Vincent (GMT-04:00)', 'Swift Current (GMT-06:00)', 'Tegucigalpa (GMT-06:00)', 'Thule (GMT-03:00)', 'Thunder Bay (GMT-04:00)', 'Tijuana (GMT-07:00)', 'Toronto (GMT-04:00)', 'Tortola (GMT-04:00)', 'Vancouver (GMT-07:00)', 'Whitehorse (GMT-07:00)', 'Winnipeg (GMT-05:00)', 'Yakutat (GMT-08:00)', 'Yellowknife (GMT-06:00)', '[[Antarctica]]', 'Casey (GMT+11:00)', 'Davis (GMT+05:00)', 'DumontDUrville (GMT+10:00)', 'Mawson (GMT+05:00)', 'McMurdo (GMT+12:00)', 'Palmer (GMT-04:00)', 'Rothera (GMT-03:00)', 'South Pole (GMT+12:00)', 'Syowa (GMT+03:00)', 'Vostok (GMT+06:00)', '[[Arctic]]', 'Longyearbyen (GMT+02:00)', '[[Asia]]', 'Aden (GMT+03:00)', 'Almaty (GMT+06:00)', 'Amman (GMT+03:00)', 'Anadyr (GMT+13:00)', 'Aqtau (GMT+05:00)', 'Aqtobe (GMT+05:00)', 'Ashgabat (GMT+05:00)', 'Baghdad (GMT+03:00)', 'Bahrain (GMT+03:00)', 'Baku (GMT+05:00)', 'Bangkok (GMT+07:00)', 'Beirut (GMT+03:00)', 'Bishkek (GMT+06:00)', 'Brunei (GMT+08:00)', 'Choibalsan (GMT+08:00)', 'Chongqing (GMT+08:00)', 'Colombo (GMT+05:30)', 'Damascus (GMT+03:00)', 'Dhaka (GMT+07:00)', 'Dili (GMT+09:00)', 'Dubai (GMT+04:00)', 'Dushanbe (GMT+05:00)', 'Gaza (GMT+03:00)', 'Harbin (GMT+08:00)', 'Ho Chi Minh (GMT+07:00)', 'Hong Kong (GMT+08:00)', 'Hovd (GMT+07:00)', 'Irkutsk (GMT+09:00)', 'Jakarta (GMT+07:00)', 'Jayapura (GMT+09:00)', 'Jerusalem (GMT+03:00)', 'Kabul (GMT+04:30)', 'Kamchatka (GMT+13:00)', 'Karachi (GMT+06:00)', 'Kashgar (GMT+08:00)', 'Kathmandu (GMT+05:45)', 'Kolkata (GMT+05:30)', 'Krasnoyarsk (GMT+08:00)', 'Kuala Lumpur (GMT+08:00)', 'Kuching (GMT+08:00)', 'Kuwait (GMT+03:00)', 'Macau (GMT+08:00)', 'Magadan (GMT+12:00)', 'Makassar (GMT+08:00)', 'Manila (GMT+08:00)', 'Muscat (GMT+04:00)', 'Nicosia (GMT+03:00)', 'Novokuznetsk (GMT+07:00)', 'Novosibirsk (GMT+07:00)', 'Omsk (GMT+07:00)', 'Oral (GMT+05:00)', 'Phnom Penh (GMT+07:00)', 'Pontianak (GMT+07:00)', 'Pyongyang (GMT+09:00)', 'Qatar (GMT+03:00)', 'Qyzylorda (GMT+06:00)', 'Rangoon (GMT+06:30)', 'Riyadh (GMT+03:00)', 'Sakhalin (GMT+11:00)', 'Samarkand (GMT+05:00)', 'Seoul (GMT+09:00)', 'Shanghai (GMT+08:00)', 'Singapore (GMT+08:00)', 'Taipei (GMT+08:00)', 'Tashkent (GMT+05:00)', 'Tbilisi (GMT+04:00)', 'Tehran (GMT+04:30)', 'Thimphu (GMT+06:00)', 'Tokyo (GMT+09:00)', 'Ulaanbaatar (GMT+08:00)', 'Urumqi (GMT+08:00)', 'Vientiane (GMT+07:00)', 'Vladivostok (GMT+11:00)', 'Yakutsk (GMT+10:00)', 'Yekaterinburg (GMT+06:00)', 'Yerevan (GMT+05:00)', '[[Atlantic]]', 'Azores (GMT)', 'Bermuda (GMT-03:00)', 'Canary (GMT+01:00)', 'Cape Verde (GMT-01:00)', 'Faroe (GMT+01:00)', 'Madeira (GMT+01:00)', 'Reykjavik (GMT)', 'South Georgia (GMT-02:00)', 'St Helena (GMT)', 'Stanley (GMT-04:00)', '[[Australia]]', 'Adelaide (GMT+09:30)', 'Brisbane (GMT+10:00)', 'Broken Hill (GMT+09:30)', 'Currie (GMT+10:00)', 'Darwin (GMT+09:30)', 'Eucla (GMT+08:45)', 'Hobart (GMT+10:00)', 'Lindeman (GMT+10:00)', 'Lord Howe (GMT+10:30)', 'Melbourne (GMT+10:00)', 'Perth (GMT+08:00)', 'Sydney (GMT+10:00)', '[[Europe]]', 'Amsterdam (GMT+02:00)', 'Andorra (GMT+02:00)', 'Athens (GMT+03:00)', 'Belgrade (GMT+02:00)', 'Berlin (GMT+02:00)', 'Bratislava (GMT+02:00)', 'Brussels (GMT+02:00)', 'Bucharest (GMT+03:00)', 'Budapest (GMT+02:00)', 'Chisinau (GMT+03:00)', 'Copenhagen (GMT+02:00)', 'Dublin (GMT+01:00)', 'Gibraltar (GMT+02:00)', 'Guernsey (GMT+01:00)', 'Helsinki (GMT+03:00)', 'Isle of Man (GMT+01:00)', 'Istanbul (GMT+03:00)', 'Jersey (GMT+01:00)', 'Kaliningrad (GMT+03:00)', 'Kiev (GMT+03:00)', 'Lisbon (GMT+01:00)', 'Ljubljana (GMT+02:00)', 'London (GMT+01:00)', 'Luxembourg (GMT+02:00)', 'Madrid (GMT+02:00)', 'Malta (GMT+02:00)', 'Mariehamn (GMT+03:00)', 'Minsk (GMT+03:00)', 'Monaco (GMT+02:00)', 'Moscow (GMT+04:00)', 'Oslo (GMT+02:00)', 'Paris (GMT+02:00)', 'Podgorica (GMT+02:00)', 'Prague (GMT+02:00)', 'Riga (GMT+03:00)', 'Rome (GMT+02:00)', 'Samara (GMT+05:00)', 'San Marino (GMT+02:00)', 'Sarajevo (GMT+02:00)', 'Simferopol (GMT+03:00)', 'Skopje (GMT+02:00)', 'Sofia (GMT+03:00)', 'Stockholm (GMT+02:00)', 'Tallinn (GMT+03:00)', 'Tirane (GMT+02:00)', 'Uzhgorod (GMT+03:00)', 'Vaduz (GMT+02:00)', 'Vatican (GMT+02:00)', 'Vienna (GMT+02:00)', 'Vilnius (GMT+03:00)', 'Volgograd (GMT+04:00)', 'Warsaw (GMT+02:00)', 'Zagreb (GMT+02:00)', 'Zaporozhye (GMT+03:00)', 'Zurich (GMT+02:00)', '[[Indian]]', 'Antananarivo (GMT+03:00)', 'Chagos (GMT+06:00)', 'Christmas (GMT+07:00)', 'Cocos (GMT+06:30)', 'Comoro (GMT+03:00)', 'Kerguelen (GMT+05:00)', 'Mahe (GMT+04:00)', 'Maldives (GMT+05:00)', 'Mauritius (GMT+04:00)', 'Mayotte (GMT+03:00)', 'Reunion (GMT+04:00)', '[[Pacific]]', 'Apia (GMT-11:00)', 'Auckland (GMT+12:00)', 'Chatham (GMT+12:45)', 'Easter (GMT-06:00)', 'Efate (GMT+11:00)', 'Enderbury (GMT+13:00)', 'Fakaofo (GMT-10:00)', 'Fiji (GMT+12:00)', 'Funafuti (GMT+12:00)', 'Galapagos (GMT-06:00)', 'Gambier (GMT-09:00)', 'Guadalcanal (GMT+11:00)', 'Guam (GMT+10:00)', 'Honolulu (GMT-10:00)', 'Johnston (GMT-10:00)', 'Kiritimati (GMT+14:00)', 'Kosrae (GMT+11:00)', 'Kwajalein (GMT+12:00)', 'Majuro (GMT+12:00)', 'Marquesas (GMT-09:30)', 'Midway (GMT-11:00)', 'Nauru (GMT+12:00)', 'Niue (GMT-11:00)', 'Norfolk (GMT+11:30)', 'Noumea (GMT+11:00)', 'Pago Pago (GMT-11:00)', 'Palau (GMT+09:00)', 'Pitcairn (GMT-08:00)', 'Ponape (GMT+11:00)', 'Port Moresby (GMT+10:00)', 'Rarotonga (GMT-10:00)', 'Saipan (GMT+10:00)', 'Tahiti (GMT-10:00)', 'Tarawa (GMT+12:00)', 'Tongatapu (GMT+13:00)', 'Truk (GMT+10:00)', 'Wake (GMT+12:00)', 'Wallis (GMT+12:00)']\n },\n LocationCountries: {\n controls: 'location',\n value: ['Canada', 'United States', 'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia Herzegowina', 'Botswana', 'Bouvet Island', 'Brazil', 'British Ind. Ocean', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Cambodia', 'Cameroon', 'Cape Verde', 'Cayman Islands', 'Central African Rep.', 'Chad', 'Chile', 'China', 'Christmas Island', 'Cocoa (Keeling) Is.', 'Colombia', 'Comoros', 'Congo', 'Cook Islands', 'Costa Rica', 'Cote Divoire', 'Croatia', 'Cuba', 'Curacao', 'Cyprus', 'Czech Republic', 'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic', 'East Timor', 'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia', 'Falkland Islands', 'Faroe Islands', 'Fiji', 'Finland', 'France', 'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Honduras', 'Hong Kong', 'Hungary', 'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Israel', 'Italy', 'Jamaica', 'Japan', 'Jordan', 'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Kuwait', 'Kyrgyzstan', 'Lao', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Liechtenstein', 'Lithuania', 'Luxembourg', 'Macau', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar', 'Namibia', 'Nauru', 'Nepal', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Norway', 'Oman', 'Pakistan', 'Palau', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn', 'Poland', 'Portugal', 'Puerto Rico', 'Qatar', 'Reunion', 'Romania', 'Russia', 'Rwanda', 'Saint Lucia', 'Samoa', 'San Marino', 'Saudi Arabia', 'Senegal', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Sudan', 'Spain', 'Sri Lanka', 'St. Helena', 'Sudan', 'Suriname', 'eSwatini', 'Sweden', 'Switzerland', 'Syria', 'Taiwan', 'Tajikistan', 'Tanzania', 'Thailand', 'Togo', 'Tokelau', 'Tonga', 'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Tuvalu', 'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'Uruguay', 'Uzbekistan', 'Vanuatu', 'Vatican', 'Venezuela', 'Viet Nam', 'Virgin Islands', 'Western Sahara', 'Yeman', 'Yugoslavia', 'Zaire', 'Zambia']\n },\n\n\n /* eslint max-len:1 */\n\n /**\n * Gets the special options for specific element\n * @example special_options.getByType('dropdown') => ['Months', 'Days', 'US States' .... ]\n * @param {Object} type\n */\n getByType(type) {\n const options = [];\n for (const key in specialOptions) {\n if (specialOptions[key].controls && specialOptions[key].controls.indexOf(type) >= 0) {\n options.push(key);\n }\n }\n return options;\n }\n};\n\n\nexport const checkAppointmentAvailability = (day, slot, data) => {\n if (!(day && slot && data && data[day])) return false;\n return data[day][slot];\n};\n\nexport const initializeAppointment = (props) => {\n const PREFIX = (\n window.location.href.indexOf('jotform.pro') > -1\n || window.location.pathname.indexOf('build') > -1\n || window.location.pathname.indexOf('form-templates') > -1\n || window.location.pathname.indexOf('pdf-templates') > -1\n || window.location.pathname.indexOf('table-templates') > -1\n || window.location.pathname.indexOf('approval-templates') > -1\n || window.location.pathname.indexOf('workflow-templates') > -1\n || window.location.pathname.indexOf('themes') > -1\n ) ? '/server.php' : JotForm.server;\n\n // boilerplate\n let effectsOut = null;\n let changed = {};\n let constructed = false;\n const { document } = window;\n const wrapper = document.querySelector(`#${props.qid.value}`);\n const uniqueId = props.qid.value;\n const element = wrapper.querySelector('.appointmentField');\n const input = wrapper.querySelector(`#input_${props.id.value}_date`);\n const tzInput = wrapper.querySelector(`#input_${props.id.value}_timezone`);\n\n const currentYear = new Date().getFullYear();\n let timezonePickerCommon;\n let isTimezonePickerFromCommonLoaded = false;\n\n const beforeRender = () => {\n if (effectsOut) {\n effectsOut();\n effectsOut = null;\n }\n };\n\n const afterRender = () => {\n effectsOut = effects();\n };\n\n const setState = (newState) => {\n const changedKeys = Object.keys(newState).filter(key => state[key] !== newState[key]);\n\n if (!changedKeys.length) {\n return;\n }\n\n changed = changedKeys.reduce((acc, key) => assignObject({}, acc, { [key]: state[key] }), changed);\n\n state = assignObject({}, state, newState);\n if (constructed) {\n render();\n }\n };\n\n const isStartWeekOnMonday = () => {\n const { startWeekOn: { value: startDay } } = props;\n return !startDay || (startDay === 'Monday');\n };\n\n const monthNames = () => (JotForm.appointmentCalendarMonthsTranslated || JotForm.appointmentCalendarMonths || JotForm.calendarMonthsTranslated || JotForm.calendarMonths || specialOptions.Months.value).map(monthName => (String.prototype.locale ? monthName.locale() : monthName));\n const daysOfWeek = () => (JotForm.appointmentCalendarDaysTranslated || JotForm.appointmentCalendarDays || specialOptions.Days.value).map(dayName =>\n (String.prototype.locale ? dayName.locale() : dayName)\n );\n // we need remove unnecessary \"Sunday\", if there is time field on the form\n const dayNames = () => {\n const days = daysOfWeek().length === 8 ? daysOfWeek().slice(1) : daysOfWeek();\n return isStartWeekOnMonday() ? days : [days[days.length - 1]].concat(days.slice(0, 6));\n };\n\n const oneHour = 1000 * 60 * 60;\n // const oneDay = oneHour * 24;\n\n const intPrefix = (d) => {\n if (d < 10) {\n return `0${d}`;\n }\n\n return `${d}`;\n };\n\n const toFormattedDateStr = (date) => {\n const { dateFormat: { value: format = 'yyyy-mm-dd' } } = props;\n if (!date) return;\n if (typeof date === 'string') {\n const [year, month, day] = date.split('-');\n return format.replace(/yyyy/, year).replace(/mm/, month).replace(/dd/, day);\n }\n\n const year = date.getFullYear();\n const month = intPrefix(date.getMonth() + 1);\n const day = intPrefix(date.getUTCDate());\n return format.replace(/yyyy/, year).replace(/mm/, month).replace(/dd/, day);\n };\n\n const toDateStr = (date) => {\n if (!date) return;\n const year = date.getFullYear();\n const month = intPrefix(date.getMonth() + 1);\n const day = intPrefix(date.getDate());\n\n return `${year}-${month}-${day}`;\n };\n\n const toDateTimeStr = (date) => {\n if (!date) return;\n const ymd = toDateStr(date);\n const hour = intPrefix(date.getHours());\n const minute = intPrefix(date.getMinutes());\n return `${ymd} ${hour}:${minute}`;\n };\n\n const getTimezoneOffset = (timezone) => {\n if (!timezone) {\n return 0;\n }\n const cityArgs = timezone.split(' ');\n const splitted = cityArgs[cityArgs.length - 1].replace(/\\(GMT|\\)/g, '').split(':');\n\n if (!splitted) {\n return 0;\n }\n\n return parseInt(splitted[0] || 0, 10) + ((parseInt(splitted[1] || 0, 10) / 60) || 0);\n };\n\n const getGMTSuffix = (offset) => {\n if (offset === 0) {\n return '';\n }\n\n const offsetMinutes = Math.abs(offset) % 60;\n const offsetHours = Math.abs(offset - offsetMinutes) / 60;\n\n const str = `${intPrefix(offsetHours)}:${intPrefix(offsetMinutes)}`;\n\n if (offset < 0) {\n return `+${str}`;\n }\n\n return `-${str}`;\n };\n\n const getYearMonth = (date) => {\n if (!date) return;\n const [y, m] = date.split('-');\n return `${y}-${m}`;\n };\n\n const getMondayBasedDay = (date) => {\n const day = date.getUTCDay();\n if (day === 0) {\n return 6; // sunday index\n }\n return day - 1;\n };\n\n const getDay = (date) => {\n return isStartWeekOnMonday() ? getMondayBasedDay(date) : date.getUTCDay();\n };\n\n\n const getUserTimezone = () => {\n const { autoDetectTimezone: { value: autoDetectValue } = {}, timezone: { value: timezoneAtProps } = {} } = props;\n if (autoDetectValue === 'No') {\n return timezoneAtProps;\n }\n\n try {\n const tzStr = Intl.DateTimeFormat().resolvedOptions().timeZone;\n if (tzStr) {\n const tz = `${tzStr} (GMT${getGMTSuffix(new Date().getTimezoneOffset())})`;\n return tz;\n }\n } catch (e) {\n console.error(e.message);\n }\n\n return props.timezone.value;\n };\n\n const convertStrToTime = ({ dateStr = '', value = '' }) => {\n const calculateVal = toFormattedDateStr(dateStr);\n const {\n timeFormat: { value: timeFormat = '24 Hour' } = {}\n } = props;\n const date = new Date(dateStr);\n const time = new Date((value).replace(/-/g, '/')).toLocaleTimeString('en-US', { hour: 'numeric', minute: 'numeric', hourCycle: timeFormat === 'AM/PM' ? 'h12' : 'h23' });\n const day = getDay(date);\n const specialDays = specialOptions.Days.value;\n const datetime = `${dayNames()[day]}, ${monthNames()[date.getUTCMonth()]} ${intPrefix(date.getUTCDate())}, ${date.getFullYear()}`;\n const unTranslatedDatetime = `${isStartWeekOnMonday() ? specialDays[day] : [specialDays[specialDays.length - 1]].concat(specialDays.slice(0, 6))[day]}, ${specialOptions.Months.value[date.getUTCMonth()]} ${intPrefix(date.getUTCDate())}, ${date.getFullYear()}`;\n\n return {\n calculateVal, time, datetime, unTranslatedDatetime\n }\n }\n\n const hasDatePassed = (givenDateString, comparedDateString = new Date()) => {\n // Parse the given date string and create a date object\n const givenDate = new Date(givenDateString);\n const comparedDate = new Date(comparedDateString);\n\n // Get today's date with time set to 00:00:00 for accurate comparison\n comparedDate.setHours(0, 0, 0, 0);\n\n return givenDate < comparedDate;\n}\n\n const passedProps = props;\n\n let state = {};\n\n const getStateFromProps = (newProps = {}) => {\n const { timezone: { value: timezoneValue } } = newProps;\n const startDate = new Date(newProps.startDate ? newProps.startDate.value : '');\n const today = new Date();\n const date = toDateStr(new Date(Math.max(startDate, today) || today));\n\n return {\n date,\n timezones: state ? state.timezones : { loading: true },\n ...(window.location.pathname.indexOf('build') > -1\n ? { timezone: timezoneValue, defaultTimezone: timezoneValue } : {})\n };\n };\n\n state = getStateFromProps(props);\n\n const loadTimezones = (cb) => {\n setState({\n timezones: { loading: true }\n });\n\n const cdnUrl = props.cdnconfig?.CDN.endsWith('/') ? props.cdnconfig.CDN : `${props.cdnconfig.CDN}/`;\n getJSON(`${cdnUrl}assets/form/timezones.json?ncTz=${(new Date().getTime())}`).then((data) => {\n const timezones = objectEntries(data).reduce((acc, [group, cities]) => {\n acc.push({\n group,\n cities\n });\n return acc;\n }, []);\n\n cb(timezones);\n });\n };\n\n const loadMonthData = (startDate, endDate, cb) => {\n const { formID = (typeof global === 'object' ? global.__formInfo.id : null), id: { value: id } } = props;\n const { timezone } = state;\n\n if (!formID || !timezone) return;\n\n // eslint-disable-next-line max-len\n const url = `${PREFIX}?action=getAppointments&formID=${formID}&qid=${id}&timezone=${encodeURIComponent(timezone)}&startDate=${toDateStr(startDate)}&endDate=${toDateStr(endDate)}&ncTz=${(new Date().getTime())}`;\n\n return getJSON(url).then(({ content: data }) => cb(data));\n };\n\n const getMonthData = (startDate, endDate) => {\n let returnData = null;\n const res = loadMonthData(startDate, endDate, (data) => { returnData = data; });\n\n function _wait(resolve, reject) {\n if (res._complete) {\n resolve(returnData);\n } else {\n setTimeout(_wait.bind(this, resolve, reject), 100);\n }\n }\n\n return new Promise(_wait);\n }\n\n const generateMonthData = (startDate, endDate, data) => {\n const d1 = startDate.getDate();\n const d2 = endDate.getDate();\n const dPrefix = `${startDate.getFullYear()}-${intPrefix(startDate.getMonth() + 1)}-`;\n\n const daysLength = (d2 - d1) + 1 || 0;\n const days = fillArray(new Array(daysLength), '');\n\n const slots = days.reduce((acc, x, day) => {\n const dayStr = `${dPrefix}${intPrefix(day + 1)}`;\n return assignObject(acc, { [dayStr]: data[dayStr] || false });\n }, {});\n\n\n const availableDays = Object.keys(data).filter(d => !Array.isArray(slots[d]) && !!slots[d]);\n\n return {\n availableDays,\n slots\n };\n };\n\n let lastReq;\n\n const updateMonthData = (startDate, endDate, data) => {\n const { availableDays, slots } = generateMonthData(startDate, endDate, data);\n\n if (JSON.stringify(slots) === JSON.stringify(state.slots)) {\n return;\n }\n\n setState({\n availableDays,\n slots\n });\n };\n\n const getDateRange = (dateStr) => {\n const [y, m] = dateStr.split('-');\n\n const startDate = new Date(y, m - 1, 1);\n const endDate = new Date(y, m, 0);\n return [startDate, endDate];\n };\n\n const load = () => {\n const { date: dateStr } = state;\n\n const [startDate, endDate] = getDateRange(dateStr);\n\n setState(assignObject({ loading: true }, generateMonthData(startDate, endDate, {})));\n\n const req = loadMonthData(startDate, endDate, (data) => {\n if (lastReq !== req) {\n return;\n }\n\n updateMonthData(startDate, endDate, data);\n const { availableDays, forcedStartDate, forcedEndDate, slots } = state;\n\n const firstAvailable = availableDays.find((d) => {\n const foundSlot = Object.keys(slots[d]).find((slot) => {\n\n const slotDate = new Date(`${d} ${slot}`.replace(/-/g, '/'));\n\n if (forcedStartDate && slotDate > forcedStartDate) return false;\n if (forcedEndDate && slotDate < forcedEndDate) return false;\n\n return true;\n });\n\n return foundSlot;\n });\n\n const newDate = availableDays.indexOf(dateStr) === -1 && firstAvailable;\n\n setState({\n loading: false,\n date: newDate || dateStr\n });\n });\n\n lastReq = req;\n };\n\n\n const dz = (date, tz1, tz2) => {\n if (!date) return;\n const diffTime = (tz1 - tz2) * oneHour;\n return new Date(date.getTime() - diffTime);\n };\n\n const revertDate = (d, t1, t2) => {\n if (!d) return '';\n\n const pDate = new Date(d.replace(/-/, '/'));\n const utz = getTimezoneOffset(getUserTimezone());\n const tz1 = getTimezoneOffset(t1) - utz;\n const tz2 = getTimezoneOffset(t2) - utz;\n\n const val = dz(\n pDate,\n tz1,\n tz2\n );\n\n return toDateTimeStr(val);\n };\n\n const amPmConverter = (_time) => {\n const {\n timeFormat: { value: timeFormat = '24 Hour' } = {}\n } = props;\n if (!_time\n || !(typeof _time === 'string')\n || (_time.indexOf('M') > -1)\n || !timeFormat\n || (timeFormat === '24 Hour')) {\n return _time;\n }\n const time = _time.substring(0, 2);\n const hour = (time % 12) || 12;\n const ampm = time < 12 ? 'AM' : 'PM';\n return `${hour}${_time.substring(2, 5)} ${ampm}`;\n };\n\n const validate = (dateStr, cb) => {\n const { defaultValue } = state;\n\n if (\n JotForm.isEditMode()\n && defaultValue === dateStr\n ) {\n return cb(true);\n }\n\n const parts = dateStr.split(' ');\n const slot = parts.slice(1).join(' ');\n const [y, m, d] = parts[0].split('-');\n\n const startDate = new Date(y, m - 1, 1);\n const endDate = new Date(y, m, 0);\n\n loadMonthData(startDate, endDate, (data) => {\n const day = `${y}-${m}-${d}`;\n const isValid = checkAppointmentAvailability(day, amPmConverter(slot), data);\n cb(isValid);\n if (!isValid) {\n // add unavailable slot if it is not in response for deselection\n data[day] = assignObject({}, data[day], { [slot]: false });\n }\n\n // still in same month\n if (state.date.indexOf(`${y}-${m}`) === 0) {\n updateMonthData(startDate, endDate, data);\n }\n });\n };\n\n // let validationInterval;\n\n const validation = (_value) => {\n const shouldValidate = _value || input.classList.contains('validate');\n\n if (!shouldValidate) {\n input.classList.add('valid')\n JotForm.corrected(input);\n JotForm.runConditionForId(props.id.value);\n return;\n }\n\n if (!_value) {\n input.classList.remove('valid');\n JotForm.errored(input, window.JotForm.texts?.required || FORM_TEXTS.required);\n JotForm.runConditionForId(props.id.value);\n return;\n }\n\n validate(_value, (isValid) => {\n if (isValid) {\n input.classList.add('valid');\n JotForm.corrected(input);\n JotForm.runConditionForId(props.id.value);\n return;\n }\n\n const parts = _value.split(' ');\n const dateStr = parts[0];\n\n const date = new Date(dateStr);\n const day = getDay(date);\n const datetime = `${dayNames()[day]}, ${monthNames()[date.getMonth()]} ${intPrefix(date.getUTCDate())}, ${date.getFullYear()}`;\n\n const time = parts.slice(1).join(' ');\n const slotUnavailableText = window.JotForm.texts?.slotUnavailable || FORM_TEXTS.slotUnavailable;\n const errorText = slotUnavailableText.slotUnavailable.replace('{time}', time).replace('{date}', datetime);\n\n input.classList.remove('valid')\n JotForm.errored(input, errorText);\n JotForm.runConditionForId(props.id.value);\n });\n };\n\n const debouncedValidation = debounce(validation, 300);\n\n const setValue = (value) => {\n input.value = value ? toDateTimeStr(new Date(value.replace(/-/g, '/'))) : '';\n\n setState({\n value\n });\n\n // trigger input event for supporting progress bar widget\n input.triggerEvent('input');\n\n debouncedValidation(value);\n };\n\n const handleClick = (e) => {\n const { target } = e;\n\n if (!target || !target.classList) {\n return;\n }\n\n if (target.classList.contains('disabled') && !target.classList.contains('active')) {\n return;\n }\n\n e.preventDefault();\n const { value } = target.dataset;\n // formerValue can be undefined\n setValue(target.classList.contains('active') ? state.formerValue : value);\n };\n\n const setTimezone = (timezone) => {\n tzInput.value = timezone;\n let oldTimezone = state.timezone;\n setState({ timezone });\n if (input.value) {\n const date = oldTimezone ? toDateTimeStr(dz(new Date(input.value.replace(/-/g, '/')), getTimezoneOffset(oldTimezone), getTimezoneOffset(state.timezone))) : toDateTimeStr(new Date(input.value.replace(/-/g, '/')));\n setDate(date.split(' ')[0]);\n setState({ value: date });\n \n loadFormerValue(oldTimezone);\n\n input.value = state.value;\n }\n };\n\n const handleTimezoneChange = (e) => {\n const { target } = e;\n const { value: timezone } = target;\n setTimezone(timezone);\n };\n\n const setDate = date => setState({ date });\n\n const handleDateChange = (e) => {\n const { target } = e;\n const { value: date } = target.dataset;\n\n if (!date) return;\n setDate(date);\n };\n\n const handleMonthYearChange = (e) => {\n const { dataset, value: inputVal } = e.target;\n const { name } = dataset;\n if (!name) {\n return;\n }\n\n const { date } = state;\n const oldDate = new Date(date);\n const oldMonth = oldDate.getMonth();\n const oldYear = oldDate.getFullYear();\n const oldDay = oldDate.getUTCDate();\n\n const value = inputVal || e.target.getAttribute('value');\n\n if (name === 'month') {\n let newDate = new Date(oldYear, value, oldDay);\n let i = 1;\n while (`${newDate.getMonth()}` !== `${value}` && i < 10) {\n newDate = new Date(oldYear, value, oldDay - i);\n i++;\n }\n\n return setDate(toDateStr(newDate));\n }\n\n return setDate(toDateStr(new Date(value, oldMonth, oldDay)));\n };\n\n const toggleMobileState = () => {\n if (wrapper.classList.contains('isOpenMobile')) {\n wrapper.classList.remove('isOpenMobile');\n } else {\n wrapper.classList.add('isOpenMobile');\n }\n };\n\n const keepSlotsScrollPosition = () => {\n const visibleSlot = element.querySelector('.appointmentSlots.slots .slot.active, .appointmentSlots.slots .slot:not(.disabled).active');\n\n element.querySelector('.appointmentSlots.slots').scrollTop = visibleSlot ? visibleSlot.offsetTop : 0;\n };\n\n const setTimezonePickerState = () => {\n const { timezone } = state;\n const {\n autoDetectTimezone: { value: autoDetecTimezoneValue } = {}\n } = props;\n timezonePickerCommon.setSelectedTimezone(timezone);\n timezonePickerCommon.setIsAutoSelectTimezoneOpen(autoDetecTimezoneValue);\n };\n\n const loadFormerValue = (oldTimezone) => {\n const { formerValue = '' } = state;\n const date = oldTimezone ? toDateTimeStr(dz(new Date(input.value.replace(/-/g, '/')), getTimezoneOffset(oldTimezone), getTimezoneOffset(state.timezone))) : toDateTimeStr(new Date(input.value.replace(/-/g, '/')));\n const formerDate = formerValue ? (oldTimezone ? toDateTimeStr(dz(new Date(formerValue.replace(/-/g, '/')), getTimezoneOffset(oldTimezone), getTimezoneOffset(state.timezone))) : toDateTimeStr(new Date(formerValue.replace(/-/g, '/')))) : undefined;\n const formerDateTimezoned = oldTimezone ? formerDate : date \n\n if (JotForm.isEditMode() && date && date !== formerValue) {\n setState({ formerValue: formerDateTimezoned });\n }\n }\n\n const handleUIUpdate = () => {\n try {\n const breakpoints = {\n 450: 'isLarge',\n 225: 'isNormal',\n 175: 'shouldBreakIntoNewLine'\n };\n\n const offsetWidth = (() => {\n try {\n const appointmentCalendarRow = element.querySelector('.appointmentFieldRow.forCalendar');\n const appointmendCalendar = element.querySelector('.appointmentCalendar');\n return appointmentCalendarRow.getBoundingClientRect().width - appointmendCalendar.getBoundingClientRect().width;\n } catch (e) {\n return null;\n }\n })();\n\n if (offsetWidth === null || parseInt(wrapper.getAttribute('data-breakpoint-offset'), 10) === offsetWidth) {\n return;\n }\n\n const breakpoint = Object.keys(breakpoints).reduce((prev, curr) => { return Math.abs(curr - offsetWidth) < Math.abs(prev - offsetWidth) ? curr : prev; });\n const breakpointName = breakpoints[breakpoint];\n\n wrapper.setAttribute('data-breakpoint', breakpointName);\n wrapper.setAttribute('data-breakpoint-offset', offsetWidth);\n } catch (e) {\n // noop.\n }\n };\n\n let uiUpdateInterval;\n\n const effects = () => {\n clearInterval(uiUpdateInterval);\n\n const shouldLoad = (changed.timezone && changed.timezone !== state.timezone) // time zone changed\n || (changed.date && getYearMonth(changed.date) !== getYearMonth(state.date)); // y-m changed\n\n changed = {};\n\n if (shouldLoad) {\n load();\n }\n\n const cancelAppointmentBtn = element.querySelector('.cancelAppointmentBtn');\n const cancelSelectionBtn = element.querySelector('.cancelSelectionBtn');\n\n if (cancelAppointmentBtn) {\n cancelAppointmentBtn.addEventListener('click', () => {\n setValue(undefined);\n setState({ formerValue: undefined });\n });\n }\n\n if (cancelSelectionBtn) {\n cancelSelectionBtn.addEventListener('click', () => {\n const { date = '', initialStartDate = '', formerValue = '' } = state;\n const isFormerDatePassed = hasDatePassed(formerValue, initialStartDate);\n const currentOrFormerDate = formerValue ? state.formerValue.split(' ')[0] : date;\n\n setDate(isFormerDatePassed ? initialStartDate : currentOrFormerDate);\n setValue(state.formerValue);\n });\n }\n\n const forSelectedDate = element.querySelector('.forSelectedDate span');\n\n if (forSelectedDate) {\n forSelectedDate.addEventListener('click', () => {\n setDate(state.value.split(' ')[0]);\n });\n }\n\n if (isTimezonePickerFromCommonLoaded) {\n setTimezonePickerState();\n const timezonePickerWrapper = element.querySelector('.forTimezonePicker');\n timezonePickerCommon.init(timezonePickerWrapper);\n } else {\n const timezonepicker = element.querySelector('.timezonePicker');\n if (timezonepicker) {\n timezonepicker.addEventListener('change', handleTimezoneChange);\n }\n }\n\n element.querySelector('.calendar .days').addEventListener('click', handleDateChange);\n element.querySelector('.monthYearPicker').addEventListener('change', handleMonthYearChange);\n element.querySelector('.dayPicker').addEventListener('click', handleDateChange);\n element.querySelector('.selectedDate').addEventListener('click', toggleMobileState);\n\n Array.prototype.slice.call(element.querySelectorAll('.monthYearPicker .pickerArrow')).forEach(el => el.addEventListener('click', handleMonthYearChange));\n Array.prototype.slice.call(element.querySelectorAll('.slot')).forEach(el => el.addEventListener('click', handleClick));\n\n keepSlotsScrollPosition();\n uiUpdateInterval = setInterval(handleUIUpdate, 250);\n\n JotForm.runAllCalculations();\n };\n\n const onTimezoneOptionClick = (timezoneValue) => {\n setTimezone(timezoneValue);\n };\n\n const renderMonthYearPicker = () => {\n const { date } = state;\n\n const [year, month] = (date || '-').split('-');\n const yearOpts = fillArray(new Array(20), '').map((v, i) => `${currentYear + i}`);\n\n const prevMonthButtonText = (props.prevMonthButtonText && props.prevMonthButtonText.text) || 'Previous month';\n const nextMonthButtonText = (props.nextMonthButtonText && props.nextMonthButtonText.text) || 'Next month';\n const prevYearButtonText = (props.prevYearButtonText && props.prevYearButtonText.text) || 'Previous year';\n const nextYearButtonText = (props.nextYearButtonText && props.nextYearButtonText.text) || 'Next year';\n\n return `\n
\n
\n \n \n \n \n
\n
\n \n \n \n
\n
\n `;\n };\n\n const getNav = () => {\n const { availableDays, date: dateStr } = state;\n\n let next;\n let prev;\n const [year, month] = dateStr.split('-');\n if (availableDays) {\n const dayIndex = availableDays.indexOf(dateStr);\n if (dayIndex > 0) {\n prev = availableDays[dayIndex - 1];\n } else {\n const prevDate = new Date(year, month - 1, 0);\n if (prevDate.getFullYear() >= currentYear) {\n prev = toDateStr(prevDate);\n }\n }\n\n if (dayIndex + 1 < availableDays.length) {\n next = availableDays[dayIndex + 1];\n } else {\n const nextDate = new Date(year, month, 1);\n if (nextDate.getFullYear() <= currentYear + 19) {\n next = toDateStr(nextDate);\n }\n }\n }\n return { prev, next };\n };\n\n const renderDayPicker = () => {\n const { loading } = state;\n\n const { prev, next } = getNav();\n\n const prevDayButtonText = (props.prevDayButtonText && props.prevDayButtonText.text) || 'Previous day';\n const nextDayButtonText = (props.nextDayButtonText && props.nextDayButtonText.text) || 'Next day';\n\n return `\n
\n \n \n
\n `;\n };\n\n const renderTimezonePicker = () => {\n const { timezone, timezones } = state;\n if (!timezones) return;\n\n return `\n
\n \n
${timezone}
\n
\n `;\n };\n\n const renderCalendarDays = () => {\n const { slots, date: dateStr, value, availableDays } = state;\n const days = slots ? Object.keys(slots) : [];\n const todayStr = toDateStr(new Date());\n\n if (!days.length) {\n return '';\n }\n\n const firstDay = getDay(new Date(days[0]));\n days.unshift(...fillArray(new Array(firstDay), 'precedingDay'));\n\n const trailingDays = (Math.ceil(days.length / 7) * 7) - days.length;\n days.push(...fillArray(new Array(trailingDays), 'trailingDay'));\n\n const weeks = days.map((item, i) => { return (i % 7 === 0) ? days.slice(i, i + 7) : null; }).filter(a => a);\n\n const dateValue = value && value.split(' ')[0];\n \n return `\n ${weeks.map((week) => {\n return `
${\n week.map((day) => {\n const dayObj = new Date(day);\n if (day === 'precedingDay' || day === 'trailingDay') {\n return `
`;\n }\n const active = day === dateStr;\n const isToday = todayStr === day;\n const beforeStartDate = state.forcedStartDate ? state.forcedStartDate > dayObj : false;\n const afterEndDate = state.forcedEndDate ? state.forcedEndDate < dayObj : false;\n const isUnavailable = availableDays.indexOf(day) === -1 || beforeStartDate || afterEndDate;\n const isPassed = hasDatePassed(day);\n const isStartDayGreaterThanDay = hasDatePassed(day, state.initialStartDate);\n const isSelected = !isPassed && !isStartDayGreaterThanDay && day === dateValue;\n const isActive = !isPassed && !isStartDayGreaterThanDay && active;\n\n const classes = `calendarDay ${classNames({\n isSelected,\n isToday,\n isUnavailable,\n isActive,\n })}`;\n\n return `\n ${day.split('-')[2].replace(/^0/, '')}\n
`;\n }).join('')\n }`;\n }).join('')}\n `;\n };\n\n const renderEmptyState = () => {\n /* eslint-disable */\n return `\n
\n
\n
\n \n \n \n
\n
${window.JotForm.texts?.noSlotsAvailable || FORM_TEXTS.noSlotsAvailable}
\n
\n
\n `;\n /* eslint-enable */\n };\n\n const dateWithAMPM = (date = '') => {\n const {\n timeFormat: { value: timeFormat = '24 Hour' } = {}\n } = props;\n const time = new Date(date.replace(/-/g, '/'))\n .toLocaleTimeString('en-US', { hour: 'numeric', minute: 'numeric', hourCycle: timeFormat === 'AM/PM' ? 'h12' : 'h23' });\n const day = date && date.split(' ')[0];\n return `${day} ${time}`;\n };\n\n\n const renderSlots = () => {\n const { date: dateStr, value: dateValue = '', defaultValue = '', timezone, forcedStartDate, forcedEndDate } = state;\n const dateSlots = (state.slots && state.slots[dateStr]) || {};\n\n const stateValue = dateWithAMPM(dateValue);\n const stateDefaultValue = dateWithAMPM(defaultValue);\n const defaultValueTZ = revertDate(defaultValue, ' ', timezone);\n\n const parsedDefaultVal = dateWithAMPM(defaultValueTZ);\n\n const entries = objectEntries(dateSlots);\n\n if (!entries || !entries.length) {\n return renderEmptyState();\n }\n\n return entries.map(([name, value]) => {\n if (name.indexOf('M') > -1) {\n name = name.split(' ');\n name = `${name[0]} ${name[1].locale()}`;\n }\n const rn = amPmConverter(name);\n const slotValue = `${dateStr} ${rn}`;\n const realD = new Date(slotValue.replace(/-/g, '/'));\n const active = stateValue.replace(/\\s/g, ' ') === slotValue.replace(/\\s/g, ' ');\n\n const disabled = (\n (((forcedStartDate && forcedStartDate > realD)\n || (forcedEndDate && forcedEndDate < realD)\n || !(value || parsedDefaultVal === slotValue))) && stateDefaultValue !== slotValue\n );\n\n return `
${name}
`;\n }).join('');\n };\n\n const renderDay = () => {\n const { date: dateStr } = state;\n const date = new Date(dateStr);\n const day = getDay(date);\n\n return `\n
\n ${dateStr && `${dayNames()[day]}, ${monthNames()[date.getUTCMonth()]} ${intPrefix(date.getUTCDate())}`}\n
\n `;\n };\n\n const renderCalendar = () => {\n const { date: dateStr } = state;\n\n return `\n
\n \n
\n ${renderMonthYearPicker()}\n
\n
\n ${dayNames().map(day => (\n `
${day.toUpperCase().slice(0, 3)}
`\n )).join('')}\n
\n ${renderCalendarDays()}\n
\n `;\n };\n\n const renderSelectedDate = () => {\n const { value = '', formerValue = '' } = state;\n const dateStr = value && value.split(' ')[0];\n const formerDateStr = formerValue && formerValue.split(' ')[0];\n const { calculateVal, time, datetime, unTranslatedDatetime } = convertStrToTime({ dateStr, value });\n const {\n time: formerTime,\n datetime: formerDateTime,\n } = convertStrToTime({ dateStr: formerDateStr, value: formerValue });\n const selectedTimeText = window.JotForm.texts?.selectedTime || FORM_TEXTS.selectedTime;\n const cancelSelectionText = window.JotForm.texts?.cancelSelection || FORM_TEXTS.cancelSelection;\n const cancelAppointmentText = window.JotForm.texts?.cancelAppointment || FORM_TEXTS.cancelAppointment;\n const formerSelectedText = window.JotForm.texts?.formerSelectedTime || FORM_TEXTS.formerSelectedTime;\n const text = `${time} ${datetime}`;\n const formerText = `${formerTime} ${formerDateTime}`;\n const hasFormerly = value !== formerValue;\n const appointmentDateTime = new Date(value.replace(/(\\.|-)/g, '/')).getTime();\n const valEl = ``;\n const cancelAppointmentButton = ``;\n const cancelSelectionButton = ``;\n const selectedField = `
${selectedTimeText}${text}
`;\n const formerTimeField = `
${formerSelectedText}${formerText}
`;\n const selectedFieldContainer = `
\n ${selectedField}\n ${hasFormerly ? cancelSelectionButton : cancelAppointmentButton}\n ${JotForm.isEditMode() && formerValue && hasFormerly ? formerTimeField : ''}\n
`;\n\n return value ? `${valEl}${selectedFieldContainer}` : ``; \n };\n\n const render = debounce(() => {\n const { loading } = state;\n const { text } = props\n beforeRender();\n element.innerHTML = `\n
\n
\n
\n
\n ${renderCalendar()}\n
\n
\n
\n
\n ${renderDay()}\n ${renderDayPicker()}\n
\n
\n
\n ${renderSlots()}\n
\n
\n
\n ${isTimezonePickerFromCommonLoaded ? '' : renderTimezonePicker()}\n
\n
\n
\n ${renderSelectedDate()}\n
\n `;\n afterRender();\n // Frame height needs to be recalculated and\n // updated after any UI change on appointment\n // field. We force it from here.\n try {\n global.JotForm.handleIFrameHeight();\n } catch (e) {\n // noop.\n }\n });\n\n const update = (newProps) => {\n state = assignObject({}, state, getStateFromProps(newProps));\n props = newProps;\n constructTimezonePickerCommon(props);\n load();\n };\n\n input.addEventListener('change', (e) => {\n const date = e.target.value ? toDateTimeStr(new Date(e.target.value.replace(/-/g, '/'))) : '';\n const isAMPM = props.timeFormat === '24 hour';\n if (date) {\n setDate(date.split(' ')[0]);\n setState({ value: date, defaultValue: isAMPM ? date : dateWithAMPM(date) });\n validation(isAMPM ? date : dateWithAMPM(date));\n }\n });\n tzInput.addEventListener('change', (e) => {\n const defaultTimezone = e.target.value;\n setTimezone(defaultTimezone);\n setState({ defaultTimezone });\n });\n document.addEventListener('translationLoad', () => render());\n\n const triggerConstruct = (timezones) => {\n JotForm.appointments.listeners.forEach(fn => fn({ timezones }));\n }\n\n if (!JotForm.appointments) {\n JotForm.appointments = { listeners: [] };\n\n loadTimezones((timezones) => {\n JotForm.timezones = timezones;\n\n if (JotForm.isEditMode()) {\n ensureEditResultSet(10000).then(()=> {\n triggerConstruct(timezones);\n });\n } else {\n triggerConstruct(timezones);\n }\n });\n }\n\n // Appointment flickers if we don't wait for submission result on edit\n function ensureEditResultSet(timeout) {\n var dateStart = Date.now();\n return new Promise(waitForEditResult);\n\n function waitForEditResult(resolve, reject) {\n if (JotForm.editValueSet)\n resolve();\n else if (timeout && (Date.now() - dateStart) >= timeout)\n resolve();\n else\n setTimeout(waitForEditResult.bind(this, resolve, reject), 30);\n }\n }\n\n const requestTimeout = 1000;\n\n const getFirstAvailableDates = async ({ formID, timezone, qid }) => {\n const url = `${PREFIX}?action=getAppointments&formID=${formID}&timezone=${encodeURIComponent(timezone)}&ncTz=${(new Date().getTime())}&firstAvailableDates&qid=${qid}`;\n const { content } = await getJSON(url);\n JotForm.appointments.initialData = {...JotForm.appointments.initialData, ...content}\n return content[qid];\n }\n\n const constructTimezonePickerCommon = (props) => {\n const isAm = props?.timeFormat?.value === 'AM/PM';\n const userTimezone = getUserTimezone();\n const timezone = state.defaultTimezone || userTimezone\n\n if (window.timezonePickerCommon) {\n isTimezonePickerFromCommonLoaded = true;\n timezonePickerCommon = window.timezonePickerCommon({\n id: uniqueId,\n timezones: JotForm.timezones,\n selectedTimezone: timezone,\n onOptionClick: onTimezoneOptionClick,\n usePortal: true,\n isAm\n });\n }\n }\n\n const construct = async ({ timezones }) => {\n const { formID = global.__formInfo.id, id: { value: qid }, autoDetectTimezone: { value: autoDetectValue } = {} } = props;\n\n const userTimezone = getUserTimezone();\n const timezone = state.defaultTimezone || userTimezone\n\n if (!formID || !timezone) return;\n\n if (autoDetectValue === 'No') {\n load();\n }\n\n const qdata = await getFirstAvailableDates({ formID, timezone, qid });\n\n if (!qdata || qdata.error) {\n constructed = true;\n return;\n }\n\n constructed = false;\n\n constructTimezonePickerCommon(props);\n\n setTimezone(timezone);\n const dateStr = Object.keys(qdata)[0];\n\n const [startDate, endDate] = getDateRange(dateStr);\n\n updateMonthData(startDate, endDate, qdata);\n const { availableDays } = state;\n const newDate = availableDays.indexOf(dateStr) === -1 ? availableDays[0] : dateStr;\n\n constructed = true;\n\n setState({\n timezones,\n loading: false,\n date: newDate || dateStr,\n initialStartDate: dateStr,\n });\n \n const isDatePassed = hasDatePassed(state.value);\n const isForcedStartDay = hasDatePassed(state.value, dateStr);\n\n // should wait for submission results for edit mode to correct input value for user timezone\n if (JotForm.isEditMode()) {\n ensureEditResultSet(10000).then(() => {\n // if appointment is passed, get first available day\n if (!isDatePassed && !isForcedStartDay) {\n input.triggerEvent('change');\n input.value = state.value || '';\n }\n })\n } else {\n setTimeout(() => {\n if (input.value) {\n input.triggerEvent('change');\n }\n }, 100);\n }\n };\n\n JotForm.appointments.listeners.push(construct);\n\n if (JotForm.appointments.initialData) {\n setTimeout(() => {\n construct({\n timezones: JotForm.timezones\n });\n }, requestTimeout);\n }\n\n JotForm.appointments[props.id.value] = {\n update: newProps => update(assignObject(passedProps, newProps)),\n forceStartDate: async (newDate, equation = '') => {\n if (!newDate) {\n setState({ forcedStartDate: undefined });\n return;\n }\n try {\n const forcedStartDate = new Date(newDate);\n if (`${forcedStartDate}` === `${state.forcedStartDate}`) return;\n let date = new Date(state.availableDays.find(d => new Date(`${d} 23:59:59`) >= forcedStartDate));\n\n if (!date.getTime()) {\n date = forcedStartDate;\n }\n\n date = toDateStr(date);\n\n if (equation && !state.loading) {\n const realDate = new Date(forcedStartDate.getTime());\n if (`${state.forcedStartDate}` === `${realDate}`) return;\n const getFirstAvailableDay = (_availableDays) => { return new Date(_availableDays.find(d => new Date(`${d} 23:59:59`) >= realDate)) };\n let firstAvailableDay = getFirstAvailableDay(state.availableDays);\n\n if (firstAvailableDay.toString() === 'Invalid Date') {\n const [startDate, endDate] = getDateRange(toDateStr(realDate));\n const monthData = await getMonthData(startDate, endDate);\n const { availableDays } = generateMonthData(startDate, endDate, monthData);\n firstAvailableDay = getFirstAvailableDay(availableDays);\n }\n\n setValue('');\n setState({ forcedStartDate, date: toDateStr(firstAvailableDay) });\n return;\n }\n\n setState({ forcedStartDate, date });\n } catch (e) {\n console.log(e);\n }\n },\n forceEndDate: (newDate) => {\n if (!newDate) {\n setState({ forcedEndDate: undefined });\n return;\n }\n\n try {\n const forcedEndDate = new Date(newDate);\n if (`${forcedEndDate}` === `${state.forcedEndDate}`) return;\n const availableDays = state.availableDays.filter(d => new Date(`${d} 00:00:00`) <= forcedEndDate);\n\n let date = new Date(\n availableDays.indexOf(state.date) > -1\n ? state.date\n : availableDays[availableDays.length - 1]\n );\n\n if (!date.getTime()) {\n date = forcedEndDate;\n }\n\n date = toDateStr(date);\n\n setState({ forcedEndDate, date });\n } catch (e) {\n console.log(e);\n }\n },\n getComparableValue: () => (\n input.value && toDateTimeStr(new Date(input.value.replace(/-/g, '/')))\n ) || ''\n };\n\n return update;\n};\n","export const COUNTRIES = [\n 'Afghanistan',\n 'Albania',\n 'Algeria',\n 'American Samoa',\n 'Andorra',\n 'Angola',\n 'Anguilla',\n 'Antigua and Barbuda',\n 'Argentina',\n 'Armenia',\n 'Aruba',\n 'Australia',\n 'Austria',\n 'Azerbaijan',\n 'The Bahamas',\n 'Bahrain',\n 'Bangladesh',\n 'Barbados',\n 'Belarus',\n 'Belgium',\n 'Belize',\n 'Benin',\n 'Bermuda',\n 'Bhutan',\n 'Bolivia',\n 'Bosnia and Herzegovina',\n 'Botswana',\n 'Brazil',\n 'Brunei',\n 'Bulgaria',\n 'Burkina Faso',\n 'Burundi',\n 'Cambodia',\n 'Cameroon',\n 'Canada',\n 'Cape Verde',\n 'Cayman Islands',\n 'Central African Republic',\n 'Chad',\n 'Chile',\n 'China',\n 'Christmas Island',\n 'Cocos (Keeling) Islands',\n 'Colombia',\n 'Comoros',\n 'Congo',\n 'Cook Islands',\n 'Costa Rica',\n 'Cote d\\'Ivoire',\n 'Croatia',\n 'Cuba',\n 'Curaçao',\n 'Cyprus',\n 'Czech Republic',\n 'Democratic Republic of the Congo',\n 'Denmark',\n 'Djibouti',\n 'Dominica',\n 'Dominican Republic',\n 'Ecuador',\n 'Egypt',\n 'El Salvador',\n 'Equatorial Guinea',\n 'Eritrea',\n 'Estonia',\n 'Ethiopia',\n 'Falkland Islands',\n 'Faroe Islands',\n 'Fiji',\n 'Finland',\n 'France',\n 'French Polynesia',\n 'Gabon',\n 'The Gambia',\n 'Georgia',\n 'Germany',\n 'Ghana',\n 'Gibraltar',\n 'Greece',\n 'Greenland',\n 'Grenada',\n 'Guadeloupe',\n 'Guam',\n 'Guatemala',\n 'Guernsey',\n 'Guinea',\n 'Guinea-Bissau',\n 'Guyana',\n 'Haiti',\n 'Honduras',\n 'Hong Kong',\n 'Hungary',\n 'Iceland',\n 'India',\n 'Indonesia',\n 'Iran',\n 'Iraq',\n 'Ireland',\n 'Israel',\n 'Italy',\n 'Jamaica',\n 'Japan',\n 'Jersey',\n 'Jordan',\n 'Kazakhstan',\n 'Kenya',\n 'Kiribati',\n 'North Korea',\n 'South Korea',\n 'Kosovo',\n 'Kuwait',\n 'Kyrgyzstan',\n 'Laos',\n 'Latvia',\n 'Lebanon',\n 'Lesotho',\n 'Liberia',\n 'Libya',\n 'Liechtenstein',\n 'Lithuania',\n 'Luxembourg',\n 'Macau',\n 'Macedonia',\n 'Madagascar',\n 'Malawi',\n 'Malaysia',\n 'Maldives',\n 'Mali',\n 'Malta',\n 'Marshall Islands',\n 'Martinique',\n 'Mauritania',\n 'Mauritius',\n 'Mayotte',\n 'Mexico',\n 'Micronesia',\n 'Moldova',\n 'Monaco',\n 'Mongolia',\n 'Montenegro',\n 'Montserrat',\n 'Morocco',\n 'Mozambique',\n 'Myanmar',\n 'Nagorno-Karabakh',\n 'Namibia',\n 'Nauru',\n 'Nepal',\n 'Netherlands',\n 'Netherlands Antilles',\n 'New Caledonia',\n 'New Zealand',\n 'Nicaragua',\n 'Niger',\n 'Nigeria',\n 'Niue',\n 'Norfolk Island',\n 'Turkish Republic of Northern Cyprus',\n 'Northern Mariana',\n 'Norway',\n 'Oman',\n 'Pakistan',\n 'Palau',\n 'Palestine',\n 'Panama',\n 'Papua New Guinea',\n 'Paraguay',\n 'Peru',\n 'Philippines',\n 'Pitcairn Islands',\n 'Poland',\n 'Portugal',\n 'Puerto Rico',\n 'Qatar',\n 'Republic of the Congo',\n 'Romania',\n 'Russia',\n 'Rwanda',\n 'Saint Barthelemy',\n 'Saint Helena',\n 'Saint Kitts and Nevis',\n 'Saint Lucia',\n 'Saint Martin',\n 'Saint Pierre and Miquelon',\n 'Saint Vincent and the Grenadines',\n 'Samoa',\n 'San Marino',\n 'Sao Tome and Principe',\n 'Saudi Arabia',\n 'Senegal',\n 'Serbia',\n 'Seychelles',\n 'Sierra Leone',\n 'Singapore',\n 'Slovakia',\n 'Slovenia',\n 'Solomon Islands',\n 'Somalia',\n 'Somaliland',\n 'South Africa',\n 'South Ossetia',\n 'South Sudan',\n 'Spain',\n 'Sri Lanka',\n 'Sudan',\n 'Suriname',\n 'Svalbard',\n 'eSwatini',\n 'Sweden',\n 'Switzerland',\n 'Syria',\n 'Taiwan',\n 'Tajikistan',\n 'Tanzania',\n 'Thailand',\n 'Timor-Leste',\n 'Togo',\n 'Tokelau',\n 'Tonga',\n 'Transnistria Pridnestrovie',\n 'Trinidad and Tobago',\n 'Tristan da Cunha',\n 'Tunisia',\n 'Turkey',\n 'Turkmenistan',\n 'Turks and Caicos Islands',\n 'Tuvalu',\n 'Uganda',\n 'Ukraine',\n 'United Arab Emirates',\n 'United Kingdom',\n 'United States',\n 'Uruguay',\n 'Uzbekistan',\n 'Vanuatu',\n 'Vatican City',\n 'Venezuela',\n 'Vietnam',\n 'British Virgin Islands',\n 'Isle of Man',\n 'US Virgin Islands',\n 'Wallis and Futuna',\n 'Western Sahara',\n 'Yemen',\n 'Zambia',\n 'Zimbabwe'];\n","export const GENDERS = ['Male', 'Female', 'N/A'];\n","export const DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { debounce } from '../utils';\n\nconst MIN_LOGO_WIDTH = 100;\n\nconst LogoComponent = ({\n isBuilder, logoTitle, handleAddFormLogo, formWidth, formLogoProperties, usePreLoad\n}) => {\n const { url = '', width = MIN_LOGO_WIDTH, height = 100 } = formLogoProperties.image;\n const [imageLoaded, setImageLoaded] = useState(false);\n\n useEffect(() => {\n const img = new Image();\n img.src = url;\n\n img.onload = () => {\n setImageLoaded(true);\n };\n\n img.onerror = (error) => {\n console.error('Error loading image:', error);\n setImageLoaded(true);\n };\n\n return () => {\n img.onload = null;\n img.onerror = null;\n };\n }, []);\n\n return React.useMemo(() => {\n const logoWidth = width > formWidth ? formWidth : width;\n\n const logoImage = (\n \n );\n\n return (\n \n {isBuilder ? (\n \n {logoImage}\n \n ) : (\n logoImage\n )}\n \n );\n }, [formWidth, url, width, height, imageLoaded]);\n};\n\nconst FormLogo = ({\n isBuilder,\n handleAddFormLogo,\n formWidth,\n formLogoProperties,\n logoTitle,\n updateFormProperty,\n styleJSON, \n usePreLoad = false\n}) => {\n\n const wrapperClass = `form-cover-wrapper form-has-cover form-page-cover-image-align-${formLogoProperties.topPosition?.toLowerCase()}`;\n\n const handleFormWidthChange = onUpdating => {\n if (!onUpdating) {\n const { width, height } = formLogoProperties?.image || {};\n if (width > formWidth) {\n const ratio = height / width;\n const logoWidth = formWidth > MIN_LOGO_WIDTH ? formWidth : MIN_LOGO_WIDTH;\n\n styleJSON['@formCoverImgWidth'] = logoWidth;\n styleJSON['@formCoverImgHeight'] = logoWidth * ratio;\n\n updateFormProperty({\n styleJSON\n }, true, true);\n }\n }\n };\n\n useEffect(() => {\n let onUpdating = false;\n\n const debouncedHandleFormWidthChange = debounce(() => handleFormWidthChange(onUpdating), 500);\n\n if (!onUpdating) {\n debouncedHandleFormWidthChange();\n }\n\n return () => {\n onUpdating = true;\n };\n }, [formWidth, formLogoProperties?.image?.width]);\n\n return (\n \n );\n};\n\nFormLogo.defaultProps = {\n handleAddFormLogo: () => { },\n logoTitle: '',\n isBuilder: false,\n updateFormProperty: () => { },\n styleJSON: {}\n};\n\nFormLogo.propTypes = {\n isBuilder: PropTypes.bool,\n logoTitle: PropTypes.string,\n handleAddFormLogo: PropTypes.func,\n formWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n formLogoProperties: PropTypes.shape({\n bottomMargin: PropTypes.number,\n topPosition: PropTypes.string,\n image: PropTypes.shape({\n url: PropTypes.string.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n }).isRequired\n }).isRequired,\n updateFormProperty: PropTypes.func,\n styleJSON: PropTypes.object,\n usePreLoad: PropTypes.bool\n};\n\nexport default FormLogo;\n","export const twoFactorTypeKeys = {\n sms: 'phone',\n authenticatorApp: 'totp'\n};\n\nexport const Texts = {\n MY_FORMS: 'My Forms',\n PROFILE: 'Profile',\n SKIP_CREATE_ACCOUNT: 'Skip Create an Account',\n CONTINUE_DRAFT: 'Continue With Draft',\n DISCARD_START_BLANK: 'You can continue your draft or discard and start with a blank form',\n SAVED_DRAFT_SUBMISSION: 'You have a draft for this form.',\n HELLO_TEXT: 'Hello,',\n LOG_OUT: 'Log out',\n LOGOUT: 'Logout',\n LOGIN_TEXT: 'Log in',\n GET_SHARE_LINK: 'Get Shareable Link',\n EMAIL: 'Email',\n RE_EMAIL: 'Resend Email',\n COPIED_CLIPBOARD: 'Link copied to clipboard!',\n SENT_TO: 'Email sent to',\n DOESNT_SUPPORT_BROWSER: 'Your browser doesn\\'t support this operation',\n SEND_LINK_COMPLETE: 'We’ve sent you an email with a link to complete your submission.',\n START_OVER: `Discard ${encodeURIComponent('&')} Start Over`,\n SAVE_PROGRESS: 'Save your progress',\n ALREADY_HAVE_ACCOUNT: 'Already have an account?',\n DONT_HAVE_ACCOUNT: 'Don’t have an account?',\n ARE_YOU_JOTFORM_ENTERPRISE_USER: 'Are you a Jotform Enterprise user?',\n LOGIN_TO_JOTFORM_ENTERPRISE: 'Log into Jotform Enterprise',\n LOGIN_CAPITAL: 'LOG IN',\n SIGN_UP: 'Sign up',\n CREATE_ACCOUNT: 'Create an Account',\n OTHER_OPTIONS: 'More sign up options',\n SIGN_UP_EMAIL: 'Sign up with Email',\n SIGN_UP_EMAIL_LOWERCASE: 'Sign up with email',\n FULL_NAME: 'Full Name',\n NAME_TEXT: 'Name',\n EMAIL_TEXT: 'Email',\n PASSWORD_TEXT: 'Password',\n CONF_PASSWORD_TEXT: 'Confirm Password',\n TERMS_SERVICE: 'Terms of Service',\n TERMS_OF_USE: 'Terms of Use',\n PRIVACY_POLICY: 'Privacy Policy',\n AND_KEY: 'and',\n OR_KEY: 'OR',\n SUBMISSIONS_SAVED_DRAFT: 'Your form has been saved as a draft.',\n SEND_DRAFT_CONTINUE: 'We’ve sent you an email with a link to continue your form.',\n ENTER_EMAIL: 'If you want to continue your form later, please enter the email address you would like to send the link to:',\n EMAIL_NOT_BLANK: 'Email cannot be left blank',\n SEND_LINK: 'Send link',\n SEND: 'Send',\n BACK_KEY: 'Back',\n SAVE_SUBMISSION: 'Save Submission',\n SAVE_KEY: 'Save',\n SKIP_KEY: 'Skip',\n USERNAME_EMAIL: 'Username or Email',\n LOGIN_SAVE: 'Login and Save Submission',\n AGREE_SERVICE_POLICY: 'I agree to the [1[Terms of Service]] and [2[Privacy Policy]].',\n AGREE_FOR_TURKISH_USERS: 'I have read the [1[KVKK Clarification Text]] and I accept the processing of my personal data in accordance with the [2[Explicit Consent Text]].',\n MORE_HELP_CONTACT: 'If you need more help, please [1[contact our support team.]]',\n MORE_HELP_CONTACT_ENTERPRISE: 'If you need help, please contact with your administrator.',\n FORGOT_PASSWORD: 'Forgot password?',\n FORGOT_YOUR_PASSWORD: 'Forgot your password?',\n PASSWORD_RESET_SENT: 'Password reset instructions have been sent successfully via email.',\n FIELD_REQUIRED: 'This field is required',\n EMAIL_FIELD_REQUIRED: 'Username or email field is required',\n PASS_FIELD_REQUIRED: 'Password field is required',\n ENTER_A_PASSWORD: 'Please enter a password.',\n PASSWORD_OK: 'Password ok',\n PASSWORD_CONFIRMATION_OK: 'Password confirmation ok',\n PASSWORD_CANNOT_BLANK: 'Password cannot be left blank',\n PASS_MIN_CHAR_COUNT: 'Should have minimum 8 characters',\n PASS_INCL_CHARS: 'Should be a mix of upper case, lower case characters, and numbers or special characters',\n FIELDS_SHOULD_MATCH: 'Passwords don\\'t match.',\n SECURE_PASS_DESC: 'Your password must contain at least',\n SECURE_PASS_REUSE: 'Your password must be different from your last 6 passwords',\n SECURE_PASS_REUSE_CONT: ' and contain at least',\n SECURE_PASS_CHAR_COUNT: '8 characters',\n SECURE_PASS_TEST_DESC: 'Your password must include at least',\n SECURE_PASS_UPPERCASE: '1 uppercase letter',\n SECURE_PASS_LOWERCASE: '1 lowercase letter',\n SECURE_PASS_NUMBER: '1 number',\n SECURE_PASS_SPECIAL_CHAR: '1 special character',\n SECURE_PASS_NO_LEADING_OR_TRAILING_WHITESPACE: 'No blank spaces, either at the beginning or at the end',\n PASS_DIFF_PREV: 'Should be different from your last 6 passwords',\n CONNECT_SALESFORCE: 'Connect with Salesforce',\n CONNECT_APPLE: 'Connect with Apple',\n CONNECT_GOOGLE: 'Connect with Google',\n CONNECT_MICROSOFT: 'Connect with Microsoft',\n CONNECT_FACEBOOK: 'Connect with Facebook',\n SIGN_UP_SALESFORCE: 'Sign up with Salesforce',\n SIGN_UP_SALESFORCE_MOBILE: 'Salesforce',\n SIGN_UP_APPLE: 'Sign up with Apple',\n SIGN_UP_GOOGLE: 'Sign up with Google',\n SIGN_UP_GOOGLE_MOBILE: 'Google',\n SIGN_UP_FACEBOOK: 'Sign up with Facebook',\n SIGN_UP_FACEBOOK_MOBILE: 'Facebook',\n SIGN_UP_MICROSOFT: 'Sign up with Microsoft',\n SIGN_UP_MICROSOFT_MOBILE: 'Microsoft',\n SIGN_UP_NOW: 'Sign Up Now!',\n SIGN_UP_NOW_NO_EXCLAMATION_MARK: 'Sign Up Now',\n LOGIN_WITH: 'Log in with',\n LOGIN_SALESFORCE: 'Login with Salesforce',\n SALESFORCE: 'Salesforce',\n LOGIN_GOOGLE: 'Login with Google',\n GOOGLE: 'Google',\n LOGIN_FACEBOOK: 'Login with Facebook',\n FACEBOOK: 'Facebook',\n LOGIN_APPLE: 'Login with Apple',\n APPLE: 'Apple',\n LOGIN_MICROSOFT: 'Login with Microsoft',\n MICROSOFT: 'Microsoft',\n ENTER_USERNAME_EMAIL: 'Enter your username or email',\n SEND_INSTRUCTIONS: 'Send Reset Instructions',\n GO_BACK_TEXT: 'Go back',\n BACK_TO_PRIMARY_METHOD: 'Back to Primary Method',\n CAN_NOT_ACCESS_MY_DEVICE: \"I can't access my authentication device\",\n // eslint-disable-next-line max-len\n RECOVER_ACCOUNT_TEXT: \"If you can't access your authentication device or recovery codes, you can ask for assistance from Jotform support. Click the button below to start your recovery process.\",\n RECOVER_ACCOUNT_MAIL_HAS_BEEN_SENT: 'Your request to have your account recovered has already been sent in. You are unable to submit another request to recover your account until it is finished.',\n RECOVER_YOUR_ACCOUNT: 'Recover Your Account',\n VIEW_SUPPORT_TICKET: 'View Support Ticket',\n VERIFICATION_EMAIL_SENT_TO: 'The verification email has been sent to',\n RECOVER_ACCOUNT_EMAIL_INFO_TEXT: 'Click on the button in the email to create a ticket.',\n RECOVER_ACCOUNT_NOTIFICATION_TEXT: 'After you submit, a member of our support staff will examine your request and get in touch with you to offer assistance within 48 to 72 hours.',\n BACK_TO_LOGIN: 'Back to Login',\n VALID_EMAIL: 'Please type a valid email',\n SENDING: 'Sending...',\n AGREE_TERMS_CONDITIONS: 'Please agree terms and conditions',\n NEED_TO_ACCEPT_TERMS: 'You need to accept our Terms of Service and Privacy Policy to create an account.',\n CHECK_SPAM_FOLDER: 'If you don’t get the email, please check your spam folder.',\n GET_INSTRUCTION_EMAIL: 'You should get the password reset instructions via email soon.',\n OK_TEXT: 'OK',\n CHECK_EMAIL: 'Check your email',\n EMAIL_IS_USE: 'Email is in use:',\n EMAIL_IS_NOTVALID: 'Email is not valid.',\n CURRENT_PASSWORD: 'Current Password',\n SHOW_PASSWORD: 'Show Password',\n HIDE_PASSWORD: 'Hide Password',\n PLEASE_WAIT: 'Please wait',\n WELCOME_BACK: 'Welcome Back!',\n CREATE_MY_ACCOUNT: 'CREATE MY ACCOUNT',\n BY_CLICKING_YOU_AGREE: 'By clicking \"Signup\" you agree our [1[Terms of Service]] and [2[Privacy Policy]]',\n ERROR_TRY_AGAIN: 'There was an error. Please try again later.',\n VERIFY_ITS_YOU: 'Verify it\\'s you!',\n TWO_FACTOR_DESCRIPTION: {\n [twoFactorTypeKeys.sms]: \"We've sent an authentication code to [1[receiver]]. Please check your messages and enter the six-digit code to enable 2FA\",\n [twoFactorTypeKeys.authenticatorApp]: 'Enter the six-digit code from your configured Authenticator App below.'\n },\n EMAIL_AUTHENTICATION_DESCRIPTION: \"We've sent an authentication code to [1[receiver]]. Please check your inbox and enter the six-digit code.\",\n VERIFICATION_CODE: 'Authentication code',\n RECOVERY_CODE: 'Recovery code',\n VERIFY: 'VERIFY',\n VERIFY_BUTTON_TEXT: 'Verify',\n NO_CODE: 'No code?',\n SEND_AGAIN: 'Send again',\n HAVING_PROBLEMS: 'Having problems?',\n SEE_OTHER_AUTHENTICATION_METHODS: 'See Other Methods',\n SEND_CODE_TO: {\n [twoFactorTypeKeys.sms]: 'Send code to [1[receiver]]',\n [twoFactorTypeKeys.authenticatorApp]: 'Use authenticator app'\n },\n USE_YOUR_RECOVERY_CODES: 'Use your recovery codes',\n USE_YOUR_AUTHENTICATOR_APP: 'Use code from Authenticator App',\n TWO_FACTOR_AUTHENTICATION: 'Two-Factor Authentication',\n EMAIL_AUTHENTICATION: 'E-mail Authentication',\n ENTER_RECOVERY_CODES: 'Enter one of your 6-digit recovery codes below.',\n DAILY_LIMIT: 'You\\'ve reached the daily text message limit',\n INVALID_TOKEN: 'Invalid code; please try again',\n BACKUP_CODES_ERROR: 'You entered a wrong or already used recovery code',\n BLANK_VERIFICATION_CODE: 'Code cannot be blank.',\n GREETING_DESCRIPTION: '',\n SHOW_MORE: 'Show More',\n CHOOSE_A_METHOD: 'Choose a method',\n CHOOSE_A_METHOD_DESCRIPTION: 'Select a verification method to login your account',\n REACH_DAILY_LIMIT_FORCE_TO_EMAIL: 'Your verification code has been sent to your email due to you have reached the daily SMS limit.',\n USED_RECOVERY_CODES: 'Used recovery codes will be invalidated.',\n ENTER_YOUR_EMAIL: 'Enter your email',\n THANK_YOU: 'THANK YOU!',\n VIEW_COMPLETED_APPROVALS: 'View your completed approvals',\n COMPLETED_TASK: 'The task has been completed.',\n PLEASE_LOGIN: 'Please [1[Log in]].',\n EMAIL_ERROR: 'This email address is already associated with a Jotform account.',\n EMAIL_ERROR_ENTERPRISE: 'This email address is already associated with an account.',\n // Delete my account flow\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_YOUR_ACCOUNT: 'Are you sure you want to delete your account?',\n YOU_ARE_ABOUT_TO_DELETE_YOUR_ACCOUNT_NAMELY: 'You’re about to delete your account namely:',\n GET_IN_TOUCH_WITH_US: '[1[Get in touch]] with us if you have any questions.',\n YES_DELETE: 'Yes, Delete',\n CANCEL: 'Cancel',\n VERIFY_THAT_ITS_YOU_TO_DELETE_YOUR_ACCOUNT: 'Verify That It’s You to Delete Your Account',\n VERIFY_WITH: 'Verify with',\n PLEASE_ENTER_YOUR_PASSWORD: 'Please enter your password',\n YOU_HAVE_ENTERED_YOUR_CURRENT_PASSWORD_WRONG: 'You have entered your current password wrong',\n YOU_HAVE_VERIFIED_SUCCESSFULLY: 'You have verified successfully',\n DELETE_MY_ACCOUNT: 'Delete My Account',\n YOUR_ACCOUNT_COULD_NOT_BE_DELETED: 'Your account could not be deleted. Please try again.',\n YOU_COULD_NOT_BE_VERIFIED: 'You could not be verified. Try again later',\n VERIFY_DELETE: 'Verify',\n CONTINUE_LATER: 'We’ve emailed you a link you can use to continue it later.',\n DRAFT_SAVED: 'Submission saved as draft',\n INCOMPLETE_SUBMISSION: 'You have an incomplete submission for this form',\n DRAFT_TEXT: 'Discard this submission draft to start over, or continue with your saved draft.',\n DISCARD_DRAFT: 'Discard and start over',\n CONTINUE_WITH_DRAFT: 'Continue with draft',\n SAVE_AS_DRAFT: 'Sign up to save submission as a draft',\n PLEASE_WAIT_SAVE: 'Please wait while we save your submission.',\n SAVE_ERROR: \"Your submission couldn't be saved\",\n PLEASE_TRY_AGAIN: 'Please try again.',\n TRY_AGAIN: 'Try Again',\n GET_DRAFT_LINK: 'Get Draft Link',\n DRAFT_BEING_SAVED: 'Your submission is being saved',\n ENTER_EMAIL_ADDRESS: 'Enter your email address',\n PLEASE_ENTER_VALID_EMAIL: 'Please enter valid email',\n CONTINUE_FORM_LATER: 'If you want to continue your form later, please enter your email address.',\n TO_KEY: 'To',\n DONT_ACCESS_DRAFT: 'You don’t have access to this submission draft',\n FILL_OUT_DRAFT: 'Fill out the form to create a new submission.',\n CHANGE_ACCOUNT: 'Change Account',\n START_OVER_FORM: 'Start Over',\n NOT_FOUND: 'Submission draft not found',\n DELETED_DRAFT: 'This draft was deleted or has already been submitted.',\n USER_IS_SSO_ERROR: 'Email already in use by SSO user.'\n};\n\nexport const AlertLabelTypes = {\n WARNING: 'WARNING',\n SUCCESS: 'SUCCESS',\n INFO: 'INFO'\n};\n\nexport const prepareLoginFlowDefaultGreetings = () => {\n const isPartnershipPages = window.location.href.indexOf('/partnership/') >= 0;\n const isAffiliateSignup = window.location.href.indexOf('/affiliate/') >= 0;\n const isJotformForBeginners = window.location.href.indexOf('/jotform-for-beginners/') >= 0;\n if (isPartnershipPages) {\n return `You will need a free Jotform account\n in order to access your Dashboard. If you already have a Jotform account,\n please log in to your account first to be able to fill out your application.\n If you have more than one Jotform account, please use the registered account to the\n Jotform ${isAffiliateSignup ? 'Affiliate Program' : 'Solutions Program'}.`;\n }\n if (isJotformForBeginners) {\n return 'Create a free Jotform account to download the book, Jotform for Beginners.';\n }\n if (window.JOTFORM_ENV !== 'ENTERPRISE') {\n return 'Collect information, payments, and signatures with custom online forms.';\n }\n return '';\n};\n\nexport const FORM_TEXTS = {\n confirmEmail: 'E-mail does not match',\n pleaseWait: 'Please wait...',\n validateEmail: 'You need to validate this e-mail',\n confirmClearForm: 'Are you sure you want to clear the form',\n lessThan: 'Your score should be less than or equal to',\n incompleteFields: 'There are incomplete required fields. Please complete them.',\n required: 'This field is required.',\n requireOne: 'At least one field required.',\n requireEveryRow: 'Every row is required.',\n requireEveryCell: 'Every cell is required.',\n email: 'Enter a valid e-mail address',\n alphabetic: 'This field can only contain letters',\n numeric: 'This field can only contain numeric values',\n alphanumeric: 'This field can only contain letters and numbers.',\n cyrillic: 'This field can only contain cyrillic characters',\n url: 'This field can only contain a valid URL',\n currency: 'This field can only contain currency values.',\n fillMask: 'Field value must fill mask.',\n uploadExtensions: 'You can only upload following files:',\n noUploadExtensions: 'File has no extension file type (e.g. .txt, .png, .jpeg)',\n uploadFilesize: 'File size cannot be bigger than:',\n uploadFilesizemin: 'File size cannot be smaller than:',\n gradingScoreError: 'Score total should only be less than or equal to',\n inputCarretErrorA: 'Input should not be less than the minimum value:',\n inputCarretErrorB: 'Input should not be greater than the maximum value:',\n maxDigitsError: 'The maximum digits allowed is',\n minCharactersError: 'The number of characters should not be less than the minimum value:',\n maxCharactersError: 'The number of characters should not be more than the maximum value:',\n freeEmailError: 'Free email accounts are not allowed',\n minSelectionsError: 'The minimum required number of selections is ',\n maxSelectionsError: 'The maximum number of selections allowed is ',\n pastDatesDisallowed: 'Date must not be in the past.',\n dateLimited: 'This date is unavailable.',\n dateInvalid: 'This date is not valid. The date format is {format}',\n dateInvalidSeparate: 'This date is not valid. Enter a valid {element}.',\n ageVerificationError: 'You must be older than {minAge} years old to submit this form.',\n multipleFileUploads_typeError: '{file} has invalid extension. Only {extensions} are allowed.',\n multipleFileUploads_sizeError: '{file} is too large, maximum file size is {sizeLimit}.',\n multipleFileUploads_minSizeError: '{file} is too small, minimum file size is {minSizeLimit}.',\n multipleFileUploads_emptyError: '{file} is empty, please select files again without it.',\n multipleFileUploads_uploadFailed: 'File upload failed, please remove it and upload the file again.',\n multipleFileUploads_onLeave: 'The files are being uploaded, if you leave now the upload will be cancelled.',\n multipleFileUploads_fileLimitError: 'Only {fileLimit} file uploads allowed.',\n dragAndDropFilesHere_infoMessage: 'Drag and drop files here',\n chooseAFile_infoMessage: 'Choose a file',\n maxFileSize_infoMessage: 'Max. file size',\n generalError: 'There are errors on the form. Please fix them before continuing.',\n generalPageError: 'There are errors on this page. Please fix them before continuing.',\n wordLimitError: 'Too many words. The limit is',\n wordMinLimitError: 'Too few words. The minimum is',\n characterLimitError: 'Too many Characters. The limit is',\n characterMinLimitError: 'Too few characters. The minimum is',\n ccInvalidNumber: 'Credit Card Number is invalid.',\n ccInvalidCVC: 'CVC number is invalid.',\n ccInvalidExpireDate: 'Expire date is invalid.',\n ccInvalidExpireMonth: 'Expiration month is invalid.',\n ccInvalidExpireYear: 'Expiration year is invalid.',\n ccMissingDetails: 'Please fill up the credit card details.',\n ccMissingProduct: 'Please select at least one product.',\n ccMissingDonation: 'Please enter numeric values for donation amount.',\n disallowDecimals: 'Please enter a whole number.',\n restrictedDomain: 'This domain is not allowed',\n ccDonationMinLimitError: 'Minimum amount is {minAmount} {currency}',\n requiredLegend: 'All fields marked with * are required and must be filled.',\n geoPermissionTitle: 'Permission Denied',\n geoPermissionDesc: 'Check your browser\\'s privacy settings.',\n geoNotAvailableTitle: 'Position Unavailable',\n geoNotAvailableDesc: 'Location provider not available. Please enter the address manually.',\n geoTimeoutTitle: 'Timeout',\n geoTimeoutDesc: 'Please check your internet connection and try again.',\n selectedTime: 'Selected Time',\n formerSelectedTime: 'Former Time',\n cancelAppointment: 'Cancel Appointment',\n cancelSelection: 'Cancel Selection',\n noSlotsAvailable: 'No slots available',\n slotUnavailable: '{time} on {date} has been selected is unavailable. Please select another slot.',\n multipleError: 'There are {count} errors on this page. Please correct them before moving on.',\n oneError: 'There is {count} error on this page. Please correct it before moving on.',\n doneMessage: 'Well done! All errors are fixed.',\n invalidTime: 'Enter a valid time',\n doneButton: 'Done',\n reviewSubmitText: 'Review and Submit',\n nextButtonText: 'Next',\n prevButtonText: 'Previous',\n seeErrorsButton: 'See Errors',\n notEnoughStock: 'Not enough stock for the current selection',\n notEnoughStock_remainedItems: 'Not enough stock for the current selection ({count} items left)',\n soldOut: 'Sold Out',\n justSoldOut: 'Just Sold Out',\n selectionSoldOut: 'Selection Sold Out',\n subProductItemsLeft: '({count} items left)',\n startButtonText: 'START',\n submitButtonText: 'Submit',\n submissionLimit: 'Sorry! Only one entry is allowed.
Multiple submissions are disabled for this form.',\n reviewBackText: 'Back to Form',\n seeAllText: 'See All',\n progressMiddleText: 'of',\n fieldError: 'field has an error.',\n error: 'Error'\n};\n","import isElement from 'lodash/isElement';\n\nexport const createFormData = data => {\n return Object.keys(data)\n .map(key => `${key}=${window.encodeURIComponent(data[key])}`)\n .join('&');\n};\n\nexport const listenEnter = (e, callbackFN = () => undefined, stopPropagation = true) => {\n const { key = '', keyCode } = e;\n if ((key && key === 'Enter') || keyCode === 13) {\n if (stopPropagation) {\n e.stopPropagation(); // to prevent cardform selectNextQuestion\n }\n callbackFN();\n }\n};\n\nexport const loadJS = (id, src, onload) => {\n if (document.getElementById(id)) {\n return false;\n }\n\n const js = document.createElement('script');\n\n js.id = id;\n js.onload = onload;\n js.src = src;\n const fjs = document.getElementsByTagName('script')[0];\n if (fjs) {\n fjs.parentNode.insertBefore(js, fjs);\n } else {\n document.getElementsByTagName('head')[0].appendChild(js);\n }\n};\n\n/**\n * Select nearest parent matches with selector (unless it encounters stopSelector) according to _element.\n * @param _element\n * @param selector\n * @param stopSelector\n * @returns {*}\n */\nexport const closest = (_element, selector, stopSelector) => {\n let element = _element;\n let retval = null;\n while (element) {\n if (element.matches(selector)) {\n retval = element;\n break;\n } else if (stopSelector && element.matches(stopSelector)) {\n break;\n }\n element = element.parentElement;\n }\n return retval;\n};\n\n// Check if node2 contains node1\nexport const nodeContains = (node2, node1) => isElement(node2) && isElement(node1) && ((node2 === node1) || nodeContains(node2, node1.parentNode));\n\nexport const getClassAttributes = values => {\n if (!values?.class) return '';\n const classAttributes = values.class;\n const classResult = Object.values(classAttributes).join(' ').trim();\n return classResult;\n};\n\n/**\n * Select the text content and collapse if you want to move the caret to end of input\n * @param target\n * @param shouldCollapse\n */\nexport const selectAllText = ({ target, shouldCollapse = false, focusBefore = false }) => {\n let selection;\n let range;\n if (focusBefore) target.focus();\n\n if (document.body.createTextRange) {\n range = document.body.createTextRange();\n range.moveToElementText(target);\n if (shouldCollapse) range.collapse(false);\n range.select();\n } else if (window.getSelection) {\n selection = window.getSelection();\n range = document.createRange();\n range.selectNodeContents(target);\n selection.removeAllRanges();\n if (shouldCollapse) range.collapse(false);\n selection.addRange(range);\n }\n\n if (!focusBefore) target.focus();\n};\n\nexport const classNameGenerator = classess => {\n let className = '';\n const classKeys = Object.keys(classess);\n classKeys.forEach(classKey => {\n if (classess[classKey]) className += ` ${classKey}`;\n });\n return className.trim();\n};\n","var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = self.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.onabort = function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!self.fetch) {\n self.fetch = fetch\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n}\n","import 'whatwg-fetch';\nimport 'core-js/es/promise';\nimport 'core-js/actual/array/find';\nimport 'core-js/actual/array/from';\nimport 'core-js/actual/array/is-array';\nimport 'core-js/actual/array/find-index';\nimport 'core-js/actual/array/for-each';\nimport 'core-js/web/dom-collections';\nimport 'core-js/es/string/from-code-point';\nimport 'core-js/es/object/assign';\n\nif (global.Element && !global.Element.prototype.closest) {\n global.Element.prototype.closest = function closest(s) {\n var el = this;\n var ancestor = this;\n if (!document.documentElement.contains(el)) return null;\n do {\n if (ancestor.matches(s)) return ancestor;\n ancestor = ancestor.parentElement;\n } while (ancestor !== null);\n return null;\n };\n}\n\nif (global.location && !global.location.origin) { // Some browsers (mainly IE) does not have this property, so we need to build it manually...\n global.location.origin = `${global.location.protocol}//${global.location.hostname}${(global.location.port ? (`:${global.location.port}`) : '')}`;\n}\n\nif (typeof String.prototype.locale === 'undefined') {\n String.prototype.locale = function () {\n return this.toString();\n };\n}\n","import bowser from 'bowser';\n\nexport const deviceSize = {\n cardwidthp: 480,\n cardwidthpt: 736,\n cardwidtht: 860,\n cardwidthsm: 992,\n cardwidthm: 1200,\n cardwidthxl: 1366\n};\n\nexport const cardSize = {\n cardwidthp: '100%',\n cardwidthpt: '90%',\n cardwidtht: '95%',\n cardwidthsm: 840,\n cardwidthm: 940,\n cardwidthxl: 940\n};\n\nexport const addClass = (_element, className) => {\n const element = _element;\n var classes = (element.className || '').split(' ').filter(p => {\n return p;\n });\n\n if (classes.indexOf(className) > -1) return;\n\n classes.push(className);\n element.className = classes.join(' ');\n};\n\nexport const removeClass = (_element, className) => {\n const element = _element;\n if (element && element.className && typeof element.className === 'string') {\n var classes = element.className.split(' ').filter(p => {\n return p && p !== className;\n });\n element.className = classes.join(' ');\n }\n};\n\nexport const setAttribute = (_element, attr, value) => {\n const element = _element;\n if (element && element.setAttribute && typeof element.setAttribute === 'function') {\n element.setAttribute(attr, value);\n }\n};\n\nexport const removeAttribute = (_element, attr) => {\n const element = _element;\n if (element && element.setAttribute && typeof element.removeAttribute === 'function') {\n element.removeAttribute(attr);\n }\n};\n\nexport const hasClass = (element, className) => {\n if (element.className && typeof element.className === 'string') {\n var classes = element.className.split(' ');\n return classes.indexOf(className) > -1;\n }\n};\n\nexport const toggleClass = (element, className) => {\n if (element) {\n if (!hasClass(element, className)) {\n return addClass(element, className);\n }\n return removeClass(element, className);\n }\n};\n\nexport const isDescendant = (parent, child) => {\n const node = child.parentNode;\n\n if (node === null) return false;\n\n return node === parent ? true : isDescendant(parent, node);\n};\n\nexport const forEach = (arr, fn) => {\n Array.prototype.forEach.call(arr, fn);\n};\n\nexport const map = (arr, fn) => {\n return Array.prototype.map.call(arr, fn);\n};\n\nexport const reduce = (arr, fn, initialValue) => {\n return Array.prototype.reduce.call(arr, fn, initialValue);\n};\n\nexport const hasTouch = () => {\n var isTesting = global.location.hostname === 'www.jotform.ooo';\n /* eslint-disable */\n var deviceHasTouch = !!(('ontouchstart' in window) || window.navigator && window.navigator.maxTouchPoints > 0 && window.navigator.msMaxTouchPoints > 0 && window.navigator.msPointerEnabled && window.MSGesture || window.DocumentTouch && document instanceof DocumentTouch) && !isTesting;\n /* eslint-enable */\n\n if (deviceHasTouch) {\n var formWrapper = document.querySelector('.jfForm-wrapper');\n addClass(formWrapper, 'hasTouch');\n }\n\n return deviceHasTouch;\n};\n\nexport const isVisible = elem => {\n if (!(elem instanceof window.Element)) throw Error('DomUtil: elem is not an element.');\n const style = window.getComputedStyle(elem);\n if (style.display === 'none') return false;\n if (style.visibility !== 'visible') return false;\n if (style.opacity < 0.1) return false;\n if (elem.offsetWidth + elem.offsetHeight + elem.getBoundingClientRect().height\n + elem.getBoundingClientRect().width === 0) {\n return false;\n }\n const elemCenter = {\n x: elem.getBoundingClientRect().left + (elem.offsetWidth / 2),\n y: elem.getBoundingClientRect().top + (elem.offsetHeight / 2)\n };\n if (elemCenter.x < 0) return false;\n if (elemCenter.x > (document.documentElement.clientWidth || window.innerWidth)) return false;\n if (elemCenter.y < 0) return false;\n if (elemCenter.y > (document.documentElement.clientHeight || window.innerHeight)) return false;\n let pointContainer = document.elementFromPoint(elemCenter.x, elemCenter.y);\n\n while (pointContainer !== null) {\n if (pointContainer === elem) return true;\n pointContainer = pointContainer.parentNode;\n }\n return false;\n};\n\nexport const debounce = (func, wait, immediate) => {\n var timeout;\n return (...params) => {\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, params);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, params);\n };\n};\n\nexport const makeHiddenSubmissionKey = formID => {\n return `jfHiddenSubmission_${formID}`;\n};\n\nexport function createSubmissionToken(formID) {\n const random = Math.floor(Math.random() * (99 - 1)) + 1;\n const ticks = new Date().getTime();\n const formIDPart = formID.toString().substr(0, 5);\n return `jf_${formIDPart}${ticks}${random}`;\n}\n\nexport function createInput(props) {\n const input = global.document.createElement('input');\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n input[prop] = props[prop];\n }\n return input;\n}\n\nexport function getInputValidations(input) {\n return input.className.replace(/.*validate\\[(.*)].*/, '$1').split(/\\s*,\\s*/);\n}\n\nexport function fuzzySearch(_searchItem, itemArray) {\n const mailProviders = itemArray;\n const completeValue = _searchItem.split('');\n const searchItem = _searchItem;\n\n const checkList = [];\n\n for (let index = 1; index <= completeValue.length; index++) {\n const firstPart = searchItem.substr(0, index);\n const secondPart = searchItem.substr(index + 1, searchItem.length - index);\n checkList.push(`${firstPart}|${secondPart}`);\n }\n\n const suggestions = [];\n checkList.forEach(testElem => {\n mailProviders.forEach(_provider => {\n const provider = _provider.toLowerCase();\n const testParts = testElem.toLowerCase().split('|');\n const firstPart = provider.indexOf(testParts[0]);\n const secondPart = provider.indexOf(testParts[1]);\n if (firstPart !== -1 && secondPart !== -1 && suggestions.indexOf(provider) === -1) {\n suggestions.push(provider);\n }\n });\n });\n\n return suggestions;\n}\n\nexport function htmlToText(element) {\n // If sended element has children, use them for conversion process; otherwise just use itself\n const elementList = element.childCount > 0 ? element.childElements() : [element];\n\n // Get text content of each element and merge them using new line\n const text = reduce(elementList, (prev, curr) => `${prev} ${curr.textContent.trim()}`, '');\n\n // Return trimmed text to avoid unnecessary spaces caused by reduce function\n return text.trim();\n}\n\nexport function getSelectedRange() {\n if (global.getSelection) {\n const selection = global.getSelection();\n\n if (selection.getRangeAt && selection.rangeCount) {\n // Store each selection range\n const selectionState = [];\n for (let i = 0; i < selection.rangeCount; i++) {\n selectionState.push(selection.getRangeAt(i));\n }\n\n return selectionState;\n }\n } else if (global.selection && global.selection.createRange) {\n // Create selection range via createRange\n return global.selection.createRange();\n }\n\n // Nothing to do...\n return null;\n}\n\nexport function setSelectionRange(selectionState) {\n if (selectionState) {\n if (global.getSelection) {\n const selection = global.getSelection();\n\n // Remove current selection\n if (document.body.createTextRange) { // All IE but Edge\n var range = document.body.createTextRange();\n range.collapse();\n range.select();\n } else {\n selection.removeAllRanges();\n }\n // Select saved selection instead\n forEach(selectionState, ch => selection.addRange(ch));\n } else if (global.document.selection && this.selectionState.select) {\n // Select directly by using createRange output\n selectionState.select();\n }\n }\n}\n\nexport function findOne(haystack, arr) {\n return arr.some(el => haystack.indexOf(el) > -1);\n}\n\nexport function findIndex(haystack, arr) {\n let index = -1;\n\n arr.some(el => {\n if (haystack.indexOf(el) > -1) {\n index = haystack.indexOf(el);\n return true;\n }\n\n return false;\n });\n\n return index;\n}\n\nexport function triggerEvent(element, eventName) {\n if (document.createEvent) {\n const event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, false, true);\n element.dispatchEvent(event);\n } else if (element.fireEvent) {\n element.fireEvent(`on${eventName}`);\n }\n}\n\n// enables or disables multiple or single dom elements\nexport function enableDisableDOMElements(elements, status) {\n const elementArray = typeof elements === typeof [] ? elements : [elements];\n forEach(elementArray, el => {\n if (!el) { return; }\n if (!status) {\n el.setAttribute('disabled', 'disabled');\n } else {\n el.removeAttribute('disabled');\n }\n });\n}\n\n// Returns orientation type from given angle, for old browsers\nexport function calculateOrientationType(angle = 0) {\n switch (angle) {\n case 90:\n return 'landscape-primary';\n case -90:\n return 'landscape-secondary';\n case 180:\n return 'portrait-secondary';\n default:\n return 'portrait-primary';\n }\n}\n\n// This will send given event to keen.io using jotform.com as a proxy.\n// Only works on production\n// Doesn't captures any response\nexport function sendAnalyticsData(formID, collectionName, jsonData, forceProduction = false) {\n const isProduction = forceProduction || global.location.href.indexOf('jotform.pro') === -1;\n const isPreviewMode = global.location.href.indexOf('?preview') !== -1;\n if (!collectionName || typeof jsonData !== 'object' || !global.XMLHttpRequest || !isProduction || isPreviewMode) {\n console.warn('Invalid usage');\n }\n const request = new global.XMLHttpRequest();\n const requestData = JSON.stringify({ ...jsonData, formID });\n try {\n request.open('POST', `https://www.jotform.com/stylebuilder/${formID}&action=sendAnalyticData&collection=${collectionName}&data=${encodeURIComponent(requestData)}`);\n request.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\n request.send();\n } catch (err) {\n console.error(`Couldn't sent analytics data {${collectionName}: ${requestData}} .`, err);\n }\n}\n\nfunction translateItem(selector) {\n const item = selector; // For Eslint rule. Exp: https://eslint.org/docs/rules/no-param-reassign\n const formTranslation = global.FormTranslation;\n if (!formTranslation || !item) return false;\n\n const currentText = item.innerHTML;\n const originalElement = [...formTranslation.originalFormElements, ...formTranslation.originalDynamicFormElements].filter(p => p.element === item);\n\n const originalText = originalElement && originalElement[0] && originalElement[0].html;\n if (item && currentText && originalText) {\n const translation = formTranslation.translateCardTexts(originalText);\n item.innerHTML = translation ? translation : currentText;\n }\n}\n\nexport function translateComponentFields(cards) {\n cards.forEach(card => card.question && card.question.componentClass && typeof card.question.componentClass.translate === 'function' && card.question.componentClass.translate());\n}\n\nexport function translateDefaultCardFormTexts() {\n const formTranslation = global.FormTranslation;\n if (formTranslation) {\n const translateElements = [\n '.payment-text',\n '.cardProgress-goBack-text',\n '.cardProgress-seeAll',\n '.cardProgress-middleText',\n '.jfWelcome-sectionInfo-text',\n '.js-sacl-saved',\n '.js-sacl-valid-email',\n '.js-sacl-error',\n '.js-sacl-textarea',\n '.js-sacl-title',\n '.js-emailSent-feedback',\n '.js-saveContinueSendEmail',\n '.js-sacl-link',\n '.js-sacl-share',\n '.js-sacl-state-text',\n '.js-saveContinueTryAgain',\n '.jfUpload-button',\n '.jfUpload-heading .forDesktop',\n '.jfUpload-heading .forMobile',\n '.jfUpload-subheading .minFileSize',\n '.jfUpload-subheading .maxFileSize'\n ];\n forEach(translateElements, element => {\n let selector = null;\n\n if (element === '.payment-text') {\n selector = document.querySelectorAll(element);\n } else {\n selector = document.querySelector(element);\n }\n\n if (typeof selector === 'object' && selector !== null && selector.length !== undefined) {\n forEach(selector, item => {\n translateItem(item);\n });\n } else if (selector) {\n translateItem(selector);\n }\n });\n }\n}\n\nexport function getBrowserProperties() {\n const browser = typeof window !== 'undefined' && bowser.getParser(window.navigator.userAgent);\n\n return ({\n osName: browser ? browser.getOSName() : '',\n browserName: browser ? browser.getBrowserName() : '',\n isAndroid: browser ? browser.isOS('android') : false,\n isWebkit: browser ? browser.isEngine('webkit') || browser.isEngine('blink') : false,\n isMobile: browser ? browser.isPlatform('mobile') : false,\n isTablet: browser ? browser.isPlatform('tablet') : false,\n browserVersion: browser ? browser.getBrowserVersion() : '',\n osVersion: browser ? browser.getOSVersion() : ''\n });\n}\n\nexport function getDeviceType() {\n // for preview mode, if we set forceMobileDevice=1 lets force as mobile\n if (global.location && global.location.href.indexOf('&forceMobileDevice=1') > -1) {\n return 'Mobile';\n }\n\n const {\n isMobile, isTablet, osName, browserVersion, browserName\n } = getBrowserProperties();\n\n if (isMobile || isTablet) {\n return isMobile ? 'Mobile' : 'Tablet';\n }\n\n // Detect iPad devices for Safari 13 because of bowser's detecting issue\n const isSafari13 = osName === 'macOS'\n && browserVersion.split('.')[0] >= 13\n && browserName === 'Safari'\n && window.navigator\n && window.navigator.maxTouchPoints > 1;\n\n if (isSafari13) {\n return 'Tablet';\n }\n\n return 'Desktop';\n}\n\nexport function replaceAll(input, str, newStr) {\n if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') {\n return input.replace(str, newStr);\n }\n return input.replace(new RegExp(str, 'g'), newStr);\n}\n\nexport function parseQueryString(query) {\n const vars = query.split('&');\n const queryString = {};\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=');\n const key = decodeURIComponent(pair.shift());\n const value = decodeURIComponent(pair.join('='));\n // If first entry with this name\n if (typeof queryString[key] === 'undefined') {\n queryString[key] = value;\n // If second entry with this name\n } else if (typeof queryString[key] === 'string') {\n const arr = [queryString[key], value];\n queryString[key] = arr;\n // If third or later entry with this name\n } else {\n queryString[key].push(value);\n }\n }\n return queryString;\n}\n\nexport function isDST(d) {\n const jan = new Date(d.getFullYear(), 0, 1).getTimezoneOffset();\n const jul = new Date(d.getFullYear(), 6, 1).getTimezoneOffset();\n return Math.max(jan, jul) !== d.getTimezoneOffset();\n}\n\nexport function getElementsByFocus({\n target,\n excludeAttributes = '',\n excludeStyles = {}\n}) {\n if (!target || !(target instanceof HTMLElement)) return;\n const hasExcludedStyles = Object.keys(excludeStyles).length;\n const focusableElements = ['a[href]', 'button', 'input', 'textarea', 'select', 'details', 'iframe', '[tabindex]'];\n const notSelectors = ['[disabled]', ':disabled', '[hidden]', '.isHidden', '[type=\"hidden\"]'].map(query => `:not(${query})`).join('');\n const focusableQuery = focusableElements.map(element => `${element}${notSelectors}`).join(',');\n const foundElements = [...target.querySelectorAll(focusableQuery)];\n return foundElements.filter(element => {\n if (element.offsetParent === null) return false; // offsetParent will return null if parent/element's display property is none.\n if (excludeAttributes) {\n const attributesArray = Array.isArray(excludeAttributes) ? excludeAttributes : [excludeAttributes];\n // if element includes 1 or more excluded attributes - return false;\n return !(attributesArray.some(attribute => element.hasAttribute(attribute)));\n }\n // if element includes 1 or more excluded styles - return false;\n if (hasExcludedStyles) return !(Object.entries(excludeStyles).some(([property, value]) => window.getComputedStyle(element)?.getPropertyValue(property) === value));\n return true;\n });\n}\n","export const TOOLTIP_TYPES = Object.freeze({\n INFO: 'info',\n ERROR: 'error'\n});\n\nexport const ERROR_TYPES = Object.freeze({\n TOOLTIP: 'tooltip'\n});\n\nexport const MOST_USED_PROVIDERS = [\n /* Default domains included */\n 'aol.com', 'att.net', 'comcast.net', 'facebook.com', 'gmail.com', 'gmx.com', 'googlemail.com',\n 'google.com', 'hotmail.com', 'hotmail.co.uk', 'mac.com', 'me.com', 'mail.com', 'msn.com',\n 'live.com', 'sbcglobal.net', 'verizon.net', 'yahoo.com', 'yahoo.co.uk',\n\n /* Other global domains */\n 'email.com', 'fastmail.fm', 'games.com' /* AOL */, 'gmx.net', 'hush.com', 'hushmail.com', 'icloud.com',\n 'iname.com', 'inbox.com', 'lavabit.com', 'love.com' /* AOL */, 'outlook.com', 'pobox.com', 'protonmail.com',\n 'rocketmail.com' /* Yahoo */, 'safe-mail.net', 'wow.com' /* AOL */, 'ygm.com' /* AOL */,\n 'ymail.com' /* Yahoo */, 'zoho.com', 'yandex.com',\n\n /* United States ISP domains */\n 'bellsouth.net', 'charter.net', 'cox.net', 'earthlink.net', 'juno.com',\n\n /* British ISP domains */\n 'btinternet.com', 'blueyonder.co.uk', 'freeserve.co.uk', 'live.co.uk',\n 'ntlworld.com', 'o2.co.uk', 'orange.net', 'sky.com', 'talktalk.co.uk', 'tiscali.co.uk',\n 'virgin.net', 'wanadoo.co.uk', 'bt.com',\n\n /* Domains used in Asia */\n 'sina.com', 'qq.com', 'naver.com', 'hanmail.net', 'daum.net', 'nate.com', 'yahoo.co.jp', 'yahoo.co.kr', 'yahoo.co.id', 'yahoo.co.in', 'yahoo.com.sg', 'yahoo.com.ph',\n\n /* French ISP domains */\n 'hotmail.fr', 'live.fr', 'laposte.net', 'yahoo.fr', 'wanadoo.fr', 'orange.fr', 'gmx.fr', 'sfr.fr', 'neuf.fr', 'free.fr',\n\n /* German ISP domains */\n 'gmx.de', 'hotmail.de', 'live.de', 'online.de', 't-online.de' /* T-Mobile */, 'web.de', 'yahoo.de',\n\n /* Italian ISP domains */\n 'libero.it', 'virgilio.it', 'hotmail.it', 'aol.it', 'tiscali.it', 'alice.it', 'live.it', 'yahoo.it', 'email.it', 'tin.it', 'poste.it', 'teletu.it',\n\n /* Russian ISP domains */\n 'mail.ru', 'rambler.ru', 'yandex.ru', 'ya.ru', 'list.ru',\n\n /* Belgian ISP domains */\n 'hotmail.be', 'live.be', 'skynet.be', 'voo.be', 'tvcablenet.be', 'telenet.be',\n\n /* Argentinian ISP domains */\n 'hotmail.com.ar', 'live.com.ar', 'yahoo.com.ar', 'fibertel.com.ar', 'speedy.com.ar', 'arnet.com.ar',\n\n /* Domains used in Mexico */\n 'yahoo.com.mx', 'live.com.mx', 'hotmail.es', 'hotmail.com.mx', 'prodigy.net.mx',\n\n /* Domains used in Brazil */\n 'yahoo.com.br', 'hotmail.com.br', 'outlook.com.br', 'uol.com.br', 'bol.com.br',\n 'terra.com.br', 'ig.com.br', 'itelefonica.com.br', 'r7.com', 'zipmail.com.br', 'globo.com', 'globomail.com', 'oi.com.br',\n\n /* JOTFOOOOORM! */\n 'jotform.com'\n];\n\nexport const EmojiList = [\n 0x1F601,\n 0x1F621,\n 0x1F602,\n 0x1F609,\n 0x1F60A,\n 0x1F648,\n 0x1F62C,\n 0x1F61D,\n 0x1F618,\n 0x1F49B,\n 0x1F60D,\n 0x1F638,\n 0x1F44D,\n 0x1F614,\n 0x1F62D,\n 0x1F48B,\n 0x1F612,\n 0x1F633,\n 0x1F61C,\n 0x1F603,\n 0x1F622,\n 0x1F631,\n 0x1F60F,\n 0x1F61E,\n 0x1F605,\n 0x1F61A,\n 0x1F64A,\n 0x1F60C,\n 0x1F600,\n 0x1F61D\n];\n","import { closest } from '@jotforminc/utils';\n\nimport {\n addClass,\n forEach,\n hasClass,\n removeClass,\n replaceAll,\n parseQueryString\n} from './utils';\n\nexport default class Progress {\n constructor(params) {\n this.selectIndex = this.selectIndex.bind(this);\n this.setValidIndexes = this.setValidIndexes.bind(this);\n this.setInvalidIndexes = this.setInvalidIndexes.bind(this);\n this.setIndexVisibility = this.setIndexVisibility.bind(this);\n this.setCurrentIndexText = this.setCurrentIndexText.bind(this);\n this.getVisibleIndex = this.getVisibleIndex.bind(this);\n this.bindSwipeOverviewMode = this.bindSwipeOverviewMode.bind(this);\n this.populateProgressItems = this.populateProgressItems.bind(this);\n this.hideProgressBar = this.hideProgressBar.bind(this);\n this.showProgressBar = this.showProgressBar.bind(this);\n this.setFirstLastCellClasses = this.setFirstLastCellClasses.bind(this);\n this.setQuestionOrderNumbers = this.setQuestionOrderNumbers.bind(this);\n this.shouldProgressDisplayed = this.shouldProgressDisplayed.bind(this);\n this.showProgressBarIfNeeded = this.showProgressBarIfNeeded.bind(this);\n this.init = this.init.bind(this);\n this.init(params);\n }\n\n init(params) {\n this.layoutElements = {\n progress: document.getElementById('cardProgress'),\n progressItems: null,\n progressToggle: document.getElementById('cardProgressToggle'),\n progressCurrentIndexText: document.getElementById('cardProgress-currentIndex'),\n progressQuestionCountText: document.getElementById('cardProgress-questionCount'),\n progressItemsLine: document.getElementsByClassName('jfProgress-itemWrapperLine')[0],\n progressItemWrapper: document.getElementsByClassName('jfProgress-itemWrapper')[0]\n };\n this.isFormProgressVisible = params.isFormProgressVisible;\n this.populateProgressItems(params.items);\n\n this.layoutElements.progressItems = this.layoutElements.progress.querySelectorAll('.jfProgress-item');\n this.layoutElements.progressItemCells = this.layoutElements.progress.querySelectorAll('.jfProgress-itemCell');\n this.cards = params.cards;\n\n this.layoutParams = {\n items: params.items,\n selectedIndex: params.selectedIndex || 0,\n hiddenIndexes: params.hiddenIndexes || [],\n validIndexes: params.validIndexes || [],\n invalidIndexes: params.invalidIndexes || [],\n deviceType: params.deviceType,\n isHidden: false,\n isFeedbackEmbedButton: params.isFeedbackEmbedButton,\n isSaveAndContinueLaterActivated: params.isSaveAndContinueLaterActivated\n };\n\n this.layoutParams.hiddenIndexes.forEach((isHidden, index) => {\n if (isHidden) {\n addClass(this.layoutElements.progressItemCells[index], 'isHidden');\n }\n });\n\n // eslint-disable-next-line no-multi-assign\n const events = this.events = {\n onFormOverviewClicked: params.onFormOverviewClicked,\n onItemSelected: params.onItemSelected\n };\n\n const { progressToggle, progressItems } = this.layoutElements;\n progressToggle.addEventListener('click', () => {\n events.onFormOverviewClicked();\n });\n this.bindSwipeOverviewMode();\n\n forEach(progressItems, progressItem => {\n (i => {\n progressItem.addEventListener('keydown', e => {\n if (e.keyCode === 32 || e.keyCode === 13) {\n e.target.click();\n }\n });\n progressItem.addEventListener('click', () => {\n events.onItemSelected(i);\n });\n })(+progressItem.getAttribute('data-index'));\n });\n\n this.setCurrentIndexText();\n this.setFirstLastCellClasses();\n this.setQuestionOrderNumbers();\n\n if (!this.shouldProgressDisplayed()) {\n this.hideProgressBar();\n }\n }\n\n bindSwipeOverviewMode() {\n let tStartY = null;\n let tEndY = null;\n const threshold = 70;\n document.addEventListener('touchstart', e => {\n if (closest(e.target, '#cardProgressToggle')) {\n tStartY = e.touches[0].screenY;\n } else {\n tStartY = null;\n }\n });\n\n document.addEventListener('touchmove', e => {\n tEndY = e.touches[0].screenY;\n });\n\n document.addEventListener('touchend', () => {\n if (tStartY !== null && tEndY !== null) {\n const isInScrollMode = hasClass(document.body, 'onScrollMode');\n let diff = tEndY - tStartY;\n diff = isInScrollMode ? diff : 0 - diff;\n if (diff >= threshold) {\n this.events.onFormOverviewClicked();\n }\n }\n tStartY = null;\n tEndY = null;\n });\n }\n\n selectIndex(index) {\n removeClass(this.layoutElements.progressItems[this.layoutParams.selectedIndex], 'isActive');\n this.layoutParams.selectedIndex = index;\n addClass(this.layoutElements.progressItems[this.layoutParams.selectedIndex], 'isActive');\n this.layoutElements.progressCurrentIndexText.innerText = `${this.getVisibleIndex(this.layoutParams.selectedIndex) + 1} `;\n }\n\n setValidIndexes(indexArr) {\n this.layoutParams.validIndexes = indexArr;\n forEach(this.layoutElements.progressItems, (p, index) => {\n if (indexArr.indexOf(index) > -1) {\n removeClass(p, 'hasError');\n addClass(p, 'isValid');\n } else {\n removeClass(p, 'isValid');\n }\n });\n }\n\n getVisibleIndex(index) {\n const invisibleCountToIndex = this.layoutParams.items.slice(0, index).reduce((acc, item, i) => {\n return this.layoutParams.hiddenIndexes[i] ? acc + 1 : acc;\n }, 0);\n\n return index - invisibleCountToIndex;\n }\n\n setCurrentIndexText() {\n const visibleItemCount = this.layoutParams.items.filter((p, index) => !this.layoutParams.hiddenIndexes[index]).length;\n this.layoutElements.progressQuestionCountText.innerText = ` ${visibleItemCount}`;\n this.layoutElements.progressCurrentIndexText.innerText = `${this.getVisibleIndex(this.layoutParams.selectedIndex) + 1} `;\n }\n\n setValidIndex(index) {\n const item = this.layoutElements.progressItems[index];\n removeClass(item, 'hasError');\n addClass(item, 'isValid');\n }\n\n setInvalidIndexes(indexArr) {\n this.layoutParams.invalidIndexes = indexArr;\n forEach(this.layoutElements.progressItems, (p, index) => {\n if (indexArr.indexOf(index) > -1) {\n removeClass(p, 'isValid');\n addClass(p, 'hasError');\n } else {\n removeClass(p, 'hasError');\n }\n });\n }\n\n setInvalidIndex(index) {\n const item = this.layoutElements.progressItems[index];\n removeClass(item, 'isValid');\n addClass(item, 'hasError');\n }\n\n setIndexVisibility(index, isVisible) {\n if (isVisible) {\n removeClass(this.layoutElements.progressItemCells[index], 'isHidden');\n } else {\n addClass(this.layoutElements.progressItemCells[index], 'isHidden');\n }\n\n this.layoutParams.hiddenIndexes[index] = !isVisible;\n }\n\n unsetInvalidIndex(index) {\n const item = this.layoutElements.progressItems[index];\n removeClass(item, 'hasError');\n }\n\n unsetValidIndex(index) {\n const item = this.layoutElements.progressItems[index];\n removeClass(item, 'isValid');\n }\n\n populateProgressItems(questions) {\n const cellTemplate = this.layoutElements.progress.querySelector('.jfProgress-itemCell');\n const newCells = questions.map((q, index) => {\n const cell = cellTemplate.cloneNode(true);\n cell.querySelector('.jfProgress-item').setAttribute('data-index', index);\n cell.querySelector('.jfProgress-item').setAttribute('aria-label', `jump to question ${index + 1}: ${q.label}`);\n cell.querySelector('.jfProgress-itemLabel').setAttribute('data-item-id', q.question ? q.question.id : '');\n cell.querySelector('.jfProgress-itemLabel').innerText = `${q.label}`;\n return cell;\n });\n const cellParent = cellTemplate.parentNode;\n cellParent.removeChild(cellTemplate);\n newCells.forEach(p => { cellParent.appendChild(p); });\n }\n\n hideProgressBar() {\n if (!this.layoutElements.isHidden) {\n addClass(this.layoutElements.progress, 'isHidden');\n this.layoutElements.progress.setAttribute('aria-hidden', 'true');\n this.layoutElements.isHidden = true;\n }\n }\n\n showProgressBar() {\n if (this.layoutElements.isHidden) {\n removeClass(this.layoutElements.progress, 'isHidden');\n this.layoutElements.progress.removeAttribute('aria-hidden');\n this.layoutElements.progress.removeAttribute('tabindex');\n this.layoutElements.isHidden = false;\n }\n }\n\n setFirstLastCellClasses() {\n let isFirstSet = false;\n let isLastSet = false;\n for (let i = 0; i < this.layoutElements.progressItemCells.length; i++) {\n const cell = this.layoutElements.progressItemCells[i];\n\n if (!isFirstSet) {\n if (!hasClass(cell, 'isHidden')) {\n isFirstSet = true;\n addClass(cell, 'isFirst');\n } else {\n removeClass(cell, 'isFirst');\n }\n } else {\n removeClass(cell, 'isFirst');\n }\n }\n\n for (let i = this.layoutElements.progressItemCells.length - 1; i >= 0; i--) {\n const cell = this.layoutElements.progressItemCells[i];\n\n if (!isLastSet) {\n if (!hasClass(cell, 'isHidden')) {\n isLastSet = true;\n addClass(cell, 'isLast');\n } else {\n removeClass(cell, 'isLast');\n }\n } else {\n removeClass(cell, 'isLast');\n }\n }\n }\n\n setQuestionOrderNumbers() {\n const visibleCells = [];\n forEach(this.layoutElements.progressItemCells, (cell, index) => {\n if (!hasClass(cell, 'isHidden')) {\n visibleCells.push({ cell, index });\n }\n });\n\n forEach(visibleCells, (c, index) => {\n const cell = this.layoutElements.progressItems[c.index];\n cell.querySelector('.jfProgress-itemLabel').innerText = `${index + 1}. ${this.cards[c.index].label}`;\n\n try {\n const queryValues = parseQueryString(global.location.search.substr(1));\n forEach(global.JotForm.calculations, calculation => {\n const { replaceText } = calculation;\n const sanitizer = value => {\n if (window.DomPurify) {\n return window.DomPurify.sanitize(value);\n }\n return value.stripScripts().stripEvents();\n };\n const replaceValue = queryValues[replaceText] ? sanitizer(queryValues[replaceText]) : calculation;\n // eslint-disable-next-line max-len\n const progressText = replaceAll(this.cards[c.index].label, `{${replaceText}}`, `${typeof replaceValue === 'string' ? replaceValue : ''}`);\n cell.querySelector('.jfProgress-itemLabel').innerHTML = `${index + 1}. ${sanitizer(progressText)}`;\n });\n } catch (e) {\n // noop.\n }\n });\n }\n\n shouldProgressDisplayed() {\n if (this.layoutParams.deviceType === 'mobile' || this.layoutParams.isFeedbackEmbedButton) { return true; }\n const visibleMinCard = 4;\n const visibleItemCount = this.layoutParams.items.filter((p, index) => !this.layoutParams.hiddenIndexes[index]).length;\n\n return visibleItemCount >= visibleMinCard;\n }\n\n showProgressBarIfNeeded() {\n if (this.shouldProgressDisplayed()) {\n this.showProgressBar();\n } else {\n this.hideProgressBar();\n }\n }\n}\n","/*\n* @Author: Irem Ercan\n* @Date: 2018-01-04 20:32:31\n* @Last Modified by: Irem Ercan\n* @Last Modified time: 2018-03-13 16:40:20\n*/\nimport { closest } from '@jotforminc/utils';\nimport { forEach, addClass, removeClass, hasClass } from './utils';\n\nexport default class Overlay {\n\n constructor(params) {\n // Parameters\n this.questions = params.questions;\n this.hasSaveAndContinueLater = params.hasSaveAndContinueLater;\n\n // Elements\n this.overlayWrapper = document.querySelector('.js-overlayWrapper');\n this.saclModal = document.getElementById('sacl-modal');\n this.overlayImage = this.overlayWrapper.querySelector('.js-overlayImage');\n this.overlayClose = this.overlayWrapper.querySelector('.jfOverlay-close');\n\n // Bindings\n this.init = this.init.bind(this);\n this.bindOverlayEvents = this.bindOverlayEvents.bind(this);\n this.openSaveAndContinueModal = this.openSaveAndContinueModal.bind(this);\n this.closeSaveAndContinueModal = this.closeSaveAndContinueModal.bind(this);\n this.clearImageSrc = this.clearImageSrc.bind(this);\n this.openOverlay = this.openOverlay.bind(this);\n\n // Event Listeners\n this.overlayWrapper.addEventListener('click', (e) => {\n const closestDiv = closest(e.target, 'div');\n if (this.state === 'image' && hasClass(e.target, 'js-overlayImage')) {\n this.closeOverlay();\n } else if (this.state === 'sacl' && hasClass(closestDiv, 'js-overlay-modalWrapper')) {\n this.closeOverlay();\n }\n });\n this.overlayClose.addEventListener('click', () => {\n this.closeOverlay();\n });\n\n // Little state\n this.state = false;\n\n // Init\n this.init();\n }\n\n init() {\n if (this.questions) {\n this.overlayedQuestions = this.questions.filter(question => question.type === 'control_image');\n forEach(this.overlayedQuestions, (question) => {\n this.bindOverlayEvents(question);\n });\n }\n }\n\n openSaveAndContinueModal() {\n this.clearImageSrc();\n this.openOverlay();\n addClass(this.saclModal, 'isVisible');\n this.state = 'sacl';\n }\n\n closeSaveAndContinueModal() {\n removeClass(this.saclModal, 'isVisible');\n }\n\n bindOverlayEvents(question) {\n const ID = `id_${question.id}`;\n const imageWrapper = document.getElementById(ID);\n const imageElement = imageWrapper.querySelector('img');\n const imageSrc = imageElement.getAttribute('src');\n\n const _question = Object.assign({}, question, { src: imageSrc });\n\n const openNewTabButton = imageWrapper.querySelector('.js-openNewTab');\n if (openNewTabButton) {\n openNewTabButton.addEventListener('click', () => {\n this.openOverlay();\n this.openImageOverlay(_question);\n this.state = 'image';\n });\n }\n }\n\n clearImageSrc() {\n this.overlayImage.src = '#';\n }\n\n openOverlay() {\n addClass(this.overlayWrapper, 'isVisible');\n }\n\n openImageOverlay(question) {\n this.closeSaveAndContinueModal();\n this.overlayImage.src = question.src;\n }\n\n closeOverlay() {\n this.clearImageSrc();\n this.closeSaveAndContinueModal();\n this.state = false;\n removeClass(this.overlayWrapper, 'isVisible');\n }\n}\n","const uploadSVG = ' '; // eslint-disable-line\n\nconst uploadCheckSVG = ''; // eslint-disable-line\nconst uploadRemoveSVG = ''; // eslint-disable-line\n\nexport const getUploaderTemplate = buttonText => {\n return '
' + // eslint-disable-line\n '
'\n + '
' + uploadSVG + ''\n + 'Drop files here to upload '\n + 'Your files will be uploaded immediately
'\n + '
' + buttonText + '
'\n + '
'\n + '
{subLabel}
'\n + 'Cancel'\n + 'of'\n + '
    '\n + '
    ';\n};\n\nexport const getUploadedFileTemplate = () => {\n return '
  • ' + // eslint-disable-line\n ''\n + ''\n + ''\n + uploadRemoveSVG\n + ''\n + ''\n + ''\n + ''\n + 'Success'\n + 'Failed'\n + ''\n + ''\n + ''\n + uploadCheckSVG\n + ''\n + ''\n + uploadRemoveSVG\n + ''\n + ''\n + '
  • ';\n};\n\nexport const onUploadComplete = item => {\n try {\n const { parentElement } = item;\n parentElement.scrollTop = 9999;\n } catch (e) {\n // nothing.\n }\n};\n\nexport const onUploadAdd = () => {\n setTimeout(() => {\n const allUploadLists = global.document.getElementsByClassName('qq-upload-list');\n for (let i = 0, n = allUploadLists.length; i < n; i++) {\n try {\n const uploadList = allUploadLists[i];\n uploadList.scrollTop = 9999;\n } catch (e) {\n // nothing.\n }\n }\n });\n};\n\nexport const getUploaderSelectors = () => {\n return {\n button: 'qq-upload-button',\n drop: 'qq-upload-drop-area',\n dropActive: 'qq-upload-drop-area-active',\n list: 'qq-upload-list',\n file: 'qq-upload-file',\n spinner: 'qq-upload-spinner',\n size: 'qq-upload-size',\n cancel: 'qq-upload-cancel',\n deleteItem: 'qq-upload-delete',\n uploading: 'qq-file-uploading',\n success: 'qq-upload-success',\n fail: 'qq-upload-fail'\n };\n};\n","import { closest } from '@jotforminc/utils';\nimport { hasClass, triggerEvent } from './utils';\n\nconst selectors = {\n summaryWrapper: '.product-summary',\n listWrapper: '.product-summary__left',\n itemWrapper: '.product-mini',\n backButton: '.product-summary__back'\n};\n\nexport default class SummaryPage {\n constructor(question, shoppingBag) {\n this.question = question;\n this.shoppingBag = shoppingBag;\n\n this.wrapper = question.querySelector(selectors.summaryWrapper);\n this.listWrapper = this.wrapper.querySelector(selectors.listWrapper);\n this.backButton = this.wrapper.querySelector(selectors.backButton);\n\n this.backButtonClick = this.backButtonClick.bind(this);\n this.editButtonClick = this.editButtonClick.bind(this);\n this.removeButtonClick = this.removeButtonClick.bind(this);\n\n this.backButton.addEventListener('click', this.backButtonClick);\n }\n\n makeList(products, formProducts) {\n this.emptyList();\n\n products.forEach((p) => {\n var inpt = document.querySelector(`#${p}`);\n if (inpt && inpt.checked) {\n const productID = this.getProductID(p);\n // check if it has subproducts\n if (this.hasSubProduct(productID, formProducts)) {\n const subProducts = this.getSubProducts(productID, formProducts, p);\n\n subProducts.forEach((sub) => {\n this.makeListItem(Object.assign({}, sub, { productID: p }), true);\n });\n } else {\n const product = global.JotForm.prices[p];\n const hasSpecialQuantityPricing = product.specialPriceField && product.specialPriceField.indexOf('quantity') > -1;\n\n const quantity = this.getQuantity(p);\n const name = this.getProductName(productID, formProducts);\n const price = this.getProductPrice(p);\n\n this.makeListItem({ name, price, quantity, productID: p, hasSpecialQuantityPricing });\n }\n\n if (typeof global.PaymentStock !== 'undefined') {\n global.PaymentStock.handleStockManagement();\n }\n }\n });\n if (global.FormTranslation && global.FormTranslation.setOriginalDynamicFormElements) {\n global.FormTranslation.setOriginalDynamicFormElements();\n }\n this.shoppingBag.setHeight(this.wrapper);\n }\n\n makeListItem(item, isSubProduct) {\n const { name, price, quantity, hasSpecialQuantityPricing } = item;\n const pid = this.getProductID(item.productID);\n\n const productMini = document.createElement('div');\n productMini.setAttribute('class', 'product-mini');\n\n const total = hasSpecialQuantityPricing ? price : quantity * price;\n\n const productMiniHeader = this.makeProductMiniHeader(name, total, pid);\n productMini.appendChild(productMiniHeader);\n\n const productMiniBody = document.createElement('div');\n productMiniBody.setAttribute('class', 'product-mini__body');\n\n const productMiniOptions = document.createElement('div');\n productMiniOptions.setAttribute('class', 'product-mini__options');\n\n const quantityOption = this.makeProductMiniOption('Quantity', quantity, `product-mini__options__quantity_${pid}`);\n productMiniOptions.appendChild(quantityOption);\n\n const productOptions = this.shoppingBag.formProducts.filter(p => p.pid === pid)[0];\n\n if ('options' in productOptions && productOptions.options.length > 0) {\n productOptions.options.filter(p => p.expanded).forEach((expanded) => {\n const expandedIndex = item.quantityFieldID.split('_')[4];\n const miniOption = this.makeProductMiniOption(expanded.name, expanded.properties.split('\\n')[expandedIndex], `product-mini__options__expanded_${pid}-${expandedIndex}`);\n productMiniOptions.appendChild(miniOption);\n });\n productOptions.options.forEach((opt, i) => {\n if (opt.type !== 'quantity' && !opt.expanded) {\n let fieldParameters = [];\n if (isSubProduct) {\n fieldParameters = item.quantityFieldID.split('_');\n fieldParameters[2] = 'custom';\n fieldParameters[5] = i;\n } else {\n fieldParameters = item.productID.split('_');\n fieldParameters.splice(2, 0, 'custom');\n fieldParameters.push(i);\n }\n const valueField = fieldParameters.join('_');\n const value = this.shoppingBag.qLine.querySelector(`#${valueField}`).value;\n const miniOption = this.makeProductMiniOption(opt.name, value, `product-mini__options__others_${pid}-${i}`);\n productMiniOptions.appendChild(miniOption);\n }\n });\n }\n\n productMiniBody.appendChild(productMiniOptions);\n\n const productMiniActions = this.makeProductMiniActions(item, isSubProduct);\n\n productMiniBody.appendChild(productMiniActions);\n\n productMini.appendChild(productMiniBody);\n\n this.listWrapper.appendChild(productMini);\n }\n\n getProductID(product) {\n var pid = product.split('_')[2];\n return pid;\n }\n\n getQuantity(product) {\n const hasQuantityField = global.JotForm.prices[product] && global.JotForm.prices[product].quantityField;\n const quantity = hasQuantityField ? this.shoppingBag.qLine.querySelector(`#${global.JotForm.prices[product].quantityField}`).value : 1;\n\n return quantity;\n }\n\n getProductName(pid, formProducts) {\n const product = this.getProductFromID(pid, formProducts);\n return product.name;\n }\n\n hasSubProduct(pid, formProducts) {\n const product = this.getProductFromID(pid, formProducts);\n return !!parseInt(product.hasExpandedOption, 10);\n }\n\n getSubProducts(productID, formProducts, p) {\n const expandedOption = this.getExpandedOption(productID, formProducts);\n\n return expandedOption.map((opt, optIndex) => {\n const subProduct = global.JotForm.prices[`${p}_${optIndex}`];\n const quantityField = this.shoppingBag.qLine.querySelector(`#${subProduct.quantityField}`);\n const quantity = parseInt(quantityField.value, 10);\n if (quantity < 1) return undefined;\n const productName = this.getProductName(productID, formProducts);\n // const optionNames = this.getSubProductOptionNames();\n if (subProduct.specialPriceField) {\n const hasSpecialQuantityPricing = subProduct.specialPriceField.indexOf('quantity') > -1;\n const subProductSelectedIndex = hasSpecialQuantityPricing ? quantity : subProduct.specialPriceField.split('_').pop();\n const specialPrice = parseFloat(subProduct.specialPriceList[parseInt(subProductSelectedIndex, 10)], 10);\n\n return {\n quantity: quantity,\n quantityFieldID: quantityField.id,\n price: specialPrice,\n name: productName,\n hasSpecialQuantityPricing: hasSpecialQuantityPricing\n };\n }\n return {\n quantity: quantity,\n quantityFieldID: quantityField.id,\n price: subProduct.price,\n name: productName\n };\n }).filter(e => e);\n }\n\n getExpandedOption(pid, formProducts) {\n return this.getProductFromID(pid, formProducts).options.find(\n p => p.expanded\n ).properties.split('\\n');\n }\n\n getProductFromID(pid, formProducts) {\n return formProducts.find(prod => prod.pid === pid);\n }\n\n makeNameContainer(productName, quantity) {\n var container = document.createElement('div');\n container.setAttribute('class', 'itemName');\n container.innerHTML = `${quantity} x ${productName}`;\n return container;\n }\n\n getProductPrice(productID) {\n if (!global.JotForm.prices[productID]) return 0;\n\n const product = global.JotForm.prices[productID];\n if (!product.specialPriceField) return product.price;\n\n const specialPriceField = this.shoppingBag.qLine.querySelector(`#${product.specialPriceField}`);\n const specialPriceIndex = specialPriceField.selectedIndex;\n return parseFloat(product.specialPriceList[specialPriceIndex], 10);\n }\n\n makePriceContainer(price, quantity) {\n const container = document.createElement('div');\n container.setAttribute('class', 'itemPrice');\n container.innerHTML = `${this.curr()} ${price * quantity}`;\n\n return container;\n }\n\n makeEditButton(product) {\n const editButton = document.createElement('button');\n editButton.setAttribute('type', 'button');\n editButton.setAttribute('class', 'itemCta');\n editButton.innerHTML = 'EDIT';\n editButton.setAttribute('data-id', product);\n\n editButton.addEventListener('click', this.editButtonClick);\n\n return editButton;\n }\n\n makeProductMiniHeader(name, price, id) {\n const { decimal, dSeparator, tSeparator } = global.JotForm.currencyFormat;\n const productMiniHeader = document.createElement('div');\n productMiniHeader.setAttribute('class', 'product-mini__header');\n\n const productMiniTitle = document.createElement('div');\n productMiniTitle.setAttribute('class', 'product-mini__title payment-text dynamic-form-element');\n productMiniTitle.setAttribute('id', `product-mini__title-${id}`);\n productMiniTitle.textContent = name;\n\n const productMiniPrice = document.createElement('div');\n productMiniPrice.setAttribute('class', 'product-mini__price');\n\n // Number.formatMoney is implemented on jotform.js\n productMiniPrice.textContent = `${this.curr()}${price.formatMoney(decimal, dSeparator, tSeparator)}`;\n\n productMiniHeader.appendChild(productMiniTitle);\n productMiniHeader.appendChild(productMiniPrice);\n\n return productMiniHeader;\n }\n\n makeProductMiniActions(product, isSubProduct) {\n const productMiniActions = document.createElement('div');\n productMiniActions.setAttribute('class', 'product-mini__actions');\n\n const productMiniRemoveButton = document.createElement('div');\n productMiniRemoveButton.setAttribute('class', 'product-mini__button product-mini__button--remove');\n productMiniRemoveButton.setAttribute('data-id', product.productID);\n productMiniRemoveButton.setAttribute('tabindex', 0);\n if (isSubProduct) productMiniRemoveButton.setAttribute('data-quantity-id', product.quantityFieldID);\n productMiniRemoveButton.addEventListener('click', this.removeButtonClick);\n productMiniRemoveButton.addEventListener('keypress', this.buttonKeyPress);\n\n const productMiniEditButton = document.createElement('div');\n productMiniEditButton.setAttribute('class', 'product-mini__button product-mini__button--edit');\n productMiniEditButton.setAttribute('data-id', product.productID);\n productMiniEditButton.setAttribute('tabindex', 0);\n productMiniEditButton.addEventListener('click', this.editButtonClick);\n productMiniEditButton.addEventListener('keypress', this.buttonKeyPress);\n\n const getProduct = document.querySelector(`[data-input=\"${product.productID}\"]`)\n if (!(getProduct && getProduct.classList.contains('product--required') && getProduct.classList.contains('sold_out_product'))) {\n productMiniActions.appendChild(productMiniRemoveButton);\n }\n \n productMiniActions.appendChild(productMiniEditButton);\n\n return productMiniActions;\n }\n\n makeProductMiniOption(name, value, id) {\n const productMiniOption = document.createElement('div');\n productMiniOption.setAttribute('class', 'product-mini__option');\n\n const productMiniOptionName = document.createElement('span');\n productMiniOptionName.setAttribute('class', 'product-mini__option-value payment-text dynamic-form-element');\n productMiniOptionName.setAttribute('id', id);\n productMiniOptionName.textContent = `${name}`;\n\n const productMiniOptionColon = document.createElement('span');\n productMiniOptionColon.setAttribute('class', 'product-mini__option-name');\n productMiniOptionColon.textContent = ':';\n\n const productMiniOptionValue = document.createElement('span');\n productMiniOptionValue.setAttribute('class', 'product-mini__option-value');\n productMiniOptionValue.textContent = value;\n\n productMiniOption.appendChild(productMiniOptionName);\n productMiniOption.appendChild(productMiniOptionColon);\n productMiniOption.appendChild(productMiniOptionValue);\n\n return productMiniOption;\n }\n\n editButtonClick(e) {\n this.shoppingBag.backToProductList('summary', true);\n\n const inputId = e.target.getAttribute('data-id');\n this.shoppingBag.openProductDetails(inputId);\n }\n\n closeSummaryPage() {\n this.shoppingBag.slideUp(this.wrapper, true);\n this.wrapper.style.display = 'none';\n }\n\n openSummaryPage() {\n this.shoppingBag.slideDown(this.wrapper);\n this.wrapper.style.display = 'block';\n }\n\n makeRemoveButton(product, isSubProduct) {\n const removeButton = document.createElement('button');\n removeButton.setAttribute('type', 'button');\n removeButton.setAttribute('class', 'itemCta');\n removeButton.innerHTML = 'REMOVE';\n removeButton.setAttribute('data-id', product.productID);\n if (isSubProduct) removeButton.setAttribute('data-quantity-id', product.quantityFieldID);\n removeButton.addEventListener('click', this.removeButtonClick);\n\n return removeButton;\n }\n\n removeButtonClick(e) {\n const removeButton = e.target;\n\n const productID = removeButton.getAttribute('data-id');\n const product = this.shoppingBag.qLine.querySelector(`li[data-input=\"${productID}\"]`);\n const hasSubProduct = hasClass(product, 'js-hasSubProduct');\n const isProductRequired = hasClass(product, 'product--required');\n const input = this.question.querySelector(`#${productID}`);\n\n if ((!hasSubProduct && input.disabled) || isProductRequired) return;\n\n this.removeItemFromList(removeButton);\n\n // this.shoppingBag.setHeight(this.wrapper);\n this.wrapper.style.height = 'auto';\n\n if (hasSubProduct) {\n // change subProduct Quantity to zero\n const quantityField = this.shoppingBag.qLine.querySelector(`#${removeButton.getAttribute('data-quantity-id')}`);\n quantityField.value = 0;\n triggerEvent(quantityField, 'change');\n }\n\n if (hasSubProduct && this.shoppingBag.hasSelectedSubProductItem(product)) {\n this.shoppingBag.updateCartItems();\n return;\n }\n this.shoppingBag.removeFromBag(product);\n this.shoppingBag.backToProductList('summary');\n }\n\n buttonKeyPress(e) {\n if (e.keyCode === 13 || e.keyCode === 32) {\n e.preventDefault();\n e.stopPropagation();\n e.target.click();\n }\n }\n\n backButtonClick() {\n this.shoppingBag.backToProductList('summary');\n }\n\n emptyList() {\n this.listWrapper.innerHTML = '';\n }\n\n isEditButtonVisible(product) {\n return !hasClass(this.shoppingBag.qLine.querySelector(`[data-input=\"${product}\"]`), 'js-zeroOption');\n }\n\n removeItemFromList(removeButton) {\n const summaryList = closest(removeButton, selectors.listWrapper, '.jfCard');\n const summarListItem = closest(removeButton, selectors.itemWrapper, selectors.itemWrapper);\n if (summaryList && summarListItem) summaryList.removeChild(summarListItem);\n }\n\n curr() {\n var currDisplay = '';\n switch (this.shoppingBag.currency) {\n case 'TRY':\n currDisplay = 'TL';\n break;\n case 'USD':\n currDisplay = '$';\n break;\n default:\n currDisplay = this.shoppingBag.currency;\n break;\n }\n\n return currDisplay;\n }\n}\n","import {\n addClass, removeClass, hasClass, reduce, forEach, triggerEvent, translateDefaultCardFormTexts, getBrowserProperties\n} from './utils';\nimport SummaryPage from './SummaryPage';\n\nconst selectors = {\n productDetail: '.product__detail'\n};\n\nexport default class ShoppingBag {\n constructor(id, formProducts, currency, productPages, enableImagePreview) {\n this.id = id;\n this.formProducts = formProducts;\n this.activeProduct = null;\n this.currency = currency;\n this.enableImagePreview = enableImagePreview;\n this.isCameFromEdit = false;\n\n this.productPages = productPages;\n\n this.qLine = document.querySelector(`#id_${this.id}`);\n this.paymentCard = this.qLine.querySelector('.jfCard');\n this.footer = this.qLine.querySelector('.paymentCard-footer-wrapper');\n this.header = this.qLine.querySelector('.js-header-wrapper');\n\n this.productModuleWrapper = this.qLine.querySelector('.jfProductModule-wrapper');\n this.productListWrapper = this.qLine.querySelector('.products');\n this.cardQuestionWrapper = this.qLine.querySelector('.jfCard-question');\n\n this.products = this.qLine.querySelectorAll('.js-productItem');\n\n this.shoppingBagButton = this.qLine.querySelector('.shopping-cart');\n this.detailFooterButton = this.qLine.querySelector('.js-detail-footer-button');\n\n this.hasRequiredProduct = !!this.qLine.querySelector('.product--required');\n\n this.handleProductClick = this.handleProductClick.bind(this);\n this.detailsBackButtonHandler = this.detailsBackButtonHandler.bind(this);\n this.openSummaryPage = this.openSummaryPage.bind(this);\n this.addToBag = this.addToBag.bind(this);\n this.removeFromBag = this.removeFromBag.bind(this);\n this.handleDetailsRemoveButton = this.handleDetailsRemoveButton.bind(this);\n this.orientationChange = this.orientationChange.bind(this);\n this.onPageChange = this.onPageChange.bind(this);\n this.recalculateProductHeights = this.recalculateProductHeights.bind(this);\n\n if (this.shoppingBagButton) this.summaryPage = new SummaryPage(this.qLine, this);\n\n if (this.productPages) this.productPages.setOnPageChange(this.onPageChange);\n\n // styles are applied late in below browsers, thus extra calculation needed onload\n if (['Firefox', 'Safari'].indexOf(getBrowserProperties().browserName) > -1) {\n window.addEventListener('load', () => {\n this.recalculateProductHeights();\n });\n }\n }\n\n initShoppingBag() {\n forEach(this.products, p => {\n const pid = p.getAttribute('data-pid');\n // if there is a required product in a product list where single selection is enabled, prevent clicking to unrequired products.\n const isProductRequired = hasClass(p, 'product--required');\n const isSingleSelection = !!p.querySelector('input[type=\"radio\"]');\n const unclickableProduct = this.hasRequiredProduct && isSingleSelection && !isProductRequired;\n if (!unclickableProduct) {\n p.addEventListener('click', () => this.handleProductClick(p));\n }\n p.addEventListener('keypress', e => { if (e.keyCode === 32) e.target.click(); });\n const backButton = p.querySelector('.js-product-back');\n if (backButton) {\n backButton.addEventListener('click', this.detailsBackButtonHandler);\n backButton.addEventListener('keypress', e => { if (e.keyCode === 32) e.target.click(); });\n }\n\n const addButton = p.querySelector('.js-add-to-bag');\n if (addButton && !unclickableProduct) addButton.addEventListener('click', this.addToBag);\n\n const productImage = p.querySelector('.form-product-image-with-options');\n\n if (productImage && (this.enableImagePreview && (this.enableImagePreview === true || this.enableImagePreview === 'true'))) {\n productImage.addEventListener('click', e => {\n e.stopPropagation();\n global.onProductImageClicked(pid);\n });\n }\n\n const editButton = p.querySelector('.js-update-bag');\n if (editButton) editButton.addEventListener('click', this.addToBag);\n\n const removeButton = p.querySelector('.js-remove-from-bag');\n if (removeButton) removeButton.addEventListener('click', event => this.handleDetailsRemoveButton(event, p));\n\n this.setProductHeight(p);\n });\n\n if (this.shoppingBagButton) {\n this.shoppingBagButton.addEventListener('keypress', e => { if (e.keyCode === 32) e.target.click(); });\n this.shoppingBagButton.addEventListener('click', this.openSummaryPage);\n this.changeShoppingBagButtonPosition();\n }\n\n if (this.productListWrapper) this.setHeight(this.productListWrapper); // For the first animation.\n if (this.footer) this.setHeight(this.footer); // For the first animation.\n this.updateCartItems();\n }\n\n recalculateProductHeights() {\n forEach(this.products, p => { this.setProductHeight(p); });\n }\n\n openSummaryPage() {\n if (!this.shoppingBagButton.hasClassName('empty')) {\n this.hideQuestionHeader();\n this.hideProductList();\n this.hideFooter();\n this.hideShoppingBagButton();\n\n this.summaryPage.openSummaryPage();\n\n const products = this.getProductInputIDs();\n this.summaryPage.makeList(products, this.formProducts);\n translateDefaultCardFormTexts();\n }\n }\n\n closeSummaryPage() {\n this.summaryPage.closeSummaryPage();\n this.showShoppingBagButton();\n this.showFooter();\n this.showProductList();\n this.showQuestionHeader();\n }\n\n showShoppingBagButton() {\n this.shoppingBagButton.show();\n }\n\n hideShoppingBagButton() {\n this.shoppingBagButton.hide();\n }\n\n openProductDetails(inputId) {\n const productsListItems = this.qLine.querySelectorAll('.js-productItem');\n\n const productIndex = Array.prototype.findIndex.call(productsListItems, item => item.getAttribute('data-input') === inputId);\n const pageIndex = Math.ceil((productIndex + 1) / this.getProductsPerPage());\n\n if (this.productPages) this.productPages.handlePageChange(pageIndex);\n const product = this.qLine.querySelector(`.js-productItem[data-input=\"${inputId}\"]`);\n if (this.hasProductOption(product)) product.click();\n }\n\n getProductsPerPage() {\n return this.productPages.getProductsPerPage();\n }\n\n inputSelectors() {\n return this.getProductInputIDs().reduce((acc, curr) => {\n if (acc !== '') {\n return `${acc}, [id=\"${curr}\"]`;\n }\n return `${acc}[id=\"${curr}\"]`;\n }, '');\n }\n\n hideQuestionHeader() {\n addClass(this.paymentCard, 'jfCard--summary');\n }\n\n showQuestionHeader() {\n removeClass(this.paymentCard, 'jfCard--summary');\n }\n\n hideProductList() {\n this.slideUp(this.productListWrapper);\n }\n\n showProductList() {\n this.slideDown(this.productListWrapper);\n }\n\n hideFooter() {\n this.slideUp(this.footer);\n }\n\n showFooter() {\n this.slideDown(this.footer);\n }\n\n showDetailPage() {\n this.setNextButtonState(true);\n this.hideFooter();\n this.hideShoppingBagButton();\n addClass(this.productListWrapper, 'products--selected');\n }\n\n setDetailPageButtons(product) {\n const addButton = product.querySelector('.js-add-to-bag');\n const editButton = product.querySelector('.js-update-bag');\n const removeButton = product.querySelector('.js-remove-from-bag');\n\n if (hasClass(product, 'product--selected')) {\n addButton.hide();\n editButton.show();\n removeButton.show();\n } else {\n addButton.show();\n editButton.hide();\n removeButton.hide();\n }\n }\n\n addToBag(event) {\n event.stopPropagation();\n const input = this.activeProduct.querySelector(this.inputSelectors());\n input.checked = true;\n triggerEvent(input, 'change');\n\n this.calculateTotal();\n\n this.highlightProductItem(this.activeProduct);\n\n this.updateCartItems();\n this.backToProductList('details');\n this.setNextButtonState(false);\n }\n\n handleDetailsRemoveButton(event, product) {\n event.stopPropagation();\n this.removeFromBag(product);\n this.backToProductList('details');\n }\n\n removeFromBag(product) {\n const input = product.querySelector(this.inputSelectors());\n if (input.disabled || hasClass(product, 'product--required')) return;\n\n if (this.hasProductOption(product) && hasClass(product, 'just_sold_out_product')) this.resetDetailState(product);\n\n input.checked = false;\n triggerEvent(input, 'change');\n\n this.calculateTotal();\n this.removeHighlightProductItem(product, true);\n this.updateCartItems();\n }\n\n updateCartItems() {\n if (this.shoppingBagButton) {\n const totalItems = this.getTotalSelectedItems();\n this.updateShoppingBagButton(totalItems);\n }\n }\n\n updateShoppingBagButton(totalItems) {\n if (totalItems > 0) {\n removeClass(this.shoppingBagButton, 'empty');\n } else {\n addClass(this.shoppingBagButton, 'empty');\n }\n this.shoppingBagButton.querySelector('.shopping-cart__count').textContent = totalItems;\n }\n\n getTotalSelectedItems() {\n const inputSelectors = this.inputSelectors();\n\n return reduce(this.products, (totalSelectedItems, product) => {\n if (!product.querySelector(inputSelectors).checked) return totalSelectedItems;\n\n if (!this.hasSubProduct(product)) return totalSelectedItems + 1;\n\n return totalSelectedItems + reduce(product.querySelectorAll('select[id*=\"quantity\"], input[id*=\"quantity\"]'), (selectedSubProduct, subProduct) => {\n return parseInt(subProduct.value, 10) > 0 ? selectedSubProduct + 1 : selectedSubProduct;\n }, 0);\n }, 0);\n }\n\n handleProductClick(p) {\n const product = p;\n\n if (\n !this.hasProductOption(product)\n || hasClass(product, 'just_sold_out_product')\n || hasClass(product, 'sold_out_product')\n ) {\n this.zeroOptionProductClick(product);\n } else {\n if (product === this.activeProduct) return;\n this.showDetailPage(product);\n\n this.setActiveProduct(product);\n\n this.setDetailPageButtons(product);\n }\n\n const inputElement = product.querySelector('input');\n if (inputElement) {\n /* eslint-disable */ \n const changeEventForCondition = new Event('change', { bubbles: true });\n /* eslint-enable */\n inputElement.dispatchEvent(changeEventForCondition);\n }\n }\n\n backToProductList(current, isEditButtonClicked) {\n if (this.isCameFromEdit === true && current === 'details') {\n removeClass(this.productListWrapper, 'products--selected');\n this.unsetActiveProduct();\n this.openSummaryPage();\n this.isCameFromEdit = false;\n } else if (current === 'summary') {\n this.closeSummaryPage();\n\n if (isEditButtonClicked) {\n this.isCameFromEdit = true;\n }\n } else if (current === 'details') {\n removeClass(this.productListWrapper, 'products--selected');\n this.unsetActiveProduct();\n this.showShoppingBagButton();\n }\n\n this.showFooter();\n }\n\n detailsBackButtonHandler(e) {\n e.stopPropagation();\n const productWrapper = e.target.closest('.form-product-item');\n if (productWrapper.querySelector('.paymentCardDetail-footer-cta--add').style.display !== 'none') {\n if (productWrapper.querySelector('.checkboxProduct-input')) {\n productWrapper.querySelector('.checkboxProduct-input').checked = false;\n } else if (productWrapper.querySelector('.radioProduct-input')) {\n productWrapper.querySelector('.radioProduct-input').checked = false;\n }\n this.resetDetailState(productWrapper);\n this.calculateTotal();\n }\n this.backToProductList('details');\n this.setNextButtonState(false);\n }\n\n removeHighlightProductItem(product, force = false) {\n const hasOption = this.hasProductOption(product);\n const hasSubProduct = this.hasSubProduct(product);\n\n if (!hasOption) {\n const button = product.querySelector('.js-add-without-option');\n removeClass(button.parentElement, 'product__action--remove');\n } else if (hasOption && !hasSubProduct) {\n removeClass(product, 'with-edit-option');\n } else if (hasOption && hasSubProduct) {\n const hasSubProductItem = this.hasSelectedSubProductItem(product);\n if (force) removeClass(product, 'product--selected');\n if (hasSubProductItem) return;\n\n removeClass(product, 'with-edit-option');\n }\n\n removeClass(product, 'product--selected');\n }\n\n hasSelectedSubProductItem(product) {\n const quantities = product.querySelectorAll('[id*=\"quantity\"]');\n return reduce(quantities, (acu, curr) => {\n return acu || !(curr.value === 0 || curr.value === '' || curr.value === '0');\n }, false);\n }\n\n hasSubProduct(product) {\n return hasClass(product, 'js-hasSubProduct');\n }\n\n hasProductOption(product) {\n return !hasClass(product, 'js-zeroOption');\n }\n\n highlightProductItem(product) {\n const hasOption = this.hasProductOption(product);\n\n addClass(product, 'product--selected');\n\n if (!hasOption) {\n const button = product.querySelector('.js-add-without-option');\n addClass(button.parentElement, 'product__action--remove');\n }\n }\n\n getProductInputIDs() {\n return Object.keys(global.JotForm.prices).map(p => {\n var splittedKey = p.split('_');\n if (splittedKey.length === 3) {\n return p;\n } if (splittedKey.length === 4 && splittedKey[2] !== 'plan') {\n if (splittedKey[2] !== 'price') { // modified for fetched subs in cardform\n splittedKey.pop(); // pops hash after e.g input_3_xxxxxxxxx\n }\n return splittedKey.join('_');\n }\n return p;\n }).reduce((acc, curr) => {\n if (acc.indexOf(curr) === -1) acc.push(curr);\n return acc;\n }, []);\n }\n\n zeroOptionProductClick(product) {\n if (hasClass(product, 'sold_out_product')) { return; }\n const input = product.querySelector(this.inputSelectors());\n\n if (input.checked) {\n this.removeFromBag(product);\n } else {\n input.checked = true;\n if (input.type === 'radio') {\n const allProducts = document.querySelectorAll('.js-productItem');\n allProducts.forEach(pro => {\n this.removeHighlightProductItem(pro);\n });\n }\n this.highlightProductItem(product);\n this.shakeFooter();\n this.calculateTotal();\n this.updateCartItems();\n }\n }\n\n setActiveProduct(product) {\n this.activeProduct = product;\n addClass(product, 'product--active');\n if (product.hasClassName('product--with-option')) {\n const detail = product.querySelector('.product__detail');\n detail.style = 'display: block;';\n }\n forEach(this.products, p => {\n if (p !== product) {\n this.slideUp(p);\n }\n });\n this.slideDown(product.querySelector(selectors.productDetail));\n this.setHeight(this.productListWrapper);\n window.addEventListener('orientationchange', this.orientationChange);\n }\n\n unsetActiveProduct() {\n removeClass(this.activeProduct, 'product--active');\n if (this.activeProduct.hasClassName('product--with-option')) {\n const detail = this.activeProduct.querySelector('.product__detail');\n detail.style = 'display: none;';\n }\n forEach(this.products, p => {\n if (p !== this.activeProduct) {\n this.slideDown(p, true);\n }\n });\n this.slideUp(this.activeProduct.querySelector(selectors.productDetail));\n this.setHeight(this.productListWrapper);\n this.activeProduct = null;\n this.activeProductDetailState = null;\n window.removeEventListener('orientationchange', this.orientationChange);\n }\n\n getProductOptions(product) {\n return product.querySelector(selectors.productDetail) ? product.querySelector(selectors.productDetail).querySelectorAll('select, input') : [];\n }\n\n resetDetailState(product) {\n const options = this.getProductOptions(product);\n\n options.forEach(opt => {\n const option = opt;\n if (option.type !== 'hidden' && (option.getAttribute('data-component') === 'quantityOptions' || option.getAttribute('data-type') === 'customQuantity')) {\n if (option.tagName === 'SELECT') {\n option.selectedIndex = 0;\n } else {\n option.value = '0';\n }\n }\n triggerEvent(option, 'change');\n });\n }\n\n changeShoppingBagButtonPosition() {\n this.cardQuestionWrapper.insertBefore(this.shoppingBagButton, this.productModuleWrapper);\n }\n\n shakeFooter() {\n if (!this.shoppingBagButton) return;\n // animation class for cart\n addClass(this.shoppingBagButton, 'shopping-cart--added');\n\n setTimeout(() => {\n removeClass(this.shoppingBagButton, 'shopping-cart--added');\n }, 350);\n }\n\n calculateTotal() {\n global.JotForm.countTotal(global.JotForm.prices);\n }\n\n slideDown(ele) {\n const element = ele;\n\n if (hasClass(element, 'product__detail')) {\n element.parentElement.style.height = 'auto';\n }\n\n this.setHeight(element);\n }\n\n slideUp(ele) {\n const element = ele;\n\n element.style.height = '0px';\n }\n\n setProductHeight(product) {\n const image = product.querySelector('.product__image img');\n\n if (image && !image.complete) image.onload = () => this.setHeight(product);\n\n this.setHeight(product);\n }\n\n setHeight(ele) {\n const element = ele;\n const clonedElement = element.cloneNode(true);\n clonedElement.style.position = 'absolute';\n clonedElement.style.height = 'auto';\n clonedElement.style.width = '100%';\n\n if (parseInt(window.getComputedStyle(element).height, 10) === parseInt(window.getComputedStyle(clonedElement).height, 10)) return;\n\n // DON'T TOUCH THIS\n const radios = clonedElement.querySelectorAll('input[type=\"radio\"]:checked');\n forEach(radios, r => {\n const radio = r;\n radio.checked = false;\n });\n\n element.parentElement.appendChild(clonedElement);\n const elementHeight = window.getComputedStyle(clonedElement).height;\n element.parentElement.removeChild(clonedElement);\n\n element.style.height = elementHeight;\n }\n\n orientationChange() {\n setTimeout(() => {\n this.setHeight(this.activeProduct.querySelector(selectors.productDetail));\n this.setHeight(this.productListWrapper);\n }, 200);\n }\n\n onPageChange() {\n this.setHeight(this.productListWrapper);\n this.setHeight(this.footer);\n }\n\n setNextButtonState(isDisabled) {\n if (global.CardForm !== undefined) {\n const getCurrentCard = global.CardForm.getCurrentCard();\n\n if (getCurrentCard && getCurrentCard.type && getCurrentCard.type === 'products') {\n global.CardForm.getCurrentCard().actionsButtons.next.disabled = isDisabled;\n }\n }\n }\n}\n","import { addClass, removeClass, forEach, hasClass } from './utils';\n\nexport default class ProductPages {\n constructor(id) {\n this.handleNextClick = this.handleNextClick.bind(this);\n this.handlePrevClick = this.handlePrevClick.bind(this);\n this.handleFirstClick = this.handleFirstClick.bind(this);\n this.handleLastClick = this.handleLastClick.bind(this);\n\n this.id = id;\n this.qLine = document.querySelector(`#id_${this.id}`);\n this.products = this.qLine.querySelectorAll('.js-productItem');\n\n this.paginationWrapper = this.qLine.querySelector('.paymentCard-pagination');\n this.productsListWrapper = this.qLine.querySelector('.products');\n this.cardQuestionWrapper = this.qLine.querySelector('.jfCard-question');\n this.productsSummaryWrapper = this.qLine.querySelector('.product-summary');\n this.pageWrapper = this.qLine.querySelector('.paymentCard-paginationList');\n\n this.previousPageButton = this.qLine.querySelector('.paymentCard-paginationLeft.previousPage');\n this.nextPageButton = this.qLine.querySelector('.paymentCard-paginationRight.nextPage');\n this.firstPage = this.qLine.querySelector('.paymentCard-paginationFirst');\n this.lastPage = this.qLine.querySelector('.paymentCard-paginationLast');\n\n this.onPageChange = null;\n\n this.isMobile = document.querySelector('.isMobile');\n this.productsPerPageFixed = 0;\n this.maxVisiblePages = 10;\n this.visibleFirstPage = 0;\n this.visibleLastPage = 0;\n this.totalPage = 0;\n this.selectedPage = 1;\n }\n\n initProductPages() {\n if (!this.paginationWrapper) return;\n this.productsPerPage = this.productsPerPageFixed ? this.productsPerPageFixed : this.getProductsPerPage();\n this.totalPage = Math.ceil(this.products.length / this.productsPerPage);\n\n forEach(this.products, el => el.show());\n\n if (this.productsPerPage >= this.products.length) {\n this.paginationWrapper.style.display = 'none';\n forEach(this.products, (p, i) => {\n p.setAttribute('data-page', Math.ceil((i + 1) / this.productsPerPage));\n });\n } else {\n this.paginationWrapper.style.display = 'flex';\n forEach(this.products, (p, i) => {\n p.setAttribute('data-page', Math.ceil((i + 1) / this.productsPerPage));\n if (i + 1 > this.productsPerPage) p.hide();\n });\n\n this.createPaginationItems();\n\n this.bindPrevButtonClick();\n this.bindNextButtonClick();\n this.triggerPageChange();\n }\n }\n\n createPaginationItems() {\n this.removeAllItems();\n\n const startPage = Math.max(this.selectedPage - Math.floor(this.maxVisiblePages / 2), 1);\n const endPage = Math.min(startPage + this.maxVisiblePages - 1, this.totalPage);\n\n this.visibleFirstPage = startPage;\n this.visibleLastPage = endPage;\n\n for (let i = startPage; i <= endPage; i++) {\n const pageItem = this.createPaginationItem(i);\n\n pageItem.addEventListener('click', () => {\n this.handlePageChange(i);\n });\n\n this.pageWrapper.appendChild(pageItem);\n }\n }\n\n createPaginationItem(pageNumber) {\n const pageItem = document.createElement('li');\n pageItem.className = pageNumber === 1 ? 'paymentCard-paginationListItem active' : 'paymentCard-paginationListItem';\n pageItem.setAttribute('data-page', pageNumber);\n\n const pageLabel = String.prototype.locale ? 'Page'.locale() : 'Page';\n\n const pageButton = document.createElement('button');\n pageButton.className = 'paymentCard-paginationListButton';\n pageButton.setAttribute('type', 'button');\n pageButton.innerText = pageNumber;\n pageButton.setAttribute('aria-label', `${pageLabel} ${pageNumber}`);\n\n pageItem.appendChild(pageButton);\n\n return pageItem;\n }\n\n removeAllItems() {\n (this.pageWrapper.querySelectorAll('.paymentCard-paginationListItem') || []).forEach(el => el.remove());\n }\n\n getActivePage() {\n return this.pageWrapper.querySelector('.paymentCard-paginationListItem.active');\n }\n\n getActivePageNumber() {\n const activePage = this.getActivePage();\n return activePage ? parseInt(activePage.getAttribute('data-page'), 10) : null;\n }\n\n updateButtonStatus(activePage) {\n if (activePage === 1) {\n /** Left */\n addClass(this.previousPageButton, 'disabled');\n addClass(this.firstPage, 'disabled');\n this.firstPage.setAttribute('disabled', 'disabled');\n this.previousPageButton.setAttribute('disabled', 'disabled');\n /** Right */\n removeClass(this.nextPageButton, 'disabled');\n removeClass(this.lastPage, 'disabled');\n this.nextPageButton.removeAttribute('disabled');\n this.lastPage.removeAttribute('disabled');\n } else if (activePage === this.totalPage) {\n /** Right */\n addClass(this.nextPageButton, 'disabled');\n addClass(this.lastPage, 'disabled');\n this.nextPageButton.setAttribute('disabled', 'disabled');\n this.lastPage.setAttribute('disabled', 'disabled');\n /** Left */\n removeClass(this.previousPageButton, 'disabled');\n removeClass(this.firstPage, 'disabled');\n this.previousPageButton.removeAttribute('disabled');\n this.firstPage.removeAttribute('disabled');\n } else {\n /** Left */\n removeClass(this.previousPageButton, 'disabled');\n removeClass(this.firstPage, 'disabled');\n this.previousPageButton.removeAttribute('disabled');\n this.firstPage.removeAttribute('disabled');\n /** Right */\n removeClass(this.nextPageButton, 'disabled');\n removeClass(this.lastPage, 'disabled');\n this.nextPageButton.removeAttribute('disabled');\n this.lastPage.removeAttribute('disabled');\n }\n }\n\n bindPrevButtonClick() {\n this.previousPageButton.removeEventListener('click', this.handlePrevClick);\n this.previousPageButton.addEventListener('click', this.handlePrevClick);\n this.firstPage.removeEventListener('click', this.handleFirstClick);\n this.firstPage.addEventListener('click', this.handleFirstClick);\n }\n\n bindNextButtonClick() {\n this.nextPageButton.removeEventListener('click', this.handleNextClick);\n this.nextPageButton.addEventListener('click', this.handleNextClick);\n this.lastPage.removeEventListener('click', this.handleLastClick);\n this.lastPage.addEventListener('click', this.handleLastClick);\n }\n\n handlePrevClick() {\n const activePageNumber = this.getActivePageNumber();\n if (activePageNumber) {\n this.selectedPage = activePageNumber - 1;\n this.handlePageChange(activePageNumber - 1);\n };\n }\n\n handleFirstClick() {\n this.selectedPage = 1;\n this.handlePageChange(1);\n }\n\n handleLastClick() {\n this.selectedPage = this.totalPage;\n this.handlePageChange(this.totalPage);\n }\n\n handleNextClick() {\n const activePageNumber = this.getActivePageNumber();\n if (activePageNumber) {\n this.selectedPage = activePageNumber + 1;\n this.handlePageChange(activePageNumber + 1);\n }\n }\n\n handlePageChange(nextPageNumber) {\n if (nextPageNumber > this.visibleLastPage || nextPageNumber < this.visibleFirstPage) {\n this.createPaginationItems();\n }\n\n this.changeActivePage(this.getActivePage(), nextPageNumber);\n\n this.updateProductList(nextPageNumber);\n\n this.updateButtonStatus(nextPageNumber);\n\n this.triggerPageChange();\n\n this.setNextPageProductsHeight();\n }\n\n updateProductList(activePage) {\n this.products.forEach((p, index) => {\n const product = p;\n product.style.display = index < (activePage - 1) * this.productsPerPage || (index + 1) > (activePage * this.productsPerPage) ? 'none' : 'block';\n });\n }\n\n changeActivePage(activePage, nextPage) {\n const nextPageItem = this.qLine.querySelector(`.paymentCard-paginationListItem[data-page=\"${(nextPage)}\"]`);\n removeClass(activePage, 'active');\n if (nextPageItem) {\n addClass(nextPageItem, 'active');\n }\n }\n\n getProductsPerPage() {\n const isMobile = document.querySelector('.isMobile');\n if (isMobile) return this.products.length;\n\n const paginationWrapperDisplayStyle = global.getComputedStyle(this.paginationWrapper).display;\n this.paginationWrapper.style.display = 'block';\n\n const availableSpaceForListItem = this.getAvaibleMaxHeight(this.productsListWrapper, '.jfCard-question');\n\n this.paginationWrapper.style.display = paginationWrapperDisplayStyle;\n\n // get the tallest product's height\n const maxProductHeight = Array.from(this.products).reduce((max, product) => {\n const height = parseInt(global.getComputedStyle(product).height, 10);\n return height > max ? height : max;\n }, 0);\n\n const productsPerPage = parseInt(availableSpaceForListItem / maxProductHeight, 10) || 1;\n return parseInt(productsPerPage, 10) > 0 ? productsPerPage : 1;\n }\n\n // fixes the number of products per page and products list wrappers height accordingly\n setProductsPerPage() {\n // In src/helpers/payment/PaymentContent.js, we render 'product-summary' if paymentType === 'product' but sometimes it can be equal to 'subscription' so we do not render.\n // we need to check if we have productsSummaryWrapper !== undefined so I added this check\n if ((this.productsSummaryWrapper && this.productsSummaryWrapper.clientHeight !== 0) || hasClass(this.productsListWrapper, 'products--selected')) {\n return;\n }\n const isMobile = document.querySelector('.isMobile');\n if (isMobile) return this.products.length;\n\n this.setNextPageProductsHeight();\n const availableSpaceForListItem = this.getAvaibleMaxHeight(this.productsListWrapper, '.jfCard-question');\n\n const maxProductHeight = Array.from(this.products).reduce((max, product) => {\n const height = parseInt(global.getComputedStyle(product).height, 10);\n return height > max ? height : max;\n }, 0);\n\n const productsPerPage = parseInt(availableSpaceForListItem / maxProductHeight, 10) || 1;\n this.productsPerPageFixed = parseInt(productsPerPage, 10) > 0 ? productsPerPage : 1;\n\n this.initProductPages();\n }\n \n // sets next page products list wrapper height\n setNextPageProductsHeight() {\n // const productsArr = Array.from(this.productsListWrapper.children);\n // const elementFixedHeight = productsArr.reduce((result, current) => result + current.clientHeight, 0); // that calculation blocks multiple product displaying in cardform\n this.productsListWrapper.style.height = 'auto'; // we set the height auto to fix displaying multiple products\n }\n\n getAvaibleMaxHeight(element, stopSelector) {\n if ((stopSelector && element.matches(stopSelector)) || !element.parentElement) return this.getStopNodeInnerHeight(element);\n const elementSiblings = this.getElementSiblings(element);\n const siblingsHeight = elementSiblings.reduce((acc, curr) => acc + this.getSiblingHeight(curr), 0);\n return this.getAvaibleMaxHeight(element.parentElement, stopSelector) - (this.getNodeMarginAndPadding(element) + siblingsHeight);\n }\n\n getElementSiblings(element) {\n const filterSiblings = el => node => node !== el;\n return Array.from(element.parentElement.childNodes).filter(filterSiblings(element));\n }\n\n getSiblingHeight(element) {\n return this.getStyleSum(element, ['height', 'marginTop', 'marginBottom']);\n }\n\n getNodeMarginAndPadding(element) {\n return this.getStyleSum(element, ['marginTop', 'marginBottom', 'paddingTop', 'paddingBottom']);\n }\n\n getStopNodeInnerHeight(element) {\n return this.getStyleSum(element, ['maxHeight']) - this.getStyleSum(element, ['paddingTop', 'paddingBottom']);\n }\n\n getStyleSum(element, styles) {\n const computedStyle = global.getComputedStyle(element);\n return styles.reduce((sum, style) => sum + (parseInt(computedStyle[style], 10) || 0), 0);\n }\n\n setOnPageChange(fn) {\n this.onPageChange = fn;\n }\n\n triggerPageChange() {\n if (this.onPageChange) this.onPageChange();\n }\n}\n","import { triggerEvent, addClass, removeClass } from './utils';\n\nexport default class Donation {\n constructor(id, currency) {\n this.id = id;\n this.currency = currency;\n\n this.questionWrapper = document.querySelector(`#id_${this.id}`);\n this.donationField = this.questionWrapper.querySelector('input[id*=\"_donation\"]');\n this.donationSpecial = this.questionWrapper.querySelector('.donation-special');\n this.suggestions = this.questionWrapper.querySelectorAll('.js-donation-suggestion');\n this.donationFieldOverlay = this.questionWrapper.querySelector('.js-donation-overlay');\n\n this.onSuggestionChange = this.onSuggestionChange.bind(this);\n this.onDonationFieldChange = this.onDonationFieldChange.bind(this);\n this.onOverlayClick = this.onOverlayClick.bind(this);\n }\n\n initDonation() {\n this.suggestions.forEach(field => {\n field.addEventListener('change', this.onSuggestionChange);\n });\n\n this.donationField.addEventListener('change', this.onDonationFieldChange);\n this.donationField.addEventListener('keyup', this.onDonationFieldChange);\n\n if (this.donationFieldOverlay) {\n this.donationFieldOverlay.addEventListener('click', this.onOverlayClick);\n this.donationFieldOverlay.addEventListener('keypress', e => { if (e.keyCode === 32) e.target.click(); });\n }\n }\n\n onSuggestionChange({ target }) {\n this.openOverlay();\n this.donationField.value = target.value.replace(/[^.0-9]+/g, '');\n // global.JotForm.paymentTotal = this.value;\n triggerEvent(this.donationField, 'change');\n }\n\n onDonationFieldChange({ target }) {\n const { value } = target;\n\n this.suggestions.forEach(f => {\n const field = f;\n field.checked = field.value === value;\n });\n }\n\n onOverlayClick() {\n this.closeOverlay();\n this.resetDonationField();\n this.donationField.focus();\n }\n\n resetDonationField() {\n this.donationField.value = '';\n triggerEvent(this.donationField, 'change');\n }\n\n openDonationField() {\n addClass(this.donationSpecial, 'donation-special--active');\n }\n\n closeDonationField() {\n removeClass(this.donationSpecial, 'donation-special--active');\n }\n\n openOverlay() {\n removeClass(this.donationSpecial, 'donation-special--active');\n }\n\n closeOverlay() {\n addClass(this.donationSpecial, 'donation-special--active');\n }\n}\n","import { closest } from '@jotforminc/utils';\nimport { parseJSON } from '@jotforminc/form-common';\n\nimport {\n addClass, removeClass, hasClass, makeHiddenSubmissionKey, createInput\n} from './utils';\nimport { ERROR_TYPES, TOOLTIP_TYPES } from './constants';\nimport {\n getUploaderTemplate, getUploadedFileTemplate, getUploaderSelectors, onUploadComplete, onUploadAdd\n} from './uploader';\n\nimport ShoppingBag from './ShoppingBag';\nimport ProductPages from './ProductPages';\nimport Donation from './Donation';\n\nexport default class Patch {\n constructor(params) {\n this.params = params;\n this.formID = params.formID;\n this.storageEngine = params.storageEngine;\n this.continueLater = params.continueLater;\n this.showTooltip = params.showTooltip;\n this.patchSubmit = this.patchSubmit.bind(this);\n this.postFormData = this.postFormData.bind(this);\n this.patchErrored = this.patchErrored.bind(this);\n this.patchCorrected = this.patchCorrected.bind(this);\n this.patchDateTime = this.patchDateTime.bind(this);\n this.patchShowHideFields = this.patchShowHideFields.bind(this);\n this.patchRequireField = this.patchRequireField.bind(this);\n this.patchEnableDisableField = this.patchEnableDisableField.bind(this);\n this.patchCreditCardAddressVisibilityChanged = this.patchCreditCardAddressVisibilityChanged.bind(this);\n this.patchFileUploaderTemplates = this.patchFileUploaderTemplates.bind(this);\n this.patchIsVisible = this.patchIsVisible.bind(this);\n this.patchHandleSavedForm = this.patchHandleSavedForm.bind(this);\n this.patchHandlePaymentSubProducts = this.patchHandlePaymentSubProducts.bind(this);\n this.patchSetSubmissionID = this.patchSetSubmissionID.bind(this);\n this.patchInitShoppingBag = this.patchInitShoppingBag.bind(this);\n this.patchInitProductPages = this.patchInitProductPages.bind(this);\n this.patchInitDonation = this.patchInitDonation.bind(this);\n this.patchHandleSingleChoiceWithMultiTypeColumns = this.patchHandleSingleChoiceWithMultiTypeColumns.bind(this);\n this.patchHandleSingleChoiceWithMultiTypeColumnsDesktop = this.patchHandleSingleChoiceWithMultiTypeColumnsDesktop.bind(this);\n this.patchHandleSingleChoiceWithMultiTypeColumnsMobile = this.patchHandleSingleChoiceWithMultiTypeColumnsMobile.bind(this);\n this.patchSubmit();\n this.patchErrored();\n this.patchCorrected();\n this.patchDateTime();\n this.patchShowHideFields();\n this.patchRequireField();\n this.patchEnableDisableField();\n this.patchCreditCardAddressVisibilityChanged();\n this.patchFileUploaderTemplates();\n this.patchIsVisible();\n this.patchHandleSavedForm();\n this.patchSetSubmissionID();\n this.patchHandlePaymentSubProducts();\n this.patchInitShoppingBag();\n this.patchInitProductPages();\n this.patchInitDonation();\n global.JotForm.isFullScreen = () => hasClass(document.body, 'isFullScreen');\n global.JotForm.handleSingleChoiceWithMultiTypeColumnsForCardForms = this.patchHandleSingleChoiceWithMultiTypeColumns;\n global.JotForm.getContainer = element => {\n return global.JotForm.isFullScreen() ? document.getElementById('jfQuestion-proxy')\n : (closest(element, '.jfCard') || element.querySelector('.jfCard'));\n };\n\n // ********************************************\n\n this.checkFieldFilledClass = this.checkFieldFilledClass.bind(this);\n }\n\n patchSubmit() {\n document.querySelector('.jotform-form').addEventListener('submit', e => {\n // Continue with the normal form submit\n // var form = e.target;\n // var url = form.action;\n // var data = this.getFormData(form);\n // this.postFormData(url, data, (errStatus) => {\n // if (errStatus) {\n // console.log('error on submit');\n // } else {\n // console.log('form submitted');\n // // switch to thankyou mode\n // }\n // });\n\n if ((this.params.captchaMode === 'recaptcha_invisible' || this.params.captchaMode === 'invisibleFromAdvancedSettings')\n && global.grecaptcha && !global.captchaFilled && global.JotForm.validateAll(e.target)) {\n e.preventDefault();\n e.stopImmediatePropagation();\n global.grecaptcha.execute();\n global.JotForm.enableButtons();\n } else if (this.params.onSubmit) {\n this.params.onSubmit(e);\n }\n });\n }\n\n postFormData(url, data, clb) {\n const http = new global.XMLHttpRequest();\n http.open('POST', url, true);\n\n // Send the proper header information along with the request\n http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n\n http.onreadystatechange = () => {\n if (http.readyState === 4) {\n if (http.status === 200) {\n return clb();\n }\n return clb(http.status);\n }\n http.send(data);\n };\n }\n\n getFormData(form) {\n const setOrPush = (target, val) => {\n var result = val;\n if (target) {\n result = [target];\n result.push(val);\n }\n return result;\n };\n\n const getFormResults = formElement => {\n var formElements = formElement.elements;\n var formParams = {};\n var i = 0;\n var elem = null;\n for (i = 0; i < formElements.length; i += 1) {\n elem = formElements[i];\n switch (elem.type) {\n case 'submit':\n break;\n case 'radio':\n if (elem.checked) {\n formParams[elem.name] = elem.value;\n }\n break;\n case 'checkbox':\n if (elem.checked) {\n formParams[elem.name] = setOrPush(formParams[elem.name], elem.value);\n }\n break;\n default:\n formParams[elem.name] = setOrPush(formParams[elem.name], elem.value);\n }\n }\n return formParams;\n };\n\n return getFormResults(form);\n }\n\n // Development only for now.\n patchHandleSavedForm() {\n if (global.JotForm.handleSavedForm) { // eslint-disable-line\n const originalHandleSavedForm = global.JotForm.handleSavedForm;\n global.JotForm.handleSavedForm = (...params) => {\n const hiddenSubmissionKey = makeHiddenSubmissionKey(this.formID);\n const { sessionID, submissionToken, submissionID } = global.JotForm;\n // Lets check if client has a hidden submission id on local storage, or populate from url.\n let previousSessionObject = (this.continueLater.useStorage && this.storageEngine.isAvailable()) ? this.storageEngine.get(hiddenSubmissionKey) : null;\n if (previousSessionObject && (!sessionID || !submissionToken || !submissionID)) {\n previousSessionObject = parseJSON(previousSessionObject);\n if (!previousSessionObject) { // If data is not valid, erase it.\n this.storageEngine.delete(hiddenSubmissionKey);\n }\n global.JotForm.sessionID = previousSessionObject.sessionID;\n global.JotForm.submissionToken = previousSessionObject.submissionToken;\n global.JotForm.submissionID = previousSessionObject.submissionID;\n }\n\n const form = global.document.forms[0];\n if (global.JotForm.submissionToken) {\n const submissionTokenInput = createInput({\n type: 'hidden', name: 'submission_token', id: 'submission_token', value: global.JotForm.submissionToken\n });\n form.appendChild(submissionTokenInput);\n }\n if (global.JotForm.submissionID) {\n const submissionIDInput = createInput({\n type: 'hidden', name: 'submission_id', id: 'submission_id', value: global.JotForm.submissionID\n });\n form.appendChild(submissionIDInput);\n }\n if (global.JotForm.sessionID) {\n const sessionInput = createInput({\n type: 'hidden', name: 'session_id', id: 'session', value: global.JotForm.sessionID\n });\n form.appendChild(sessionInput);\n originalHandleSavedForm.call(global.JotForm, ...params);\n }\n };\n }\n }\n\n patchSetSubmissionID() {\n if (global.JotForm.setSubmissionID) {\n const originalSetSubmissionID = global.JotForm.setSubmissionID;\n global.JotForm.setSubmissionID = (...params) => {\n originalSetSubmissionID.call(global.JotForm, ...params);\n };\n }\n }\n\n patchErrored() {\n if (global.JotForm.errored) {\n global.JotForm.errored = (_input, _message, dontShowMessage, errorType) => {\n const input = _input;\n const message = _message.replace(/
    /g, '');\n const isFullScreen = global.JotForm.isFullScreen();\n\n if (dontShowMessage) return false;\n if (input.errored) {\n return false;\n }\n\n // other choice add hasOtherError for style\n const otherCheckboxInput = input.parentElement ? input.parentElement.querySelector('.jfCheckbox-otherInputField') : null;\n const otherRadioInput = input.parentElement ? input.parentElement.querySelector('.jfRadio-otherInputField') : null;\n if (hasClass(input, 'jfCheckbox-otherInput') && otherCheckboxInput !== null && otherCheckboxInput.value === '' && input.checked) {\n const otherLine = closest(input, '.jfField', '.jfCard');\n addClass(otherLine, 'hasOtherError');\n } else if (hasClass(input, 'jfRadio-otherInput') && otherRadioInput !== null && otherRadioInput.value === '' && input.checked) {\n const otherLine = closest(input, '.jfField', '.jfCard');\n addClass(otherLine, 'hasOtherError');\n }\n\n if (errorType === ERROR_TYPES.TOOLTIP) {\n this.showTooltip(input, { message, type: TOOLTIP_TYPES.ERROR });\n }\n\n if (input.id && input.id.indexOf('disabled') > 0) {\n // ignore matrix hidden fields\n return true;\n }\n\n input.errored = true;\n input.errorMessage = _message;\n addClass(input, 'form-validation-error');\n\n // if (hasClass(container, 'form-line-error')) return;\n const card = global.JotForm.getContainer(input);\n\n if (!isFullScreen) {\n var line = closest(input, '.form-line');\n addClass(line, 'form-line-error');\n } else {\n addClass(card, 'hasError');\n }\n\n var insertEl = isFullScreen ? card : card.querySelector('.jfCard-actionsNotification');\n var mobileErrorWrapper = card.querySelector('.jsMobileErrorWrapper');\n const addElementIfNotExists = (_card, errorClass, errorWrapper, addBefore) => {\n if (!_card.querySelector(`.${errorClass}`)) {\n const errorElement = new global.Element('div', {\n className: addBefore ? `${errorClass} jfCard-error` : errorClass,\n role: 'alert'\n });\n errorElement.textContent = message;\n if (errorWrapper) {\n if (addBefore) {\n errorWrapper.prepend(errorElement);\n } else {\n errorWrapper.appendChild(errorElement);\n }\n }\n }\n\n if (_card.querySelector(`.${errorClass}`)) {\n var existingErrorElement = _card.querySelector(`.${errorClass}`);\n existingErrorElement.textContent = message;\n }\n };\n\n if (errorType !== ERROR_TYPES.TOOLTIP) {\n addElementIfNotExists(card, 'form-error-message', insertEl, isFullScreen);\n addElementIfNotExists(card, 'form-mobile-error-message', mobileErrorWrapper, false);\n }\n\n if (this.params.onFieldErrored) {\n this.params.onFieldErrored(input);\n }\n\n return false;\n };\n }\n }\n\n patchCorrected() {\n if (global.JotForm.corrected) {\n global.JotForm.corrected = _input => {\n const input = _input;\n input.errored = false;\n\n const line = closest(input, '.form-line');\n const container = global.JotForm.getContainer(input);\n if (!container) {\n return true;\n }\n\n removeClass(container, 'hasError');\n\n if (input.id && input.id.indexOf('disabled') > 0) {\n // ignore matrix hidden fields\n return true;\n }\n\n // other choice remove hasOtherError for style\n const otherCheckboxInput = input.parentElement ? input.parentElement.querySelector('.jfCheckbox-otherInputField') : null;\n const otherRadioInput = input.parentElement ? input.parentElement.querySelector('.jfRadio-otherInputField') : null;\n if (hasClass(input, 'jfCheckbox-otherInput') && otherCheckboxInput !== null && (!input.checked || (otherCheckboxInput.value !== '' && input.checked))) {\n const otherLine = closest(input, '.jfField', '.jfCard');\n removeClass(otherLine, 'hasOtherError');\n } else if (hasClass(input, 'jfRadio-otherInput') && otherRadioInput !== null && (!input.checked || (otherRadioInput.value !== '' && input.checked))) {\n const otherLine = closest(input, '.jfField', '.jfCard');\n removeClass(otherLine, 'hasOtherError');\n }\n\n removeClass(line, 'form-line-error');\n removeClass(input, 'form-validation-error');\n const erroredChildren = container.querySelectorAll('.form-validation-error');\n\n // Remove child errors on matrix corrected\n // fixes #1383205\n if (line !== null && typeof line !== 'undefined'\n && typeof line.getAttribute === 'function'\n && line.getAttribute('data-type') === 'control_matrix') {\n Array.prototype.forEach.call(erroredChildren, e => {\n removeClass(e, 'form-validation-error');\n });\n }\n\n if (line && line.querySelectorAll('.form-validation-error').length === 0) {\n removeClass(line, 'form-line-error');\n }\n\n const errors = container.querySelectorAll('.form-error-message, .form-mobile-error-message');\n if (errors && erroredChildren.length === 0) {\n Array.prototype.forEach.call(errors, error => {\n error.parentElement.removeChild(error);\n });\n }\n\n if (this.params.onFieldCorrected) {\n this.params.onFieldCorrected(input);\n }\n\n return true;\n };\n }\n }\n\n patchDateTime() {\n if (global.Calendar) {\n const self = this;\n this.originalCalendarSetup = global.Calendar.setup;\n const { checkFieldFilledClass } = this;\n global.Calendar.setup = options => {\n const originalSelectHandler = options.selectHandler;\n\n function selectHandler(...params) {\n const calendarObject = params[0];\n originalSelectHandler.call(this, ...params);\n checkFieldFilledClass(calendarObject.dateField);\n const cardContainer = closest(params[0].dateField, '.jfCard');\n self.params.onCalendarSelected(cardContainer, params[1]);\n }\n\n const calendar = this.originalCalendarSetup({\n dateField: options.dateField,\n parentElement: options.parentElement,\n triggerElement: options.triggerElement,\n startOnMonday: options.startOnMonday,\n limits: options.limits,\n selectHandler: selectHandler\n });\n\n self.params.onCalendarInit(calendar, options.parentElement);\n\n return calendar;\n };\n }\n }\n\n checkFieldFilledClass(input) {\n if (input.validateInput) input.validateInput();\n // const container = closest(input, '.jfCard-question');\n // forEach(container.querySelectorAll('.jfField'), (field) => {\n // const inputField = field.querySelector('input');\n // if (inputField) {\n // if (inputField.value) {\n // addClass(field, 'isFilled');\n // } else {\n // removeClass(field, 'isFilled');\n // }\n // }\n // });\n }\n\n patchShowHideFields() {\n const { showField, hideField } = global.JotForm;\n\n global.JotForm.showOrHideMultipleFields = (...params) => {\n const [shouldBeVisible, fields, ...additionalParams] = params;\n const fieldIds = [];\n const failedFieldIds = [];\n const callable = shouldBeVisible ? showField : hideField;\n\n fields.forEach((field) => {\n if (callable.call(global.JotForm, field, ...additionalParams)) {\n fieldIds.push(field);\n } else {\n failedFieldIds.push(field);\n }\n })\n\n if (fieldIds.length) {\n this.params.onFieldVisibilityChanged.call(null, true, shouldBeVisible, fieldIds);\n }\n\n if (failedFieldIds.length) {\n this.params.onFieldVisibilityChanged.call(null, false, shouldBeVisible, failedFieldIds);\n }\n };\n\n global.JotForm.showField = (...params) => {\n const success = showField.call(global.JotForm, ...params);\n this.params.onFieldVisibilityChanged.call(null, success, true, ...params);\n };\n\n global.JotForm.hideField = (...params) => {\n const success = hideField.call(global.JotForm, ...params);\n this.params.onFieldVisibilityChanged.call(null, success, false, ...params);\n };\n }\n\n patchRequireField() {\n const originalRequire = global.JotForm.requireField;\n\n global.JotForm.requireField = (...params) => {\n const [id, isRequired] = params;\n originalRequire.call(global.JotForm, ...params);\n this.params.onRequireField.call(null, id, isRequired);\n };\n }\n\n patchEnableDisableField() {\n const originalFunc = global.JotForm.enableDisableField;\n global.JotForm.enableDisableField = (...params) => {\n const [id, enable] = params;\n originalFunc.call(global.JotForm, ...params);\n this.params.onEnableDisableField.call(null, id, enable);\n };\n }\n\n patchFileUploaderTemplates() {\n if (global.qq) {\n global.qq.getUploaderTemplate = (...params) => { return getUploaderTemplate(...params); };\n global.qq.getUploadedFileTemplate = (...params) => { return getUploadedFileTemplate(...params); };\n global.qq.getUploaderSelectors = (...params) => { return getUploaderSelectors(...params); };\n global.qq.onUploadComplete = (...params) => { this.params.onFileUploadChanged(params[4]); return onUploadComplete(...params); };\n global.qq.onDelete = (...params) => { this.params.onFileUploadChanged(params[0]); };\n global.qq.onUploadAdd = (...params) => { return onUploadAdd(...params); };\n }\n }\n\n patchCreditCardAddressVisibilityChanged() {\n // const originalFunc = global.JotForm.setCreditCardVisibility;\n global.JotForm.setCreditCardVisibility = isVisible => {\n // originalFunc.call(global.JotForm, isVisible);\n this.params.onCreditCardAddressVisibilityChanged.call(null, isVisible);\n };\n }\n\n // jotform validates only visible fields\n // datetime should be validated by hidden inputs\n // so override isVisible and return true if it has cf-validate-hidden class\n patchIsVisible() {\n const threatLikeVisibleClass = 'cf-valid-hidden';\n const originalFunc = global.JotForm.isVisible;\n global.JotForm.isVisible = (...params) => {\n const [element] = params;\n if (hasClass(element, threatLikeVisibleClass)) originalFunc.call(global.JotForm, { ...params, element: element.parentElement });\n return originalFunc.call(global.JotForm, ...params);\n };\n }\n\n patchHandlePaymentSubProducts() {\n global.JotForm.handlePaymentSubProducts = () => {\n const paymentWithSubProduct = document.querySelectorAll('.form-product-has-subproducts');\n paymentWithSubProduct.forEach(product => {\n const productWrapper = closest(product, '.jfProduct-list', '.form-line') ? closest(product, '.jfProduct-list', '.form-line') : closest(product, '.js-product-detail', '.form-line');\n product.addEventListener('click', () => {\n const subProductsQuantity = productWrapper.querySelectorAll('.form-subproduct-quantity');\n if (!product.checked) {\n subProductsQuantity.forEach(sp => {\n const subproduct = sp;\n subproduct.value = 0;\n if (sp.tagName === 'SELECT') {\n const changeEvent = document.createEvent('HTMLEvents');\n changeEvent.initEvent('change', false, true);\n sp.dispatchEvent(changeEvent);\n }\n });\n // resume calculation\n setTimeout(() => {\n global.JotForm.totalCounter(global.JotForm.prices);\n }, 300);\n }\n });\n });\n };\n }\n\n patchInitShoppingBag() {\n global.JotForm.initShoppingBag = (id, formProducts, currency, enableImagePreview) => {\n const productPages = new ProductPages(id);\n global.JotForm.productPages = productPages;\n productPages.initProductPages();\n\n global.JotForm.shoppingBag = new ShoppingBag(id, formProducts, currency, productPages, enableImagePreview);\n global.JotForm.shoppingBag.initShoppingBag();\n };\n }\n\n patchInitProductPages() {\n global.JotForm.initProductPages = () => {};\n }\n\n patchInitDonation() {\n // const originalFunc = global.JotForm.initDonation;\n global.JotForm.initDonation = (id, currency) => {\n const donation = new Donation(id, currency);\n donation.initDonation();\n };\n }\n\n patchHandleSingleChoiceWithMultiTypeColumns() {\n this.patchHandleSingleChoiceWithMultiTypeColumnsMobile();\n this.patchHandleSingleChoiceWithMultiTypeColumnsDesktop();\n }\n\n patchHandleSingleChoiceWithMultiTypeColumnsMobile() {\n const listItem = Array.prototype.slice.call(document.querySelectorAll('.jfMatrixChoice-row'));\n if (!listItem) return;\n listItem.forEach(e => {\n const inputCellChild = e.querySelector('.jfMatrixChoice-inputCell');\n if (inputCellChild) {\n inputCellChild.addEventListener('click', () => {\n const formRadioElements = e.getElementsByClassName('form-radio');\n const selectedItem = formRadioElements.length ? formRadioElements[0] : null;\n if (selectedItem && selectedItem.name && e.parentElement) {\n const parent = e.parentElement; // Should get the jfMatrixChoice-table\n const selectedElementName = selectedItem.name;\n const parentCells = parent.getElementsByClassName('jfMatrixChoice-inputCell');\n const parentCellsLength = parentCells.length;\n for (let i = 0; i < parentCellsLength; i++) {\n const matrixCellsItem = parentCells[i];\n const radioCellItem = matrixCellsItem.children.length ? matrixCellsItem.children[0] : null;\n if (\n radioCellItem\n && selectedItem.type === 'radio'\n && radioCellItem.children\n && radioCellItem.children[0]\n && radioCellItem.children[0].name !== selectedElementName\n ) {\n const notSelectedItem = radioCellItem.children[0];\n if (notSelectedItem.type === 'radio') notSelectedItem.setValue(null);\n }\n }\n }\n });\n }\n });\n }\n\n patchHandleSingleChoiceWithMultiTypeColumnsDesktop() {\n const listItem = Array.prototype.slice.call(document.querySelectorAll('.jfMatrixTable-cell[role=\"gridcell\"]'));\n if (!listItem) return;\n listItem.forEach(e => {\n const firstChildOfE = e.children.length ? e.children[0] : null;\n if (firstChildOfE) {\n firstChildOfE.addEventListener('click', () => {\n const formRadioElements = e.getElementsByClassName('form-radio');\n const selectedItem = formRadioElements.length ? formRadioElements[0] : null;\n if (selectedItem && selectedItem.name && e.parentElement) {\n const parent = e.parentElement; // Should get the row element\n const selectedElementName = selectedItem.name;\n const parentCells = parent.getElementsByClassName('jfMatrixTable-cell');\n const parentCellsLength = parentCells.length;\n for (let i = 0; i < parentCellsLength; i++) {\n const matrixCellsItem = parentCells[i];\n const radioCellItem = matrixCellsItem.children.length ? matrixCellsItem.children[0] : null;\n if (\n radioCellItem\n && selectedItem.type === 'radio'\n && radioCellItem.children\n && radioCellItem.children[0]\n && radioCellItem.children[0].name !== selectedElementName\n ) {\n const notSelectedItem = radioCellItem.children[0];\n if (notSelectedItem.type === 'radio') notSelectedItem.setValue(null);\n }\n }\n }\n });\n }\n });\n }\n}\n","import { htmlDecode } from '@jotforminc/form-common';\nimport { closest } from '@jotforminc/utils';\nimport { hasClass, triggerEvent } from './utils';\n\nclass Address {\n constructor(params) {\n // Params from cards.js\n this.cards = params.cards;\n this.layoutParams = params.layoutParams;\n this.setFieldIsFilledIfHasValue = params.setFieldIsFilledIfHasValue;\n this.updateFeedbackEmbedHeight = params.updateFeedbackEmbedHeight;\n // Class parameters\n this.autocompleteFields = [];\n this.addressTypeSuffixMap = {\n country: 'country',\n administrative_area_level_1: 'state',\n postal_code: 'postal',\n locality: 'city',\n street: 'addr_line1',\n street2: 'addr_line2',\n searchField: 'addr_search'\n };\n\n // Countries have different city/region types\n // US has both\n // Turkey has city\n this.countrySpecifications = {\n TR: 'city',\n GB: 'postal_town',\n DE: 'locality'\n };\n\n // Method binds\n this.init = this.init.bind(this);\n this.getClearField = this.getClearField.bind(this);\n this.convertToClean = this.convertToClean.bind(this);\n this.getPacContainer = this.getPacContainer.bind(this);\n this.getQuestionCard = this.getQuestionCard.bind(this);\n this.bindPacContainer = this.bindPacContainer.bind(this);\n this.showHiddenFields = this.showHiddenFields.bind(this);\n this.handleSafariProcess = this.handleSafariProcess.bind(this);\n this.getQuestionContainer = this.getQuestionContainer.bind(this);\n this.setPacContainerState = this.setPacContainerState.bind(this);\n this.clearAddressSubFields = this.clearAddressSubFields.bind(this);\n this.createPacAdditionItem = this.createPacAdditionItem.bind(this);\n this.handleGeocodingResult = this.handleGeocodingResult.bind(this);\n this.bindAutocompleteEvents = this.bindAutocompleteEvents.bind(this);\n this.handleAutocompleteResult = this.handleAutocompleteResult.bind(this);\n\n if (this.AutocompleteAPI) {\n // Initialization of address search fields\n this.init();\n } else {\n // Convert each address field into clean format (without autocomplete/geolocation etc.)\n this.convertToClean();\n }\n }\n\n getPacContainer(pacContainerObject) {\n const pacContainerKey = Object.keys(pacContainerObject).filter(key => {\n const val = pacContainerObject[key];\n return val && val.classList && val.classList.contains('pac-container');\n })[0];\n return pacContainerKey ? pacContainerObject[pacContainerKey] : {};\n }\n\n handleGeocodingResult(id, place) {\n // Due to geocoder api of google does not send 'adr_address' property like autocomplete, we try to find street address by using zip code placement\n const zipComponent = place.address_components.filter(address => address.types[0] === 'postal_code')[0];\n\n if (zipComponent && zipComponent.long_name) {\n const zipRegex = new RegExp(`.*(?=,.*${zipComponent.long_name})`);\n const streetAddress = place.formatted_address.match(zipRegex)[0];\n this.setAddressFieldValue(id, 'street', streetAddress);\n }\n\n // Delay is related to the fact that Safari does not fill input fields while an animation is going on\n this.handleSafariProcess(() => this.handleAddressComponents(id, place.address_components));\n }\n\n showHiddenFields(id) {\n const questionContainer = this.getQuestionContainer(id);\n const { cardContainer } = this.getQuestionCard(id);\n\n // Showing hidden address fields by removing this class\n questionContainer.classList.remove('jfAddress-clean');\n cardContainer.classList.remove('isClean');\n // work around for feedback embed button height.\n // will be removed after hackweek\n setTimeout(() => {\n this.updateFeedbackEmbedHeight();\n }, 250); // because transtions\n }\n\n // Binds google autocomplete to given fields and add necessary dom elements\n bindAutocompleteEvents() {\n this.autocompleteFields.forEach(({\n id, field, clearField, autocomplete, geolocationField\n }) => {\n // Binding additional pac container item events\n this.bindPacContainer(id, field, autocomplete);\n\n // Binding result handling\n autocomplete.addListener('place_changed', () => {\n const inputKey = Object.keys(autocomplete.gm_accessors_.place)[0];\n const pacContainerObject = autocomplete.gm_accessors_.place[inputKey].gm_accessors_.input[inputKey];\n // Object references might change and did change\n const pacContainer = this.getPacContainer(pacContainerObject);\n\n this.setPacContainerState(pacContainer);\n this.handleAutocompleteResult(id, field, autocomplete.getPlace());\n });\n\n // Binding clear event\n clearField.addEventListener('keypress', e => {\n if (e.keyCode === 32) {\n e.target.click();\n }\n });\n clearField.addEventListener('click', () => {\n this.clearAddressSubFields(id);\n this.setAddressFieldValue(id, 'searchField', '');\n });\n\n let inProgress = false;\n\n // Bind geolocation field if defined\n if (this.GeocoderAPI && this.PositionAPI && geolocationField) {\n geolocationField.addEventListener('keypress', e => {\n if (e.keyCode === 32) {\n e.target.click();\n }\n });\n geolocationField.addEventListener('click', () => {\n // Do not proceed if geolocation is in progress\n if (inProgress === true) {\n return;\n }\n\n // Disable it to prevent consecutive requests\n inProgress = true;\n\n // Loading indicator\n geolocationField.classList.add('isLoading');\n\n // Get address over position originated from navigator\n global.navigator.geolocation.getCurrentPosition(position => {\n const location = new this.PositionAPI(position.coords.latitude, position.coords.longitude);\n\n const p = new Promise((resolve, reject) => {\n const geocoder = new this.GeocoderAPI();\n\n geocoder.geocode({ location }, (result, status) => {\n // Enable field again\n inProgress = false;\n\n if (status === 'OK') {\n return resolve(result);\n }\n\n return reject(status);\n });\n });\n\n p.then(result => {\n // Show hidden fields\n this.showHiddenFields(id);\n\n // Clear current data of address field\n this.clearAddressSubFields(id);\n\n // Gets most accured result from api response\n const placeResult = result[0];\n\n // Remove loading indicator\n geolocationField.classList.remove('isLoading');\n\n // Fill search field with given formatted address\n this.setAddressFieldValue(id, 'searchField', placeResult.formatted_address);\n\n this.handleGeocodingResult(id, placeResult);\n }).catch(status => {\n // Remove loading indicator\n geolocationField.classList.remove('isLoading');\n\n switch (status) {\n case 'ZERO_RESULTS':\n case 'OVER_QUERY_LIMIT':\n case 'REQUEST_DENIED':\n case 'INVALID_REQUEST':\n case 'UNKNOWN_ERROR':\n case 'ERROR':\n default:\n global.alert('error while fecthing location');\n break;\n }\n });\n });\n });\n }\n });\n }\n\n bindPacContainer(id, field, autocomplete) {\n // Recalling binding function until google initialize pac container\n if (!autocomplete || !autocomplete.gm_accessors_ || !autocomplete.gm_accessors_.place) {\n return setTimeout(() => this.bindPacContainer(id, field, autocomplete), 250);\n }\n\n // This key path for pac container seems changing depending on the client of library; therefore please do not change it based on stackoverflow or anywhere else\n const inputKey = Object.keys(autocomplete.gm_accessors_.place)[0];\n\n // Object references might change and did change\n const pacContainerObject = autocomplete.gm_accessors_.place[inputKey].gm_accessors_.input[inputKey];\n const pacContainer = this.getPacContainer(pacContainerObject);\n\n const { cardContainer } = this.getQuestionCard(id);\n\n // Prepare 'Enter Manually' item\n const appendDiv = this.createPacAdditionItem(pacContainer, cardContainer, id);\n\n // For styling\n cardContainer.classList.add('isClean', 'hasAutocomplete');\n pacContainer.classList.add('jfAddress-itemReady');\n pacContainer.appendChild(appendDiv);\n\n // For multiple binding usage\n const togglePacContainer = e => {\n if (pacContainer.classList.contains('hasPreviousSelection')) {\n e.target.removeEventListener('focus', togglePacContainer);\n e.target.removeEventListener('blur', togglePacContainer);\n } else {\n // pacContainer.classList[e.type === 'focus' ? 'add' : 'remove']('mustDisplay');\n }\n };\n\n const isMobile = this.layoutParams.deviceType === 'mobile';\n if (isMobile) {\n const addressSearch = cardContainer.querySelector('.jfAddress-search');\n if (addressSearch) {\n addressSearch.appendChild(pacContainer);\n }\n }\n // const toggleMustDisplayState = (e) => {\n // const visibleItems = pacContainer.querySelectorAll('.pac-item:not(.pac-item-ghost)');\n // pacContainer.classList.remove('mustDisplay');\n\n // if (e.target.value) {\n // pacContainer.classList[visibleItems.length > 0 ? 'remove' : 'add']('mustDisplay');\n // }\n // };\n\n // Binding field in order to show pac container even with empty result set\n field.addEventListener('focus', togglePacContainer);\n field.addEventListener('blur', togglePacContainer);\n // field.addEventListener('keyup', toggleMustDisplayState);\n }\n\n setPacContainerState(pacContainer) {\n // pacContainer.classList.remove('mustDisplay');\n pacContainer.classList.add('hasPreviousSelection');\n }\n\n clearAddressSubFields(id) {\n Object.keys(this.addressTypeSuffixMap).forEach(suffixKey => suffixKey !== 'searchField' && this.setAddressFieldValue(id, suffixKey, ''));\n }\n\n handleAutocompleteResult(id, field, place) {\n // Clear current data of address field\n this.clearAddressSubFields(id);\n\n // Removing focus from search field for user to continue without any problem by pressing enter if there is nothing to do (We are preventing enter event on address search field)\n field.blur();\n\n // Removing error and validate classes to prevent user's mistaking search field as required after subfields become visible\n field.classList.remove('form-validation-error', 'validate[required]');\n\n // Show hidden fields\n this.showHiddenFields(id);\n\n // Process result address components\n if (place.address_components) {\n // Delay is related to the fact that Safari does not fill input fields while an animation is going on\n this.handleSafariProcess(() => {\n // Trying to find regex due to the fact that components of street address differ based on country that address belongs to\n const streetRegexMatch = place.adr_address ? place.adr_address.match(/(.*?)<\\/span>/) : false;\n\n if (streetRegexMatch && streetRegexMatch[1]) {\n let streetAddressValue = htmlDecode(streetRegexMatch[1]);\n // Calculate relativity before prepending place information to the Street Address\n const relativity = this.handleRelativity(place.name, streetAddressValue);\n if (relativity < 0.5) streetAddressValue = `${place.name}, ${streetAddressValue}`;\n // If we can use the place name, then be it since it looks more verbose\n else if (place.name.length >= streetAddressValue) streetAddressValue = place.name;\n\n this.setAddressFieldValue(id, 'street', streetAddressValue);\n } else {\n this.setAddressFieldValue(id, 'street', place.name);\n }\n\n // Try to find address line 2 from google's complete address\n const extendedAddressRegexMatch = place.adr_address ? place.adr_address.match(/(.*?)<\\/span>/) : false;\n if (extendedAddressRegexMatch && extendedAddressRegexMatch[1]) {\n this.setAddressFieldValue(id, 'street2', htmlDecode(extendedAddressRegexMatch[1]));\n }\n\n this.handleAddressComponents(id, place.address_components);\n this.validateInputsAgain(id);\n });\n } else if (place.name) {\n // New geocoder\n const geocoder = new this.GeocoderAPI();\n\n // Check given streen address with geocoding and use its result if it is found; otherwise return the error\n const geocoderPromise = new Promise((resolve, reject) => geocoder.geocode({ address: place.name }, (result, status) => {\n if (status === 'OK') {\n return resolve(result);\n }\n\n reject(status);\n }));\n\n // In case geocoder retuns result, run this function with address again; otherwise fill address line 1 with written text in search\n geocoderPromise.then(result => this.handleGeocodingResult(id, result[0]))\n .catch(() => {\n this.handleSafariProcess(() => {\n this.setAddressFieldValue(id, 'street', place.name);\n });\n });\n }\n }\n\n validateInputsAgain(id) {\n // Current validation method is being triggered when an option has been chosen and before its components are filled\n // We need to validate that input after components took their place\n const { cardContainer } = this.getQuestionCard(id);\n const fieldsToCheck = cardContainer.querySelectorAll('*[class*=\"validate\"]');\n fieldsToCheck.forEach(field => {\n if (field.validateInput) {\n field.validateInput();\n }\n });\n }\n\n handleRelativity(place, address) {\n if (place === address) return 1;\n const nameArr = place.split(' ');\n let relativity = 0;\n nameArr.forEach(name => address.indexOf(name) !== -1 && relativity++);\n return relativity / nameArr.length;\n }\n\n handleSafariProcess(callback, timeout = 450) {\n if (this.isSafari) {\n return setTimeout(callback, timeout);\n }\n return callback();\n }\n\n handleAddressComponents(id, addressComponents) {\n addressComponents.forEach(addressComponent => {\n const addressTypes = addressComponent.types;\n\n // Process only defined address types\n if (!addressTypes || !addressTypes[0] || !this.addressTypeSuffixMap[addressComponent.types[0]]) return;\n this.setAddressFieldValue(id, addressComponent.types[0], addressComponent.long_name);\n });\n\n this.adaptCityState(id, addressComponents);\n }\n\n get googleMapsAPI() {\n return global.google && global.google.maps;\n }\n\n get placesAPI() {\n return this.googleMapsAPI && this.googleMapsAPI.places;\n }\n\n get AutocompleteAPI() {\n return this.placesAPI && this.placesAPI.Autocomplete;\n }\n\n get GeocoderAPI() {\n return this.googleMapsAPI && this.googleMapsAPI.Geocoder;\n }\n\n get PositionAPI() {\n return this.googleMapsAPI && this.googleMapsAPI.LatLng;\n }\n\n get searchFields() {\n const searchFields = global.document.querySelectorAll('.form-address-search');\n\n return searchFields.length !== 0 ? Object.values(searchFields).filter(field => field.tagName && field.tagName === 'INPUT' && field.getAttribute('data-qid')) : [];\n }\n\n get isSafari() {\n return global.navigator.vendor && global.navigator.vendor.indexOf('Apple') > -1 && global.navigator.userAgent && !global.navigator.userAgent.match('CriOS');\n }\n\n get isFullScreen() {\n return hasClass(document.body, 'isFullScreen');\n }\n\n get fullScreenContainer() {\n const fullScreenContainer = document.querySelector('#jfQuestion-proxy');\n\n return fullScreenContainer ? fullScreenContainer : {};\n }\n\n getGeolocationField(id) {\n return document.querySelector(`#cid_${id} .jfAddress-geolocation`);\n }\n\n getClearField(id) {\n return document.querySelector(`#cid_${id} .jfAddress-clear`);\n }\n\n getQuestionCard(id) {\n return this.cards.filter(({ question }) => question.id === id)[0] || {};\n }\n\n getQuestionContainer(id) {\n const cardContainer = this.isFullScreen ? this.fullScreenContainer : this.getQuestionCard(id).cardContainer;\n\n return cardContainer && cardContainer.querySelector && cardContainer.querySelector('.jfQuestion-fields');\n }\n\n init() {\n // Construct autocomplete fields\n this.autocompleteFields = this.searchFields.map(field => {\n const id = field.getAttribute('data-qid').match(/\\d+/)[0];\n\n return {\n id,\n field,\n clearField: this.getClearField(id),\n autocomplete: new this.AutocompleteAPI(field),\n geolocationField: this.getGeolocationField(id)\n };\n });\n\n // Do necessary event bindings over autocomplete search fields\n this.bindAutocompleteEvents();\n }\n\n convertToClean() {\n this.searchFields.forEach(field => {\n const id = field.getAttribute('data-qid').match(/\\d+/)[0];\n const container = this.getQuestionContainer(id);\n\n // Remove unnecessary classes\n if (container && container.classList) {\n container.classList.remove('jfAddress-clean');\n container.classList.remove('jfAddress-doubleColumn');\n }\n\n // Remove search field\n if (field && field.remove) {\n field.remove();\n }\n });\n }\n\n createPacAdditionItem(pacContainer, cardContainer, id) {\n // Create main container div\n const appendDiv = global.document.createElement('div');\n appendDiv.className = 'pac-item pac-item-ghost pac-item-appended';\n\n // Marker container\n const markerSpan = global.document.createElement('span');\n markerSpan.className = 'pac-icon pac-item-ghost pac-icon-marker';\n\n // Label container\n const querySpan = global.document.createElement('span');\n querySpan.className = 'pac-item-query pac-item-ghost';\n querySpan.innerHTML = 'Enter Manually';\n\n // Append both marker and label before returning\n appendDiv.appendChild(markerSpan);\n appendDiv.appendChild(querySpan);\n\n // Bind event to open address question container manually\n appendDiv.addEventListener('mousedown', e => {\n if (e.target && e.target.classList.contains('pac-item-ghost')) {\n e.stopImmediatePropagation();\n\n const cleanContainer = cardContainer && cardContainer.querySelector('.jfAddress-clean');\n\n if (cleanContainer) {\n this.setPacContainerState(pacContainer);\n cleanContainer.classList.remove('jfAddress-clean');\n }\n }\n });\n\n return appendDiv;\n }\n\n setAddressFieldValue(id, suffixKey, val) {\n const suffix = this.addressTypeSuffixMap[suffixKey];\n const questionContainer = this.getQuestionContainer(id);\n const field = questionContainer.querySelector(`#input_${id}_${suffix}`);\n\n if (field) {\n field.value = val;\n this.setFieldIsFilledIfHasValue(field);\n\n if (suffixKey === 'postal_code') {\n const formLine = closest(field, '.form-line');\n if (formLine) { triggerEvent(formLine, 'change'); }\n }\n\n if (field.tagName === 'SELECT') {\n const dropdownSearchField = questionContainer.querySelector(`[data-type=\"${suffix}\"] input`);\n if (dropdownSearchField) {\n dropdownSearchField.value = val;\n // Triggering change event manually as it does not trigger with value set\n triggerEvent(field, 'change');\n }\n }\n }\n }\n\n adaptCityState(id, addressComponents) {\n const addressTypes = {\n country: '',\n city: '',\n postalTown: '',\n district: '',\n sublocality: '',\n locality: ''\n };\n const cityField = document.getElementById(`input_${id}_city`);\n\n const addressHasAddressTypes = addressComponents.filter(address => address.types);\n\n addressHasAddressTypes.forEach(address => {\n switch (address.types[0]) {\n case 'country':\n addressTypes[address.types[0]] = address.short_name;\n break;\n case 'postal_town':\n addressTypes.postalTown = address.long_name;\n break;\n case 'administrative_area_level_2':\n addressTypes.city = address.long_name;\n break;\n case 'sublocality_level_1' || 'sublocality':\n addressTypes.sublocality = address.long_name;\n break;\n case 'locality':\n addressTypes.locality = address.long_name;\n break;\n default:\n if (addressTypes.district === '') {\n if (address.types.indexOf('locality') > -1) {\n addressTypes.district = address.long_name;\n } else if (address.types.indexOf('administrative_area_level_3') > -1) {\n addressTypes.district = address.long_name;\n }\n }\n break;\n }\n });\n\n const {\n country, city, postalTown, sublocality, locality\n } = addressTypes;\n let { district } = addressTypes;\n\n if (sublocality !== '' && district === '') {\n district = sublocality;\n }\n\n if (country in this.countrySpecifications) {\n switch (this.countrySpecifications[country]) {\n case 'city':\n if (city !== '') {\n cityField.value = city;\n } else if (district !== '') {\n cityField.value = district;\n }\n break;\n case 'postal_town':\n // Postal town countries should show it in city field\n if (postalTown !== undefined || postalTown !== '') {\n cityField.value = postalTown;\n }\n break;\n case 'locality':\n // Locality countries should show it in city field\n if (locality !== undefined || locality !== '') {\n cityField.value = locality;\n }\n break;\n default:\n break;\n }\n } else if (district !== '' && cityField.value === '') {\n cityField.value = district;\n }\n this.setFieldIsFilledIfHasValue(cityField);\n }\n}\n\nexport default Address;\n","// Slider Rocks!\nimport { closest } from '@jotforminc/utils';\nimport {\n addClass, removeClass, map, triggerEvent, forEach\n} from './utils';\n\nclass Slider {\n constructor(props) {\n if (!props.container) {\n throw new Error('Container not found');\n }\n this.setRange = this.setRange.bind(this);\n this.setPointerValues = this.setPointerValues.bind(this);\n this.handleMoveStart = this.handleMoveStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleMoveEnd = this.handleMoveEnd.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.setFilled = this.setFilled.bind(this);\n this.moveNextStep = this.moveNextStep.bind(this);\n this.movePreviousStep = this.movePreviousStep.bind(this);\n this.makeInitialSelection = this.makeInitialSelection.bind(this);\n this.options = this.getDefaultOptions();\n if (props.options && typeof props.options === typeof {}) {\n this.options = Object.assign(this.options, props.options);\n }\n this.props = props;\n this.container = props.container;\n this.init();\n }\n\n getDefaultOptions() {\n return {\n rowSelector: '.jfMatrixScale',\n labelSelector: '.jfMatrixScale-label',\n rangeSelector: '.jfMatrixScale-item',\n scaleSeperatorSelector: '.scaleSep',\n visibleClass: 'isVisible',\n transitionClass: 'hasTransition',\n filledClass: 'isFilled',\n scaleListItemSelector: '.jfMatrixInputList-item'\n };\n }\n\n getPixelByPercent() {\n const { sliderRow } = this;\n const { width } = sliderRow.getBoundingClientRect();\n return (width / 100);\n }\n\n setRange(percent, isInit) {\n const { container, selectedRangeArea, allScales } = this;\n const { visibleClass, scaleSeperatorSelector, labelSelector } = this.options;\n\n // update styles\n selectedRangeArea.style.width = `${percent}%`;\n\n // get nearest scale seperator\n const nearest = this.getNearestScale(allScales, percent);\n // find new label\n const newLabel = container.querySelector(`${labelSelector}[data-scale=\"${nearest}\"]`);\n const newLabelScale = newLabel.getAttribute('data-scale');\n const scaleSeperator = container.querySelector(`${scaleSeperatorSelector}[data-scale=\"${newLabelScale}\"]`);\n const input = scaleSeperator.querySelector('input');\n // do not check the slider inputs initially, if they are required. #1742342\n if (input && (!isInit || container.dataset.required === 'No')) {\n input.checked = true;\n const ID = input.getAttribute('id');\n const inputs = container.querySelectorAll('input');\n forEach(inputs, el => {\n if (el.getAttribute('id') !== ID) {\n el.checked = false; // eslint-disable-line\n }\n });\n\n const formLine = closest(input, '.form-line');\n if (formLine) { triggerEvent(formLine, 'change'); }\n }\n const visibleLabel = this.getVisibleLabel();\n if (visibleLabel !== newLabel) { // prevent unnecessary update\n removeClass(visibleLabel, visibleClass);\n addClass(newLabel, visibleClass);\n }\n this.currentPercentage = percent;\n const questionLabel = document.querySelector(`#label_${this.props.qid}`).innerText;\n const visibleLabelAlt = container.querySelector(`${labelSelector}[data-scale=\"${nearest}\"] img`)?.alt;\n this.sliderButton.setAttribute('aria-valuenow', percent);\n this.sliderButton.setAttribute('aria-valuetext', percent + ' percent of ' + questionLabel + (visibleLabelAlt ? ' / ' + visibleLabelAlt : ''));\n }\n\n getVisibleLabel() {\n const { container } = this;\n const { labelSelector, visibleClass } = this.options;\n return container.querySelector(`${labelSelector}.${visibleClass}`);\n }\n\n setPointerValues(startX = 0) {\n const { selectedRangeArea } = this;\n const pixelByPercent = this.getPixelByPercent();\n this.startX = startX;\n this.positionX = startX;\n this.currentPercentage = this.currentPercentage || selectedRangeArea.offsetWidth / pixelByPercent;\n }\n\n isTouchEvent(event) {\n return !!(event.touches && event.touches[0]);\n }\n\n getNearestScale(allScales, percent) {\n return allScales.reduce((prev, curr) => {\n return (Math.abs(curr - percent) < Math.abs(prev - percent) ? curr : prev);\n });\n }\n\n // makes initial selections\n makeInitialSelection() {\n // make initial selection #fixes 1416490\n try {\n const initialWith = this.selectedRangeArea.style.width;\n if (initialWith) {\n const parsedWidth = parseInt(initialWith, 10);\n this.lastSelection = parsedWidth;\n this.setRange(parsedWidth, true);\n // do not add filledClass to the sliders initially, if they are required. #1742342\n if (this.container.dataset.required === 'No') {\n this.setFilled();\n }\n }\n } catch (e) {\n // console.log('initial selection not available');\n }\n }\n\n handleMove(event) {\n const { clientX } = this.isTouchEvent(event) ? event.touches[0] : event;\n const { positionX, currentPercentage } = this;\n // const { filledClass } = this.\n const pixelByPercent = this.getPixelByPercent();\n const currentPx = clientX - positionX;\n this.positionX = clientX;\n const currentPercent = currentPx / pixelByPercent;\n let value = currentPercentage + currentPercent;\n if (value <= 0) { value = 0; } else if (value >= 100) { value = 100; }\n this.setRange(value);\n }\n\n handleMoveEnd() {\n const { currentPercentage, allScales, selectedRangeArea } = this;\n const { transitionClass } = this.options;\n const nearest = parseFloat(this.getNearestScale(allScales, currentPercentage));\n selectedRangeArea.style.width = `${nearest}%`;\n if ((nearest !== this.lastSelection)) {\n // fire on change event if specified\n if (this.props.onChange && typeof this.props.onChange === 'function') {\n this.props.onChange({\n value: nearest\n });\n }\n addClass(selectedRangeArea, transitionClass);\n this.setRange(nearest);\n this.lastSelection = nearest;\n }\n\n // remove move event listenrs\n global.document.body.removeEventListener('mousemove', this.handleMove);\n global.document.body.removeEventListener('touchmove', this.handleMove);\n\n // remove end listeners\n global.document.body.removeEventListener('mouseup', this.handleMoveEnd);\n global.document.body.removeEventListener('touchend', this.handleMoveEnd);\n\n // Ticket ID: 1514952\n // We need to trigger click function after all events, because condition checking works in body's click event listener\n this.sliderRow.click();\n }\n\n setFilled() {\n const { selectedRangeArea } = this;\n const { scaleListItemSelector, filledClass } = this.options;\n const scaleListItem = closest(selectedRangeArea, scaleListItemSelector);\n\n addClass(scaleListItem, filledClass);\n }\n\n handleMoveStart(event) {\n const { selectedRangeArea, sliderRow } = this;\n const { transitionClass } = this.options;\n const { left } = sliderRow.getBoundingClientRect();\n const { clientX } = this.isTouchEvent(event) ? event.touches[0] : event;\n const startPercent = (clientX - left) / this.getPixelByPercent();\n this.setRange(startPercent);\n this.setFilled();\n removeClass(selectedRangeArea, transitionClass);\n this.setPointerValues(clientX);\n\n // add move event listeners\n global.document.body.addEventListener('mousemove', this.handleMove);\n global.document.body.addEventListener('touchmove', this.handleMove);\n\n // add end event listeners\n global.document.body.addEventListener('mouseup', this.handleMoveEnd);\n global.document.body.addEventListener('touchend', this.handleMoveEnd);\n\n // todo :: add cancel listeners\n }\n\n moveNextStep() {\n const stepSize = this.allScales[1] - this.allScales[0];\n if (this.currentPercentage + stepSize <= 100) {\n this.setRange(this.currentPercentage + stepSize);\n } else {\n this.setRange(100);\n }\n }\n\n movePreviousStep() {\n const stepSize = this.allScales[1] - this.allScales[0];\n if (this.currentPercentage - stepSize >= 0) {\n this.setRange(this.currentPercentage - stepSize);\n } else {\n this.setRange(0);\n }\n }\n\n handleKeyDown(event) {\n if (event.keyCode === 39) { // Right arrow\n event.stopPropagation();\n this.moveNextStep();\n } else if (event.keyCode === 37) { // Left arrow\n event.stopPropagation();\n this.movePreviousStep();\n }\n }\n\n init() {\n const { rowSelector, labelSelector, rangeSelector } = this.options;\n const { container } = this;\n this.sliderRow = container.querySelector(rowSelector);\n this.allScales = map(container.querySelectorAll(labelSelector), e => { return (e.getAttribute('data-scale')); });\n this.selectedRangeArea = container.querySelector(rangeSelector);\n this.sliderButton = this.selectedRangeArea.querySelector('button');\n setTimeout(this.makeInitialSelection, 100); // conflict with updateMatrixInputs\n // Accessibility attributes\n this.sliderButton.setAttribute('role', 'slider');\n this.sliderButton.setAttribute('aria-valuemax', this.allScales[this.allScales.length - 1]);\n this.sliderButton.setAttribute('aria-valuemin', this.allScales[0]);\n // Bind start events\n this.sliderRow.addEventListener('mousedown', this.handleMoveStart);\n this.sliderRow.addEventListener('touchstart', this.handleMoveStart);\n this.sliderButton.addEventListener('keydown', this.handleKeyDown);\n }\n}\n\nexport default Slider;\n","import { closest } from '@jotforminc/utils';\n\nimport {\n addClass, removeClass, forEach, map, hasClass\n} from './utils';\nimport Slider from './slider';\n\nclass Matrix {\n constructor(params) {\n this.init = this.init.bind(this);\n this.handlePopulateData = this.handlePopulateData.bind(this);\n this.selectNextQuestion = params.selectNextQuestion;\n this.isFeedbackEmbedButton = params.isFeedbackEmbedButton;\n this.question = params.question;\n this.sliders = [];\n this.matrixContainer = global.document.querySelector(`#matrix_${this.question.id}`);\n this.dataType = this.matrixContainer.getAttribute('data-type');\n this.init();\n }\n\n handlePopulateData(event) {\n try {\n const { featureSet, items } = event.detail;\n const useDcols = featureSet.includes('useDcols');\n\n switch (this.dataType) {\n case 'Slider':\n case 'Emoji Slider':\n forEach(items, (row, i) => {\n let percentage = 0;\n if (useDcols) {\n const filledIndex = row.reduce((prev, curr, currIndex) => {\n if (curr !== '') return currIndex;\n return prev;\n }, -1);\n percentage = (filledIndex / (items.length - 1)) * 100;\n } else {\n const sliderInputs = this.sliders[i].slider.container.querySelectorAll('input[type=radio]');\n forEach(sliderInputs, (el, index) => {\n if (el.value === row) {\n percentage = (index / (sliderInputs.length - 1)) * 100;\n }\n });\n }\n this.sliders[i].slider.setRange(percentage);\n this.sliders[i].slider.props.onChange({ value: percentage });\n });\n break;\n default:\n }\n } catch (err) {\n console.error('Error while populating matrix data', { event });\n }\n }\n\n init() {\n this.matrixContainer.addEventListener('populateData', this.handlePopulateData);\n const { dataType, matrixContainer, question } = this;\n switch (dataType) {\n case 'Slider':\n case 'Emoji Slider':\n this.handleSliders(matrixContainer);\n break;\n case 'Yes No':\n this.handleToggles(question, matrixContainer);\n break;\n default:\n break;\n }\n }\n\n handleToggles(question, matrixContainer) {\n forEach(matrixContainer.querySelectorAll('.forMobile .jfMatrix-choiceWrapper'), el => {\n this.initMobileYesNoButtons(matrixContainer, el);\n });\n // forEach(matrixContainer.querySelectorAll('.jfYesno.forMatrix.form-matrix-values'), (el) => {\n // el.addEventListener('keypress', (e) => {\n // if (e.keyCode === 32) {\n // e.target.click();\n // }\n // });\n // el.addEventListener('click', (e) => {\n // e.target.closest('.js-matrixRow').querySelectorAll('.jfYesno.forMatrix.form-matrix-values').forEach(yesno => yesno.setAttribute('aria-checked', 'false'));\n // e.target.setAttribute('aria-checked', 'true');\n // });\n // });\n }\n\n handleSliders(matrixContainer) {\n // lets update mobile versions on desktop change\n const onSliderValueChange = (sliderIndex, value) => {\n const slider = this.sliders[sliderIndex];\n const rowCount = this.sliders.length / 2;\n const { isDesktopSlider } = slider;\n const equalSliderIndex = isDesktopSlider ? (sliderIndex + rowCount) : (sliderIndex - rowCount);\n const equalSlider = this.sliders[equalSliderIndex];\n equalSlider.slider.setRange(value);\n equalSlider.slider.setFilled();\n };\n const scaleItems = matrixContainer.querySelectorAll('.jfMatrixInputList-item');\n forEach(scaleItems, (scaleItem, index) => {\n const closestMatrixParent = closest(scaleItem, '.jfMatrix');\n const isDesktopSlider = hasClass(closestMatrixParent, 'forDesktop');\n const slider = new Slider({\n qid: this?.question?.id,\n container: scaleItem,\n onChange: event => onSliderValueChange(index, event.value)\n });\n const item = {\n isDesktopSlider,\n slider,\n index\n };\n this.sliders.push(item);\n });\n this.initMobileSliderButtons(matrixContainer);\n }\n\n // TODO :: refactor this shitty function!\n initMobileSliderButtons(matrixContainer) {\n const mobileSlider = matrixContainer.querySelector('.slider');\n const mobileNext = matrixContainer.querySelector('.jfMobileMatrix-nextRow');\n const mobilePrev = matrixContainer.querySelector('.jfMobileMatrix-prevRow');\n const rowList = map(matrixContainer.querySelectorAll('.jfMobileMatrix-row'), q => q);\n const bulletList = map(matrixContainer.querySelectorAll('.jfMobileMatrix-columnDot'), q => q);\n const rowLength = rowList.length;\n let currentRow = matrixContainer.querySelector('.jfMobileMatrix-row.isSelected');\n let currIndex = rowList.findIndex(q => q === currentRow);\n if (currIndex !== -1) {\n if (bulletList[currIndex]) {\n addClass(bulletList[currIndex], 'isActive');\n bulletList[currIndex].removeAttribute('aria-hidden');\n }\n }\n\n const mobileItems = map(mobileSlider.querySelectorAll('.jfMatrixInputList-item'), q => q);\n\n mobileNext.addEventListener('click', () => {\n const newIndex = currIndex + 1;\n if (newIndex !== rowLength) {\n const newEl = rowList[newIndex];\n addClass(newEl, 'isSelected');\n removeClass(currentRow, 'isSelected');\n if (newIndex > 0) {\n mobilePrev.disabled = false;\n }\n if (newIndex + 1 === rowLength) { mobileNext.disabled = true; }\n\n removeClass(bulletList[currIndex], 'isActive');\n bulletList[currIndex].setAttribute('aria-hidden', 'true');\n addClass(bulletList[newIndex], 'isActive');\n bulletList[newIndex].removeAttribute('aria-hidden');\n\n removeClass(mobileItems[newIndex], 'isHidden');\n mobileItems[newIndex].removeAttribute('aria-hidden');\n addClass(mobileItems[currIndex], 'isHidden');\n mobileItems[currIndex].setAttribute('aria-hidden', 'true');\n //\n currentRow = newEl;\n currIndex = newIndex;\n }\n });\n mobilePrev.addEventListener('click', () => {\n if (currIndex !== 0) {\n const newIndex = currIndex - 1;\n const newEl = rowList[newIndex];\n addClass(newEl, 'isSelected');\n removeClass(currentRow, 'isSelected');\n if (newIndex === 0) { mobilePrev.disabled = true; }\n if (newIndex >= rowLength) { mobileNext.disabled = true; }\n if (newIndex < rowLength - 1) {\n mobileNext.disabled = false;\n }\n removeClass(mobileItems[newIndex], 'isHidden');\n mobileItems[newIndex].removeAttribute('aria-hidden');\n addClass(mobileItems[currIndex], 'isHidden');\n mobileItems[currIndex].setAttribute('aria-hidden', 'true');\n\n removeClass(bulletList[currIndex], 'isActive');\n bulletList[currIndex].setAttribute('aria-hidden', 'true');\n addClass(bulletList[newIndex], 'isActive');\n bulletList[newIndex].removeAttribute('aria-hidden');\n //\n currentRow = newEl;\n currIndex = newIndex;\n }\n });\n }\n\n // refactor this shit\n initMobileYesNoButtons(matrix, element) {\n const yesSelection = element.querySelector('.jsMatrix-mobileYes');\n const noSelection = element.querySelector('.jsMatrix-mobileNo');\n let lastStatus;\n const elementCount = matrix.querySelectorAll('.forMobile .jfMatrix-choiceWrapper').length;\n const changeStatus = status => {\n const activeOrder = parseInt(matrix.querySelector('.forMobile .jfMatrix-choiceWrapper.isActive').getAttribute('data-order'), 10);\n if (status !== lastStatus) {\n lastStatus = status;\n if (activeOrder < elementCount - 1) {\n setTimeout(() => {\n matrix.querySelector('.forMobile .jfMobileMatrix-nextRow.forMatrixNext').click();\n }, 300);\n }\n\n const isLastElement = activeOrder + 1 === elementCount;\n // Auto-select next question if element selection completed\n if (isLastElement && this.isFeedbackEmbedButton) {\n clearTimeout(this.autoNextTimer);\n this.autoNextTimer = setTimeout(() => {\n this.selectNextQuestion();\n }, 500);\n }\n }\n };\n yesSelection.addEventListener('change', () => { changeStatus(true); });\n noSelection.addEventListener('change', () => { changeStatus(false); });\n }\n}\n\nexport default Matrix;\n","/* eslint-disable */\nimport tlds from 'tlds';\n\nexport const TLDs = tlds.join('|');\nexport const EMAIL_PATTERN = new RegExp(`^[a-z0-9_\\`'\\\\-\\\\+\\\\&+]+(\\\\.[_a-z0-9'\\\\-\\\\+]+)*@([_a-z0-9\\\\-]+\\\\.)+([a-z]{2}|${TLDs})$`, 'i');\n","// Clear translation visibility classes\nexport const clearTranslationMarkup = () => {\n // Get elements with the class\n const elements = global.document.body.querySelectorAll('.js-translationBlocker');\n\n // Get direct parents of translation texts\n const textParents = global.document.body.querySelectorAll('.js-translationText');\n\n // Get select parents of translation texts\n const selectParents = global.document.body.querySelectorAll('.js-translationSelect');\n\n // Convert node list to array and remove class from each element\n Object.values(elements).forEach(el => el && el.classList && el.classList.remove('js-translationBlocker'));\n // Object.values(textParents).forEach(el => el && el.classList && el.classList.remove('js-translationText'));\n Object.values(textParents).forEach(el => {\n // eslint-disable-next-line no-unused-expressions\n if (el && el.classList) {\n const elc = el;\n elc.style.outline = 'none';\n elc.style.position = 'initial';\n elc.style.zIndex = 'initial';\n el.classList.remove('js-translationText');\n }\n });\n Object.values(selectParents).forEach(el => {\n // Return if not a valid dom element\n if (!el || !el.classList) {\n return false;\n }\n\n // Get original size and multiple values of element if there were exist\n const originalSize = el.getAttribute('data-tempsize');\n const originalMultiple = el.getAttribute('data-tempmultiple');\n\n // Remove temporary attributes\n el.removeAttribute('data-tempsize');\n el.removeAttribute('data-tempmultiple');\n\n // If any one of them was setted then add them again; otherwise remove them\n if (originalSize !== 'null') {\n el.setAttribute('size', originalSize);\n } else {\n el.removeAttribute('size');\n }\n\n if (originalMultiple !== 'null') {\n el.setAttribute('multiple', originalMultiple);\n } else {\n el.removeAttribute('multiple');\n }\n\n // Lastly remove translation class\n el.classList.remove('js-translationSelect');\n });\n};\n\nexport const addTranslationMarkup = (el, initial = true) => {\n // If element is body or global then no need to process further\n if (el === global || el === global.document || el === global.document.body) return true;\n\n // If element or style belongs to it is undefined then terminate the process\n if (!el) return false;\n\n // Put text class at initial call\n if (initial) {\n el.parentElement.classList.add('js-translationText');\n\n const parent = el.parentElement;\n parent.style.outline = '3px solid #F00';\n parent.style.position = 'relative';\n parent.style.zIndex = '1000';\n }\n\n // Process if style is defined\n if (el.style) {\n // Get current style values of the element\n const currentStyle = global.getComputedStyle(el);\n\n // Check if one of the invisibility requirements it satisfied\n if (currentStyle.display === 'none' || currentStyle.opacity === '0' || currentStyle.visibility === 'hidden' || currentStyle.maxHeight === '0px') {\n // Add visibility class of translation\n el.classList.add('js-translationBlocker');\n }\n }\n\n if (el.tagName === 'SELECT') { // Handle select to show all options\n // Keep size and multiple attributes temporarily\n el.setAttribute('data-tempsize', el.getAttribute('size'));\n el.setAttribute('data-tempmultiple', el.getAttribute('multiple'));\n\n // Add size attribute temporarly to show all options\n el.setAttribute('size', el.length);\n el.setAttribute('multiple', 'multiple');\n\n // Add translation class to set height and mark select as dirty to clear later\n el.classList.add('js-translationSelect');\n }\n\n return addTranslationMarkup(el.parentElement, false);\n};\n\n// Finds elements that contains one of the texts passed\nexport const searchTextInDOM = (el, texts) => {\n // No need to parse the dom if it belongs to one of the given tags\n if (['SCRIPT', 'SVG', 'IMG', 'STYLE', 'INPUT', 'PATH'].indexOf(el.tagName) !== -1) {\n return null;\n }\n\n // If classList is defined for given element\n if (el.classList && el.classList.value) {\n // Define classes that we do not want to search\n // const classesToBeFiltered = [/hideOnDesktop/, /hide-on-builder/, /tabMenu/, /toggleText-mobile/, /hide-on-crawler/];\n const classesToBeFiltered = [/hideOnDesktop/, /toggleText-mobile/, /hide-on-crawler/];\n\n // Check if classList contains one of the unwanted classes\n if (classesToBeFiltered.some(rgx => rgx.test(el.classList.value))) {\n return null;\n }\n }\n\n // If still a child exist then parse tree deeper\n if (el.childNodes && el.childNodes.length !== 0) {\n return Object.values(el.childNodes) // Convert nodeList to array\n .filter(child => typeof child === 'object') // Remove numbers and functions to take only nodes(objects)\n .map(child => searchTextInDOM(child, texts)) // Call every node element with parseTree (recursive)\n .reduce((prev, curr) => (curr !== null ? prev.concat(curr) : prev), []); // Reduce results to one array\n }\n\n // Check if text content is one of the strings we are searching\n if (el.textContent && texts.indexOf(el.textContent.trim()) > -1) {\n return el;\n }\n\n return null;\n};\n\n// Checks if element is in viewport\nexport const isInViewport = el => {\n if (el === null) {\n return false;\n }\n if (typeof el.offsetTop === 'undefined') {\n return isInViewport(el.parentNode);\n }\n\n // Get recteangle information of element\n const elementRect = el.getBoundingClientRect();\n\n // Get window height and width\n const windowHeight = global.window.innerHeight;\n const windowWidth = global.window.innerWidth;\n\n // Get scrolling x and y\n const scrollX = global.window.pageXOffset;\n const scrollY = global.window.pageYOffset;\n\n // eslint-disable-next-line max-len\n if (elementRect.top + elementRect.height < windowHeight + scrollY && elementRect.left + elementRect.width < windowWidth + scrollX && elementRect.top + elementRect.height > 0 && elementRect.left + elementRect.width > 0) {\n return true;\n // eslint-disable-next-line no-else-return\n } else {\n // eslint-disable-next-line no-lonely-if\n if (global.window.casperJsTest) {\n el.scrollIntoView({ behavior: 'auto', block: 'center' });\n return true;\n // eslint-disable-next-line no-else-return\n } else {\n return false;\n }\n }\n};\n\n// Get text contents of dom elements\nexport const getTextContents = elements => elements.map(el => el.textContent.trim());\n","import qs from 'qs';\nimport Axios from 'axios';\nimport Polyglot from 'node-polyglot';\nimport domtoimage from 'dom-to-image-more';\nimport isUndefined from 'lodash/isUndefined';\n\nimport {\n isInViewport,\n getTextContents,\n searchTextInDOM,\n addTranslationMarkup,\n clearTranslationMarkup\n} from './domHelper';\n\nclass Translation {\n constructor() {\n // Default value settings\n this.defaultLang = 'en-US';\n this.processedStrings = {};\n this.usedTranslations = [];\n this.untranslatedStrings = {};\n this.currentLocale = this.defaultLang;\n this.filterClasses = [\n 'ace_editor',\n 'ace-solarized-dark',\n 'ace_dark',\n 'input-group',\n 'isAvatar',\n 'jfHeader-userAvatar',\n 'themesListItem-img',\n 'themesListItem-imgAspect',\n 'prevUploads-list',\n 'card-leftSide',\n 'jfQuestion-fields-contentVisible',\n 'appBox-image'\n ];\n this.filterTags = [\n 'IFRAME',\n 'IMG'\n ];\n this.dictionaries = {\n [this.defaultLang]: new Polyglot({\n phrases: {},\n locale: this.defaultLang.split('-')[0],\n allowMissing: true\n })\n };\n\n this.interpolation = { templateSyntax: /\\{.\\}*\\w+\\}/g, eraseTemplate: /\\{|\\}/g };\n // Variables related to delayed submitNotTranslated function\n this.callTimer = null;\n\n // Number of elements to be processed and send to server at once\n this.processLimit = 1;\n\n // Debounce time for process function\n this.debounceTime = 1000;\n\n // Function binds\n this.setLocale = this.setLocale.bind(this);\n this.resetProcess = this.resetProcess.bind(this);\n this.limitElements = this.limitElements.bind(this);\n this.orderElements = this.orderElements.bind(this);\n this.takeScreenShot = this.takeScreenShot.bind(this);\n this.debounceProcess = this.debounceProcess.bind(this);\n this.handleMissingKey = this.handleMissingKey.bind(this);\n this.submitNotTranslated = this.submitNotTranslated.bind(this);\n this.processNotTranslated = this.processNotTranslated.bind(this);\n this.updateProcessedStrings = this.updateProcessedStrings.bind(this);\n this.rotateUntranslatedStrings = this.rotateUntranslatedStrings.bind(this);\n this.filterUntranslatedStrings = this.filterUntranslatedStrings.bind(this);\n this.translate = this.translate.bind(this);\n this.initServerSideDictionary = this.initServerSideDictionary.bind(this);\n }\n\n // Getter for getting untranslated string list of current language\n get currentLocaleUntranslated() {\n return Array.isArray(this.untranslatedStrings[this.currentLocale]) ? this.untranslatedStrings[this.currentLocale] : [];\n }\n\n // Get processed elements in this session\n get currentProcessed() {\n return Array.isArray(this.processedStrings[this.currentLocale]) ? this.processedStrings[this.currentLocale] : [];\n }\n\n // Get single array that contains all untranslated strings\n get allUntranslatedStrings() {\n return Object.keys(this.untranslatedStrings).reduce(\n (prev, curr) => prev.concat(this.untranslatedStrings[curr]),\n []\n );\n }\n\n initServerSideDictionary(langCode, dictionary) {\n this.add(langCode, dictionary);\n }\n\n // Sets current locale and fetch untranslated list if it still does not exist\n setLocale(code) {\n // Set locale of objectcurrentLocale\n this.currentLocale = code;\n }\n\n // Update untranslatedStrings array by removing sended strings\n filterUntranslatedStrings(langCode, strings) {\n this.untranslatedStrings = {\n\n ...this.untranslatedStrings,\n [langCode]: this.untranslatedStrings[langCode].filter(str => strings.indexOf(str) === -1)\n };\n }\n\n // Update unprocessedStrings by adding sended strings\n updateProcessedStrings(langCode, strings) {\n // Add processed words to processed list\n this.processedStrings = {\n\n ...this.processedStrings,\n [langCode]: this.processedStrings[langCode] ? this.processedStrings[langCode].concat(strings) : strings\n };\n }\n\n // Add sended str to the untranslatedStrIngs array of current locale\n addUntranslatedString(str) {\n this.untranslatedStrings = {\n\n ...this.untranslatedStrings,\n [this.currentLocale]: this.currentLocaleUntranslated.concat([str])\n };\n }\n\n // Move given strings to the end of their respective array\n rotateUntranslatedStrings(strings) {\n // For each key filter given strings and append found ones to the end\n this.untranslatedStrings = Object.keys(this.untranslatedStrings).reduce((prev, curr) => {\n // Get matched strings array of given locale\n const foundStrings = this.untranslatedStrings[curr].filter(str => strings.indexOf(str) > -1);\n\n // First filter given strings and then append them afterward\n return {\n\n ...prev,\n [curr]: this.untranslatedStrings[curr].filter(str => foundStrings.indexOf(str) < 0).concat(foundStrings)\n };\n }, {});\n }\n\n // Order given dom elements respect to their position as strings in untranslated array\n orderElements(elements) {\n // No need to order if only one is found\n if (elements.length <= 1) {\n return elements;\n }\n\n // Get strings of elements\n const textContents = getTextContents(elements);\n\n // Order elements by looking their string positions\n return this.allUntranslatedStrings.filter(str => textContents.indexOf(str) > -1).map(str => elements[textContents.indexOf(str)]);\n }\n\n // Initializes locale and the dictionary belongs to it\n add(code = '', dictionary = {}) {\n // Initialize locale\n this.setLocale(code);\n\n if (isUndefined(this.dictionaries[code])) {\n // Add sended dictionary to the current list\n this.dictionaries = {\n\n ...this.dictionaries,\n [code]: new Polyglot({\n phrases: dictionary,\n locale: code.split('-')[0],\n onMissingKey: this.handleMissingKey // This function will be triggered if the text does not exist in translation list\n })\n };\n }\n }\n\n // Translate string using Polyglot api\n translate(str, params) {\n let translated = str;\n if (typeof params === 'object' && Object.keys(params).length) {\n const variables = str.match(this.interpolation.templateSyntax);\n variables?.forEach(strVar => {\n // Remove template string characters and get variable name.\n const variableName = strVar.replace(this.interpolation.eraseTemplate, '');\n // If there is a value for given key, replace the key with given value\n if (params[variableName]) {\n translated = translated.replace(strVar, params[variableName]);\n }\n });\n }\n\n if (!this.usedTranslations.includes(str)) {\n this.usedTranslations.push(str);\n }\n\n return this.dictionaries[this.currentLocale].t(translated, params);\n }\n\n // Handler for texts that does not have translation\n handleMissingKey(str, options) {\n // Further process is limited to certain users\n if (!(global.window.useTranslationScreenshots === true)) {\n return Polyglot.transformPhrase(str, options);\n }\n\n // If it is already in processed list then skip processing it\n if (this.currentProcessed.indexOf(str) > -1) {\n return Polyglot.transformPhrase(str, options);\n }\n\n // Do not try to process if string is empty or only contains space\n if (/^\\s+$/.test(str)) {\n return '';\n }\n\n // Add founded word to untranslated texts if it does not exist\n if (this.currentLocaleUntranslated.indexOf(str) === -1) {\n this.addUntranslatedString(str);\n }\n\n // Call debounced process (works every n seconds where n is this.processLimit)\n this.debounceProcess();\n }\n\n // Delays the call of submitNotTranslated\n debounceProcess() {\n // If a timer is already started\n if (this.callTimer !== null) {\n // Do not process any further\n return;\n }\n\n // Restart timer\n this.callTimer = setTimeout(this.processNotTranslated, this.debounceTime);\n }\n\n // Limits sended dom elements according to the constants set in class\n limitElements(elements) {\n // Limit the elements based on the processLimit variable\n return elements.slice(0, this.processLimit);\n }\n\n // Filters false positive translations by looking their screenshot values\n filterFalseTranslations(strings, screenshots) {\n // Indexes of false screenshots\n const emptyIndexes = screenshots.reduce((prev, curr, index) => { return curr === false ? prev.concat([index]) : prev; }, []);\n\n // Filter strings that matched with false screenshot results\n const filteredStrings = {\n\n ...strings,\n [this.currentLocale]: strings[this.currentLocale].filter((str, index) => emptyIndexes.indexOf(index) < 0)\n };\n\n // Filter false screenshots\n const filteredScreenshots = screenshots.filter((ss, index) => emptyIndexes.indexOf(index) < 0);\n\n // Return filtered strings and screenshots\n return {\n filteredStrings,\n filteredScreenshots\n };\n }\n\n // Prepares object for next translation process\n resetProcess(strings = []) {\n // Clear timer as the submit promises are resolved\n clearTimeout(this.callTimer);\n this.callTimer = null;\n\n // If there is still an untranslated string in the list\n if (this.currentLocaleUntranslated.length !== 0) {\n if (strings.length !== 0) {\n // Rotate strings that tried to be translated before if they still exist\n this.rotateUntranslatedStrings(strings);\n }\n\n // Try to call process again\n this.debounceProcess();\n }\n }\n\n // Filter and screenshot process\n processNotTranslated() {\n // Get body for dom earch\n let node = '';\n if (global.window.casperjsTestDomParam) {\n node = global.document.querySelector(decodeURI(global.window.casperjsTestDomParam));\n /* eslint-disable no-console */\n console.log('global.window.casperjsTestDomParam', global.window.casperjsTestDomParam);\n /* eslint-enable no-console */\n } else {\n node = global.document.body;\n }\n\n // Search all texts accross dom elements to find their containers\n const foundElements = searchTextInDOM(node, this.allUntranslatedStrings);\n\n /* eslint-disable no-console */\n console.log('this.allUntranslatedStrings', this.allUntranslatedStrings);\n console.log('foundElements', foundElements);\n /* eslint-enable no-console */\n\n // If could not found any element then reset the process\n if (!foundElements || foundElements.length === 0) {\n if (global.window.casperJsTest) {\n global.window.captureInProcess = false;\n /* eslint-disable no-console */\n console.log('capture process finished!');\n /* eslint-enable no-console */\n }\n // Clear timer\n return this.resetProcess();\n }\n\n // Order these elements to match with their respected string positions in untranslated strings array\n const orderedFoundElements = this.orderElements(foundElements);\n\n // Limit the number of elements to be processed\n const elementsToProcess = this.limitElements(orderedFoundElements);\n\n // Get strings of found elements\n const foundStrings = getTextContents(elementsToProcess);\n\n // Get only matched strings from unstranslated list\n const untranslatedToPost = Object.keys(this.untranslatedStrings).reduce((prev, curr) => ({\n\n ...prev,\n [curr]: this.untranslatedStrings[curr].filter(str => foundStrings.indexOf(str) > -1)\n }), {});\n\n // Create promise for each screenshot\n const ssPromises = Object.values(elementsToProcess).reduce((prev, curr) => { return typeof curr === 'object' ? prev.concat([this.takeScreenShot(node, curr)]) : prev; }, []);\n\n Promise.all(ssPromises) // After all screenshots taken\n .then(ssDataAll => this.filterFalseTranslations(untranslatedToPost, ssDataAll)) // Filter false positive translations\n // After resolving all of the promises just pass them to the not transalted submission\n .then(({ filteredStrings, filteredScreenshots }) => this.submitNotTranslated(filteredStrings, filteredScreenshots))\n // Reset required variables and do post process jobs to prepare object for next translation after submissions\n .then(submitPromises => Promise.all(submitPromises).then(() => this.resetProcess(foundStrings)));\n }\n\n // Submit not translated strings\n submitNotTranslated(untranslatedToPost, ssDataAll) {\n // Send translation request for each key separately\n return Object.keys(untranslatedToPost).map(langCode => {\n // Get strings to send\n const strings = untranslatedToPost[langCode];\n\n let depthCount = 0;\n let depthLabel = '';\n if (global.window.casperJsTest) {\n if (global.window.depthCount) {\n depthCount = global.window.depthCount;\n }\n if (global.window.depthLabel) {\n depthLabel = global.window.depthLabel;\n }\n }\n\n // No need to send data if one of them is empty or their lengths are not equal to each other\n if (strings.length === 0 || ssDataAll.length === 0 || strings.length !== ssDataAll.length) {\n if (global.window.casperJsTest) {\n global.window.captureInProcess = false;\n /* eslint-disable no-console */\n console.log('capture process finished!');\n /* eslint-enable no-console */\n }\n return false;\n }\n\n Axios.post('/server.php', qs.stringify({\n action: 'submitNotTranslated',\n lang_code: langCode,\n raw: untranslatedToPost[langCode].join('__NOT_TRANSLATED__'),\n autoSuggestion: false,\n depthCount,\n depthLabel,\n screenshot: ssDataAll.join('|||')\n }), {\n 'Content-Type': 'application/x-www-form-urlencoded'\n })\n .then(() => {\n // Move processed strings to processed list\n this.updateProcessedStrings(langCode, untranslatedToPost[langCode]);\n\n // Filter them from untranslated list\n this.filterUntranslatedStrings(langCode, untranslatedToPost[langCode]);\n });\n\n return true;\n });\n }\n\n // Take screenshot of given node if foundElement is visible in that dom\n takeScreenShot(node, foundElement) {\n // Try to make every element visible on found elements\n const visibilityResult = addTranslationMarkup(foundElement);\n if (global.window.casperJsTest) {\n /* eslint-disable no-console */\n console.log('foundElement', foundElement.wholeText);\n /* eslint-enable no-console */\n }\n // Do not need to take ss if element is invisible or not in viewport\n if (!visibilityResult || !isInViewport(foundElement)) {\n /* eslint-disable no-console */\n console.log('the element is invisible or not in viewport');\n /* eslint-enable no-console */\n // Clear visibility\n clearTranslationMarkup();\n\n // Return false due to it does not exist on screen\n return false;\n }\n\n // If the page is loaded by casperjs\n if (global.window.casperJsTest) {\n // Send capture command to casperjs as error\n /* eslint-disable no-console */\n console.log('capture');\n /* eslint-enable no-console */\n\n // Resolve with base64 encoded ss data\n return new Promise(resolve => {\n setTimeout(() => {\n // Take ss data\n const capturedData = global.window.tempCaptureData;\n\n // Clear temporary data\n global.window.tempCaptureData = null;\n\n // Clear visibility classes\n clearTranslationMarkup();\n\n // Return screenshot\n resolve(capturedData);\n }, 2000);\n });\n }\n\n // Take screenshot and return base64 encoded form using visibility css\n return new Promise(resolve => domtoimage.toPng(\n node,\n {\n filter: el => {\n // Return if element is not valid to check\n if (!el || !el.className || !el.tagName || typeof el.className !== 'string') {\n return true;\n }\n\n // If element is one of the tags to be filtered from screenshot\n if (this.filterTags.indexOf(el.tagName) > -1) {\n return false;\n }\n\n const filteredNodeClass = el.className.split(' ').filter(classStr => this.filterClasses.indexOf(classStr) !== -1);\n\n return filteredNodeClass.length === 0;\n }\n }\n )\n .then(dataUrl => {\n // Clear visibility classes\n clearTranslationMarkup();\n\n // Return screenshot\n resolve(dataUrl);\n }));\n }\n}\n\nexport const translation = global.Translations || new Translation();\n\nexport default Translation;\n","export const langCodes = {\n tr: 'tr-TR',\n en: 'en-US',\n es: 'es-ES',\n pt: 'pt-PT',\n fr: 'fr-FR',\n de: 'de-DE',\n it: 'it-IT',\n bg: 'bg-BG',\n sr: 'sr-BA',\n hu: 'hu-HU',\n fi: 'fi-FI',\n ka: 'ka-GE',\n nl: 'nl-NL',\n uk: 'uk-UA',\n ua: 'uk-UA',\n id: 'id-ID',\n ko: 'ko-KR',\n ar: 'ar-AR',\n ja: 'ja-JP',\n pl: 'pl-PL',\n ca: 'ca-ES',\n sv: 'sv-SE',\n no: 'no-NO',\n da: 'da-DA',\n ro: 'ro-RO',\n ru: 'ru-RU',\n zh: 'zh-CN',\n 'zh-CN': 'zh-CN',\n 'zh-HK': 'zh-HK',\n af: 'af-ZA',\n he: 'he-IL'\n};\n\nexport const partialTranslations = {\n 'animal-shelter': path => /(jotform.com|jform.co.kr|jotform.pro)(\\/){1}(animal-shelter){1}/g.test(path)\n};\n\n/**\n * Returns Jotform translation files suffix (locale/locale_SUFFIX.js)\n * @param {string} localeCode - lang-[country] (en-US, pt-BR, en)\n * @return {string} A value from langCodes object.\n */\nexport const getLangFileSuffix = localeCode => {\n const lang = localeCode.split('-')[0];\n return langCodes[localeCode] || langCodes[lang];\n};\n\nexport const DEFAULT_LANGUAGE = 'en-US';\n","import { langCodes } from './constants';\n\nexport const getApp = () => global.window.__jfrouter?.ACTIVE_ALIAS || global.window.location.pathname?.replace(/\\//g, '');\nexport const isProduction = () => global.window?.__jfrouter?.JOTFORM_ENV === 'PRODUCTION' || global.window?.JOTFORM_ENV === 'PRODUCTION';\n\nconst encodedAndProcessedStrings = [];\n\nconst processTranslation = async string => {\n const transformPhrase = string?.replace(/JotForm|Jform/gm, 'Jotform')?.trim();\n const buffer = new TextEncoder('utf-8').encode(transformPhrase);\n const digest = await global.crypto.subtle.digest('SHA-1', buffer);\n return {\n raw: transformPhrase,\n encoded: Array.from(new Uint8Array(digest)).map(x => x.toString(16).padStart(2, '0')).join('')\n };\n};\n\nexport const encodeUsedTranslations = translations => {\n translations.forEach(translation => {\n processTranslation(translation)\n .then(({ encoded, raw }) => {\n if (!global.Translations.encodedAndProcessedStrings.some(q => Object.keys(q).includes(encoded))) {\n global.Translations.encodedAndProcessedStrings.push({\n [encoded]: raw\n });\n }\n })\n .catch(error => console.error(error));\n });\n\n return encodedAndProcessedStrings;\n};\n\nexport const collectionTimer = () => {\n const year = new Date().getFullYear();\n const month = new Date().getMonth();\n const day = new Date().getDate();\n const hours = new Date().getHours();\n const minutes = new Date().getMinutes();\n const now = Date.UTC(year, month, day, hours, minutes, 0);\n const startDate = Date.UTC(year, month, day, hours, 0, 0);\n const endDate = Date.UTC(year, month, day, hours, 15, 0);\n\n // Between HH:00 and HH:15\n return startDate < now && endDate > now;\n};\n\nexport const unlocalizeOriginHref = url => {\n const shortLangCodes = Object.keys(langCodes)?.join('|');\n const exp = RegExp(`(\\\\/)(${shortLangCodes})(\\\\/)`, 'g');\n\n return url?.replace(exp, '/');\n};\n","import axios from 'axios';\nimport isNil from 'lodash/isNil';\n\nimport { encodeUsedTranslations, unlocalizeOriginHref } from './utils';\nimport { partialTranslations, DEFAULT_LANGUAGE } from './constants';\n\nexport const prepareT = translation => function t(str, params = {}) {\n if (!str) {\n return str;\n }\n if (typeof str !== 'string') {\n return str;\n }\n\n if ((global?.window?.location?.href || '')?.includes('rawTranslationTextMode=true')) {\n return str;\n }\n\n let translated = str;\n try {\n if (typeof translation.translate === 'function') {\n translated = translation.translate(str, params);\n } else if (typeof translation.t === 'function') {\n translated = translation.t(str, params);\n }\n if (typeof global?.window?.useTranslationScreenshots !== 'undefined') {\n return str;\n }\n if (translation.currentLocale !== DEFAULT_LANGUAGE && str !== translated && translation.controlMode) {\n return '1';\n }\n } catch (e) {\n console.error('Error on common/translate falling back with original str', e);\n }\n\n const resp = (params.branding21) ? translated.replace(/JotForm/g, 'Jotform') : translated;\n\n return resp;\n};\n\nexport const preapreTtime = translation => function ttime(str, options = {}) {\n const { hour = 'numeric', minute = 'numeric' } = options;\n const formatOptions = { hour, minute };\n let [hourVal, minuteVal] = str.replace('/am|pm/', '').split(':').map(i1 => parseInt(i1, 10)); //eslint-disable-line\n\n if (str.indexOf('pm') > 0) {\n hourVal = hourVal !== 12 ? hourVal + 12 : hourVal;\n } else if (str.indexOf('am') > 0) {\n hourVal = hourVal === 12 ? 0 : hourVal;\n }\n\n const tempDate = new Date();\n tempDate.setHours(hourVal, minuteVal);\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(tempDate.getTime())) {\n return str;\n }\n return tempDate.toLocaleTimeString(translation.currentLocale, formatOptions);\n};\n\nexport const prepareTDate = translation => function tdate(str, options = {}) {\n try {\n const ttime = preapreTtime(translation);\n if (options.timeOnly) {\n return ttime(str, options);\n }\n const dateObj = new Date(str);\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(dateObj.getTime())) {\n return str;\n }\n // Add undesired fields with null values to options object. Ex:{weekday : null}\n const formatOptions = {\n weekday: 'short', year: 'numeric', month: 'short', day: 'numeric'\n };\n if (options && typeof options === 'object') {\n Object.keys(options).forEach(optionName => {\n if (options[optionName] == null) {\n delete formatOptions[optionName];\n } else {\n formatOptions[optionName] = options[optionName];\n }\n });\n }\n return dateObj.toLocaleDateString(translation.currentLocale, formatOptions);\n } catch (err) {\n return str;\n }\n};\n\n// Example usage:\n/*\n translationRenderer('This is an [1[example]] string [2[for]] translation')({\n renderer1: (str) => {str}; // str is \"example\"\n fallback: (str) => {str};\n })\n - Since there is no render function given for second match, fallback function will be used as renderer.\n - Renderer functions can only have 1 parameter, which is sanitized version of delimeter.\n */\nexport const prepareTranslationRenderer = t => function translationRenderer(str, params = {}) {\n if ((global?.window?.location?.href || '')?.includes('rawTranslationTextMode=true')) {\n return () => str;\n }\n const translatedString = t(str, params);\n const getRendererIndex = delimiterStr => {\n const matches = delimiterStr.match(/\\[(\\d+)\\[/);\n if (matches && matches[1]) {\n return matches[1];\n }\n throw new Error(`Delimeter string (${delimiterStr}) format is inappropriate! Correct format is [RENDERER_NUMBER[TEXT]]`);\n };\n\n return renderFunctions => {\n try {\n const matchTemplate = /\\[\\d+\\[.*?\\]{2}/g;\n const replaceTemplate = /\\[(\\d+)\\[|\\]{2}/g;\n const matches = (translatedString && translatedString.match) ? translatedString.match(matchTemplate) : null;\n if (matches && matches.length > 0) {\n const renderers = renderFunctions || {};\n // Set a fallback renderer if it is not given in renderFunctions\n if (typeof renderers.fallback !== 'function') {\n renderers.fallback = i1 => i1;\n }\n // Create an array which includes all render functions\n const matchedStrings = matches.map(matchItem => {\n const currentKey = `renderer${getRendererIndex(matchItem)}`;\n const sanitizedValue = matchItem.replace(replaceTemplate, '');\n if (typeof renderers[currentKey] === 'function') {\n return renderers[currentKey](sanitizedValue);\n }\n return renderers.fallback(sanitizedValue);\n });\n\n return translatedString.split(matchTemplate).map((normStr, index) => (\n typeof matchedStrings[index] !== 'undefined'\n ? [normStr, matchedStrings[index]]\n : [normStr]\n ));\n }\n } catch (err) {\n console.error(err); // eslint-disable-line\n }\n return translatedString;\n };\n};\n\nexport const prepareControlModeChange = translation => function controlModeChange(controlMode) {\n return new Promise((resolve, reject) => {\n try {\n // eslint-disable-next-line no-param-reassign\n translation.controlMode = controlMode;\n resolve({ loaded: true, controlMode });\n } catch (err) {\n reject(new Error(err));\n }\n });\n};\n\nexport const prepareAddTranslationToDictionary = translation => function addTranslationToDictionary(code, translationData) {\n const dictionary = translationData;\n // remove untranslated keys\n const clearedDic = Object.keys(dictionary).reduce((dic, key) => {\n const entry = dictionary[key];\n if (!entry) {\n return dic;\n }\n return Object.assign(dic, { [key]: entry });\n }, {});\n\n if (dictionary) {\n translation.add(code, clearedDic);\n }\n return ({ loaded: true, code });\n};\n\nexport const generateDictionaryURL = ({ path, code = DEFAULT_LANGUAGE }) => {\n const sanitizedCode = code?.length !== 5 ? DEFAULT_LANGUAGE : code;\n return `/js/${path}/locale_${sanitizedCode}.js?${Math.floor((Math.random() * (9999 - 1001)) + 1000)}`;\n};\n\nexport const loadDictionaryViaTag = ({ code, path }) => new Promise((resolve, reject) => {\n try {\n const tmpScriptTag = global.document.createElement('script');\n tmpScriptTag.src = generateDictionaryURL({ code, path });\n tmpScriptTag.onload = () => resolve(global.Locale.language);\n tmpScriptTag.onerror = () => reject(new Error('Language dictionary load failed.'));\n\n if (!global.Locale) {\n global.Locale = {};\n }\n\n global.document.body.appendChild(tmpScriptTag);\n } catch (e) {\n reject(e);\n }\n});\n\nexport const loadDictionaryViaFetch = ({ code, path }) => fetch(generateDictionaryURL({ code, path }), {\n headers: { 'Content-Type': 'text/plain' }\n}).then(r => r.text()).then(r => r.replace('Locale.language=', '')).then(r => JSON.parse(r));\n\nexport const prepareAddDictionary = translation => function addDictionary(code, partialDictionaryName) {\n const addTranslationToDictionary = prepareAddTranslationToDictionary(translation);\n const url = unlocalizeOriginHref(global?.window?.location?.href);\n const partialDictionaryPath = partialDictionaryName || Object.keys(partialTranslations).find(q => partialTranslations[q](url));\n const loadMethod = global?.document ? loadDictionaryViaTag : loadDictionaryViaFetch;\n const path = partialDictionaryPath ? `locale/partial-translations/${partialDictionaryPath}` : 'locale';\n return new Promise((resolve, reject) => {\n loadMethod({ path, code: code?.length !== 5 ? DEFAULT_LANGUAGE : code })\n .then(translationData => resolve(addTranslationToDictionary(code, translationData)))\n .catch(err => reject(new Error(err)));\n });\n};\n\nexport const sendUsedTranslationsInterval = () => {\n if (isNil(global.Translations.processUsedTranslationsInterval) && !global.Translations.forceStopCollecting) {\n console.log('[Translations] :: Collecting used translation strings.');\n\n global.Translations.processUsedTranslationsInterval = setInterval(() => {\n const finishInterval = global.Translations.encodedAndProcessedStrings?.length >= global.Translations.usedTranslations?.length;\n\n if (global.Translations.forceStopCollecting) {\n return;\n }\n\n if (finishInterval) {\n clearInterval(global.Translations.processUsedTranslationsInterval);\n global.Translations.processUsedTranslationsInterval = null;\n global.Translations.forceStopCollecting = true;\n\n return axios.post('/API/translation/track-translated-strings', {\n url: global.location?.href,\n hashes: global.Translations.encodedAndProcessedStrings\n }).then(res => {\n if (res?.data?.responseCode === 200) {\n console.log(`[Translations] :: ${global.Translations.encodedAndProcessedStrings?.length} used translations collected.`);\n }\n }).catch(() => {\n console.log('[Translations] :: Error while collect used translations.');\n });\n }\n\n encodeUsedTranslations(global.Translations.usedTranslations);\n }, 1500);\n }\n};\n","import { translation } from './Translation';\nimport { initializeTranslationFromGlobal } from './global';\nimport { prepareT, prepareTranslationRenderer, prepareTDate } from './hof';\nimport { langCodes, getLangFileSuffix } from './constants';\nimport { TranslateProvider } from './components/TranslateProvider';\nimport { setDatepickerLocale } from './setDatepickerLocale';\n\nconst t = prepareT(translation);\nconst tdate = prepareTDate(translation);\nconst translationRenderer = prepareTranslationRenderer(t);\n\ninitializeTranslationFromGlobal(translation, t);\n\nexport {\n t,\n tdate,\n translation,\n translationRenderer,\n langCodes,\n getLangFileSuffix,\n TranslateProvider,\n setDatepickerLocale\n};\n\nexport default translation;\n","import {\n prepareAddDictionary,\n prepareControlModeChange,\n prepareAddTranslationToDictionary,\n sendUsedTranslationsInterval\n} from './hof';\n\nimport { isProduction, collectionTimer } from './utils';\n\n/* eslint-disable no-param-reassign, no-extend-native */\nexport function initializeTranslationFromGlobal(translation, t) {\n const addDictionary = prepareAddDictionary(translation);\n const controlModeChange = prepareControlModeChange(translation);\n const addTranslationToDictionary = prepareAddTranslationToDictionary(translation);\n\n // Overriding all strings and adding locale method\n String.prototype.locale = function locale() {\n return t(this);\n };\n\n if (!global.Translations) {\n global.__t = t;\n global.Translations = translation;\n global.Translations.t = t;\n global.Translations.addDictionary = addDictionary;\n global.Translations.addTranslationToDictionary = addTranslationToDictionary;\n global.Translations.controlModeChange = controlModeChange;\n global.Translations.processUsedTranslationsInterval = null;\n global.Translations.encodedAndProcessedStrings = [];\n global.Translations.startCollectUsedTranslationsInterval = sendUsedTranslationsInterval;\n global.Translations.forceStopCollecting = false;\n }\n\n if (global.window && global.window.useLocaleDictionary && global.window?.Locale?.language) {\n addTranslationToDictionary(global.window.currentLocale, global.window.Locale.language);\n }\n\n if (isProduction() && collectionTimer() && global.Translations.currentLocale !== 'en-US') {\n sendUsedTranslationsInterval();\n }\n}\n","import isNumber from 'lodash/isNumber';\nimport { EMAIL_PATTERN } from '@jotforminc/constants';\nimport { t } from '@jotforminc/translation';\n\nimport { safeJSONParse } from './data';\n\nexport const isFilled = value => {\n if (typeof value === 'string') {\n const val = value && value.replace(/^\\s+|\\s+$/g, '');\n return !!val;\n } if (Array.isArray(value)) {\n return value.length > 0;\n }\n return !!value;\n};\n\nexport const isEmpty = value => {\n return !isFilled(value);\n};\n\nexport const isValidUrl = value => {\n const URLPattern = /(http|ftp|https){0,1}:{0,1}[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?/; // eslint-disable-line no-useless-escape\n const validUrlRegex = global?.JotForm?.validationRegexes?.url || URLPattern;\n return isFilled(value) && validUrlRegex.test(value);\n};\n\nexport const isEmail = value => {\n return isFilled(value) && EMAIL_PATTERN.test(value);\n};\n\nexport const isTeamEmail = value => {\n const teamRegex = /team:[0-9].{13,14}$/;\n return teamRegex.test(value);\n};\n\n/**\n * Hostname validation\n * @function\n * @param {String} hostname to validate\n */\nexport const validateHostname = hostname => /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]).)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/\n .test(String(hostname).toLowerCase());\n\nexport const isSafari = () => /^((?!chrome|android).)*safari/i.test(global.navigator.userAgent);\n\n/**\n * E-mail validation\n * @function\n * @param {String} email to validate\n */\nexport const validateEmail = email => /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n .test(String(email).toLowerCase());\n\nconst validationMessages = {\n required: t('This field is required'),\n invalidEmail: t('Invalid email address')\n};\n\nconst validationsMap = {\n required: value => (!isFilled(value) ? validationMessages.required : false),\n required_withnone: value => (!isFilled(value) || value === 'none' ? validationMessages.required : false),\n email: value => {\n const questionPlaceholderRegex = /^\\{(.*?)\\}$/;\n if (typeof value === 'string' && questionPlaceholderRegex.test(value)) {\n return false;\n }\n\n if (typeof value === 'string') {\n const [, tagifyValue] = value.match(/^\\[\\[(.*?)\\]\\]$/) || [];\n if (tagifyValue) {\n const parsedTagifyValue = safeJSONParse(tagifyValue);\n if (parsedTagifyValue && parsedTagifyValue.name && questionPlaceholderRegex.test(parsedTagifyValue.name)) {\n return false;\n }\n }\n }\n\n if (Array.isArray(value) && value.length === 1 && questionPlaceholderRegex.test(value[0].value)) {\n return false;\n }\n\n const strEmail = (Array.isArray(value) && value.length === 1) ? value[0].value : value;\n return !isEmail(strEmail) ? validationMessages.invalidEmail : false;\n },\n numeric: val => (!isNumber(val) ? 'please write numeric' : false),\n content: val => {\n if (!isFilled(val)) {\n return validationMessages.required;\n }\n\n // Create dummy dom to check if the email content is empty or not\n const emailContent = new window.DOMParser().parseFromString(val, 'text/html').body.textContent.trim();\n return !emailContent ? validationMessages.required : false;\n }\n};\n\n// TODO: memoize this fn\nexport const generateIsErroredFromValidations = validations => {\n const fns = [];\n validations.forEach(name => {\n const validator = validationsMap[name];\n if (validator) {\n fns.push(validator);\n }\n });\n return value => {\n let errorMsg;\n fns.find(fn => {\n errorMsg = fn(value);\n return errorMsg;\n });\n return errorMsg || false;\n };\n};\n\nexport const checkUserType = (userType, credentials) => {\n const { account_type: { name } } = credentials;\n return name === userType;\n};\n","// A component for apple like prompting password, which is using in email-verification step\n// Needs a markup!\n\nimport { removeClass, addClass } from './utils';\n\nclass VerificationPrompterBox {\n constructor(params) {\n const {\n onChangeEmail, onResendCode, onFinished, onSuccess, onFail\n } = params;\n this.functions = {\n onChangeEmail, onResendCode, onFinished, onSuccess, onFail\n };\n this.handleInputEvent = this.handleInputEvent.bind(this);\n this.reflectOnPrompter = this.reflectOnPrompter.bind(this);\n this.setEmailAddress = this.setEmailAddress.bind(this);\n this.onResendCode = this.onResendCode.bind(this);\n this.onChangeEmail = this.onChangeEmail.bind(this);\n this.verificationCallback = this.verificationCallback.bind(this);\n this.clear = this.clear.bind(this);\n this.setLayoutElements.bind(this);\n this.init = this.init.bind(this);\n\n this.setLayoutElements(params);\n this.init();\n this.emailAddress = 'some@email.com';\n }\n\n get defaultSelectors() {\n return {\n input: '.jfEmailVerify-inside .jfInput-input',\n prompter: '.js-emailVerify-prompter',\n successIcon: '.js-emailVerify-statusIcon.js-forSuccess',\n failIcon: '.js-emailVerify-statusIcon.js-forFail',\n changeEmailButton: '.js-changeEmail',\n resendCodeButton: '.js-resendCode',\n sentVerificationText: '.jfEmailVerify-sentVerificationText',\n patienceText: '.jfEmailVerify-footer-patienceText',\n didntReceiveVerification: '.jfEmailVerify-didntReceiveVerification',\n or: '.jfEmailVerify-or'\n };\n }\n translate(formTranslation) {\n Object.keys(this.layoutElements).forEach((key) => {\n if (this.layoutElements[key.toString()].children.length > 0) return;\n this.layoutElements[key.toString()].textContent = formTranslation.translate(this.layoutElements[key.toString()].textContent);\n }, this);\n this.translateSentVerificationText(formTranslation);\n }\n\n translateSentVerificationText(formTranslation) {\n const sentVerificationTextHTML = formTranslation.translate('The verification code has been sent to some@email.com
    ' +\n 'Please check your mailbox and paste the code below to complete verification');\n const resendCodeButtonText = formTranslation.translate('RESEND CODE');\n const orText = formTranslation.translate('or');\n const didntReceiveVerificationText = formTranslation.translate(\"Didn't receive verification code?\");\n const changeEmailButtonText = formTranslation.translate(\"CHANGE EMAIL\");\n const patienceText = formTranslation.translate('Receiving the email may take a few minutes, thank you for your patience!');\n this.updateStyledEmail({\n sentVerificationTextHTML,\n resendCodeButtonText,\n orText,\n didntReceiveVerificationText,\n changeEmailButtonText,\n patienceText\n });\n }\n\n setLayoutElements(params) {\n const { container } = params;\n const selectors = Object.assign({}, this.defaultSelectors, (params.selectors || {}));\n this.layoutElements = Object.entries(selectors).reduce((acc, selector) => Object.assign(acc, { [selector[0]]: container.querySelector(selector[1]) }), { container });\n }\n\n init() {\n const {\n resendCodeButton, failIcon, changeEmailButton, input\n } = this.layoutElements;\n input.addEventListener('input', this.handleInputEvent);\n resendCodeButton.addEventListener('click', this.onResendCode);\n failIcon.addEventListener('click', this.clear);\n changeEmailButton.addEventListener('click', this.onChangeEmail);\n }\n\n setEmailAddress(mailAddress) {\n this.emailAddress = mailAddress;\n this.layoutElements.sentVerificationText.children[0].textContent = mailAddress;\n }\n\n updateStyledEmail({\n sentVerificationTextHTML,\n resendCodeButtonText,\n orText,\n didntReceiveVerificationText,\n changeEmailButtonText,\n patienceText\n }) {\n const { layoutElements, emailAddress } = this;\n\n const updateElement = (element, text) => {\n if (element && text) {\n element.innerHTML = text;\n }\n };\n \n updateElement(layoutElements.sentVerificationText, sentVerificationTextHTML && sentVerificationTextHTML.replace(/]*>[\\s\\S]+<\\/span>/,\n `${emailAddress}`));\n updateElement(layoutElements.resendCodeButton, resendCodeButtonText);\n updateElement(layoutElements.changeEmailButton, changeEmailButtonText);\n updateElement(layoutElements.patienceText, patienceText);\n updateElement(layoutElements.or, orText);\n updateElement(layoutElements.didntReceiveVerification, didntReceiveVerificationText);\n }\n\n clear(clearValue = false, clearIcons = true) {\n const { successIcon, failIcon, input } = this.layoutElements;\n if (clearIcons) {\n removeClass(successIcon, 'isVisible');\n removeClass(failIcon, 'isVisible');\n }\n if (clearValue) {\n input.setValue('');\n this.reflectOnPrompter('');\n input.focus();\n }\n if (input) {\n removeClass(input, 'validate[required]');\n }\n }\n\n onChangeEmail() {\n this.clear(true, true);\n this.functions.onChangeEmail();\n }\n\n onResendCode() {\n this.clear(true, true);\n this.functions.onResendCode();\n }\n\n /**\n * Left-pads the value with •\n * @param value\n */\n reflectOnPrompter(value) {\n const { prompter } = this.layoutElements;\n let prompterValue = value;\n for (let i = value.length; i < 4; i++) {\n prompterValue += '';\n }\n prompter.innerHTML = prompterValue;\n }\n\n verificationCallback(status) {\n const { successIcon, failIcon } = this.layoutElements;\n if (status) {\n addClass(successIcon, 'isVisible');\n this.functions.onSuccess();\n } else {\n addClass(failIcon, 'isVisible');\n this.functions.onFail();\n }\n }\n\n handleInputEvent(event) {\n const { onFinished } = this.functions;\n const { input } = this.layoutElements;\n // Keyboard ArrowUp & ArrowDown should be prevented\n if (event.which === 38 || event.which === 40) {\n event.preventDefault();\n }\n\n let { value } = event.target;\n\n if (value.length > 4) {\n value = value.substring(0, 4);\n input.value = value;\n }\n\n switch (value.length) {\n case 4:\n onFinished(value, this.verificationCallback);\n break;\n default:\n this.clear();\n break;\n }\n this.reflectOnPrompter(value);\n }\n}\n\nexport default VerificationPrompterBox;\n","export function isFilled(value) {\n const val = value && value.replace(/^\\s+|\\s+$/g, '');\n return !!val;\n}\n\nexport function isEmpty(value) {\n return !isFilled(value);\n}\n\n// TO DO :: integrate lodash like method\nexport function isEqual(value1, value2) {\n return JSON.stringify(value1) === JSON.stringify(value2);\n}\n\nexport function isValidUrl(value) {\n const validUrlRegex = global.JotForm.validationRegexes.url;\n return isFilled(value) && validUrlRegex.test(value);\n}\n","export const persistentKeyList = [\n /^.*?VariantCode$/,\n 'gocardlessPayload',\n 'stripeCode',\n 'DIGEST_ACTION_LSK',\n 'leadFlowBannerAutoVisible',\n 'messageHistory',\n /^AUTO_DELETE_INFO_POPUP_KEY_.*?$/,\n 'firstVisitDone',\n 'formCopilotModalSeen',\n /^limitWarningSeen_.*?$/,\n 'notification-lal-autovisible',\n 'notification-up-to-fifty-percent-discount-autovisible',\n 'notification-hubspot-milestone',\n 'notification-trysign',\n 'notification-fomo-a1-third-autovisible',\n /^uxrSurvey-.*?$/,\n 'notification-hipaa-enforcement',\n 'ncseen',\n 'notification-cent-store-recommendation',\n 'notification-cent-app-recommendation',\n 'stripeCode',\n /contentOfQuestion_.*?$/,\n 'actionKanbanCount',\n 'actionReportCount',\n 'lastShownTimeDraftWarning',\n /^AUTO_DELETE_INFO_POPUP_KEY_.*?$/,\n 'subscriptionsColumnList',\n 'invoiceColumnList',\n 'ttmLanguage',\n 'boxnet_auth_token',\n 'discardSalesforceEarlyAccessModal',\n 'discardSalesforceRatingModal',\n 'AIChat',\n 'FormCopilotProps',\n /^whats_new_.*?$/\n];\n","import isEqual from 'lodash/isEqual';\n\nimport { persistentKeyList } from './constants';\n\nclass StorageHelper {\n static instance = null;\n\n static testStorage = type => {\n const testItem = 'test';\n const testKey = 'jfStorageHelper_test';\n const storage = StorageHelper.getStorage(type);\n\n try {\n if (!storage) {\n return false;\n }\n storage.setItem(testKey, testItem);\n const result = storage.getItem(testKey) === testItem;\n storage.removeItem(testKey);\n return result;\n } catch (e) {\n console.error(`Error in ${type} storage helper initialization`, e);\n return false;\n }\n };\n\n static get isSupported() {\n return StorageHelper.testStorage('local') && StorageHelper.testStorage('session');\n }\n\n static getStorage = type => {\n const storageBase = typeof window !== 'undefined' ? window : global;\n return type === 'session' ? storageBase.sessionStorage : storageBase.localStorage;\n };\n\n static getLocalStorageItem = ({ key, defaultValue }) => {\n return StorageHelper.getItem({ key, defaultValue, type: 'local' });\n };\n\n static getSessionStorageItem = ({ key, defaultValue }) => {\n return StorageHelper.getItem({ key, defaultValue, type: 'session' });\n };\n\n static getItem = ({ key, type = 'local', defaultValue = null }) => {\n const storage = StorageHelper.getStorage(type);\n if (!StorageHelper.isSupported || !storage) {\n return defaultValue;\n }\n\n const itemString = storage.getItem(key);\n try {\n if (!itemString) {\n return defaultValue;\n }\n\n const { value, expiry } = JSON.parse(itemString) || {};\n if (expiry && (new Date()).getTime() > expiry) {\n StorageHelper.removeItem({ key, type });\n return defaultValue;\n }\n\n return value;\n } catch (e) {\n console.error('Error in getting item from storage', e);\n return itemString || defaultValue;\n }\n };\n\n static setLocalStorageItem = ({ key, value, ttl }) => {\n return StorageHelper.setItem({\n key,\n ttl,\n value,\n type: 'local'\n });\n };\n\n static setSessionStorageItem = ({ key, value, ttl }) => {\n return StorageHelper.setItem({\n key,\n ttl,\n value,\n type: 'session'\n });\n };\n\n static setItem = ({\n key, value, type = 'local', ttl\n }) => {\n const storage = StorageHelper.getStorage(type);\n if (!StorageHelper.isSupported || !storage) return false;\n try {\n const itemString = JSON.stringify({ value, expiry: ttl ? (new Date()).getTime() + ttl : undefined });\n storage.setItem(key, itemString);\n return true;\n } catch (e) {\n console.error('Error in setting item in storage', e);\n return false;\n }\n };\n\n static removeLocalStorageItem = ({ key }) => {\n return StorageHelper.removeItem({ key, type: 'local' });\n };\n\n static removeSessionStorageItem = ({ key }) => {\n return StorageHelper.removeItem({ key, type: 'session' });\n };\n\n static removeItem = ({ key, type = 'local' }) => {\n const storage = StorageHelper.getStorage(type);\n if (!StorageHelper.isSupported || !storage) return false;\n try {\n storage.removeItem(key);\n return true;\n } catch (e) {\n console.error('Error in removing item from storage', e);\n return false;\n }\n };\n\n static clearLocalStorage = ({ force = false } = {}) => {\n return StorageHelper.clear({ type: 'local', force });\n };\n\n static clear = ({ type = 'local', force } = {}) => {\n const storage = StorageHelper.getStorage(type);\n if (!StorageHelper.isSupported || !storage) {\n return false;\n }\n\n for (let i = storage.length - 1; i >= 0; i--) {\n const key = storage.key(i);\n if (!key) {\n continue;\n }\n\n if (!force && StorageHelper.isPersistantKey(key)) {\n continue;\n }\n\n storage.removeItem(key);\n }\n };\n\n static incrementCounter = ({ key, maxCount, type = 'local' }) => {\n const counter = StorageHelper.getItem({ key, type });\n if (counter) {\n const numericVal = parseInt(counter, 10);\n if (numericVal >= maxCount) {\n return;\n }\n\n StorageHelper.setItem({ key, type, value: numericVal + 1 });\n return;\n }\n\n StorageHelper.setItem({ key, type, value: 1 });\n };\n\n static hasKeyValuePair = ({ key, value, type = 'local' }) => {\n const val = StorageHelper.getItem({ key, type });\n return isEqual(val, value);\n };\n\n static isPersistantKey = key => {\n return persistentKeyList.some(keyOrPattern => {\n switch (true) {\n case keyOrPattern instanceof RegExp:\n return keyOrPattern.test(key);\n case typeof keyOrPattern === 'string':\n return keyOrPattern === key;\n default:\n return false;\n }\n });\n };\n}\n\nexport { StorageHelper };\n","// Storage helper for localstorage.\nimport { StorageHelper } from '@jotforminc/storage-helper';\n\nexport default class Storage {\n constructor(props = { adapter: 'cookie' }) { // cookie, localstorage\n this.adapter = props.adapter;\n }\n\n isAvailable() {\n try {\n if (this.adapter === 'localstorage') {\n StorageHelper.setLocalStorageItem({key:'jottest', value:'jottest'});\n StorageHelper.removeLocalStorageItem({key:'jottest'});\n return true;\n } else if (this.adapter === 'cookie') {\n return true;\n }\n return false;\n } catch (e) {\n return false;\n }\n }\n\n get(key) {\n let val;\n switch (this.adapter) {\n case 'cookie':\n val = global.document.readCookie(key);\n break;\n case 'localstorage':\n val = global.localStorage.getItem(key);\n break;\n default:\n }\n return val;\n }\n\n set(key, value) {\n let val;\n switch (this.adapter) {\n case 'cookie':\n val = global.document.createCookie(key, value, 7); // 7 days for now\n break;\n case 'localstorage':\n val = global.localStorage.setItem(key, value);\n break;\n default:\n }\n return val;\n }\n\n delete(key) {\n let val;\n switch (this.adapter) {\n case 'cookie':\n val = global.document.eraseCookie(key); // 7 days for now\n break;\n case 'localstorage':\n val = global.localStorage.removeItem(key);\n break;\n default:\n }\n return val;\n }\n\n deleteAll(expression, options = '') {\n if (!expression) {\n return;\n }\n\n if (this.adapter === 'cookie') {\n console.error('This feature is implemented only for LocalStorage');\n return false;\n }\n\n const regex = new RegExp(expression, options);\n Object.keys(global.localStorage)\n .forEach((key) => {\n if (regex.test(key)) {\n this.delete(key);\n }\n });\n }\n}\n","import { closest, isEmail } from '@jotforminc/utils';\nimport { FORM_TEXTS } from '@jotforminc/constants';\n\nimport VerificationPrompterBox from './verificationPrompterBox';\nimport {\n isFilled, isEmpty, isEqual\n} from './validationHelper';\nimport {\n addClass, removeClass, forEach, fuzzySearch, createInput\n} from './utils';\nimport { MOST_USED_PROVIDERS } from './constants';\nimport Storage from './storage';\n\nconst tokenTTL = 60 * 1000; // 1 minute in milliseconds\nconst baseLocalStorageKey = 'jf_email_verification_code';\n\nclass Email {\n /* INIT FUNCTIONS */\n constructor(params) {\n const { cardContainer } = params;\n this.question = params.question;\n this.formID = params.formID;\n this.showTooltip = params.showTooltip;\n this.removeTooltip = params.removeTooltip;\n this.layoutElements = { cardContainer };\n this.getLayoutElements = this.getLayoutElements.bind(this);\n this.getLayoutElements(Email.defaultSelectors);\n\n this.onTypingFinished = this.onTypingFinished.bind(this);\n this.handleInputEvent = this.handleInputEvent.bind(this);\n this.handleConfirmationInputEvent = this.handleConfirmationInputEvent.bind(this);\n this.resetTimer = this.resetTimer.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.validateField = this.validateField.bind(this);\n this.onVerificationFail = this.onVerificationFail.bind(this);\n this.setVerificationButtonStatus = this.setVerificationButtonStatus.bind(this);\n this.saveVerificationCodeInfo = this.saveVerificationCodeInfo.bind(this);\n this.loadVerificationCodeInfo = this.loadVerificationCodeInfo.bind(this);\n this.deleteVerificationCodeInfo = this.deleteVerificationCodeInfo.bind(this);\n this.clearVerificationCodeInfo = this.clearVerificationCodeInfo.bind(this);\n this.isVerificationCodeFresh = this.isVerificationCodeFresh.bind(this);\n this.startVerificationMode = this.startVerificationMode.bind(this);\n\n if (this.hasVerificationArea) { // This means user is using domainCheck or verificationCode\n this.initVerificationArea = this.initVerificationArea.bind(this);\n this.initVerificationArea();\n setTimeout(() => {\n if (window.JotForm.isEditMode()) {\n this.finishVerificationStep();\n }\n }, 800);\n }\n\n const { primaryInput, confirmationInput } = this.layoutElements;\n\n primaryInput.addEventListener('input', this.handleInputEvent);\n primaryInput.addEventListener('keydown', this.handleKeyDown);\n\n this.setMode = this.setMode.bind(this);\n this.setVerificationStatus = this.setVerificationStatus.bind(this);\n\n this.state = {\n mode: 'questionMode'\n };\n\n primaryInput.overridenValidateInput = this.validateField;\n if (this.hasValidation('Email_Confirm')) {\n confirmationInput.addEventListener('input', this.handleConfirmationInputEvent);\n confirmationInput.overridenValidateInput = this.validateField;\n }\n this.setMode(this.state.mode);\n\n this.useTooltip = true;\n\n if (this.acceptedDomains) {\n this.moveSuggestionDropdownToBody();\n }\n\n this.storageEngine = new Storage({ adapter: 'localstorage' });\n }\n\n getLayoutElements(selectors) {\n forEach(Object.keys(selectors), key => {\n const item = selectors[key];\n const container = this.layoutElements[item.parent];\n this.layoutElements[key] = container ? container.querySelector(item.selector) : undefined;\n });\n }\n\n initVerificationArea() {\n const { emailVerificationArea, sendVerificationCodeButton } = this.layoutElements;\n if (new URLSearchParams(window.location.search).get('emailVerifiedInAgent') === '1') {\n const { questionContainer } = this.layoutElements;\n addClass(questionContainer, 'isVerifiedEmail');\n this.isEmailVerified = true;\n }\n this.handleSendVerificationCodeButton = this.handleSendVerificationCodeButton.bind(this);\n this.cancelVerificationStep = this.cancelVerificationStep.bind(this);\n this.finishVerificationStep = this.finishVerificationStep.bind(this);\n this.checkVerificationCode = this.checkVerificationCode.bind(this);\n this.resendVerificationCode = this.resendVerificationCode.bind(this);\n this.onVerificationSuccess = this.onVerificationSuccess.bind(this);\n\n this.verificationPrompterBox = new VerificationPrompterBox({\n onFinished: this.checkVerificationCode,\n onSuccess: this.onVerificationSuccess,\n onFail: this.onVerificationFail,\n onResendCode: this.resendVerificationCode,\n onChangeEmail: () => {\n this._token = null;\n this.setMode('questionMode');\n },\n container: emailVerificationArea\n });\n\n sendVerificationCodeButton.addEventListener('click', this.handleSendVerificationCodeButton);\n }\n\n /* GETTERS */\n get validations() {\n // Get all validations for all inputs in component\n const { primaryInput, confirmationInput } = this.layoutElements;\n const primaryInputValidations = global.JotForm.getInputValidations(primaryInput);\n const confirmationInputValidations = confirmationInput ? global.JotForm.getInputValidations(confirmationInput) : [];\n return [...primaryInputValidations, ...confirmationInputValidations].filter((value, index, self) => self.indexOf(value) === index); // distinct\n }\n\n get token() {\n if (!this._token) {\n const { primaryInput } = this.layoutElements;\n if (this.isVerificationCodeFresh()) {\n this._token = this.loadVerificationCodeInfo().token;\n } else {\n this._token = this.generateToken(global.CardForm.formID, primaryInput.value);\n }\n }\n return this._token;\n }\n\n get localStorageKey() {\n const { primaryInput } = this.layoutElements;\n return `${baseLocalStorageKey}_${this.formID}_${primaryInput.value}`;\n }\n\n get emailDomain() {\n if (this.hasAtCharacter) {\n return this.layoutElements.primaryInput.value.split('@')[1];\n }\n return false;\n }\n\n get emailUsername() {\n if (this.hasAtCharacter) {\n return this.layoutElements.primaryInput.value.split('@')[0];\n }\n return false;\n }\n\n get hasDotCharacter() {\n return this.emailDomain ? this.emailDomain.indexOf('.') > -1 : false;\n }\n\n get hasVerificationArea() {\n return this.hasValidation('verificationCode') || this.hasValidation('domainCheck');\n }\n\n get hasAtCharacter() {\n const { primaryInput } = this.layoutElements;\n return primaryInput.value.indexOf('@') > -1;\n }\n\n get freeEmailAddresses() {\n return global.JotForm.freeEmailAddresses;\n }\n\n get isFreeDomain() {\n if (this.emailDomain) {\n const currentDomainName = this.emailDomain;\n const isFreeDomain = this.freeEmailAddresses.filter(domain => `@${currentDomainName}`.indexOf(`@${domain}`) > -1).length > 0;\n return isFreeDomain;\n }\n return false;\n }\n\n get isAcceptedDomain() {\n return this.acceptedDomains.indexOf(this.emailDomain.toString().toLowerCase()) > -1;\n }\n\n get hasError() {\n const { primaryInput, confirmationInput } = this.layoutElements;\n return primaryInput.errored || (confirmationInput && confirmationInput.errored);\n }\n\n translate() {\n const formTranslation = global.FormTranslation;\n if (!formTranslation) return;\n if (this.verificationPrompterBox && this.verificationPrompterBox.translate) this.verificationPrompterBox.translate(formTranslation);\n }\n\n get isEmailVerificationButtonActive() {\n if (!this.hasVerificationArea) { return; }\n const { sendVerificationCodeButton } = this.layoutElements;\n return !sendVerificationCodeButton.disabled;\n }\n\n get hasSuggestion() {\n // will be updated\n return false;\n }\n\n get providerList() {\n return MOST_USED_PROVIDERS;\n }\n\n get acceptedDomains() {\n // returns list if field has pre-defined domain values - returns false otherwise\n let domainList = this.layoutElements.primaryInput.getAttribute('data-accepted-domains');\n if (domainList && domainList !== '') {\n domainList = domainList.strip().split('|').filter(domain => { return domain !== ''; }).map(domain => { return domain.toLowerCase(); });\n return domainList.length ? domainList : false;\n }\n return false;\n }\n\n get showSuggestions() {\n return this.emailUsername.length > 1 && !this.acceptedDomains && this.useTooltip;\n }\n\n get suggestionList() {\n /* suggest a correction for the misspelled domain */\n /* or */\n /* suggest a list of providers for dropdown */\n let suggestionList = this.acceptedDomains ? this.acceptedDomains : this.providerList;\n if (this.hasValidation('disallowFree')) {\n // if free addresses are disallowed, remove them from suggestions\n suggestionList = suggestionList.filter(domain => {\n const emailTLD = domain.split('.')[0];\n const checkList = [emailTLD + '.', domain];\n\n return !checkList.some(item => this.freeEmailAddresses.includes(item));\n });\n }\n return suggestionList;\n }\n\n /* END GETTERS */\n\n /* SETTERS */\n setMode(newMode) {\n const { questionContainer } = this.layoutElements;\n // const currentMode = this.state.mode;\n const allModes = ['questionMode', 'verificationMode', 'loadingMode'];\n forEach(allModes, mode => {\n removeClass(questionContainer, mode);\n });\n addClass(questionContainer, newMode);\n\n this.state = { ...this.state, mode: newMode };\n }\n\n setVerificationStatus(status) {\n this.isEmailVerified = status;\n const { questionContainer, primaryInput } = this.layoutElements;\n if (status) {\n addClass(questionContainer, 'isVerifiedEmail');\n } else {\n removeClass(questionContainer, 'isVerifiedEmail');\n }\n this.validateField(primaryInput);\n }\n\n generateToken(formId, emailAddress) {\n const formIdStr = formId.toString();\n const temporal = new Date().getTime().toString().slice(-4);\n const formIdLastNumber = formIdStr.slice(-1) / 1;\n const tokenCode = emailAddress.charCodeAt(0) + formIdLastNumber;\n const newToken = `JF-${temporal}-${tokenCode}`;\n this.saveVerificationCodeInfo(newToken);\n return newToken;\n }\n\n isVerificationCodeFresh() {\n const verificationCodeInfo = this.loadVerificationCodeInfo();\n if (!verificationCodeInfo) {\n return false;\n }\n const { generatedAt } = verificationCodeInfo;\n\n const nowTimestamp = new Date().getTime();\n if (nowTimestamp - generatedAt > tokenTTL) {\n this.deleteVerificationCodeInfo();\n return false;\n }\n return true;\n }\n\n saveVerificationCodeInfo(token) {\n const storageData = JSON.stringify({\n token: token, generatedAt: new Date().getTime()\n });\n this.storageEngine.set(this.localStorageKey, storageData);\n }\n\n loadVerificationCodeInfo() {\n let verificationCodeInfo = null;\n\n try {\n verificationCodeInfo = JSON.parse(this.storageEngine.get(this.localStorageKey));\n } catch (e) {\n console.error(e);\n return false;\n }\n return verificationCodeInfo;\n }\n\n deleteVerificationCodeInfo() {\n this.storageEngine.delete(this.localStorageKey);\n }\n\n clearVerificationCodeInfo() {\n this.storageEngine.deleteAll(`^${baseLocalStorageKey}_${this.formID}_`);\n }\n\n hasValidation(validationName) {\n return this.validations.indexOf(validationName) > -1;\n }\n\n closeTooltip() {\n this.removeTooltip(this.layoutElements.primaryInput);\n }\n\n addTooltip(misspelledDomain) {\n const { primaryInput } = this.layoutElements;\n const suggestedEmail = `${this.emailUsername}@${misspelledDomain}`;\n const tooltipOptions = {\n message: `Did you mean |${suggestedEmail}|?`,\n callback: () => {\n primaryInput.value = suggestedEmail;\n },\n onClose: () => {\n this.useTooltip = false;\n }\n };\n this.showTooltip(primaryInput, tooltipOptions);\n }\n\n moveSuggestionDropdownToBody() {\n const { suggestionDropdown } = this.layoutElements;\n suggestionDropdown.parentNode.removeChild(suggestionDropdown);\n suggestionDropdown.style.position = 'fixed'; // eslint-disable-line\n document.body.appendChild(suggestionDropdown);\n }\n\n handleDropdownPosition() {\n const { suggestionDropdown, primaryInput } = this.layoutElements;\n const inputRect = primaryInput.getBoundingClientRect();\n suggestionDropdown.style.top = inputRect.bottom;\n suggestionDropdown.style.left = inputRect.left;\n suggestionDropdown.style.width = inputRect.width;\n }\n\n handleDropdownEvents() {\n if (!this.acceptedDomains) { return; }\n const domainOptions = this.handleSuggestionOptions();\n const { suggestionDropdown, primaryInput } = this.layoutElements;\n const ul = suggestionDropdown.querySelector('.jfDropdown-optionList');\n // clear the list first\n while (ul.hasChildNodes()) { ul.removeChild(ul.firstChild); }\n\n // update it's position\n this.handleDropdownPosition();\n document.addEventListener('click', e => {\n if (!closest(e.target, '.jsForEmailSuggestion')) {\n this.closeDropdown();\n }\n });\n\n forEach(domainOptions, (option, index) => {\n const item = document.createElement('li');\n const itemText = `${this.emailUsername}@${option}`;\n item.setAttribute('data-value', option);\n item.setAttribute('key', `co${index}`);\n item.setAttribute('class', 'jfDropdown-optionListItem');\n item.innerText = itemText; //eslint-disable-line\n ul.appendChild(item);\n\n item.addEventListener('click', e => {\n primaryInput.value = e.target.innerHTML;\n e.preventDefault();\n this.closeDropdown();\n });\n });\n }\n\n handleFuzzySearch() {\n if (!this.emailDomain || !this.emailUsername) { return []; }\n const searchItem = this.emailDomain;\n const providerList = this.suggestionList;\n const suggestions = fuzzySearch(searchItem, providerList);\n return suggestions;\n }\n\n handleTooltip() {\n const suggestions = this.handleFuzzySearch();\n if (suggestions.length && this.suggestionList.indexOf(this.emailDomain) === -1) {\n // show only one suggestion if misspelled item is in our list\n this.addTooltip(suggestions[0]);\n } else {\n this.closeTooltip();\n }\n }\n\n handleSuggestionOptions() {\n const suggestions = this.handleFuzzySearch();\n return suggestions.length ? suggestions : this.suggestionList;\n }\n\n onTypingFinished() {\n const { primaryInput, confirmationInput } = this.layoutElements;\n const confirmValue = this.hasValidation('Email_Confirm') ? confirmationInput.value : primaryInput.value;\n if (this.hasAtCharacter && this.showSuggestions) {\n // suggest a did you mean value\n this.handleTooltip();\n }\n\n if (this.acceptedDomains && this.isAcceptedDomain) {\n // close the suggestion dropdown - if domain is accepted\n this.closeDropdown();\n }\n\n if (isEmail(primaryInput.value) && confirmValue === primaryInput.value) {\n if (this.hasError) {\n return this.validateField(confirmationInput || primaryInput);\n }\n this.setVerificationButtonStatus(true);\n } else if (this.isEmailVerificationButtonActive) {\n this.setVerificationButtonStatus(false);\n }\n }\n\n cancelVerificationStep() {\n this._token = null;\n this.setMode('questionMode');\n }\n\n finishVerificationStep() {\n this.setVerificationStatus(true);\n this.setMode('questionMode');\n this.verificationPrompterBox.clear(true);\n }\n\n startVerificationMode() {\n this.setMode('verificationMode');\n const { primaryInput } = this.layoutElements;\n this.verificationPrompterBox.setEmailAddress(primaryInput.value);\n this.verificationPrompterBox.layoutElements.input.focus();\n }\n\n handleSendVerificationCodeButton() {\n this.setMode('loadingMode');\n\n if (this.isVerificationCodeFresh()) {\n this.startVerificationMode();\n return;\n }\n\n const { primaryInput } = this.layoutElements;\n\n const formData = JSON.stringify({\n formID: global.CardForm.formID,\n emailAddress: primaryInput.value,\n token: this.token\n });\n\n fetch(`${global.CardForm.apiURL}/sendConfirmationCodeEmail`, { method: 'POST', body: formData })\n .then(responseObject => {\n responseObject.json().then(data => {\n if (data.responseCode === 200) {\n this.startVerificationMode();\n } else {\n this.setMode('questionMode');\n console.error(data.message);\n }\n });\n })\n .catch(\n error => {\n error.json().then(err => {\n this.setMode('questionMode');\n console.error(err);\n });\n }\n );\n }\n\n setVerificationButtonStatus(status) {\n if (!this.hasVerificationArea) { return; }\n const { sendVerificationCodeButton, sendVerificationCodeButtonWrapper } = this.layoutElements;\n if (status) {\n removeClass(sendVerificationCodeButtonWrapper, 'isPassive');\n sendVerificationCodeButton.disabled = false;\n } else {\n addClass(sendVerificationCodeButtonWrapper, 'isPassive');\n sendVerificationCodeButton.disabled = true;\n }\n }\n\n resendVerificationCode() {\n this._token = null;\n this.deleteVerificationCodeInfo();\n this.handleSendVerificationCodeButton();\n }\n\n checkVerificationCode(code, verificationCallback) {\n const { primaryInput } = this.layoutElements;\n\n const formData = JSON.stringify({\n formID: global.CardForm.formID,\n emailAddress: primaryInput.value,\n token: this.token,\n confirmationCode: code\n });\n\n fetch(`${global.CardForm.apiURL}/verifyConfirmationCode`, { method: 'POST', body: formData })\n .then(responseObject => {\n responseObject.json().then(data => {\n if (data.responseCode === 200) {\n this.addHiddenField(this.token, code);\n this._token = null;\n this.clearVerificationCodeInfo();\n verificationCallback(true);\n } else {\n verificationCallback(false);\n console.error(data.message);\n }\n });\n })\n .catch(\n error => {\n error.json().then(err => {\n verificationCallback(false);\n console.error(err);\n });\n }\n );\n }\n\n // send token and confirmation code to verify email in backend during submission\n addHiddenField(token, confirmationCode) {\n const name = `emailVerificationToken_${this.question.id}`;\n const value = JSON.stringify({ token, confirmationCode });\n const input = document.querySelector(`[name='${name}']`);\n if (input) {\n input.value = value;\n } else {\n const form = document.querySelector('.jotform-form');\n if (form) {\n form.appendChild(createInput({ type: 'hidden', name, value }));\n }\n }\n }\n\n onVerificationSuccess() {\n this.isEmailVerified = true; // shortcut fixes #1330989\n setTimeout(this.finishVerificationStep, 800); // Wait for icon animation to finish.\n }\n\n onVerificationFail() {\n // console.log('on verification fail');\n // this.validateField(this.layoutElements.primaryInput);\n }\n\n closeDropdown() {\n removeClass(this.layoutElements.suggestionDropdown, 'isOpen');\n }\n\n openDropdown() {\n addClass(this.layoutElements.suggestionDropdown, 'isOpen');\n }\n\n resetTimer() {\n if (typeof this.typingTimeout !== 'undefined') { clearTimeout(this.typingTimeout); }\n this.typingTimeout = setTimeout(this.onTypingFinished, 750);\n }\n\n handleInputEvent() {\n if (this.isEmailVerified) {\n this.setVerificationStatus(false);\n }\n\n this.resetTimer();\n\n if (this.hasAtCharacter && this.acceptedDomains) {\n // call suggestion and correction methods here\n this.openDropdown();\n this.handleDropdownEvents();\n if (this.isAcceptedDomain) { this.closeDropdown(); }\n } else {\n this.closeDropdown();\n this.closeTooltip();\n }\n }\n\n handleConfirmationInputEvent() {\n this.resetTimer();\n }\n\n handleKeyDown(event) {\n const { key, keyCode } = event;\n if (keyCode === 13 || key === 'Enter') {\n // console.log('enter pressed now?');\n }\n }\n\n /* Validations */\n\n // patch for input.validateInput\n validateField(input, deep, _dontShowMessage) {\n if (this.state.mode === 'loadingMode') { return; }\n const dontShowMessage = _dontShowMessage;\n let verificationButtonStatus = false;\n const { primaryInput, confirmationInput } = this.layoutElements;\n const primaryInputValue = primaryInput.value;\n const confirmationValue = this.hasValidation('Email_Confirm') ? confirmationInput.value : primaryInputValue;\n let errorDetails = { errorState: false, errorMessage: '' };\n\n const isValidEmail = isEmail(primaryInputValue);\n if (this.hasValidation('required') && isEmpty(primaryInputValue)) { // Required Check\n errorDetails = { errorState: true, errorMessage: global.JotForm.texts.required || FORM_TEXTS.required };\n } else if (isFilled(primaryInputValue) && !isValidEmail) { // Is Valid Email check\n errorDetails = { errorState: true, errorMessage: global.JotForm.texts.email || FORM_TEXTS.email };\n } else if (this.hasValidation('disallowFree') && isValidEmail && this.isFreeDomain) { // isFreeDomain\n errorDetails = { errorState: true, errorMessage: global.JotForm.texts.freeEmailError || FORM_TEXTS.freeEmailError };\n } else if (isValidEmail && this.hasValidation('allowedDomains') && !this.isAcceptedDomain) {\n errorDetails = { errorState: true, errorMessage: 'This domain is not allowed.' };\n } else if (this.hasValidation('Email_Confirm') && input === confirmationInput && !isEqual(primaryInputValue, confirmationValue)) {\n errorDetails = { errorState: true, errorMessage: global.JotForm.texts.confirmEmail || FORM_TEXTS.confirmEmail, targetInput: confirmationInput };\n } else if (isValidEmail && this.hasValidation('verificationCode') && !this.isEmailVerified) {\n verificationButtonStatus = true;\n errorDetails = { errorState: true, errorMessage: global.JotForm.texts.validateEmail || FORM_TEXTS.validateEmail };\n }\n\n const { errorState, errorMessage, targetInput } = errorDetails;\n // error\n if (errorState) {\n this.setVerificationButtonStatus(verificationButtonStatus);\n return global.JotForm.errored((targetInput || primaryInput), errorMessage, dontShowMessage);\n }\n this.setVerificationButtonStatus(isValidEmail);\n return global.JotForm.corrected((targetInput || primaryInput));\n }\n}\n\nEmail.defaultSelectors = {\n primaryInput: { parent: 'cardContainer', selector: '.jfField[data-type=email] input.forEmail' },\n confirmationInput: { parent: 'cardContainer', selector: '.jfField[data-type=emailConfirmation] input.forEmail' },\n fieldContainer: { parent: 'cardContainer', selector: '.jfField' },\n questionContainer: { parent: 'cardContainer', selector: '.jfQuestion-fields' },\n suggestionDropdown: { parent: 'cardContainer', selector: '.jsForEmailSuggestion' },\n sendVerificationCodeButtonWrapper: { parent: 'cardContainer', selector: '.js-emailVerificationButtonWrapper' },\n sendVerificationCodeButton: { parent: 'sendVerificationCodeButtonWrapper', selector: '.js-emailVerificationButton' },\n emailVerificationArea: { parent: 'cardContainer', selector: '.jfEmailVerify-wrapper.js-emailVerificationArea' }\n};\n\nexport default Email;\n","/*\n* @Author: Irem Ercan\n* @Date: 2018-01-29 15:56:05\n* @Last Modified by: Irem Ercan\n* @Last Modified time: 2018-01-29 16:27:50\n*/\n\nimport Slider from './slider';\n\nclass EmojiSlider {\n constructor(params) {\n this.container = params.cardContainer;\n this.scaleItem = this.container.querySelector('.js-emojiSlider');\n\n this.slider = new Slider({\n qid: params?.question?.id,\n options: this.sliderOptions,\n container: this.scaleItem\n });\n }\n\n get sliderOptions() {\n return {\n rowSelector: '.js-emojiScale',\n labelSelector: '.js-emojiFaces',\n rangeSelector: '.js-emojiSlider-faceList',\n scaleSeperatorSelector: '.js-emojiScaleSep',\n visibleClass: 'isVisible',\n transitionClass: 'hasTransition',\n filledClass: 'isFilled',\n scaleListItemSelector: '.js-emojiSlider'\n };\n }\n}\n\nexport default EmojiSlider;\n","/*\n* @Author: Irem Ercan\n* @Date: 2018-01-08 18:44:05\n* @Last Modified by: Berkay Aydin\n* @Last Modified time: 2018-04-19 13:38:58\n*/\nexport default class feedbackIframeMessager {\n constructor(params) {\n this.formID = params.formID;\n this.ID = `JF_feedback_embed_${this.formID}_iframe`;\n }\n\n init() {\n // welcoming\n }\n\n sendPostMessage(data) {\n window.parent.postMessage(data, '*');\n }\n\n setOS(OS) {\n this.sendPostMessage({\n messageType: 'setOS',\n OS\n });\n }\n\n setDeviceType(deviceType) {\n this.sendPostMessage({\n messageType: 'setDeviceType',\n deviceType\n });\n }\n\n updateWindowHeight(data) {\n this.sendPostMessage(data);\n }\n}\n","class Fullscreen {\n constructor(el = null) {\n this.el = el || global.document.documentElement;\n\n this.request = this.request.bind(this);\n this.exit = this.exit.bind(this);\n this.toggle = this.toggle.bind(this);\n }\n\n request() {\n if (this.el.requestFullscreen) {\n this.el.requestFullscreen();\n } else if (this.el.mozRequestFullScreen) {\n this.el.mozRequestFullScreen();\n } else if (this.el.webkitRequestFullscreen) {\n this.el.webkitRequestFullscreen();\n } else if (this.el.msRequestFullscreen) {\n this.el.msRequestFullscreen();\n }\n }\n\n exit() {\n if (global.document.exitFullscreen) {\n global.document.exitFullscreen();\n } else if (global.document.mozCancelFullScreen) {\n global.document.mozCancelFullScreen();\n } else if (global.document.mozCancelFullscreen) {\n global.document.mozCancelFullScreen();\n } else if (global.document.webkitExitFullscreen) {\n global.document.webkitExitFullscreen();\n } else if (global.document.msExitFullscreen) {\n global.document.msExitFullscreen();\n }\n }\n\n toggle() {\n if (this.fullscreenElement) {\n this.exit();\n } else {\n this.request();\n }\n }\n\n get fullscreenElement() {\n return (\n document.fullscreenElement ||\n document.webkitFullscreenElement ||\n document.webkitCurrentFullScreenElement ||\n document.mozFullScreenElement ||\n document.msFullscreenElement ||\n null\n );\n }\n}\n\nexport default Fullscreen;\n","class OptionsBase {\n constructor(params) {\n this.layoutParams = params.layoutParams;\n this.cards = params.cards;\n this.validateCard = params.validateCard;\n this.isPreviewMode = params.isPreviewMode;\n\n this.init();\n }\n\n init = () => {\n this.bindEvents();\n }\n\n handleEvents = optionInputs => {\n optionInputs.forEach((optionInput) => {\n // Add click event listener to inputs\n optionInput.addEventListener('click', (e) => {\n const parent = e.currentTarget.parentNode;\n if (e.currentTarget.getAttribute('type') === 'radio') {\n // Clear Radio field\n parent.closest('.jfQuestion-fields').querySelectorAll('.jfRadio').forEach(radio => radio.setAttribute('aria-checked', 'false'));\n // Clear YesNo field\n parent.closest('.jfQuestion-fields').querySelectorAll('.jfYesno').forEach(radio => radio.setAttribute('aria-checked', 'false'));\n parent.setAttribute('aria-checked', 'true');\n } else if (e.currentTarget.getAttribute('type') === 'checkbox') {\n parent.setAttribute('aria-checked', parent.getAttribute('aria-checked') === 'false');\n }\n });\n\n // Option label: Navigating tab focuses to labels,\n // so we need to add keyboard events to labels\n optionInput.parentNode.addEventListener('keydown', (e) => {\n // 13: ENTER, 32: SPACE\n if (e.keyCode === 13 || e.keyCode === 32) {\n if (e.target.type !== 'text') { // if user is typing to other option don't interrupt\n e.currentTarget.click();\n }\n }\n });\n });\n }\n\n bindEvents = () => {\n this.handleEvents(this.yesNos);\n }\n\n get radios() {\n return document.querySelectorAll('input.jfRadio-input');\n }\n\n get checkboxes() {\n return document.querySelectorAll('input.jfCheckbox-input');\n }\n\n get yesNos() {\n return document.querySelectorAll('input.jfYesno-input');\n }\n\n}\n\nexport default OptionsBase;\n","import { closest } from '@jotforminc/utils';\n\nimport {\n addClass, removeClass, forEach, hasClass, isVisible, map\n} from './utils';\n\nexport default class Dropdown {\n constructor(params) {\n this.layoutParams = params.layoutParams;\n this.cards = params.cards;\n this.validateCard = params.validateCard;\n this.isPreviewMode = params.isPreviewMode;\n\n this.bindDropdownEvents = this.bindDropdownEvents.bind(this);\n this.bindSearchInput = this.bindSearchInput.bind(this);\n this.bindClickOutside = this.bindClickOutside.bind(this);\n this.bindDropdownKeyEvents = this.bindDropdownKeyEvents.bind(this);\n this.setInitialValues = this.setInitialValues.bind(this);\n this.createClickEvent = this.createClickEvent.bind(this);\n this.bindSelectChangeEvent = this.bindSelectChangeEvent.bind(this);\n this.init = this.init.bind(this);\n this.init();\n }\n\n init() {\n const jfDropdown = document.querySelectorAll('.jfInput-dropdown');\n this.elementsArr = [];\n forEach(jfDropdown, dropdown => {\n const items = this.getItems(dropdown);\n const elements = this.getElements(dropdown);\n this.elementsArr.push(elements);\n this.getList(items, elements.popupListUl);\n this.bindDropdownEvents(elements, items);\n this.bindSearchInput(elements, items);\n this.updatePopupPosition(elements);\n this.movePopupListBelowButton(elements);\n });\n\n this.setInitialValues();\n }\n\n movePopupListBelowButton(elements) {\n if (hasClass(elements.dropdown, 'isDrawer')) {\n const parent = elements.popupContainer.parentNode;\n elements.popupContainer.parentNode.removeChild(elements.popupContainer);\n elements.popupContainer.style.position = 'fixed'; // eslint-disable-line\n elements.popupContainer.style.fontSize = '16px'; // eslint-disable-line\n parent.parentNode.insertBefore(elements.popupContainer, parent.nextSibling);\n }\n }\n\n updatePopupPosition(elements) {\n if (hasClass(elements.dropdown, 'isDrawer')) {\n const rect = elements.dropdownWrapper.getBoundingClientRect();\n const parent = closest(elements.dropdownWrapper, '.jfCard');\n const parentRect = parent ? parent.getBoundingClientRect() : null;\n const popup = elements.popupContainer;\n if (parentRect) {\n if (window.document.documentMode) { // IE only\n popup.style.top = `${rect.bottom}px`;\n popup.style.left = `${rect.left}px`;\n } else {\n popup.style.top = `${rect.bottom - parentRect.top}px`;\n popup.style.left = `${rect.left - parentRect.left}px`;\n }\n }\n popup.style.width = `${rect.width}px`;\n }\n }\n\n getElements(dropdown) {\n return {\n dropdown,\n popupListUl: dropdown.querySelector('.jfDropdown-optionList'),\n popupContainer: dropdown.querySelector('.jfDropdown-optionListWrapper'),\n select: dropdown.parentNode.querySelector('select'),\n searchInput: dropdown.querySelector('.jfDropdown-search'),\n defaultChips: dropdown.querySelectorAll('.defaultChip'),\n chipContainer: dropdown.querySelector('.jfDropdown-chipContainer'),\n dropdownWrapper: dropdown.querySelector('.jfDropdown-wrapper')\n };\n }\n\n getList(items, _ul) {\n const ul = _ul;\n\n while (ul.hasChildNodes()) { ul.removeChild(ul.firstChild); }\n\n forEach(items, item => {\n ul.appendChild(item);\n });\n }\n\n getItems(dropdown) {\n const list = dropdown.querySelector('.jfDropdown-optionList');\n const items = list.querySelectorAll('.jfDropdown-optionListItem');\n if (hasClass(dropdown, 'isShuffle')) {\n const nodes = Array.prototype.slice.call(items);\n let shuffled = nodes.slice(1);\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const temp = shuffled[i];\n shuffled[i] = shuffled[j];\n shuffled[j] = temp;\n }\n shuffled = [nodes[0], ...shuffled];\n return shuffled;\n }\n return items;\n }\n\n filterOptionList(val, items, elements) {\n const newItems = [];\n const selectedOptions = [];\n forEach(elements.select.querySelectorAll('option[selected=\"true\"]'), selectedOption => {\n selectedOptions.push(selectedOption.getAttribute('value'));\n });\n const isMultiple = hasClass(elements.dropdown, 'isMultiple');\n forEach(items, item => {\n const itemValue = item.innerText || item.getAttribute('data-value');\n if ((!isMultiple || selectedOptions.indexOf(itemValue) < 0) && itemValue.toLowerCase().indexOf(val.toLowerCase()) > -1) {\n newItems.push(item);\n }\n });\n if (newItems.length === 0) {\n const noResult = items[0].cloneNode(false);\n removeClass(noResult, 'isSelected');\n noResult.removeAttribute('aria-selected');\n noResult.removeAttribute('data-value');\n noResult.innerText = `No Result Found For \"${val}\"`;\n newItems.push(noResult);\n }\n return newItems;\n }\n\n bindSearchInput(elements, items) {\n const { searchInput } = elements;\n const { dropdown } = elements;\n const placeholder = searchInput ? searchInput.placeholder || 'Search' : 'Search';\n const isMultiple = hasClass(dropdown, 'isMultiple');\n if (searchInput) {\n searchInput.addEventListener('keyup', e => {\n const searchVal = e.target.value;\n const newItems = this.filterOptionList(searchVal, items, elements);\n this.getList(newItems, elements.popupListUl);\n });\n if (!isMultiple) {\n searchInput.addEventListener('focus', () => {\n searchInput.value = '';\n const searchInputPlaceholder = searchInput.getAttribute('placeholder') || placeholder;\n searchInput.setAttribute('placeholder', searchInputPlaceholder);\n const newItems = this.filterOptionList(searchInput.value, items, elements);\n this.getList(newItems, elements.popupListUl);\n this.openDropdown(elements);\n });\n searchInput.addEventListener('blur', () => {\n this.setSearchInputValue(elements);\n });\n }\n }\n }\n\n bindDropdownEvents(elements, items) {\n const selectEl = elements.select;\n const { dropdown } = elements;\n const isMultiple = hasClass(dropdown, 'isMultiple');\n const { searchInput } = elements;\n\n forEach(items, item => {\n item.addEventListener('keypress', e => {\n if (e.keyCode === 13 || e.keyCode === 32) {\n e.preventDefault();\n e.stopPropagation();\n e.target.click();\n }\n });\n });\n // update on multiple default selections\n //\n const { defaultChips } = elements;\n if (defaultChips) {\n defaultChips.forEach(defaultChip => {\n defaultChip.querySelector('.removeChip').addEventListener('click', e => {\n const chipVal = defaultChip.getAttribute('data-value');\n e.stopPropagation();\n e.preventDefault();\n const newList = [];\n forEach(items, item => {\n if (document.body.contains(item) || item === chipVal) {\n newList.push(item);\n }\n });\n\n this.getList(newList, elements.popupListUl);\n defaultChip.remove();\n\n const jfOpts = elements.popupListUl.querySelectorAll('.jfDropdown-optionListItem');\n forEach(jfOpts, opt => {\n if (opt.getAttribute('data-value') === chipVal) {\n opt.removeAttribute('aria-selected');\n removeClass(opt, 'isSelected');\n }\n });\n\n const opts = elements.select.querySelectorAll(`option[value=\"${chipVal}\"]`);\n forEach(opts, opt => {\n opt.removeAttribute('selected');\n });\n this.fireChangeEvent(selectEl);\n });\n });\n }\n\n const customList = elements.popupListUl;\n\n customList.addEventListener('click', event => {\n const option = event.target;\n const optVal = option.getAttribute('data-value');\n const optionValue = optVal === option.innerHTML ? optVal : option.innerHTML;\n elements.select.focus();\n if (optVal === null) return;\n\n if (!isMultiple) {\n forEach(items, item => {\n item.removeAttribute('aria-selected');\n removeClass(item, 'isSelected');\n });\n option.setAttribute('aria-selected', true);\n addClass(option, 'isSelected');\n const selectOptionValue = optVal.replace(/[\"\\\\]/g, '\\\\$&').trim();\n const selectOption = selectEl.querySelector(`option[value=\"${selectOptionValue}\"]`);\n forEach(selectEl.querySelectorAll('option'), p => { p.removeAttribute('selected'); });\n if (selectOption) {\n selectOption.setAttribute('selected', true);\n }\n\n selectEl.value = optVal;\n this.closeDropdown(elements);\n\n const singleSelect = dropdown.querySelector('.isSingle');\n // added for translation value of dropdown option\n singleSelect.innerHTML = optionValue;\n\n if (searchInput) {\n searchInput.value = optionValue.replace('&', '&');\n }\n\n if (\n hasClass(selectEl, 'form-subproduct-option')\n && typeof global.PaymentStock !== 'undefined'\n ) {\n global.PaymentStock.handleStockManagement();\n }\n\n this.fireChangeEvent(selectEl);\n } else {\n // replace for double quotes\n const replacedOptVal = optVal.replace(/[\"\\\\]/g, '\\\\$&');\n const options = elements.select.querySelectorAll(`option[value=\"${replacedOptVal}\"]`);\n\n forEach(options, opt => {\n opt.setAttribute('selected', true);\n });\n\n const exists = map(elements.chipContainer.querySelectorAll('.jfDropdown-chip'), p => p.getAttribute('data-value')).indexOf(optVal) > -1;\n\n if (!exists) {\n const chip = document.createElement('span');\n // added for translation value of dropdown option\n chip.innerHTML = `${optionValue}`; // \n chip.setAttribute('class', 'jfDropdown-chip');\n chip.setAttribute('data-value', optVal);\n\n elements.chipContainer.appendChild(chip);\n option.remove();\n const removeChipButton = chip.querySelector('.removeChip');\n removeChipButton.addEventListener('click', e => {\n e.stopPropagation();\n e.preventDefault();\n const newList = [];\n forEach(items, item => {\n if (document.body.contains(item) || item === option) {\n newList.push(item);\n }\n });\n\n this.getList(newList, elements.popupListUl);\n chip.remove();\n\n const opts = elements.select.querySelectorAll(`option[value=\"${replacedOptVal}\"]`);\n forEach(opts, opt => {\n opt.removeAttribute('selected');\n });\n this.fireChangeEvent(selectEl);\n });\n removeChipButton.addEventListener('keypress', e => {\n if (e.keyCode === 13 || e.keyCode === 32) {\n e.preventDefault();\n e.stopPropagation();\n removeChipButton.click();\n }\n });\n this.fireChangeEvent(selectEl);\n searchInput.value = '';\n }\n }\n });\n\n elements.dropdownWrapper.addEventListener('click', e => {\n if (!elements.select.hasAttribute('disabled')) {\n e.preventDefault();\n elements.select.focus();\n if (this.isPopupOpen(elements) && searchInput) {\n searchInput.focus();\n return;\n }\n if (this.isPopupOpen(elements)) {\n this.closeDropdown(elements);\n } else {\n this.openDropdown(elements);\n }\n }\n });\n\n // Keyboard Events\n dropdown.addEventListener('keydown', event => this.bindDropdownKeyEvents(event, elements), true);\n\n // ClickOutside\n document.addEventListener('click', event => this.bindClickOutside(event, elements));\n\n // Blur\n dropdown.addEventListener('blur', () => this.closeDropdown(elements));\n\n // window resize\n window.addEventListener('resize', () => this.closeDropdown(elements));\n\n // find dropdown's scrollable parent and add event\n const scrollableDiv = closest(dropdown, '.jfProductModule-wrapper', 'jfCard-question') || closest(dropdown, '.jfQuestion-fields', 'jfCard-question');\n scrollableDiv.addEventListener('scroll', () => this.scrollParent(elements));\n\n // bind select element's change event\n elements.select.addEventListener('change', () => this.bindSelectChangeEvent(elements));\n }\n\n bindClickOutside(event, elements) {\n if (this.isPopupOpen(elements)) {\n const isMultiple = hasClass(elements.dropdown, 'isMultiple');\n const { searchInput } = elements;\n if (!elements.dropdownWrapper.contains(event.target) && !elements.popupContainer.contains(event.target)) {\n this.closeDropdown(elements);\n\n if (!isMultiple && searchInput) {\n this.setSearchInputValue(elements);\n }\n }\n }\n }\n\n bindDropdownKeyEvents(event, elements) {\n if (this.isDropdownDisabled(elements)) {\n return;\n }\n\n const { dropdown } = elements;\n const { keyCode } = event;\n switch (keyCode) {\n // ENTER\n case 13: {\n if (this.isPopupOpen(elements)) {\n event.preventDefault();\n event.stopPropagation();\n this.selectFromKeyboard(elements);\n }\n break;\n }\n // SPACE\n case 32: {\n if (!this.isPopupOpen(elements)) {\n if (closest(event.target, '.jfDropdown-chipContainer') !== null) { // allow removeChip button to be pressed by keyboard\n break;\n }\n event.preventDefault();\n event.stopPropagation();\n this.openDropdown(elements);\n } else {\n const searchInput = dropdown.querySelector('.jfDropdown-search');\n if (!searchInput) {\n event.preventDefault();\n event.stopPropagation();\n this.selectFromKeyboard(elements);\n this.closeDropdown(elements);\n }\n }\n break;\n }\n // UP ARROW\n case 38: {\n event.preventDefault();\n if (!this.isPopupOpen(elements)) {\n this.openDropdown(elements);\n } else {\n this.moveNextPrevElement(elements, 'previousElementSibling');\n }\n break;\n }\n // DOWN ARROW\n case 40: {\n event.preventDefault();\n if (!this.isPopupOpen(elements)) {\n this.openDropdown(elements);\n } else {\n this.moveNextPrevElement(elements, 'nextElementSibling');\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n\n selectFromKeyboard(elements) {\n const jsSelected = elements.popupListUl.querySelector('.js-selected') ? elements.popupListUl.querySelector('.js-selected') : elements.popupListUl.querySelector('.isSelected');\n if (jsSelected && jsSelected.getAttribute('data-value')) {\n removeClass(jsSelected, 'js-selected');\n const { searchInput } = elements;\n if (searchInput) searchInput.blur();\n jsSelected.click();\n elements.dropdown.focus();\n }\n }\n\n closeDropdown(elements) {\n const { searchInput } = elements;\n\n if (searchInput) {\n this.toggleSearchInput(elements, false);\n }\n\n removeClass(elements.popupContainer, 'isOpen');\n elements.popupContainer.setAttribute('aria-hidden', true);\n elements.dropdownWrapper.setAttribute('aria-expanded', false);\n const jfOpts = elements.popupListUl.querySelectorAll('.jfDropdown-optionListItem');\n jfOpts.forEach(opt => opt.removeAttribute('tabindex'));\n }\n\n closeAllDropdowns() {\n this.elementsArr.forEach(p => this.closeDropdown(p));\n }\n\n isDropdownDisabled(elements) {\n return elements.select.hasAttribute('disabled');\n }\n\n isPopupOpen(elements) {\n return hasClass(elements.popupContainer, 'isOpen');\n }\n\n openDropdown(elements) {\n const { searchInput } = elements;\n addClass(elements.popupContainer, 'isOpen');\n elements.popupContainer.removeAttribute('aria-hidden');\n elements.dropdownWrapper.setAttribute('aria-expanded', true);\n const jfOpts = elements.popupListUl.querySelectorAll('.jfDropdown-optionListItem');\n jfOpts.forEach(opt => opt.setAttribute('tabindex', 0));\n if (searchInput) {\n this.toggleSearchInput(elements, true);\n searchInput.focus();\n }\n this.updatePopupPosition(elements);\n }\n\n toggleSearchInput(elements, show) {\n if (elements.dropdown.querySelector('.isSelected')) {\n const chipSpan = elements.chipContainer.querySelector('span');\n chipSpan.style.display = show ? 'none' : 'block';\n\n const { searchInput } = elements;\n searchInput.style.display = show ? 'block' : 'none';\n }\n }\n\n // direction can be nextElementSibling or previousElementSibling\n moveNextPrevElement(elements, direction) {\n let alignToTop;\n if (direction === 'nextElementSibling') {\n alignToTop = false;\n } else if (direction === 'previousElementSibling') {\n alignToTop = false;\n } else {\n return;\n }\n\n const jsSelected = elements.popupListUl.querySelector('.js-selected');\n if (jsSelected) {\n const nextElement = jsSelected[direction];\n if (nextElement) {\n removeClass(jsSelected, 'js-selected');\n addClass(nextElement, 'js-selected');\n nextElement.scrollIntoView(alignToTop);\n }\n } else {\n const isSelected = elements.popupListUl.querySelector('.isSelected');\n if (isSelected) {\n const nextElement = isSelected[direction];\n if (nextElement) {\n addClass(nextElement, 'js-selected');\n nextElement.scrollIntoView(alignToTop);\n }\n } else {\n const firstOption = elements.popupListUl.querySelector('.jfDropdown-optionListItem');\n if (firstOption) {\n addClass(firstOption, 'js-selected');\n firstOption.scrollIntoView(alignToTop);\n }\n }\n }\n }\n\n scrollParent(elements) {\n if (this.isPopupOpen(elements)) {\n if (isVisible(elements.dropdown)) {\n this.updatePopupPosition(elements);\n } else {\n this.closeDropdown(elements);\n }\n }\n }\n\n setSearchInputValue(elements) {\n const { select, select: { selectedIndex, value: selectValue }, searchInput } = elements;\n const selectText = select[selectedIndex].innerHTML;\n searchInput.value = selectText || selectValue || '';\n }\n\n fireChangeEvent(selectElement) {\n const changeEvent = document.createEvent('HTMLEvents');\n changeEvent.initEvent('change', true, true);\n selectElement.dispatchEvent(changeEvent);\n }\n\n setInitialValues() {\n this.elementsArr.forEach(elements => {\n const { dropdown } = elements;\n const isMultiple = hasClass(dropdown, 'isMultiple');\n\n if (isMultiple) {\n const selectedItems = map(elements.select.querySelectorAll('option'), p => p).filter(p => p.selected && p.innerText !== '');\n if (selectedItems.length) {\n const values = selectedItems.map(p => p.getAttribute('value'));\n values.forEach(value => {\n const element = map(elements.popupListUl.querySelectorAll('li'), p => p).find(p => p.getAttribute('data-value') === value);\n if (element) {\n this.createClickEvent(element);\n }\n });\n }\n } else if (elements.select.value) {\n const element = map(elements.popupListUl.querySelectorAll('li'), p => p).find((p, i) => p.getAttribute('data-value') === elements.select.value && i !== 0);\n if (element) {\n this.createClickEvent(element);\n }\n }\n });\n }\n\n createClickEvent(target) {\n if (!this.layoutParams.hasTouch || this.isPreviewMode) {\n const event = global.document.createEvent('MouseEvents');\n event.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n target.dispatchEvent(event);\n }\n }\n\n bindSelectChangeEvent(elements) {\n const { dropdown, select } = elements;\n\n if (hasClass(dropdown, 'form-validation-error')) {\n const component = elements.select.getAttribute('data-component');\n\n let qid;\n switch (component) {\n case 'dropdown':\n qid = elements.select.id;\n break;\n default:\n qid = `input_${elements.select.id.split('_')[1]}`;\n break;\n }\n\n const card = this.cards.filter(({ question }) => question.qid === qid)[0];\n\n if(card.question.type === 'control_mixed') {\n select.validateInput();\n } else {\n this.validateCard(card);\n }\n }\n\n const isMultiple = hasClass(dropdown, 'isMultiple');\n\n // We don't use custom dropdown on mobile devices. So don't need to manipulate click event.\n if (!this.layoutParams.hasTouch && !isMultiple) {\n const element = map(elements.popupListUl.querySelectorAll('li'), p => p).find(p => p.getAttribute('data-value') === elements.select.value);\n if (element && !hasClass(element, 'isSelected')) {\n this.createClickEvent(element);\n }\n }\n }\n}\n","// Based on https://github.com/glauberramos/vanilla-emoji-picker\nimport { EmojiList } from './constants';\nimport {\n forEach, map, isDescendant, addClass\n} from './utils';\n\nclass EmojiPicker {\n constructor(triggetButton, editor, restoreSelection) {\n // Passing restoreSelection method of editor to emoji picker\n this.restoreSelection = restoreSelection;\n\n // Bindings\n this.generateEmojiList = this.generateEmojiList.bind(this);\n this.generateEmojiButton = this.generateEmojiButton.bind(this);\n this.generateEmojiPicker = this.generateEmojiPicker.bind(this);\n this.generateEmojiListItem = this.generateEmojiListItem.bind(this);\n this.handleEmojiButtonClick = this.handleEmojiButtonClick.bind(this);\n this.handleEmojiTriggerClick = this.handleEmojiTriggerClick.bind(this);\n\n // Binding emoji button and editor for ease to access\n this.editor = editor;\n this.triggetButton = triggetButton;\n\n // Generate emoji picker\n this.emojiPicker = this.generateEmojiPicker(editor);\n\n // Create container for styling\n this.emojiContainer = document.createElement('div');\n this.emojiContainer.style.position = 'absolute';\n\n // Place picker into container\n this.emojiContainer.appendChild(this.emojiPicker);\n\n // Append picker to the parent of trigger button\n this.triggetButton.parentNode.appendChild(this.emojiContainer);\n\n // Handle trigger event\n this.triggetButton.addEventListener('click', this.handleEmojiTriggerClick);\n\n // Handle emoji picker visibility\n this.triggetButton.addEventListener('blur', () => setTimeout(() => { this.emojiPicker.style.display = 'none'; }, 200));\n }\n\n generateEmojiPicker(editor) {\n // Create empty containers\n const emojiPicker = document.createElement('div');\n\n // Create emoji list\n const emojiList = this.generateEmojiList();\n\n // Required styling for emoji picker\n addClass(emojiPicker, 'jfEmoji-picker');\n // Hide picker on blur\n emojiPicker.addEventListener('blur', () => {\n emojiPicker.style.display = 'none';\n });\n\n // Hide picker on editor typing\n editor.addEventListener('keydown', () => {\n emojiPicker.style.display = 'none';\n });\n\n // Place list into picker\n emojiPicker.appendChild(emojiList);\n\n return emojiPicker;\n }\n\n generateEmojiListItem() {\n // Create empty list item\n const listItem = document.createElement('li');\n listItem.className = 'jfEmoji-picker-item';\n\n return listItem;\n }\n\n generateEmojiButton(emoji) {\n // Create empty anchor\n const emojiLink = document.createElement('a');\n emojiLink.className = 'jfEmoji-picker-link';\n emojiLink.innerHTML = String.fromCodePoint(emoji);\n\n return emojiLink;\n }\n\n generateEmojiList() {\n // Container for emoji list\n const emojiList = document.createElement('ul');\n emojiList.className = 'jfEmoji-picker-list';\n\n // Generate list item for each emoji and insert them into container\n const emojiListItems = map(EmojiList, emoji => {\n // Generate dom elements\n const listItem = this.generateEmojiListItem();\n const emojiButton = this.generateEmojiButton(emoji);\n\n // Bind emoji click handling\n emojiButton.addEventListener('click', this.handleEmojiButtonClick);\n\n // Place button into list item\n listItem.appendChild(emojiButton);\n\n return listItem;\n });\n\n // Place each list item into emoji container\n forEach(emojiListItems, listItem => emojiList.appendChild(listItem));\n\n return emojiList;\n }\n\n handleEmojiButtonClick(event) {\n // Restore editor selection\n this.restoreSelection();\n\n // Get selection properties\n const selection = global.getSelection();\n const {\n focusNode,\n anchorOffset,\n focusOffset\n } = selection;\n\n // Do not try to paste emoji into text if current selection is not the editor\n if (focusNode !== this.editor && !isDescendant(this.editor, focusNode)) {\n // Hide emoji picker and exit from function\n this.emojiPicker.style.display = 'none';\n return false;\n }\n\n /*\n * Relation between anchorOffset and focusOffset indicates the selection direction.\n * If anchorOffset is the smaller one, then selection started from left; otherwise right.\n */\n\n const isLeft = anchorOffset < focusOffset;\n\n // Decide start and end positions\n const startPosition = isLeft ? anchorOffset : focusOffset;\n const endPosition = isLeft ? focusOffset : anchorOffset;\n\n // Seperate string into parts to place emoji inbetween\n const startPart = focusNode.textContent.substring(0, startPosition);\n const endPart = focusNode.textContent.substring(endPosition);\n const emojiPart = event.target.textContent;\n\n // Updating base node text\n focusNode.textContent = startPart + emojiPart + endPart;\n\n // Changing text content resets the selection so we need to set it again\n const range = document.createRange();\n\n // Update caret position\n if (startPart.length > 0) {\n range.setStart(focusNode, startPart.length + emojiPart.length);\n } else { // when adding emoji as the first character, length is not calculated correctly.\n range.setStart(focusNode, startPart.length);\n }\n // Marking it as collapses which means there is not any selection\n range.collapse(true);\n // Clear ranges and add the range we have created\n selection.removeAllRanges();\n selection.addRange(range);\n\n // Hide emoji picker after selection\n this.emojiPicker.style.display = 'none';\n }\n\n handleEmojiTriggerClick({ target }) {\n // Only trigger when focused element is trigger button\n if (target !== this.triggetButton) return;\n\n if (this.emojiPicker.style.display === 'block') {\n // Hide emoji picker\n this.emojiPicker.style.display = 'none';\n } else {\n // Show emoji picker\n this.emojiPicker.style.display = 'block';\n const btnRect = this.triggetButton.getBoundingClientRect();\n const parentRect = this.triggetButton.parentNode.getBoundingClientRect();\n const emojiPickerWidth = this.emojiPicker.getBoundingClientRect().width;\n const spaceLeft = btnRect.left - (emojiPickerWidth / 2);\n // Shift emojiPicker to the right if there is not enough space on the left.\n const neededSpace = spaceLeft < 0 ? Math.abs(spaceLeft) : 0;\n this.emojiContainer.style.left = `${(btnRect.left - parentRect.left) + 40 + neededSpace}px`;\n }\n }\n}\n\nexport default EmojiPicker;\n","import { FORM_TEXTS } from '@jotforminc/constants';\nimport EmojiPicker from './EmojiPicker';\nimport { isValidUrl } from './validationHelper';\nimport {\n forEach,\n findIndex,\n addClass,\n hasClass,\n htmlToText,\n toggleClass,\n removeClass,\n getSelectedRange,\n setSelectionRange,\n isDescendant\n} from './utils';\n\nclass Textarea {\n constructor({ cardContainer, fieldContainer, question: { id, qid } }, browserName, osName) {\n // Question properties\n this.questionID = id;\n\n // OS & Browser name to change couple handling\n this.osName = osName;\n this.browserName = browserName;\n\n // Command/tag map for marking active the toolbar buttons\n this.commandTagMap = {\n bold: ['B', 'STRONG'],\n italic: ['I', 'EM'],\n underline: ['U'],\n insertOrderedList: ['OL'],\n insertUnorderedList: ['UL'],\n formatBlock: ['BLOCKQUOTE'],\n createLink: ['A'],\n insertImage: ['IMG'],\n heading: ['H1', 'H2', 'H3', 'H4', 'H5', 'H6']\n };\n\n // Keys of command/tag map are the editor buttons that need to be updated in toolbar\n this.togglableCommands = Object.keys(this.commandTagMap);\n\n // Key/command mapping for shortcuts\n this.keyCommandMap = {\n k: 'createLink',\n b: 'bold',\n i: 'italic',\n u: 'underline'\n };\n\n // Shortcut key to check on events for detecting command shortcuts\n this.shortcutKey = this.osName === 'macOS' ? 'metaKey' : 'ctrlKey';\n\n // Flag for preventing meta key listening on shortcut usage\n this.preventNextKeyUp = false;\n\n // Events to listen for syncing input and markdown editor\n this.editorManipulationEventList = ['blur', 'input', 'keyup', 'keydown', 'paste', 'copy', 'cut', 'delete', 'mouseup', 'textinput'];\n\n // These events either does not supported or trigger constantly by iOS Safari. Therefore we remove them from iOS\n if (this.osName !== 'iOS') {\n this.editorManipulationEventList = this.editorManipulationEventList.concat(['selectionchange', 'DOMNodeInserted', 'DOMNodeRemoved']);\n } else { // iOS safari does not support selectionchange events so we trace end of touch event\n this.editorManipulationEventList = this.editorManipulationEventList.concat(['touchend']);\n }\n\n // Render type will be decided over rendered property\n this.renderType = fieldContainer.getAttribute(['data-render-type']);\n\n // Main input element of textarea card (Can be hidden or textarea)\n this.editorInput = cardContainer.querySelector(`#${qid}`);\n\n // Limit element of editor\n this.limitSpan = cardContainer.querySelector(`#${qid}-limit`);\n\n // Existance of limit element shows that editor has entry limit validation\n if (this.limitSpan) {\n // Get limit validation parameters and set them to object\n this.maxLimit = this.limitSpan.getAttribute('data-limit');\n this.minLimit = this.limitSpan.getAttribute('data-minimum');\n this.limitType = this.limitSpan.getAttribute('data-limit-type');\n this.limitSpan.textContent = `0/${this.minLimit > 0 ? this.minLimit : this.maxLimit}`;\n }\n\n // Selection temp variable to store editor selection on modal events\n this.selectionState = null;\n\n // Bindings\n this.initEditor = this.initEditor.bind(this);\n this.saveSelection = this.saveSelection.bind(this);\n this.getActiveTags = this.getActiveTags.bind(this);\n this.limitValidation = this.limitValidation.bind(this);\n this.isCommandActive = this.isCommandActive.bind(this);\n this.restoreSelection = this.restoreSelection.bind(this);\n this.bindEditorButton = this.bindEditorButton.bind(this);\n this.handleKeydownEvent = this.handleKeydownEvent.bind(this);\n this.setHtmlFromMarkdown = this.setHtmlFromMarkdown.bind(this);\n this.updateToolbarStatus = this.updateToolbarStatus.bind(this);\n this.setMarkdownFromHtml = this.setMarkdownFromHtml.bind(this);\n this.setHtmlFromMarkdown = this.setHtmlFromMarkdown.bind(this);\n this.handleEditorMutation = this.handleEditorMutation.bind(this);\n this.bindEditorButtonModal = this.bindEditorButtonModal.bind(this);\n this.bindEditorButtonSelect = this.bindEditorButtonSelect.bind(this);\n this.handleEditorButtonClick = this.handleEditorButtonClick.bind(this);\n this.getToolbarButtonByCommand = this.getToolbarButtonByCommand.bind(this);\n\n if (this.renderType === 'mde') {\n // Editor markup elements\n this.editorClassName = `inlineEditor-${id}`;\n this.editorToolbar = cardContainer.querySelector(`#${qid}_toolbar`);\n this.editorContainer = cardContainer.querySelector(`#${qid}_editor`);\n this.editorToolbarButtons = this.editorToolbar ? this.editorToolbar.getElementsByClassName('jfToolbar-item') : {};\n\n // Porting limit span for fullscreen mode\n if (this.limitSpan && this.editorToolbar) {\n this.editorToolbar.appendChild(this.limitSpan.parentNode);\n this.editorInput.limitValidation = this.limitValidation;\n }\n\n if (this.editorContainer && this.editorToolbar) {\n // Initialize markdown editor\n this.initEditor();\n }\n }\n }\n\n // Native selection object\n get selection() {\n return global.getSelection ? global.getSelection() : {};\n }\n\n // Selection collapsed means nothing selected at the moment; cursor just placed at somewhere\n get isSelectionCollapsed() {\n return this.selection ? this.selection.isCollapsed : false;\n }\n\n // Dom element that contains cursor currently\n get selectionFocus() {\n return this.selection ? this.selection.focusNode : {};\n }\n\n // Stores selection state\n saveSelection() {\n this.selectionState = getSelectedRange();\n }\n\n // Restores stored selection state and clear current selection\n restoreSelection() {\n // Set browser selection to the stored state\n setSelectionRange(this.selectionState);\n\n // Clear stored selection\n this.selectionState = null;\n }\n\n // Get editor toolbar buttons via command names\n getToolbarButtonByCommand(command) {\n return this.editorToolbarButtons.namedItem(`input_${this.questionID}_${command}`);\n }\n\n // Initialize method of basic textarea\n initBasic() {\n // Event bindings for textarea limit validation\n forEach(this.editorManipulationEventList, eventType => this.editorInput.addEventListener(eventType, () => this.limitsCounter()));\n }\n\n // Editor toolbar button bindind method\n bindEditorButton(btn) {\n const command = btn.getAttribute('data-command');\n btn.addEventListener('keypress', e => { if (e.keyCode === 32) e.target.click(); });\n switch (command) {\n case 'createLink':\n case 'insertImage':\n this.bindEditorButtonModal(btn, command);\n break;\n case 'insertEmoji':\n this.emojiPicker = new EmojiPicker(btn, this.editorContainer, this.restoreSelection);\n break;\n case 'heading':\n // Heading is a special case due to dropdown; therefore we are redirecting the binding method\n this.bindEditorButtonSelect(btn, command);\n break;\n default:\n btn.addEventListener('click', () => this.handleEditorButtonClick(btn, command));\n break;\n }\n }\n\n // Editor toolbar binding button (Specifically that contains select inside itself)\n bindEditorButtonSelect(btn, command) {\n const listParent = btn.querySelector('ul');\n const listItems = listParent.getElementsByTagName('li');\n\n // If ul list did not get rendered, then we need to hide btn as it will not function properly\n if (!listParent) {\n return btn.hide();\n }\n\n // Handle list item selections\n btn.addEventListener('click', evt => {\n // Stop browser events to prevent focusing toolbar items\n evt.stopPropagation();\n\n const { target } = evt;\n\n switch (target.tagName) {\n case 'DIV':\n // Handle show/hide of dropdown\n toggleClass(listParent, 'isVisible');\n target.setAttribute('aria-expanded', hasClass(listParent, 'isVisible'));\n\n // Restore selection to not mislead user\n this.restoreSelection();\n if (['Firefox', 'Safari'].indexOf(this.browserName) > -1) {\n // Firefox handles multiple selection so restoring does not malfunction the process\n this.saveSelection();\n }\n listParent.children[0].focus();\n break;\n default:\n // Handle click event like a regular editor button for list item\n const value = target.getAttribute('data-value');\n this.handleEditorButtonClick(target, command, value);\n\n // Clear selection of list items\n forEach(listItems, el => el.setAttribute('data-selected', false));\n forEach(listItems, el => el.setAttribute('aria-checked', false));\n\n // Mark as selected\n target.setAttribute('data-selected', true);\n target.setAttribute('aria-checked', true);\n\n // Hide dropdown\n removeClass(listParent, 'isVisible');\n break;\n }\n });\n\n document.body.addEventListener('click', ({ target }) => {\n // Do not handle this one\n if (target === btn || isDescendant(btn, target)) return;\n\n removeClass(listParent, 'isVisible');\n });\n }\n\n bindEditorButtonModal(btn, command) {\n const modalDiv = btn.getElementsByClassName('jfToolbar-modal')[0];\n const modalBtn = btn.getElementsByClassName('modal-btn')[0];\n const modalInput = btn.getElementsByTagName('input')[0];\n\n // If one of them is undefined then we need to hide this btn as it will not function properly\n if (!modalDiv || !modalInput || !modalBtn) {\n return btn.hide();\n }\n\n const handleModalExecution = () => {\n // Trigger command execution\n this.handleEditorButtonClick(btn, command, modalInput.value);\n\n // Clear input and hide modal at the end\n modalInput.value = '';\n removeClass(modalDiv, 'isVisible');\n };\n\n // Handle editor button click; if command is active, trigger click handle function to remove it; otherwise just toggle visibility\n btn.addEventListener('click', ({ target }) => {\n // Make sure bindend button is focused\n if (target !== btn) {\n return;\n }\n // Restore selection to make accurate command state detection\n this.restoreSelection();\n\n // Store the command state in order to store selection state again\n const isCommandActive = this.isCommandActive(command);\n\n // Save seletion state again\n this.saveSelection();\n\n // If command is active, just undo it from selection\n if (isCommandActive) {\n this.handleEditorButtonClick(btn, command);\n } else {\n // Get selected text via focused node\n const selectedText = this.selectionFocus.textContent;\n\n // For image and link, if selected text is a valid url then execute command without opening modal\n if (!this.isSelectionCollapsed && ['insertImage', 'createLink'].indexOf(command) !== -1 && isValidUrl(selectedText)) {\n return this.handleEditorButtonClick(btn, command, selectedText);\n }\n\n // Otherwise just toggle visibility\n toggleClass(modalDiv, 'isVisible');\n\n // If modal just opened, directly focus the modal input in order to handle modal close action on its blur event\n if (hasClass(modalDiv, 'isVisible')) {\n modalInput.focus();\n }\n }\n });\n\n // Hide modals on input and button blur\n modalInput.addEventListener('blur', () => {\n // Intention of delay is to capture selection correctly\n setTimeout(() => {\n const focusNode = this.selectionFocus;\n\n // No need to trigger remove process on modal div based elements. It will be handled by other bindings\n if (focusNode !== modalDiv && focusNode.parentNode !== modalBtn && focusNode.parentNode !== btn) {\n removeClass(modalDiv, 'isVisible');\n }\n }, 0);\n });\n\n // Complete command execution on enter keydown\n modalInput.addEventListener('keydown', e => {\n if (e.keyCode === 13) {\n // Prevent form submit and similar events\n e.preventDefault();\n\n // Trigger execcommand and hide modal\n handleModalExecution();\n }\n });\n\n modalBtn.addEventListener('click', handleModalExecution);\n modalBtn.addEventListener('keypress', e => {\n if (e.keyCode === 13 || e.keyCode === 32) {\n e.preventDefault();\n e.stopPropagation();\n modalBtn.click();\n }\n });\n }\n\n handleEditorButtonClick(btn, command, value) {\n // Restore selection before continuing\n this.restoreSelection();\n\n // Decide what to do based on command\n switch (command) {\n case 'formatBlock':\n // If blockquote is already active, we will use div tag to clear it; otherwise add blockquote\n const tagToAdd = hasClass(btn, 'active') ? '
    ' : '
    ';\n document.execCommand('formatBlock', false, tagToAdd);\n break;\n case 'heading':\n document.execCommand('formatBlock', false, `H${value}`);\n break;\n case 'createLink':\n const isLinkActive = this.isCommandActive('createLink');\n if (isLinkActive) {\n document.execCommand('unlink');\n break;\n } else if (this.browserName === 'Firefox') {\n document.execCommand('insertHTML', false, `${value}`);\n break;\n }\n // fall through if link does not exist in the selection\n default:\n document.execCommand(command, false, value);\n\n /*\n * 1. Do not update unnecessary buttons like insertHorizontalRule\n * 2. Toggle activity class if nothing selected; otherwise it will be detected by updateToolbarStatus method\n * and it will try to override the correct status.\n */\n if (this.togglableCommands.indexOf(command) !== -1 && this.isSelectionCollapsed) {\n // Remove or add class based on command status\n toggleClass(btn, 'active');\n btn.setAttribute('aria-pressed', hasClass(btn, 'active'));\n }\n break;\n }\n }\n\n handleEditorMutation(event, delayedCall) {\n const { type } = event;\n const { osName, browserName, editorInput } = this;\n\n // Delay touchend trigger as iOS selection api works inconsistently\n if (osName === 'iOS' && !delayedCall && ['touchend']) {\n setTimeout(() => this.handleEditorMutation(event, true), 125); // Magic number\n }\n\n // Update value of real input\n editorInput.value = this.editorContainer.textContent;\n\n // Mirror the event trigger on editor input for binded methods (Condition/calculation check etc.)\n editorInput.dispatchEvent(global.createNewEvent(type));\n\n // Couple events causes malfunctions on browsers like Safari and Firefox. Therefore, some of the functions will be called using this check\n const isSaveNeed = ['blur'].indexOf(type) === -1 || browserName === 'Chrome';\n const isUpdateNeed = ['blur', 'keyup'].indexOf(type) === -1 || (browserName === 'Internet Explorer' && type === 'blur') || browserName === 'Chrome';\n\n if (isSaveNeed) {\n // Save current selection due to the fact that clicking or focusing another may cause losing this state\n this.saveSelection();\n }\n\n switch (type) {\n case 'keydown':\n this.handleKeydownEvent(event);\n break;\n case 'keyup':\n // Prevent further action if meta key marked to prevent next trigger\n if (this.preventNextKeyUp) {\n this.preventNextKeyUp = false;\n break;\n }\n // fall through to update status bar\n default:\n if (isUpdateNeed) {\n this.updateToolbarStatus();\n }\n break;\n }\n\n // Update limit status if it is defined\n if (this.limitSpan) {\n this.limitValidation();\n }\n }\n\n handleKeydownEvent(event) {\n // This one goes to the one I love.\n // Event is related to a editor shortcut like making text bold/italic etc.\n if (event[this.shortcutKey] === true && this.keyCommandMap[event.key]) {\n // Prevent event as we already that the indended action\n event.preventDefault();\n\n // Matching command with key\n const command = this.keyCommandMap[event.key];\n // Get btn of that command\n const btn = this.getToolbarButtonByCommand(command);\n // Simulate a click for execCommand and activity status update\n this.handleEditorButtonClick(btn, command);\n\n // If nothing selected at the moment\n if (this.isSelectionCollapsed) {\n // Prevent next meta key up for not malfunctioning toolbar state\n this.preventNextKeyUp = true;\n }\n } else if (event.shiftKey === true && event.key === 'Tab') {\n // Event is intended to do a outdent\n document.execCommand('outdent');\n event.preventDefault();\n } else if (event.key === 'Tab') {\n // Event is intended to do a indent\n document.execCommand('indent');\n\n event.preventDefault();\n } else if (event.key === 'Escape') {\n event.target.blur();\n }\n }\n\n // Parse active tags from parsing given input\n getActiveTags(input) {\n if (!input) return {};\n\n if (input.parentNode === this.editorContainer) {\n const { tagName } = input;\n\n // Use font size as object value to pass necessary functions the font size information; otherwise just mark it as true (dummy value)\n return { [tagName]: this.commandTagMap.heading.indexOf(tagName) > -1 ? input.getAttribute('size') : true };\n }\n\n return { ...this.getActiveTags(input.parentNode), [input.tagName]: 1 };\n }\n\n isCommandActive(command) {\n // Get matching tag\n const tagsToSearch = this.commandTagMap[command];\n\n // If there is not any matching tag with given command\n if (!tagsToSearch) return false;\n\n // Get active tags via selected node\n const activeTags = Object.keys(this.getActiveTags(this.selectionFocus));\n\n return activeTags.findIndex(tag => tagsToSearch.indexOf(tag) > -1) > -1;\n }\n\n updateToolbarStatus() {\n // Currently selected dom node\n const focusNode = this.selectionFocus;\n\n /*\n * In short: Do not remove this check.\n *\n * If the currently selected node is the editor container itself, it is best to not update the toolbar.\n * Main problem in here is that if one remove all of the line while 'bold' or any similar exec command exist,\n * browser will keep bold command in active state; although there is not any text on the line.\n * Due to the fact we are trying to detect state of buttons via tags in the line, 'getActiveTags' will not able to find required tag (Yet, the command is still active)\n * and toolbar status update will malfunction. The indicator of this situation is the focusNode of selection becomes editorContainer itself.\n *\n */\n if (focusNode === this.editorContainer) return;\n\n // Parse selection to get wrapper tags\n const activeTagsInfo = this.getActiveTags(focusNode);\n const activeTags = Object.keys(activeTagsInfo);\n\n // Check button commands to mark appropriate ones as active\n forEach(this.editorToolbarButtons, btn => {\n // Get matching tag with toolbar button command\n const tagsToSearch = this.commandTagMap[btn.getAttribute('data-command')];\n\n // If command does not have matching tag skip it\n if (tagsToSearch === undefined) return;\n\n // Get editor button list items\n const listItems = btn.getElementsByTagName('li');\n\n // Get index if tag from list\n const index = findIndex(activeTags, tagsToSearch);\n\n // If list items exist, we need to handle their state instead of button\n if (listItems && listItems.length > 0) {\n // Clear list items and mark one of them as active\n forEach(listItems, li => {\n const value = li.getAttribute('data-value');\n const tag = activeTags[index];\n const tagValue = activeTagsInfo[tag];\n\n // Do not process tag or non strings\n if (tag === 'undefined' || typeof tagValue !== 'string') return;\n\n // If value matches with the list item, mark it as active; otherwise toggle it to passive\n li.setAttribute('data-selected', index !== -1 && value === tagValue.replace(/^\\D+/g, ''));\n });\n } else {\n // Decide with method to use: If tag exists use add method; otherwise use remove method\n const methodToUse = index !== -1 ? addClass : removeClass;\n\n // Update classlist of button\n methodToUse.call(this, btn, 'active');\n btn.setAttribute('aria-pressed', hasClass(btn, 'active'));\n }\n });\n }\n\n limitValidation() {\n // Initialize text to check for limits\n const textToCheck = this.renderType === 'mde' ? htmlToText(this.editorContainer) : this.editorInput.value;\n\n // Get count based on counting type\n const count = this.limitType === 'Words' ? textToCheck.split(/[\\n\\r\\s]+/).length : textToCheck.length;\n\n // Check limitation status\n const isMinFailed = this.minLimit > 0 && count < this.minLimit;\n const isMaxFailed = this.maxLimit > 0 && count > this.maxLimit;\n\n // Decide which text to use as max limit\n const limitValue = (isMinFailed && !isMaxFailed) || (this.minLimit > 0 && this.maxLimit < 0) ? this.minLimit : this.maxLimit;\n\n // Update text of limit counter\n this.limitSpan.textContent = `${count}/${limitValue}`;\n\n if (isMinFailed || isMaxFailed) {\n // Decide error texts based on current limitting method\n const errorPrefix = this.limitType === 'Words' ? 'word' : 'character';\n const errorTextKey = isMinFailed ? `${errorPrefix}MinLimitError` : `${errorPrefix}LimitError`;\n\n // Construct error text\n const errorText = `${global.JotForm.texts[errorTextKey] || FORM_TEXTS[errorTextKey]} ${limitValue}`;\n\n // Clear error message first\n if (this.editorInput.errorMessage !== errorText) {\n // Mark the field as corrected for clearing error statements\n global.JotForm.corrected(this.editorInput);\n }\n\n // Mark the field as errored\n global.JotForm.errored(this.editorInput, errorText);\n\n return errorText;\n }\n\n // Mark the field as corrected for clearing error statements\n global.JotForm.corrected(this.editorInput);\n\n return false;\n }\n\n setMarkdownFromHtml(html) {\n if (typeof global.toMarkdown === 'function') {\n // Use editor container value as fallback\n const htmlText = html !== undefined ? html : this.editorContainer.innerHTML;\n\n // Convert and set\n const markdownText = global.toMarkdown(htmlText);\n this.editorInput.value = markdownText.length !== 0 ? `jotform_untitled_markdown${markdownText}` : '';\n }\n }\n\n setHtmlFromMarkdown(md) {\n if (typeof global.showdown === 'object' && typeof global.showdown.Converter === 'function') {\n // Use hidden textarea value as fallback\n const mdText = md !== undefined ? md : this.editorInput.value.replace('jotform_untitled_markdown', '');\n\n // Convert and set\n const converter = new global.showdown.Converter();\n this.editorContainer.innerHTML = converter.makeHtml(mdText);\n }\n }\n\n initEditor() {\n if (this.editorInput.classList.contains('form-readonly')) {\n this.editorContainer.contentEditable = false;\n return;\n }\n\n // Set default value to editor container too\n this.setHtmlFromMarkdown(this.editorInput.value);\n\n // Bind editor toolbar buttons\n forEach(this.editorToolbarButtons, this.bindEditorButton);\n\n // Update toolbar status on editor manipulation\n forEach(this.editorManipulationEventList, eventType => this.editorContainer.addEventListener(eventType, this.handleEditorMutation));\n }\n}\n\nexport default Textarea;\n","import { forEach, map, removeClass } from './utils';\n\nconst headerSelector = '.js-header';\nconst contentSelector = '.js-content';\n\nconst productContainerSelector = '.products-container';\nconst paymentTypeContainerSelector = '.jfPaymentType';\nconst creditCardAddressSelector = '.jfCreditCardAddress';\nconst creditCardWrapper = '.jfCreditCardAddress-creditCardWrapper';\nconst addressWrapper = '.jfCreditCardAddress-addressWrapper';\nconst emailWrapper = '.jfCreditCardAddress-emailWrapper';\nconst plaidWrapper = '.jfCreditCardAddress-plaidWrapper';\n\nconst labelIdPostfix = {\n creditCard: 'creditCard',\n address: 'address',\n email: 'email',\n paymentType: 'type',\n plaid: 'plaid'\n};\n\nconst paymentCards = {\n products: 'products',\n paymentType: 'paymentType',\n creditCard: 'creditCard',\n address: 'address',\n email: 'email',\n plaid: 'plaid'\n};\n\nconst paymentTypes = [\n 'control_2co',\n 'control_authnet',\n 'control_bluepay',\n 'control_bluesnap',\n 'control_braintree',\n 'control_cardconnect',\n 'control_chargify',\n 'control_clickbank',\n 'control_dwolla',\n 'control_echeck',\n 'control_eway',\n 'control_firstdata',\n 'control_paypalInvoicing',\n 'control_stripeACHManual',\n 'control_gocardless',\n 'control_googleco',\n 'control_onebip',\n 'control_payjunction',\n 'control_payment',\n 'control_paymentwall',\n 'control_paymill',\n 'control_paypal',\n 'control_paypalexpress',\n 'control_paypalpro',\n 'control_paypalSPB',\n 'control_paypalcomplete',\n 'control_square',\n 'control_stripe',\n 'control_stripeACH',\n 'control_wepay',\n 'control_worldpay',\n 'control_worldpayus',\n 'control_payu',\n 'control_payuMoney',\n 'control_pagseguro',\n 'control_moneris',\n 'control_sensepass',\n 'control_sofort',\n 'control_skrill',\n 'control_paysafe',\n 'control_iyzico',\n 'control_mollie',\n 'control_stripeCheckout',\n 'control_payfast'\n];\n\nconst cloneWrapper = card => {\n return card.wrapperContainer.cloneNode(true);\n};\n\nconst cloneCard = _card => {\n const card = { ..._card };\n const wrapper = cloneWrapper(card);\n card.wrapperContainer = wrapper;\n card.cardContainer = wrapper.querySelector('.jfCard');\n card.indexContainer = wrapper.querySelector('.jfCard-index');\n card.pressEnterContainer = wrapper.querySelector('.jfPressEnter');\n card.actionsButtons = {\n prev: card.cardContainer.querySelector('.jfCard-actions .forPrev'),\n next: card.cardContainer.querySelector('.jfCard-actions .forNext'),\n submit: card.cardContainer.querySelector('.jfCard-actions .forSubmit'),\n mode: 'middle' // first, last, middle, submit\n };\n return card;\n};\n\nconst removeSiblings = element => {\n forEach(map(element.parentNode.children, p => p), ch => {\n if (ch !== element) {\n ch.parentNode.removeChild(ch);\n }\n });\n};\n\nconst setCardLabel = (_card, textContainerElement, postfix) => {\n const card = _card;\n const labelText = textContainerElement.innerText;\n textContainerElement.parentNode.removeChild(textContainerElement);\n const label = card.cardContainer.querySelector('.jfQuestion-label');\n if (label.childNodes && label.childNodes.length && label.childNodes[0].nodeType === 3) {\n label.childNodes[0].nodeValue = labelText;\n\n // Same label id is broke translations. Adding postfix fixed the issue. (#1267519)\n label.setAttribute('id', `${label.getAttribute('id')}_${postfix}`);\n } else {\n label.innerText = labelText;\n }\n};\n\nconst getPaymentCard = cards => {\n return cards.find(p => paymentTypes.indexOf(p.question.type) > -1);\n};\n\nconst constructProductCard = _card => {\n const card = cloneCard(_card);\n card.type = paymentCards.products;\n const productContainer = card.wrapperContainer.querySelector(productContainerSelector);\n removeSiblings(productContainer);\n\n if (card.question.hideSingleProduct) {\n card.isHidden = true;\n card.forceHide = true;\n card.wrapperContainer.style.display = 'none';\n }\n\n return card;\n};\n\nconst constructPaymentMethodCard = _card => {\n const card = cloneCard(_card);\n card.type = paymentCards.paymentType;\n const container = card.wrapperContainer.querySelector(paymentTypeContainerSelector);\n if (container) {\n if (card.question.hideSingleProduct) {\n card.isHidden = true;\n card.forceHide = true;\n card.wrapperContainer.style.display = 'none';\n }\n // remove others\n removeSiblings(container);\n // update card label\n setCardLabel(card, container.querySelector(headerSelector), labelIdPostfix.paymentType);\n removeSiblings(container.querySelector(contentSelector));\n return card;\n }\n return null;\n};\n\nconst constructCreditCard = _card => {\n const card = cloneCard(_card);\n card.type = paymentCards.creditCard;\n const container = card.wrapperContainer.querySelector(creditCardAddressSelector);\n\n if (container) {\n const wrapper = container.querySelector(creditCardWrapper);\n if (wrapper) {\n if (container.style.display === 'none') {\n card.isHidden = true;\n card.forceHide = true;\n card.wrapperContainer.style.display = 'none';\n }\n container.removeAttribute('style');\n // remove others\n removeSiblings(container);\n // update card label\n setCardLabel(card, wrapper.querySelector(headerSelector), labelIdPostfix.creditCard);\n removeSiblings(wrapper);\n return card;\n }\n }\n return null;\n};\n\nconst constructAddressCard = _card => {\n const card = cloneCard(_card);\n card.type = paymentCards.address;\n const container = card.wrapperContainer.querySelector(creditCardAddressSelector);\n\n if (container) {\n const wrapper = container.querySelector(addressWrapper);\n\n if (wrapper) {\n if (container.style.display === 'none') {\n card.isHidden = true;\n card.forceHide = true;\n card.wrapperContainer.style.display = 'none';\n }\n container.removeAttribute('style');\n // remove others\n removeSiblings(container);\n // update card label\n setCardLabel(card, wrapper.querySelector(headerSelector), labelIdPostfix.address);\n removeSiblings(wrapper);\n return card;\n }\n }\n return null;\n};\n\nconst constructEmailCard = _card => {\n const card = cloneCard(_card);\n card.type = paymentCards.email;\n const container = card.wrapperContainer.querySelector(creditCardAddressSelector);\n\n if (container) {\n const wrapper = container.querySelector(emailWrapper);\n\n if (wrapper) {\n if (card.question.hideSingleProduct) {\n card.isHidden = true;\n card.forceHide = true;\n card.wrapperContainer.style.display = 'none';\n }\n // remove others\n removeSiblings(container);\n // update card label\n setCardLabel(card, container.querySelector(headerSelector), labelIdPostfix.email);\n removeSiblings(container.querySelector(contentSelector));\n removeSiblings(wrapper);\n return card;\n }\n }\n return null;\n};\n\nconst constructPlaidCard = _card => {\n const label = 'Bank Account Details';\n const card = cloneCard(_card);\n card.type = paymentCards.plaid;\n const container = card.wrapperContainer.querySelector(creditCardAddressSelector);\n\n if (container) {\n const wrapper = container.querySelector(plaidWrapper);\n\n if (wrapper) {\n removeSiblings(container);\n removeSiblings(container.querySelector(contentSelector));\n removeSiblings(wrapper);\n card.label = label;\n card.cardContainer.querySelector('.jsQuestionLabelContainer').innerText = label;\n return card;\n }\n }\n return null;\n};\n\nconst constructNewCard = (_card, label, type) => {\n const card = cloneCard(_card);\n card.type = type;\n const wrapperSelector = `.jfCreditCardAddress-${type}Wrapper`;\n const container = card.wrapperContainer.querySelector(creditCardAddressSelector);\n if (container) {\n const wrapper = container.querySelector(wrapperSelector);\n\n if (wrapper) {\n removeSiblings(container);\n removeSiblings(container.querySelector(contentSelector));\n removeSiblings(wrapper);\n card.label = label;\n card.cardContainer.querySelector('.jsQuestionLabelContainer').innerText = label;\n card.cardContainer.querySelector('.jfQuestion-label').style.padding = '0px';\n return card;\n }\n }\n return null;\n};\n\nconst populateCards = (_cards, labels) => {\n const cards = [..._cards];\n const paymentCard = getPaymentCard(cards);\n if (paymentCard) {\n const oldCardIndex = cards.indexOf(paymentCard);\n const oldPaymentCardWrapper = paymentCard.wrapperContainer; // will be removed;\n const { formLine } = paymentCard; // new cardWrappers will be appeded to this\n\n const paypalSPBLabel = labels.find(l => l.question && l.question.type === 'control_paypalSPB');\n\n const newCards = [\n constructProductCard(paymentCard),\n constructEmailCard(paymentCard),\n constructPaymentMethodCard(paymentCard),\n constructCreditCard(paymentCard),\n constructAddressCard(paymentCard),\n constructPlaidCard(paymentCard),\n constructNewCard(paymentCard, paypalSPBLabel ? paypalSPBLabel.label : 'Pay with PayPal', 'paypalSPB')\n ].filter(p => p);\n\n // remove jfProductModule-wrapper' class;\n newCards.forEach((p, i) => {\n const wrapper = p.wrapperContainer.querySelector('.js-productModuleWrapper');\n if (wrapper) {\n removeClass(wrapper, 'js-productModuleWrapper');\n }\n\n newCards[i].questionContainer = p.wrapperContainer.querySelector('.jfCard-question');\n newCards[i].actionButtonsWrapper = p.wrapperContainer.querySelector('.jfCard-actions');\n });\n\n const wrappers = newCards.map(p => p.wrapperContainer);\n\n cards.splice(oldCardIndex, 1, ...newCards);\n\n wrappers.forEach(wrapper => {\n formLine.insertBefore(wrapper, oldPaymentCardWrapper);\n });\n\n formLine.removeChild(oldPaymentCardWrapper);\n }\n return cards;\n};\n\nexport default {\n populateCards,\n paymentTypes,\n paymentCards\n};\n","import { closest } from '@jotforminc/utils';\n\nimport {\n addClass, removeClass, forEach, removeAttribute\n} from './utils';\n\nclass DateHandler {\n constructor(card, hasTouch, deviceType, additionalProps) {\n this.hasTouch = hasTouch;\n this.deviceType = deviceType;\n this.isMobile = deviceType === 'mobile';\n this.isDesktop = deviceType === 'desktop';\n this.card = card;\n this.additionalProps = additionalProps;\n this.isCalendarVisible = false;\n this.inputType = this.card.question.type === 'control_inline' ? 'inline' : 'date';\n if (this.inputType === 'inline') {\n this.blotId = this.additionalProps.options[0].id;\n }\n this.updateCalendarPosition = this.updateCalendarPosition.bind(this);\n this.init();\n }\n\n init() {\n this.calendarContainer = this.card.cardContainer.querySelector('.jfCalendar-wrapper');\n this.liteModeInput = document.getElementById(`lite_mode_${this.card.question.id}`);\n this.dateInput = this.card.cardContainer.querySelector('.jfCardDateInput');\n if (this.card.question.type === 'control_inline') {\n this.liteModeInput = this.card.cardContainer.querySelector(`#lite_mode_${this.card.question.id}-${this.blotId}`);\n this.calendarContainer = document.querySelector(`#calendar-container-${this.card.question.id}-${this.blotId}`).parentNode;\n }\n this.setCalendarVisibility(this.isCalendarVisible);\n this.setInputVisibility();\n // this.setInputType(this.inputType);\n this.bindToggleButton();\n // this.hideDefaultInputFields();\n this.bindDateInput();\n this.moveCalendarToBody();\n this.bindCalendarCloseOnDateSelect();\n if (this.isMobile) {\n addClass(this.calendarContainer, 'mobileCalendarPopup');\n }\n }\n\n moveCalendarToBody() {\n this.calendarContainer.parentNode.removeChild(this.calendarContainer);\n document.body.appendChild(this.calendarContainer);\n this.calendarContainer.style.position = 'fixed';\n }\n\n updateCalendarPosition() {\n if (!this.isMobile) {\n const rect = this.liteModeInput.getBoundingClientRect();\n this.calendarContainer.style.top = `${rect.bottom}px`;\n this.calendarContainer.style.left = `${rect.left + (rect.width / 2)}px`;\n }\n }\n\n setInputType(type) {\n this.inputType = type;\n const inputs = this.card.cardContainer.querySelectorAll('.jfQuestion-fields .jfField input');\n forEach(inputs, _input => {\n const input = _input;\n input.type = type;\n const fieldContainer = closest(input, '.jfField');\n addClass(fieldContainer, 'isFilled');\n });\n }\n\n hideDefaultInputFields() {\n const fields = this.card.cardContainer.querySelectorAll('.jfField');\n forEach(fields, p => {\n addClass(p, 'isHidden'); // eslint-disable-line\n addClass(p, 'cf-valid-hidden'); // eslint-disable-line\n });\n }\n\n bindDateInput() {\n if (this.dateInput) {\n this.dateInput.addEventListener('change', e => {\n this.onLiteInputChange(e.target);\n });\n }\n }\n\n setCalendarVisibility(isVisible) {\n this.isCalendarVisible = isVisible;\n if (isVisible) {\n removeClass(this.calendarContainer, 'isHidden');\n this.updateCalendarPosition();\n } else {\n addClass(this.calendarContainer, 'isHidden');\n }\n }\n\n setInputVisibility() {\n removeClass(this.liteModeInput, 'isHidden');\n removeAttribute(this.liteModeInput, 'tabindex');\n if (this.dateInput) {\n this.dateInput.style.display = 'none';\n }\n }\n\n bindToggleButton() {\n const toggle = (this.blotId ? this.card.cardContainer.querySelector(`#id_${this.card.question.id}-${this.blotId}`) : this.card.cardContainer).querySelector('.jfField-svgWrapper.forDate');\n if (toggle) {\n toggle.addEventListener('keypress', e => {\n if (e.keyCode === 13 || e.keyCode === 32) {\n e.preventDefault();\n e.target.click();\n }\n });\n toggle.addEventListener('click', () => {\n this.setCalendarVisibility(!this.isCalendarVisible);\n });\n }\n }\n\n onLiteInputChange(input) {\n const val = input.value || '';\n const [year, month, day] = val.split('-');\n const date = new Date(year, parseInt(month, 10) - 1, day, 0, 0, 0);\n if (!isNaN(date)) {\n if (this.liteModeInput) {\n if (this.liteModeInput.hasAttribute('data-format') && this.liteModeInput.hasAttribute('data-seperator')) {\n const dateFormat = this.liteModeInput.dataset.format;\n const dateSeperator = this.liteModeInput.dataset.seperator;\n\n if (dateFormat && dateSeperator) {\n let formattedDate;\n\n switch (dateFormat) {\n case 'mmddyyyy':\n formattedDate = month + dateSeperator + day + dateSeperator + year;\n break;\n case 'ddmmyyyy':\n formattedDate = day + dateSeperator + month + dateSeperator + year;\n break;\n case 'yyyymmdd':\n formattedDate = year + dateSeperator + month + dateSeperator + day;\n break;\n default:\n // eslint-disable-next-line prefer-template\n formattedDate = month + '-' + day + '-' + year;\n break;\n }\n\n this.liteModeInput.value = formattedDate;\n this.onCalendarSelected(val || date);\n }\n }\n } else {\n this.calendar.setDate(date || val);\n this.calendar.selectHandler(this.calendar, val);\n }\n } else if (!val) {\n this.clearDateInputs();\n this.card.validate();\n } else {\n document.getElementById(`year_${this.card.question.id}`).value = year;\n document.getElementById(`month_${this.card.question.id}`).value = month;\n document.getElementById(`day_${this.card.question.id}`).value = day;\n this.card.validate();\n }\n }\n\n clearDateInputs() {\n document.getElementById(`year_${this.card.question.id}`).value = '';\n document.getElementById(`month_${this.card.question.id}`).value = '';\n document.getElementById(`day_${this.card.question.id}`).value = '';\n if (this.liteModeInput) {\n this.liteModeInput.value = '';\n }\n }\n\n onCalendarSelected(date) {\n if (date && this.dateInput) {\n this.dateInput.value = date;\n if (this.liteModeInput) {\n this.liteModeInput.triggerEvent('blur');\n }\n\n if (this.dateInput.hasAttribute('data-valid-example')) {\n // Hide mask element\n this.dateInput.previousSibling.classList.add('calendarSelect');\n }\n // this.setCalendarVisibility(false);\n }\n }\n\n bindCalendarCloseOnDateSelect() {\n this.calendarContainer.addEventListener('click', e => {\n if (closest(e.target, 'tbody') && closest(e.target, '.jfCalendar-container') && !closest(e.target, 'td.unselectable')) {\n if (this.dateInput) {\n this.onLiteInputChange(this.dateInput);\n }\n this.setCalendarVisibility(false);\n }\n });\n }\n}\n\nexport default DateHandler;\n","import { closest } from '@jotforminc/utils';\n\nimport DateHandler from './dateHandler';\n\nclass Datetime {\n constructor(props) {\n this.init = this.init.bind(this);\n this.updateCalendarPositions = this.updateCalendarPositions.bind(this);\n this.init(props);\n this.listenCalendarOutsideClick();\n this.listenResize();\n }\n\n init(props) {\n this.cards = props.cards;\n const dateCards = props.cards.filter(p => ['control_datetime', 'control_birthdate'].indexOf(p.question.type) > -1);\n const inlineQuestionsCards = props.cards.filter(p => p.question.type === 'control_inline');\n this.handlers = dateCards.map(card => new DateHandler(card, props.hasTouch, props.deviceType));\n inlineQuestionsCards.forEach(card => {\n (Array.isArray(card.question.fields) ? card.question.fields : []).filter(field => field.type === 'control_datetime').forEach(dateField => {\n this.handlers.push(new DateHandler(card, props.hasTouch, props.deviceType, dateField));\n });\n });\n }\n\n closeAllCalendars() {\n this.handlers.forEach(p => p.setCalendarVisibility(false));\n }\n\n listenCalendarOutsideClick() {\n document.addEventListener('click', e => {\n if (!closest(e.target, '.jfCalendar-container, .jfDropdown-toggle')) {\n this.handlers.forEach(p => { p.setCalendarVisibility(false); });\n }\n }, true);\n }\n\n updateCalendarPositions() {\n this.handlers.forEach(p => { p.updateCalendarPosition(); })\n }\n\n listenResize() {\n window.addEventListener('resize', () => {\n this.updateCalendarPositions();\n });\n\n window.addEventListener('orientationchange', () => {\n this.updateCalendarPositions();\n });\n }\n\n onCalendarSelected(card, date) {\n const handler = this.handlers.find(p => p.card === card);\n handler.onCalendarSelected(date);\n }\n\n onCalendarInit(card, calendar) {\n const handler = this.handlers.find(p => p.card === card);\n handler.calendar = calendar;\n }\n}\n\nexport default Datetime;\n","class APIClient {\n constructor(baseUrl) {\n this.baseUrl = baseUrl || '';\n }\n\n withBaseUrl(baseUrl) {\n this.baseUrl = baseUrl;\n return this;\n }\n\n async request(url, method, data) {\n const requestOptions = {\n method: method,\n body: data ? JSON.stringify(data) : undefined\n };\n\n const response = await fetch(`${this.baseUrl}${url}`, {\n ...requestOptions,\n credentials: 'include'\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n\n return response.json();\n }\n\n async get(url) {\n return this.request(url, 'GET');\n }\n\n async post(url, data) {\n return this.request(url, 'POST', data);\n }\n}\n\nexport const apiClient = new APIClient();\n","/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport md5 from 'blueimp-md5';\nimport { addClass, removeClass } from './utils';\nimport { apiClient } from './embedOptionsApiClient';\n\nexport default class EmbedOptions {\n constructor(props) {\n this.formID = props.formID;\n this.layout = props;\n this.inlineEmbed = false;\n this.layout = 'standard';\n this.listenEmbedOptionsMessage = this.listenEmbedOptionsMessage.bind(this);\n this.initializeStandardProgress = this.initializeStandardProgress.bind(this);\n this.initializeModernProgress = this.initializeModernProgress.bind(this);\n this.calculateFormHeight = this.calculateFormHeight.bind(this);\n this.handleQuestionChange = this.handleQuestionChange.bind(this);\n this.calculateWelcomeSize = props.calculateWelcomeSize;\n this.styleJSON = {};\n this.embedStyleJSON = {};\n\n const isEmbed = global.parent !== global;\n if (isEmbed) {\n // this.populateEmbedOptionsButton();\n this.bindIframeMessageListener();\n this.handleQuestionChange();\n }\n }\n\n bindIframeMessageListener() {\n if (window.addEventListener) {\n window.addEventListener('message', this.listenEmbedOptionsMessage, false);\n } else if (window.attachEvent) {\n window.attachEvent('onmessage', this.listenEmbedOptionsMessage);\n }\n }\n\n handleOptionsButtonClick() {\n this.togglePanelStatus();\n }\n\n togglePanelStatus() {\n this.sendPostMessage({ type: 'toggleInlineEmbedPanel' });\n }\n\n sendPostMessage(data) {\n window.parent.postMessage(JSON.stringify(data), '*');\n }\n\n populateEmbedOptionsButton() {\n const isEmbed = global.parent !== global;\n if (isEmbed) {\n const optionsButton = document.createElement('img');\n optionsButton.classList.add('embedOptionsButton');\n optionsButton.src = 'https://cdn.jotfor.ms/assets/img/cardforms/pencil.svg';\n optionsButton.setStyle({\n position: 'absolute',\n top: '20px',\n left: '20px',\n width: '40px',\n cursor: 'pointer',\n zIndex: '1'\n });\n\n optionsButton.addEventListener('click', () => {\n this.handleOptionsButtonClick();\n });\n\n document.body.appendChild(optionsButton);\n\n const tooltip = document.createElement('div');\n tooltip.classList.add('toolTip');\n tooltip.classList.add('u-neutral');\n tooltip.classList.add('u-northWest');\n tooltip.classList.add('u-tethered');\n tooltip.setStyle({ display: 'none', visibility: 'initial', textAlign: 'center', top: '62px', left: '20px', width: '240px', borderRadius: '3px', fontSize: '13px', opacity: 'initial' });\n\n tooltip.innerHTML = 'Only Form owner see this button';\n const tooltipSpan = document.createElement('span');\n tooltipSpan.setStyle({ display: 'block', fontSize: '10px' });\n tooltipSpan.innerHTML = 'Inline Embed Feature by Jotform';\n\n tooltip.appendChild(tooltipSpan);\n\n optionsButton.addEventListener('mouseenter', () => {\n tooltip.style.display = 'block';\n });\n\n optionsButton.addEventListener('mouseleave', () => {\n tooltip.style.display = 'none';\n });\n\n document.body.appendChild(tooltip);\n\n const link = document.createElement('link');\n link.setAttribute('rel', 'stylesheet');\n link.setAttribute('href', 'https://moodular.jotform.com/dist/moodular4/tooltips.css');\n const head = document.getElementsByTagName('head')[0];\n head.appendChild(link);\n }\n }\n\n addStyle(elements, styles) {\n if (elements instanceof NodeList || elements instanceof HTMLCollection || Array.isArray(elements)) {\n elements.forEach(element => this.applyStyles(element, styles));\n } else if (elements instanceof Element) {\n this.applyStyles(elements, styles);\n }\n }\n\n addStyleWithTag(tagId, styleText) {\n var style = document.querySelector(`#${tagId}`);\n\n if (!style) {\n style = document.createElement('style');\n style.type = 'text/css';\n style.id = tagId;\n document.head.appendChild(style);\n }\n\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(styleText);\n }\n\n applyStyles(element, styles) {\n if (typeof element.setStyle === 'function') {\n element.setStyle(styles);\n } else {\n for (const cssRule in styles) {\n if (styles.hasOwnProperty(cssRule)) {\n element.style[cssRule] = styles[cssRule];\n }\n }\n }\n }\n\n listenEmbedOptionsMessage(opts) {\n // To prevent empty data error\n if (!opts.data) return;\n\n try {\n const isEmbedButton = opts.data.split(':')[0];\n if (isEmbedButton === 'embedOptions') {\n return;\n }\n const data = JSON.parse(opts.data);\n\n if (data.showOwnerButton) this.populateEmbedOptionsButton();\n\n if (data.styleJSON) {\n this.styleJSON = data.styleJSON;\n }\n if (data.embedStyleJSON) {\n this.embedStyleJSON = data.embedStyleJSON;\n }\n\n if (data.beginBackgroundColor) {\n this.addStyle(document.querySelector('.jfForm-wrapper'), { background: data.beginBackgroundColor });\n this.addStyle(document.querySelector('.jfForm-backgroundContainer'), { background: data.beginBackgroundColor });\n this.addStyle(document.querySelector('.jotform-form'), { background: data.beginBackgroundColor });\n this.addStyle(document.querySelector('.jfProgress'), { background: data.beginBackgroundColor });\n }\n\n if(data.formBackgroundImage){\n this.addStyle(document.querySelector('.jfForm-backgroundContainer'), { 'background-image': `url('${data.formBackgroundImage}')` });\n }\n\n if (data.buttonBackgroundColor) {\n this.addStyle(document.querySelectorAll('.jfCard-actions'), { background: data.buttonBackgroundColor });\n this.addStyle(document.querySelectorAll('.jfWelcome-button'), { background: data.buttonBackgroundColor });\n }\n\n if (data.buttonTextColor) {\n this.addStyle(document.querySelectorAll('.jfInput-button'), { color: data.buttonTextColor });\n this.addStyle(document.querySelectorAll('.jfWelcome-button'), { color: data.buttonTextColor });\n const svgStyle = document.createTextNode(`\n .cf-minimal .jfWelcome-button:not(.forPrev-heading):not(.forNext-hading):after, .cf-minimal .jfInput-button:not(.forMobileNav).forNext:after{\n background-image:url(\"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='16'%3e%3cg fill='none' fill-rule='evenodd' stroke='%23${data.buttonTextColor.substring(1)}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3e%3cpath d='M1.7797 8.0199h20.9252l-6.2016 6.2016'/%3e%3cpath d='M16.806 1.308l5.8236 6.5842-2.9118 3.0499'/%3e%3c/g%3e%3c/svg%3e\")\n }\n .cf-minimal .jfInput-button:not(.forMobileNav).forPrev:before, .cf-minimal .jfInput-button:not(.forMobileNav).forPrev-heading:before, .cf-minimal .jfInput-button:not(.forMobileNav).forBackToForm:before{\n background-image:url(\"data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='16'%3e%3cg fill='none' fill-rule='evenodd' stroke='%23${data.buttonTextColor.substring(1)}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3e%3cpath d='M22.2203 8.0199H1.2951l6.2016 6.2016'/%3e%3cpath d='M7.194 1.308L1.3704 7.8922l2.9118 3.0499'/%3e%3c/g%3e%3c/svg%3e\")\n }\n `);\n this.addStyleWithTag('button-text', svgStyle);\n }\n\n if (data.sectionBackgroundColor) {\n this.addStyle(document.querySelector('.jfForm-background-mask'), { background: data.sectionBackgroundColor });\n }\n\n if (data.sectionTextColor) {\n this.addStyle(document.querySelector('.jfWelcome-sectionInfo'), { color: data.sectionTextColor });\n this.addStyle(document.querySelector('.jfWelcome-header'), { color: data.sectionTextColor });\n this.addStyle(document.querySelectorAll('.jfWelcome-header, .jfWelcome-description'), { color: data.sectionTextColor });\n this.addStyle(document.querySelectorAll('.jfWelcome-image svg path, .jfForm-logo svg path'), { fill: data.sectionTextColor });\n }\n\n if (data.cardBorderColor) {\n this.addStyle(document.querySelectorAll('.jfCard'), { border: `1px solid ${data.cardBorderColor}` });\n }\n\n if (data.nextButtonColor) {\n this.addStyle(document.querySelectorAll('.jfInput-button.forNext'), { background: data.nextButtonColor, 'border-color': data.nextButtonColor });\n document.querySelectorAll('.jfProgress-item').forEach((item) => {\n item.setAttribute('data-color', data.nextButtonColor);\n });\n }\n\n if (data.prevButtonColor) {\n this.addStyle(document.querySelectorAll('.jfInput-button.forPrev'), { background: data.prevButtonColor, 'border-color': data.prevButtonColor });\n }\n\n if (data.overviewColor) {\n this.addStyle(document.querySelector('.jfProgress-infoContent'), { background: data.overviewColor });\n }\n\n if (data.progressBackground) {\n this.addStyle(document.querySelector('.jfProgress-itemWrapper'), { background: data.progressBackground });\n }\n\n if (data.overviewTextColor) {\n this.addStyle(document.querySelectorAll('.jfProgress-infoContentText'), { color: data.overviewTextColor });\n }\n\n if (data.progressTextColor) {\n this.addStyle(document.querySelectorAll('.jfProgress-itemLabel'), { color: data.progressTextColor });\n }\n\n if (data.toggleProgress !== undefined) {\n this.addStyle(document.querySelector('.jfProgress'), { display: data.toggleProgress && 'block' })\n this.addStyle(document.querySelectorAll('.jfProgress-itemWrapperLine, .jfProgress-itemWrapper'), { display: data.toggleProgress ? 'block' : 'none' });\n }\n if (data.toggleOverview !== undefined) {\n this.addStyle(document.querySelector('.jfProgress'), { display: data.toggleOverview && 'block'})\n this.addStyle(document.querySelector('.jfProgress-infoContent'), { display: data.toggleOverview ? 'inline-block' : 'none' });\n this.addStyle(document.querySelector('.jfProgress-info'), { display: data.toggleOverview ? 'inline-block' : 'none' });\n }\n\n if (data.toggleLogo !== undefined) {\n const formLogo = document.querySelector('.jfForm-logo')\n if (formLogo) {\n formLogo.style.opacity = data.toggleLogo ? 1 : 0\n }\n }\n\n if (data.toggleTitle !== undefined) {\n this.addStyle(document.querySelector('.formMode .jfWelcome-header'), { opacity: data.toggleTitle ? 1 : 0 })\n }\n\n if (data.headerText) {\n this.addStyle(document.querySelectorAll('.jfWelcome-header, .jfWelcome-description'), { color: data.headerText });\n }\n\n if (data.toggleShadow != undefined) {\n const cssRule = data.toggleShadow ? '0 10px 50px 15px rgba(0, 0, 0, .12)' : '0 0px 0px 0px rgba(0, 0, 0, 0)';\n this.addStyle(document.querySelectorAll('.jfCard, .jfProgress.hackweekProgress > .jfProgress-itemWrapper'), { 'box-shadow': cssRule, '-webkit-box-shadow': cssRule });\n }\n\n if (data.onlyCard != undefined) {\n const formLogo = document.querySelector('.jfForm-logo')\n if (formLogo) {\n formLogo.style.opacity = data.onlyCard ? 0 : 1\n }\n this.addStyle(document.querySelector('.jfProgress-infoContent'), { display: data.onlyCard ? 'none' : 'inline-block' });\n this.addStyle(document.querySelector('.jfProgress'), { display: data.onlyCard ? 'none' : 'block' })\n this.addStyle(document.querySelector('.jfProgress-itemWrapperLine'), { display: data.onlyCard ? 'none' : 'inline-block' });\n this.addStyle(document.querySelector('.jfProgress-itemWrapper'), { display: data.onlyCard ? 'none' : 'inline-block' });\n this.addStyle(document.querySelector('.jfProgress-info'), { display: data.onlyCard ? 'none' : 'inline-block' });\n const cssRule = data.onlyCard ? '0 0px 0px 0px rgba(0, 0, 0, 0)' : '0 10px 50px 15px rgba(0, 0, 0, .12)';\n this.addStyle(document.querySelectorAll('.jfCard, .jfProgress.hackweekProgress > .jfProgress-itemWrapper'), { 'box-shadow': cssRule, '-webkit-box-shadow': cssRule });\n this.addStyle(document.querySelector('.formMode .jfWelcome-header'), { opacity: data.onlyCard ? 0 : 1 })\n }\n\n if (data.sizeTitle) {\n this.addStyle(document.querySelector('.jfWelcome-header'), { fontSize: data.sizeTitle });\n this.calculateWelcomeSize();\n }\n\n if (data.type === 'loadEmbedStyle') {\n this.loadEmbedStyle(data);\n }\n\n if (data.type === 'requestStorageAccess') {\n this.requestStorageAccess(data);\n }\n\n if (data.type === 'hasStorageAccess') {\n this.requestStorageAccess(data, false);\n }\n\n if (data.type === 'InlineEmbedAPIRequest') {\n this.handleInlineEmbedAPIRequest(data);\n }\n } catch (err) {\n console.log('Error on embed options: ', err);\n }\n }\n\n loadEmbedStyle(data) {\n if (!data.embedUrl) {\n return;\n }\n\n const embedUrlHash = md5(data.embedUrl);\n if (\n typeof data.embedKeys !== 'object'\n || data.embedKeys.indexOf(embedUrlHash) === -1\n ) {\n return;\n }\n\n const formcss = document.getElementById('form-css');\n if (!formcss) {\n return;\n }\n\n const formcssUrl = formcss.getAttribute('href');\n const cdn = formcssUrl.split('stylebuilder')[0];\n\n const url = `${cdn}stylebuilder-new/${data.formId}/embed/${embedUrlHash}/default.css?embedUrl=${encodeURIComponent(data.embedUrl)}`;\n const link = document.createElement('link');\n link.setAttribute('id', 'form-css');\n link.dataset.embedHash = embedUrlHash;\n link.setAttribute('rel', 'stylesheet');\n link.setAttribute('href', url);\n link.addEventListener('load', () => {\n formcss.remove();\n });\n\n const head = document.getElementsByTagName('head')[0];\n head.appendChild(link);\n }\n\n handleInlineEmbedAPIRequest(data) {\n const actions = [\n 'getEmbedStyles',\n 'saveEmbedStyles',\n 'resetEmbedStyles'\n ];\n\n if (!actions.includes(data.action)) return;\n\n const queryParameters = `?embedUrl=${encodeURIComponent(data.params.embedUrl)}`;\n const baseUrl = `${data.params.baseUrl}inline-embed/${data.params.formId}`;\n\n const client = apiClient.withBaseUrl(baseUrl);\n const clients = {\n getEmbedStyles: () => client.get(`/styles${queryParameters}`),\n saveEmbedStyles: () => client.post(`/styles${queryParameters}`, data.params.requestBody),\n resetEmbedStyles: () => client.post(`/delete-styles${queryParameters}`, {})\n };\n\n clients[data.action]()\n .then(response => {\n this.sendPostMessage({\n type: 'InlineEmbedAPIResponse',\n action: data.action,\n response\n });\n })\n .catch(err => {\n this.sendPostMessage({\n type: 'InlineEmbedAPIResponse',\n action: data.action,\n error: err.message\n });\n });\n }\n\n async requestStorageAccess(data, withButton = true) {\n const callback = () => {\n this.sendPostMessage({ type: 'storageAccessGranted' });\n };\n\n const callbackDenied = () => {\n this.sendPostMessage({ type: 'storageAccessDenied' });\n };\n\n if (await this.hasStorageAccess()) {\n return callback();\n }\n\n if (!withButton) {\n return callbackDenied();\n }\n\n // Request storage access with a button, a real user interaction is needed\n const button = document.createElement('button');\n button.id = 'storage-access-button';\n button.innerText = 'storage access needed';\n\n button.addEventListener('click', () => {\n // request storage access\n document.requestStorageAccess().then(\n () => {\n button.remove();\n callback();\n },\n callbackDenied\n );\n });\n\n document.body.appendChild(button);\n }\n\n // https://developers.google.com/privacy-sandbox/3pcd/storage-access-api\n async hasStorageAccess() {\n // Check if Storage Access API is supported\n if (!document.requestStorageAccess) {\n // Storage Access API is not supported so best we can do is\n // hope it's an older browser that doesn't block 3P cookies.\n return true;\n }\n\n // Check if access has already been granted\n if (await document.hasStorageAccess()) {\n return true;\n }\n\n // Check the storage-access permission\n // Wrap this in a try/catch for browsers that support the\n // Storage Access API but not this permission check\n // (e.g. Safari and older versions of Firefox).\n let permission;\n try {\n permission = await navigator.permissions.query({ name: 'storage-access' });\n } catch (error) {\n // storage-access permission not supported. Assume no cookie access.\n return false;\n }\n\n if (permission) {\n if (permission.state === 'granted') {\n // Permission has previously been granted so can just call\n // requestStorageAccess() without a user interaction and\n // it will resolve automatically.\n try {\n await document.requestStorageAccess();\n return true;\n } catch (error) {\n // This shouldn't really fail if access is granted, but return false\n // if it does.\n return false;\n }\n } else if (permission.state === 'prompt') {\n // Need to call requestStorageAccess() after a user interaction\n // (potentially with a prompt). Can't do anything further here,\n // so handle this in the click handler.\n return false;\n } else if (permission.state === 'denied') {\n // Currently not used. See:\n // https://github.com/privacycg/storage-access/issues/149\n return false;\n }\n }\n\n // By default return false, though should really be caught by one of above.\n return false;\n }\n\n initializeModernProgress() {\n // set only number\n addClass(document.querySelector('.jfProgress'), 'hackweekProgress');\n document.querySelectorAll('.jfProgress-itemLabel').forEach((item) => {\n const dummyItem = item;\n dummyItem.setAttribute('data-hwOldVal', dummyItem.innerHTML);\n dummyItem.innerHTML = parseInt(dummyItem.innerHTML, 10);\n });\n }\n\n initializeStandardProgress() {\n // set only number\n removeClass(document.querySelector('.jfProgress'), 'hackweekProgress');\n document.querySelectorAll('.jfProgress-itemLabel').forEach((item) => {\n const dummyItem = item;\n dummyItem.innerHTML = dummyItem.getAttribute('data-hwOldVal');\n dummyItem.removeAttribute('data-hwOldVal');\n });\n\n // i don't know why\n const itemWrapper = document.querySelector('.jfProgress-itemWrapper');\n removeClass(itemWrapper, 'jfProgress-itemWrapper');\n\n setTimeout(() => {\n addClass(itemWrapper, 'jfProgress-itemWrapper');\n }, 100);\n }\n\n calculateFormHeight() {\n addClass(document.querySelector('.jfForm-wrapper'), 'hackweekWrapper');\n\n const welcomeRect = document.getElementById('header_welcomePage').getBoundingClientRect();\n const welcomeSubRect = document.getElementById('subHeader_welcomePage') ? document.getElementById('subHeader_welcomePage').getBoundingClientRect() : { height: 0 };\n const totalWelcome = welcomeSubRect.height > (welcomeRect.height * 2.9) ? (welcomeRect.height * 3.9) : welcomeRect.height + welcomeSubRect.height;\n const progressRect = document.getElementById('cardProgress').getBoundingClientRect();\n const footerHeight = document.querySelector('.formFooter') ? document.querySelector('.formFooter').getBoundingClientRect().height : 0;\n const currentCardFontSizePx = +window.getComputedStyle(window.CardForm.cards[0].cardContainer).fontSize.slice(0, -2);\n const actionHeight = (3.5 * currentCardFontSizePx) + 2;\n\n let total = totalWelcome + progressRect.height + footerHeight + actionHeight;\n if (this.layout === 'modern') {\n let maxHeight = 0;\n window.CardForm.cards.forEach((card) => {\n if (card.cardContainer.clientHeight > maxHeight) {\n maxHeight = card.cardContainer.clientHeight;\n }\n });\n total += maxHeight;\n } else if (this.layout === 'bouncy') {\n const activeCardHeight = document.querySelector('.jfCard-wrapper.isVisible > .jfCard').getBoundingClientRect().height;\n total += activeCardHeight;\n }\n\n if (this.layout !== 'standard') {\n document.querySelector('.jfProgress.hackweekProgress').style = '';\n }\n\n window.parent.postMessage(`setHeight:${total}`, '*');\n }\n\n handleQuestionChange() {\n document.querySelectorAll('.jfInput-button.forNext, .jfInput-button.forPrev').forEach((button) => {\n button.addEventListener('click', () => {\n if (this.layout === 'bouncy') {\n setTimeout(() => {\n this.calculateFormHeight();\n }, 100);\n }\n });\n });\n }\n}\n","export { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport { nanoid } from 'nanoid';\nimport Overlay from './overlay';\n\n/* eslint-disable */\nexport const defaultIcon = '';\nexport const savedIcon = '';\nexport const errorIcon = '';\n\n// This component is not used anymore. It will be removed in the future.\nexport default class SaveAndContinueLater {\n constructor(continueLater, hiddenSubmitter, emailAnswerFinder, formID, apiURL, tranlatedTexts) {\n Object.assign(this, { continueLater, hiddenSubmitter, emailAnswerFinder, formID, apiURL, tranlatedTexts });\n\n this.inited = false;\n this.states = Object.freeze({ default: 0, saving: 1, saved: 2, error: 3 });\n this.formId = document.forms[0].getAttribute('id');\n this.overlay = new Overlay({ hasSaveAndContinueLater: true });\n this.initiate = this.initiate.bind(this);\n this.openSaveAndContinueLaterModal = this.openSaveAndContinueLaterModal.bind(this);\n this.continue = this.continue.bind(this);\n\n this.changeState(this.states.default);\n }\n\n /**\n * Creates the initial submission\n */\n initiate() {\n if (!this.inited) {\n this.inited = true;\n this.sessionID = this.generateSessionID();\n this.token = this.generateToken();\n global.JotForm.sessionID = this.sessionID;\n global.JotForm.submissionToken = this.token;\n } else {\n this.sessionID = global.JotForm.sessionID;\n this.token = global.JotForm.submissionToken || this.generateToken();\n }\n }\n\n\n openSaveAndContinueLaterModal() {\n this.initiate();\n this.continueLater.active = true;\n this.hiddenSubmitter();\n this.overlay.openSaveAndContinueModal();\n }\n\n continue() {\n this.inited = true;\n this.sessionID = global.JotForm.sessionID;\n this.submissionToken = global.JotForm.submissionToken;\n this.changeState(this.states.saved);\n }\n\n changeState(newState) {\n const stateElement = document.querySelector('.jf-saclState');\n const progressSacl = document.querySelector('.jfProgress-sacl');\n if (!stateElement || !progressSacl) {\n return;\n }\n\n let icon;\n let text;\n\n switch (newState) {\n case this.states.default:\n icon = defaultIcon;\n text = this.tranlatedTexts['Save & Continue Later'];\n break;\n case this.states.saved:\n icon = savedIcon;\n text = this.tranlatedTexts['Answers saved'];\n break;\n case this.states.error:\n icon = errorIcon;\n text = this.tranlatedTexts['Answers not saved'];\n break;\n default:\n icon = defaultIcon;\n text = this.tranlatedTexts['Save & Continue Later'];\n console.info('No such state implemented:', newState);\n break;\n }\n\n progressSacl.setAttribute('data-tooltip-msg', text);\n stateElement.innerHTML = `${icon}`;\n }\n\n generateSessionID() {\n const uniq = nanoid(8);\n return `JF-S4L-${uniq}`;\n }\n\n generateToken() {\n const uniq = nanoid(8);\n const formIdLastNumber = this.formId.toString().slice(-1) / 1;\n const checkSum = (formIdLastNumber * 4) + 7;\n return `JF-${uniq}-${checkSum}`;\n }\n\n}\n","/* eslint no-else-return: \"warn\" */\n/* eslint guard-for-in: \"warn\" */\n/* eslint complexity: [\"error\", 3000] */\n/* eslint max-statements: [\"error\", 3000] */\n\n// Please try to reduce line count in this file if possible. Import is your friend.\n/* eslint max-lines: [\"error\", 5200] */\n\nimport { HiddenQuestionTypes } from '@jotforminc/form-common';\nimport { FORM_TEXTS } from '@jotforminc/constants';\nimport { closest } from '@jotforminc/utils';\nimport DomPurify from 'dompurify';\n\nimport './polyfill';\n\nimport {\n cardSize, deviceSize, addClass,\n removeClass, forEach,\n hasTouch, map, hasClass, createInput,\n enableDisableDOMElements, calculateOrientationType,\n translateDefaultCardFormTexts, getDeviceType, getBrowserProperties, translateComponentFields, getElementsByFocus\n} from './utils';\n\nimport { TOOLTIP_TYPES } from './constants';\nimport ProgressClass from './progress';\nimport Overlay from './overlay';\nimport Patch from './patch';\nimport Address from './address';\nimport Matrix from './matrix';\nimport Email from './email';\nimport EmojiSlider from './emojiSlider';\nimport FeedbackIframeMessager from './feedbackIframeMessager';\nimport Fullscreen from './Fullscreen';\n\nimport OptionsBase from './optionsBase';\nimport Dropdown from './dropdown';\nimport Textarea from './textarea';\nimport Payment from './payment';\nimport DatetimeHandler from './datetime';\nimport Storage from './storage';\nimport EmbedOptions from './embedOptions';\nimport SaveAndContinueLater, { defaultIcon, savedIcon, errorIcon } from './saveAndContinueLater';\nimport CardHint from './cardHint';\n\n/* eslint-disable */\nif (typeof global.createNewEvent !== \"function\") {\n global.createNewEvent = function(eventName) {\n if(typeof(global.Event) === 'function') {\n var event = new global.Event(eventName);\n }else{\n var event = document.createEvent('Event');\n event.initEvent(eventName, true, true);\n }\n\n return event;\n }\n}\n/* eslint-enable */\n\nif (typeof String.prototype.locale === 'undefined') {\n String.prototype.locale = function () { // eslint-disable-line\n return this.toString();\n };\n}\n\nconst fieldRelatedNavigationKeyCodes = {\n INPUT: [37, 39],\n TEXTAREA: [13, 37, 39]\n};\n\nconst NonInputFields = ['control_image', 'control_text'];\n\nexport default class Cards {\n constructor(props) {\n this.bindFullScreenMode = this.bindFullScreenMode.bind(this);\n this.bindCardClickEvents = this.bindCardClickEvents.bind(this);\n this.setFormMode = this.setFormMode.bind(this);\n this.setCardIndex = this.setCardIndex.bind(this);\n this.setCardMode = this.setCardMode.bind(this);\n this.selectQuestion = this.selectQuestion.bind(this);\n this.selectNextQuestion = this.selectNextQuestion.bind(this);\n this.selectPreviousQuestion = this.selectPreviousQuestion.bind(this);\n this.bindResizeEvent = this.bindResizeEvent.bind(this);\n this.recalculateLayout = this.recalculateLayout.bind(this);\n this.recalculateSmartEmbedLayout = this.recalculateSmartEmbedLayout.bind(this);\n this.getVisibleIndex = this.getVisibleIndex.bind(this);\n this.updateCardIndexes = this.updateCardIndexes.bind(this);\n this.updateCardLabels = this.updateCardLabels.bind(this);\n this.getCardLabels = this.getCardLabels.bind(this);\n this.bindPrevNextButtonsClick = this.bindPrevNextButtonsClick.bind(this);\n this.bindInputChange = this.bindInputChange.bind(this);\n this.bindSelectChange = this.bindSelectChange.bind(this);\n this.bindKeyUpEvent = this.bindKeyUpEvent.bind(this);\n this.bindDragPage = this.bindDragPage.bind(this);\n this.bindFormSubmit = this.bindFormSubmit.bind(this);\n this.bindStartButton = this.bindStartButton.bind(this);\n this.mouseDown = this.mouseDown.bind(this);\n this.mouseUp = this.mouseUp.bind(this);\n this.mouseMove = this.mouseMove.bind(this);\n this.onWheel = this.onWheel.bind(this);\n this.bindInputFocus = this.bindInputFocus.bind(this);\n this.addScrollLeftDelta = this.addScrollLeftDelta.bind(this);\n this.getScrollLeft = this.getScrollLeft.bind(this);\n this.getTotalWidth = this.getTotalWidth.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n this.validateCard = this.validateCard.bind(this);\n this.onFieldCorrected = this.onFieldCorrected.bind(this);\n this.onFieldErrored = this.onFieldErrored.bind(this);\n this.onFormOverviewClicked = this.onFormOverviewClicked.bind(this);\n this.onProgressItemSelected = this.onProgressItemSelected.bind(this);\n this.shakeCard = this.shakeCard.bind(this);\n this.setCardVisibility = this.setCardVisibility.bind(this);\n this.onFieldVisibilityChanged = this.onFieldVisibilityChanged.bind(this);\n this.onRequireField = this.onRequireField.bind(this);\n this.onEnableDisableField = this.onEnableDisableField.bind(this);\n this.updateCardProgressItem = this.updateCardStatus.bind(this);\n this.focusToFirstInput = this.focusToFirstInput.bind(this);\n this.focusToFirstError = this.focusToFirstError.bind(this);\n this.getNearestCardIndexInScrollMode = this.getNearestCardIndexInScrollMode.bind(this);\n this.renderReCaptcha = this.renderReCaptcha.bind(this);\n this.recaptchaCallback = this.recaptchaCallback.bind(this);\n this.hcaptchaCallback = this.hcaptchaCallback.bind(this);\n this.onCreditCardAddressVisibilityChanged = this.onCreditCardAddressVisibilityChanged.bind(this);\n this.repositionActionButtons = this.repositionActionButtons.bind(this);\n this.setCardActionMode = this.setCardActionMode.bind(this);\n this.shortenHeaders = this.shortenHeaders.bind(this);\n this.hideHeader = this.hideHeader.bind(this);\n this.showHeader = this.showHeader.bind(this);\n this.onCalendarSelected = this.onCalendarSelected.bind(this);\n this.initBackgroundImageLoader = this.initBackgroundImageLoader.bind(this);\n this.handleBackgroundVideo = this.handleBackgroundVideo.bind(this);\n this.onCalendarInit = this.onCalendarInit.bind(this);\n this.bindChangeEventForPressEnter = this.bindChangeEventForPressEnter.bind(this);\n this.getFormData = this.getFormData.bind(this);\n this.prepareReviewMarkup = this.prepareReviewMarkup.bind(this);\n this.showFormPreview = this.showFormPreview.bind(this);\n this.replaceSubmitWithReviewAndSubmit = this.replaceSubmitWithReviewAndSubmit.bind(this);\n this.setFieldIsFilledIfHasValue = this.setFieldIsFilledIfHasValue.bind(this);\n this.getTotalWelcome = this.getTotalWelcome.bind(this);\n this.calculateAvailableHeightForFields = this.calculateAvailableHeightForFields.bind(this);\n this.calculateCardsHeight = this.calculateCardsHeight.bind(this);\n this.calculateCardHeight = this.calculateCardHeight.bind(this);\n this.onFileUploadChanged = this.onFileUploadChanged.bind(this);\n this.fillInitialValuesForEditMode = this.fillInitialValuesForEditMode.bind(this);\n this.checkCardsIfFilled = this.checkCardsIfFilled.bind(this);\n this.getSectionHeaderForIndex = this.getSectionHeaderForIndex.bind(this);\n this.arrangeSectionHeaders = this.arrangeSectionHeaders.bind(this);\n this.updateFormHeader = this.updateFormHeader.bind(this);\n this.recalculateBackgroundStyle = this.recalculateBackgroundStyle.bind(this);\n this.checkAndSetDeviceType = this.checkAndSetDeviceType.bind(this);\n this.checkHeaderSubHeaderCharLimits = this.checkHeaderSubHeaderCharLimits.bind(this);\n this.onLocationHashChange = this.onLocationHashChange.bind(this);\n this.isVisibleIndex = this.isVisibleIndex.bind(this);\n this.getFirstVisibleIndex = this.getFirstVisibleIndex.bind(this);\n this.getLastVisibleIndex = this.getLastVisibleIndex.bind(this);\n this.setMobilePrevNextQuestionButtons = this.setMobilePrevNextQuestionButtons.bind(this);\n this.setDropdownInitialValues = this.setDropdownInitialValues.bind(this);\n this.disableTransitions = this.disableTransitions.bind(this);\n this.translateSectionHeader = this.translateSectionHeader.bind(this);\n this.onFormTranslated = this.onFormTranslated.bind(this);\n this.updateMatrixLayout = this.updateMatrixLayout.bind(this);\n this.handleKeyboardTabs = this.handleKeyboardTabs.bind(this);\n this.handleFullScreenToggle = this.handleFullScreenToggle.bind(this);\n this.bindMobileValidations = this.bindMobileValidations.bind(this);\n this.initMobileVersion = this.initMobileVersion.bind(this);\n this.doObjectsCollide = this.doObjectsCollide.bind(this);\n this.attachComponentClassToCard = this.attachComponentClassToCard.bind(this);\n this.showInputTooltip = this.showInputTooltip.bind(this);\n this.clearAddressFields = this.clearAddressFields.bind(this);\n this.toggleFullScreenMode = this.toggleFullScreenMode.bind(this);\n this.toggleFullScreenDisplayMode = this.toggleFullScreenDisplayMode.bind(this);\n this.getCurrentCard = this.getCurrentCard.bind(this);\n this.autoSelectNextQuestion = this.autoSelectNextQuestion.bind(this);\n this.handleFeedbackButtonProgress = this.handleFeedbackButtonProgress.bind(this);\n this.updateFeedbackEmbedHeight = this.updateFeedbackEmbedHeight.bind(this);\n this.bindChangeEventForNextButtons = this.bindChangeEventForNextButtons.bind(this);\n this.findEmailAnswer = this.findEmailAnswer.bind(this);\n this.calculateWelcomeSize = this.calculateWelcomeSize.bind(this);\n this.createDatetimeReviewString = this.createDatetimeReviewString.bind(this);\n this.showProgress = this.showProgress.bind(this);\n this.hiddenSubmit = this.hiddenSubmit.bind(this);\n this.handleFormSubmitError = this.handleFormSubmitError.bind(this);\n this.setInitialSelectionForMatrixSliders = this.setInitialSelectionForMatrixSliders.bind(this);\n this.asyncInitSaveAndContinueLaterFlow = this.asyncInitSaveAndContinueLaterFlow.bind(this);\n this.checkConditionOnCurrentCard = this.checkConditionOnCurrentCard.bind(this);\n this.onSCLStateChange = this.onSCLStateChange.bind(this);\n this.closeTimezonePicker = this.closeTimezonePicker.bind(this);\n this.isSaveAndContinueLaterActivated = props.isSaveAndContinueLaterActivated || props.isSSOProtected;\n this.formID = props.formID;\n this.tranlatedTexts = props.tranlatedTexts;\n this.erroredCards = [];\n this.isProduction = props.isProduction || true; // work around for cached forms.\n this.apiURL = props.apiURL || 'https://api.jotform.com'; // work around for cached forms.\n this.continueLater = {\n active: this.isContinueLaterActivated,\n useStorage: false,\n lastAnswers: false\n }; // to activate save&continue\n this.storageEngine = new Storage();\n this.patch = new Patch({\n onSubmit: this.onSubmit,\n onFieldCorrected: this.onFieldCorrected,\n onFieldErrored: this.onFieldErrored,\n onFieldVisibilityChanged: this.onFieldVisibilityChanged,\n onRequireField: this.onRequireField,\n onEnableDisableField: this.onEnableDisableField,\n onCreditCardAddressVisibilityChanged: this.onCreditCardAddressVisibilityChanged,\n onCalendarSelected: this.onCalendarSelected,\n onCalendarInit: this.onCalendarInit,\n captchaMode: props.captchaMode,\n onFileUploadChanged: this.onFileUploadChanged,\n formID: props.formID,\n storageEngine: this.storageEngine,\n continueLater: this.continueLater,\n showTooltip: this.showInputTooltip\n });\n\n this.addressTypeSuffixMap = {\n country: 'country',\n administrative_area_level_1: 'state',\n postal_code: 'postal',\n locality: 'city',\n street: 'addr_line1',\n street2: 'addr_line2',\n searchField: 'addr_search'\n };\n if (this.isSaveAndContinueLaterActivated) {\n this.initSaveAndContinueLater();\n }\n\n if (props.useJotformSign && props.useJotformSign.value === 'Yes') {\n global.useJotformSign = props.useJotformSign.value;\n }\n\n this.browserProperties = getBrowserProperties();\n\n // This parameter will be updated as true at build_source if the form is embedded via script.\n this.jsForm = false;\n\n this.hasWelcome = props.formMode === 'welcome';\n\n if (false) { // eslint-disable-line\n this.pressEnterHint = new CardHint({ timeout: 3000, className: 'js-pressEnterHint' });\n }\n\n /* This method is just for internal usage! we will use it in random-cards page */\n if (global.location.href.indexOf('autoNextCards=1') > -1) {\n const reallySelectNextQuestion = () => {\n if (this.layoutParams.formMode === 'welcome') {\n this.setFormMode('form');\n } else {\n this.selectNextQuestion(true);\n }\n };\n setInterval(reallySelectNextQuestion, 3000);\n }\n\n this.isOpenedOnJotFormMobileApp = global.location.href.indexOf('jotformNext=1') > -1;\n\n this.init(props);\n }\n\n init(props) {\n const isTouchDevice = hasTouch();\n\n this.arrangeSectionHeaders(props.welcomePageProps, props.sectionHeaders);\n this.layoutElements = {\n cardAnimationWrapper: document.getElementById('cardAnimationWrapper'),\n welcomeCardBackground: document.querySelector('.jfForm-background-mask'),\n startButton: document.getElementById('jfCard-welcome-start'),\n previousButton: document.getElementById('jfCard-welcome-previous'),\n welcomeWrapper: document.querySelector('.jfWelcome-wrapper'),\n featureBadge: document.querySelector('.jfWelcome-badge--container'),\n welcomeContainer: document.querySelector('.jfWelcome'),\n welcomeHeaderContainer: document.getElementById('header_welcomePage'),\n welcomeSubHeaderContainer: document.querySelector('.jfWelcome-description'),\n welcomeSectionInfoText: document.querySelector('.jfWelcome-sectionInfo-text'),\n welcomeSectionInfoQuestionCount: document.querySelector('.jfWelcome-sectionInfo-questionCount'),\n logoContainer: document.querySelector('.jfForm-logo'),\n progressWrapper: document.querySelector('.jfProgress#cardProgress'),\n progressContainer: document.querySelector('.jfProgress-infoContent'),\n mobileNavigationWrapper: document.querySelector('.jsMobileNavigation'),\n mobileNextButton: document.querySelector('.jsMobileNext'),\n mobilePrevButton: document.querySelector('.jsMobilePrev'),\n mobileSubmitButton: document.querySelector('.jsMobileSubmit'),\n mobileUseJFSignButton: document.querySelector('.forMobileNav.useJotformSign-button'),\n mobileProgressInfo: document.querySelector('.jfProgress-info'),\n fullScreenProxy: document.getElementById('jfQuestion-proxy'),\n formWrapper: document.querySelector('.jfForm-all'),\n overlayWrapper: document.querySelector('.js-overlayWrapper'),\n staticItems: document.querySelector('.jStaticItems'),\n backgroundVideoPlayer: document.querySelector('#video-background')\n };\n\n const wrappers = map(document.querySelectorAll('.jfCard-wrapper'), p => p);\n const cards = map(document.querySelectorAll('.jfCard'), p => p);\n const indexes = map(document.querySelectorAll('.jfCard-index'), p => p);\n const formlines = map(document.querySelectorAll('.form-line'), p => p);\n const pressEnterContainers = map(document.querySelectorAll('.jfPressEnter'), p => p);\n const isEditMode = this.isEditMode();\n const ownerView = !!props.ownerView;\n\n const isHiddenField = field => {\n let isHidden = !!field.isHidden;\n if (isEditMode && ownerView && field.widgetType !== 'direct_embed') {\n isHidden = false;\n }\n\n if (HiddenQuestionTypes.indexOf(field.type) !== -1 && !isHidden) {\n isHidden = true;\n }\n\n if (field.type && field.type === 'control_checkbox' && field.isHidden && field.sheetField && field.submissionWidget) {\n isHidden = true;\n }\n\n return isHidden;\n };\n this.cards = props.questions.map((q, i) => {\n const formLine = formlines.find(p => p.id === `id_${q.id}`);\n return {\n question: q,\n cardContainer: cards[i],\n cardToolbar: wrappers[i].querySelector('.jfToolbar'),\n wrapperContainer: wrappers[i],\n indexContainer: indexes[i],\n pressEnterContainer: pressEnterContainers[i],\n fieldContainer: formLine.querySelector(\".jfQuestion-fields:not([class*='js-']):not([class*='jfQuestion-fields--donation']), .jfQuestion-fields.js-productModuleWrapper\"),\n questionContainer: cards[i].querySelector('.jfCard-question'),\n formLine,\n isHidden: isHiddenField(q),\n isReadOnly: q.isReadOnly ? true : false,\n hideSingleProduct: q.hideSingleProduct ? true : false,\n actionButtonsWrapper: cards[i].querySelector('.jfCard-actions'),\n actionsButtons: {\n prev: cards[i].querySelector('.jfCard-actions .forPrev'),\n next: cards[i].querySelector('.jfCard-actions .forNext'),\n submit: cards[i].querySelector('.jfCard-actions .forSubmit'),\n mode: 'middle' // first, last, middle, submit,\n },\n prevCard: null\n };\n });\n\n this.cards.forEach(_card => {\n const card = _card;\n card.validate = this.validateCard.bind(this, card);\n });\n\n if (cards.length > 0) {\n this.cards[this.cards.length - 1].hasSubmit = true;\n }\n\n const cardLabels = this.getCardLabels();\n this.cards = Payment.populateCards(this.cards, cardLabels);\n\n this.paymentsMergedCards = this.cards.reduce((result, current) => {\n const newResult = result;\n if (newResult[current.question.qid]) {\n newResult[current.question.qid].push(current);\n } else {\n newResult[current.question.qid] = [current];\n }\n return newResult;\n }, {});\n\n this.updateCardLabels();\n this.layoutParams = {\n questions: props.questions,\n currentCardSize: cardSize.cardwidthxl,\n leftMargin: 0,\n currentCardIndex: this.cards.findIndex(p => !p.isHidden),\n cardMode: 'single',\n formMode: null,\n cardScrollScale: 0.6,\n scaleFactor: 1,\n scrollLeftExtra: 0,\n resolutionType: '', // mobile, tablet, desktop according to current resolution it'll change on resize events\n deviceType: getDeviceType().toLowerCase(), // This is initial device type, it won't change on resolution changes.\n browserName: this.browserProperties.browserName,\n osName: this.browserProperties.osName,\n forTemplate: props.forTemplate,\n hasTouch: isTouchDevice || this.isPreviewMode,\n reviewBeforeSubmit: props.reviewBeforeSubmit,\n globalCardScaleFactor: 1,\n isFeedbackEmbed: document.location.search.indexOf('feedbackEmbed') > -1,\n allQuestions: props.allQuestions,\n smartEmbedMaxHeight: 264,\n isEditMode,\n isFullScreenMode: false,\n isFeedbackEmbedButton: this.isFeedbackEmbedButton,\n fullscreenForm: props.fullscreenMode,\n isEmbed: global.parent !== global\n };\n\n this.minLabelFontSize = 18;\n this.minDescFontSize = 12;\n\n this.ownerPercentage = props.ownerPercentage ? parseInt(props.ownerPercentage, 10) : false;\n this.initMobileVersion();\n addClass(document.body, `is${getDeviceType()}`);\n if (props.isSSOProtected) {\n addClass(document.body, 'isSSOProtected');\n }\n if (this.layoutParams.isFeedbackEmbed) {\n this.initializeFeedbackEmbedMode();\n }\n if (this.layoutParams.isFeedbackEmbedButton) {\n this.hwFeedbackEmbed = new FeedbackIframeMessager({ formID: this.formID });\n this.initializeHWFeedbackEmbedButton();\n }\n Cards.layoutParams = this.layoutParams;\n\n this.options = new OptionsBase({\n cards: this.cards,\n layoutParams: this.layoutParams,\n validateCard: this.validateCard,\n isPreviewMode: this.isPreviewMode\n });\n\n this.dropdown = new Dropdown({\n cards: this.cards,\n layoutParams: this.layoutParams,\n validateCard: this.validateCard,\n isPreviewMode: this.isPreviewMode\n });\n\n this.address = new Address({\n cards: this.cards,\n layoutParams: this.layoutParams,\n setFieldIsFilledIfHasValue: this.setFieldIsFilledIfHasValue,\n updateFeedbackEmbedHeight: this.updateFeedbackEmbedHeight\n });\n\n this.datetimeHandler = new DatetimeHandler({\n cards: this.cards,\n hasTouch: this.layoutParams.hasTouch,\n deviceType: this.layoutParams.deviceType\n });\n\n this.overlay = new Overlay({\n questions: this.layoutParams.questions\n });\n\n // Initialize new textareas as pen editor\n this.cards = this.cards.map(card => {\n if (!card.question || card.question.type !== 'control_textarea' || !card.fieldContainer || card.fieldContainer.getAttribute('data-render-type') !== 'mde') return card;\n return { ...card, markdownEditor: new Textarea(card, this.layoutParams.browserName, this.layoutParams.osName) };\n });\n\n this.progress = new ProgressClass({\n items: this.cards.map(p => ({ label: p.label, question: p.question })),\n cards: this.cards,\n onFormOverviewClicked: this.onFormOverviewClicked,\n onItemSelected: this.onProgressItemSelected,\n hiddenIndexes: this.cards.map(p => p.isHidden),\n deviceType: this.layoutParams.deviceType,\n isFeedbackEmbedButton: this.isFeedbackEmbedButton,\n isSaveAndContinueLaterActivated: this.isSaveAndContinueLaterActivated,\n isFormProgressVisible: props.isFormProgressVisible\n });\n\n this.bindCardClickEvents();\n this.checkAndSetDeviceType();\n // Check if location has a question hash\n const questionIdFromHash = this.getQuestionIdFromUrlHash(global.location.href);\n let initialCardIndex = this.layoutParams.currentCardIndex;\n if (questionIdFromHash) {\n const questionIndexFromHash = parseInt(questionIdFromHash, 10) - 1;\n initialCardIndex = this.isVisibleIndex(questionIndexFromHash) ? questionIndexFromHash : initialCardIndex;\n }\n const initialFormMode = ((questionIdFromHash && parseInt(questionIdFromHash, 10) !== 1) ? 'form' : props.formMode) || 'welcome';\n this.setCardIndex(initialCardIndex, false, true);\n this.setFormMode(initialFormMode, true);\n this.updateFormHeader(this.getSectionHeaderForIndex(initialCardIndex));\n this.bindResizeEvent();\n setTimeout(() => this.recalculateLayout());\n this.recalculateBackgroundStyle();\n this.bindPrevNextButtonsClick();\n\n // If all fields hidden on init and being visible conditionally with taking condition parameter from url, then take some time and check it\n if (window.location.search !== '') {\n setTimeout(() => {\n const newInitialCardIndex = this.cards.findIndex(p => !p.isHidden);\n // Bugfix#2418466, be sure that the current index points the real one once again.\n if (newInitialCardIndex !== -1 && newInitialCardIndex !== this.layoutParams.currentCardIndex) {\n this.setCardIndex(newInitialCardIndex, false, true);\n this.updateFormHeader(this.getSectionHeaderForIndex(newInitialCardIndex));\n }\n }, 100);\n }\n\n this.isPrefillCompleted = false;\n document.addEventListener('PrefillCompleted', () => { this.isPrefillCompleted = true; });\n\n this.isPrepopulationCompleted = false;\n document.addEventListener('PrepopulationCompleted', () => { this.isPrepopulationCompleted = true; });\n\n // question prepopulations(URL Populate) triggers change, delay bind to end of ready function in Jotform.init()\n document.addEventListener('JotformReady', this.bindInputChange);\n this.bindSelectChange();\n this.bindKeyUpEvent();\n this.bindDragPage();\n\n const onLoad = () => {\n if (this.isFullscreenFormEnabled) {\n this.FS = new Fullscreen();\n const target = document.documentElement;\n\n const fn = () => {\n addClass(document.body, 'fsOpenedOnce');\n this.FS.request();\n target.removeEventListener('click', fn);\n this.bindStartButton();\n target.click();\n };\n target.addEventListener('click', fn);\n\n const toggle = document.getElementById('fullscreen-toggle');\n if (toggle) {\n toggle.addEventListener('click', this.FS.toggle);\n }\n } else {\n this.bindStartButton();\n }\n\n if (window.Sentry && (!global.JotForm || !global.JotForm.isNewForms)) {\n const sentryConfig = { // ignore common browser extensions, plugins and only allow jotform domain errors\n dsn: 'https://abc78a66d1bf4f77bfb7e3469cef2658@sentry.io/291077',\n enviroment: 'production',\n whitelistUrls: [\n /https?:\\/\\/.*jotform\\.com/,\n /https?:\\/\\/cdn\\.jotfor\\.ms/\n ],\n integrations: [\n /* global Sentry */\n new Sentry.Integrations.GlobalHandlers({\n onunhandledrejection: false\n })\n ],\n blacklistUrls: [\n // Facebook flakiness\n /graph\\.facebook\\.com/i,\n // Facebook blocked\n /connect\\.facebook\\.net\\/en_US\\/all\\.js/i,\n // Woopra flakiness\n /eatdifferent\\.com\\.woopra-ns\\.com/i,\n /static\\.woopra\\.com\\/js\\/woopra\\.js/i,\n // Chrome extensions\n /extensions\\//i,\n /^chrome:\\/\\//i,\n // Other plugins\n /127\\.0\\.0\\.1:4001\\/isrunning/i, // Cacaoweb\n /webappstoolbarba\\.texthelp\\.com\\//i,\n /metrics\\.itunes\\.apple\\.com\\.edgesuite\\.net\\//i,\n /tinymce/i\n ],\n ignoreErrors: [\n // Random plugins/extensions\n 'top.GLOBALS',\n // See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error. html\n 'originalCreateNotification',\n 'canvas.contentDocument',\n 'MyApp_RemoveAllHighlights',\n 'http://tt.epicplay.com',\n 'Can\\'t find variable: ZiteReader',\n 'jigsaw is not defined',\n 'ComboSearch is not defined',\n 'http://loading.retry.widdit.com/',\n 'atomicFindClose',\n // Facebook borked\n 'fb_xd_fragment',\n // ISP \"optimizing\" proxy - `Cache-Control: no-transform` seems to\n // reduce this. (thanks @acdha)\n // See http://stackoverflow.com/questions/4113268\n 'bmi_SafeAddOnload',\n 'EBCallBackMessageReceived',\n // See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx\n 'conduitPage',\n 'tinymce',\n // Common error caused by test software on a specific chrome version\n 'GetScreenshotBoundingBox',\n 'for=',\n // Error generated by a bug in auto-fill library from browser\n // https://github.com/getsentry/sentry/issues/5267\n /Blocked a frame with origin/,\n // See https://stackoverflow.com/questions/49384120\n /ResizeObserver loop limit exceeded/,\n 'ResizeObserver loop completed with undelivered notifications.'\n ],\n beforeSend: event => {\n // whitelistUrls paramater is unreliable\n // do not collect errors from source code embed\n if (window.parent === window && !event.request.url.match(/(https?:\\/\\/.*jotform\\.com)|(https?:\\/\\/cdn\\.jotfor\\.ms)/)) {\n return undefined;\n }\n\n // do not collect errors from embedded forms\n if (window.location.href && !window.location.href.match(/(https?:\\/\\/.*jotform\\.com)|(https?:\\/\\/cdn\\.jotfor\\.ms)/)) {\n return null;\n }\n\n // Do not log errors that comes from the facebook browser\n if (window.navigator.userAgent.indexOf('FB_IAB') !== -1) {\n return null;\n }\n\n return event;\n }\n };\n\n window.Sentry.init(sentryConfig);\n }\n\n this.recalculateLayout();\n this.calculateInitialCardHeight();\n };\n\n if (document.readyState === 'complete') {\n onLoad();\n } else {\n window.addEventListener('load', onLoad);\n }\n\n this.bindTouchSwipeEvents();\n this.bindInputFocus();\n this.bindFocusOnMobileWithKeyboard();\n this.repositionActionButtons();\n this.setMobilePrevNextQuestionButtons(this.layoutParams.currentCardIndex);\n this.renderReCaptcha(props.captchaMode);\n this.updateCardIndexes();\n this.bindChangeEventForPressEnter();\n this.bindHashChangeEvent();\n // lets loop cards and please add your necessary code to here don't create new loop!\n forEach(this.cards, card => {\n this.attachComponentClassToCard(card);\n this.checkCardIfMoveAutomatically(card);\n\n if (this.isAccessibleForm) {\n const isCurrentCard = card.question?.id === this.currentCard?.question?.id;\n // accessibility: set [tabindex=\"-1\"] to non-visible card elements\n this.setCardTabIndex({ card, tabIndex: isCurrentCard ? 0 : -1 });\n }\n });\n\n this.handleFullScreenToggle();\n if (this.layoutParams.deviceType === 'mobile') {\n this.bindMobileValidations();\n }\n // delay transitions for initial load\n if (this.layoutParams.formMode === 'form') {\n setTimeout(() => {\n this.enableTransitions();\n }, 100);\n }\n\n this.initBackgroundImageLoader();\n this.handleBackgroundVideo();\n\n if (props.reviewBeforeSubmit) {\n this.replaceSubmitWithReviewAndSubmit();\n } else {\n this.bindFormSubmit();\n }\n\n // update card isFilled status\n this.checkCardsIfFilled(this.cards);\n\n global.onEditModeCompleted = data => {\n this.cards.forEach(this.fillInitialValuesForEditMode);\n this.clearAddressFields();\n this.setDropdownInitialValues();\n this.checkCardsIfFilled(this.cards);\n if (data && data.continueCardIndex) {\n this.setCardIndex(data.continueCardIndex, false, true);\n this.showProgress();\n }\n };\n\n setTimeout(() => {\n this.isAdmin = global.JotForm && global.JotForm.isAdmin;\n\n this.bindFullScreenMode();\n this.setDropdownInitialValues();\n this.checkCardsIfFilled(this.cards);\n }, 100);\n\n this.embedOptions = new EmbedOptions(this);\n\n if (global.JotForm.sessionID && this.isSaveAndContinueLaterActivated && this.saveAndContinueLater) {\n this.saveAndContinueLater.continue();\n }\n\n // experiment for single question embeds\n if (this.layoutParams.isEmbed && this.layoutParams.questions.length === 1) {\n addClass(document.querySelector('body'), 'singleQuestion');\n }\n\n document.addEventListener('resize', this.calculateWelcomeSize);\n }\n\n initMobileVersion() {\n const isMobile = this.layoutParams.deviceType === 'mobile';\n if (!isMobile) { return; }\n\n // Disabling smart embed css on mobile devices\n global.document.body.classList.remove('isSmartEmbed');\n\n let newCardFormMobile = '0';\n const formFooter = document.querySelector('.formFooter-content');\n if (isMobile) {\n if (this.layoutElements.mobileNavigationWrapper) {\n this.layoutElements.mobileNavigationWrapper.style.display = 'block';\n }\n if (typeof global.FS === 'object' && typeof global.FS.setUserVars === 'function') {\n global.FS.setUserVars({ isCardFormNewMobile_bool: true });\n }\n\n // lets replace footer with new one\n const newFormFooter = document.querySelector('.jsNewFormFooter');\n if (formFooter && newFormFooter) {\n formFooter.parentElement.removeChild(formFooter);\n }\n newCardFormMobile = '1';\n } else if (formFooter && formFooter.childNodes && formFooter.childNodes[0]) {\n const footerButton = document.querySelector('.formFooter-button');\n const footerLogo = document.querySelector('.formFooter-logoLink');\n if (footerButton && footerLogo) {\n footerButton.href = `${footerButton.getAttribute('href')}_mobile`;\n footerLogo.href = `${footerLogo.getAttribute('href')}_mobile`;\n }\n }\n\n const input = createInput({ type: 'hidden', name: 'newCardFormMobile', value: newCardFormMobile });\n const form = document.querySelector('.jotform-form');\n if (form && input) {\n form.appendChild(input);\n }\n }\n\n // returns a random and time based unique submitter id for using in analytics\n createUniqueSubmitterID(formID) {\n return `${formID}_${Date.now()}_${Math.floor(Math.random() * 1000)}`;\n }\n\n initializeHWFeedbackEmbedButton() {\n addClass(document.body, 'forMiniCard');\n const input = createInput({ type: 'hidden', name: 'feedbackEmbedButton', value: '' });\n const form = document.querySelector('.jotform-form');\n if (form && input) {\n form.appendChild(input);\n }\n this.hwFeedbackEmbed.setDeviceType(getDeviceType());\n this.hwFeedbackEmbed.setOS(this.layoutParams.osName);\n }\n\n getCurrentCard() {\n const { currentCardIndex } = this.layoutParams;\n return this.cards[currentCardIndex];\n }\n\n /**\n * @description\n * This will find all focusable element descendents inside a card element.\n * ex: buttons, inputs, text-areas, iframes, anything with a tab-index\n * and set the tab-index to either 0 or -1.\n * @param {Object} props\n * @param {HTMLElement} props.card\n * @param {0 | -1} props.tabIndex\n */\n setCardTabIndex({ card, tabIndex }) {\n const container = card?.wrapperContainer;\n if (!container || !(container instanceof HTMLElement)) return;\n if (tabIndex !== 0 || tabIndex !== -1) return;\n\n const focusableElements = getElementsByFocus({\n target: container,\n\n // This will filter / ignore focusable elements inside the target if they match the specified attribute.\n // If we are setting the tab-index to 0, we want to exclude all elements that have a aria-hidden attribute.\n excludeAttributes: tabIndex === 0 ? 'aria-hidden' : '',\n\n // This will filter / ignore focusable elements inside the target if they have a specific style.\n // If we are setting the tab-index to 0, we want to ignore elements that are currently hidden.\n excludeStyles: tabIndex === 0 ? { opacity: '0', display: 'none' } : {}\n });\n focusableElements?.forEach(element => element.setAttribute('tabIndex', tabIndex));\n }\n\n // Check question and attach necessary classes\n attachComponentClassToCard(card) {\n // add componentClass for additional needs\n let componentClass;\n const { question } = card;\n switch (question.type) {\n case 'control_matrix':\n componentClass = new Matrix({\n question,\n isFeedbackEmbedButton: this.isFeedbackEmbedButton,\n selectNextQuestion: this.selectNextQuestion\n });\n break;\n case 'control_email':\n componentClass = new Email({\n question,\n cardContainer: card.cardContainer,\n showTooltip: this.showInputTooltip,\n removeTooltip: this.removeInputTooltip,\n formID: this.formID\n });\n break;\n case 'control_emojislider':\n componentClass = new EmojiSlider({\n question,\n cardContainer: card.cardContainer\n });\n break;\n default:\n break;\n }\n if (componentClass) {\n question.componentClass = componentClass; // eslint-disable-line\n }\n }\n\n checkFeedbackEmbedMode() {\n return global.location.href.indexOf('?feedbackEmbed=1') > -1 || (window.parent && !!window.parent.JotformFeedbackManager);\n }\n\n initializeFeedbackEmbedMode() {\n addClass(document.body, 'feedbackEmbedMode');\n }\n\n checkCardsIfFilled(cards) {\n cards.forEach(p => {\n if (NonInputFields.indexOf(p.question.type) === -1 && ['paymentType', 'products'].indexOf(p.type) === -1) this.updateCardStatus(p, false, true);\n\n const inputs = map(p.cardContainer.querySelectorAll('input.jfInput-input, jfInput-textarea, select.form-dropdown'), q => q);\n if (p.question.type !== 'control_datetime') {\n // datetime will keep its isFilled prop since chrome puts placeholders to it\n // set isFilled class to other inputs if they have value initially\n inputs.forEach(this.setFieldIsFilledIfHasValue);\n }\n });\n }\n\n bindMobileValidations() {\n const handleMobileInput = (() => {\n const currentCard = this.cards[this.layoutParams.currentCardIndex];\n if (this.erroredCards.indexOf(currentCard) !== -1) {\n this.validateCard(currentCard, false);\n }\n });\n global.document.body.addEventListener('input', handleMobileInput);\n }\n\n handleKeyboardTabs(e) {\n const { deviceType, currentCardIndex } = this.layoutParams;\n if (deviceType !== 'mobile') {\n if (currentCardIndex > -1 && this.cards[currentCardIndex].question.type === 'control_mixed') {\n if (e.type === 'blur' && e.target.validateInput) {\n e.target.validateInput();\n }\n }\n return;\n }\n const newTarget = e.type === 'blur' ? e.relatedTarget : e.target;\n const newField = closest(newTarget, '.jfCard');\n const newCardIndex = this.cards.findIndex(p => p.cardContainer === newField);\n if (currentCardIndex + 1 === newCardIndex) this.selectNextQuestion(true, true);\n if (currentCardIndex - 1 === newCardIndex) this.selectPreviousQuestion(true);\n }\n\n handleFullScreenToggle() {\n const isMobile = this.layoutParams.deviceType === 'mobile';\n if (isMobile) { return; }\n\n this.cards.forEach(card => {\n const skipCardTypes = ['control_textarea'];\n const questionType = card.question.type;\n const fullScreenBtn = card.cardContainer.querySelector('.jfQuestion-fullscreen');\n const calculationTreshold = 6;\n if (!fullScreenBtn) { return; }\n\n if (skipCardTypes.indexOf(questionType) === -1) {\n const containerHeight = card.questionContainer.clientHeight;\n if (!Number.isNaN(containerHeight)) {\n const { questionContainer: { scrollHeight } } = card;\n\n if ((containerHeight + calculationTreshold) < scrollHeight) {\n removeClass(fullScreenBtn, 'isHidden');\n fullScreenBtn.removeAttribute('aria-hidden');\n fullScreenBtn.setAttribute('tabindex', '0');\n } else {\n addClass(fullScreenBtn, 'isHidden');\n fullScreenBtn.setAttribute('aria-hidden', 'true');\n fullScreenBtn.setAttribute('tabindex', '-1');\n }\n }\n }\n });\n }\n\n toggleFullScreenMode() {\n const { currentCardIndex } = this.layoutParams;\n const currentCard = this.cards[currentCardIndex];\n const cardContainer = currentCardIndex > -1 ? currentCard.cardContainer : null;\n if (!cardContainer) { return; }\n\n const { fullScreenProxy } = this.layoutElements;\n const cardToolbar = currentCardIndex > -1 ? currentCard.cardToolbar : null;\n const cardActions = cardContainer.querySelector('.jfCard-actions');\n const cardActionNotifications = cardContainer.querySelector('.jfCard-actionsNotification');\n\n if (hasClass(document.body, 'isFullScreen')) {\n removeClass(document.body, 'isFullScreen');\n this.layoutParams.isFullScreenMode = false;\n } else {\n addClass(document.body, 'isFullScreen');\n this.layoutParams.isFullScreenMode = true;\n }\n\n if (this.layoutParams.isFullScreenMode) {\n const cardQuestion = cardContainer.querySelector('.jfCard-question');\n const errorMessage = cardContainer.querySelector('.form-error-message');\n\n if (cardQuestion) {\n const cardQuestionShadow = cardQuestion.cloneNode(true);\n const questionType = currentCard.question && currentCard.question.type ? currentCard.question.type : '';\n addClass(cardQuestionShadow, 'isShadow');\n fullScreenProxy.appendChild(cardQuestion);\n fullScreenProxy.setAttribute('data-type', questionType);\n cardContainer.insertBefore(cardQuestionShadow, cardActions);\n\n if (cardToolbar) {\n const cardToolbarShadow = cardToolbar.cloneNode(true);\n addClass(cardToolbarShadow, 'isShadow');\n addClass(fullScreenProxy, 'hasToolbar');\n cardContainer.insertBefore(cardToolbarShadow, cardActions);\n fullScreenProxy.appendChild(cardToolbar);\n }\n\n if (errorMessage) {\n addClass(fullScreenProxy, 'hasError');\n fullScreenProxy.appendChild(errorMessage);\n }\n\n this.applyFullScreenModeUI();\n }\n } else {\n const cardQuestion = fullScreenProxy.querySelector('.jfCard-question');\n const errorMessage = fullScreenProxy.querySelector('.form-error-message');\n\n if (cardQuestion) {\n this.layoutParams.isFullScreenMode = false;\n removeClass(fullScreenProxy, 'hasToolbar');\n fullScreenProxy.removeAttribute('data-type');\n\n cardContainer.querySelector('.jfCard-question.isShadow').remove();\n cardContainer.insertBefore(cardQuestion, cardActions);\n\n if (errorMessage) {\n cardActionNotifications.appendChild(errorMessage);\n }\n\n if (cardToolbar) {\n removeClass(fullScreenProxy, 'hasError');\n cardContainer.insertBefore(cardToolbar, cardActions);\n cardContainer.querySelector('.jfToolbar.isShadow').remove();\n }\n\n this.applyFullScreenModeUI();\n }\n }\n\n setTimeout(this.updateMatrixLayout, 450);\n }\n\n toggleFullScreenDisplayMode() {\n const { fullScreenProxy } = this.layoutElements;\n\n if (hasClass(fullScreenProxy, 'isNightMode')) {\n removeClass(fullScreenProxy, 'isNightMode');\n } else {\n addClass(fullScreenProxy, 'isNightMode');\n }\n }\n\n applyFullScreenModeUI() {\n const { currentCardIndex, isFullScreenMode } = this.layoutParams;\n const currentCard = this.cards[currentCardIndex];\n const questionType = currentCard.question.type;\n const { fullScreenProxy } = this.layoutElements;\n const cardContainer = currentCardIndex > -1 ? currentCard.cardContainer : null;\n const cardToolbar = currentCardIndex > -1 ? currentCard.cardToolbar : null;\n if (!cardContainer) { return; }\n\n switch (questionType) {\n case 'control_textarea':\n const textareaLimitSpan = fullScreenProxy.querySelector('.jfTextarea-infoSpan');\n const modeSwitch = fullScreenProxy.querySelector('.jfTextarea-modeSpan');\n\n if (isFullScreenMode) {\n if (textareaLimitSpan) {\n fullScreenProxy.appendChild(textareaLimitSpan);\n }\n\n if (modeSwitch) {\n modeSwitch.addEventListener('click', this.toggleFullScreenDisplayMode);\n }\n } else if (textareaLimitSpan && cardToolbar) {\n cardToolbar.appendChild(textareaLimitSpan);\n removeClass(fullScreenProxy, 'isNightMode');\n }\n break;\n default:\n break;\n }\n }\n\n bindFullScreenMode() {\n this.cards.forEach(({ cardContainer }) => {\n const fullScreenBtn = cardContainer.querySelector('.jfQuestion-fullscreen');\n if (fullScreenBtn) {\n fullScreenBtn.addEventListener('click', () => {\n this.toggleFullScreenMode();\n });\n }\n });\n }\n\n bindInputFocus() {\n const inputs = global.document.querySelectorAll('input, textarea, select');\n let focusedElement = null;\n const checkFocus = () => {\n if (this.layoutParams.hasTouch) {\n if (focusedElement) {\n addClass(document.body, 'isTouchKeyboardOpen');\n } else {\n removeClass(document.body, 'isTouchKeyboardOpen');\n }\n }\n };\n\n forEach(inputs, input => {\n if (input.type !== 'radio' && input.type !== 'checkbox') {\n input.addEventListener('focus', e => {\n this.handleKeyboardTabs(e);\n focusedElement = e.target;\n checkFocus();\n });\n\n input.addEventListener('blur', e => {\n e.preventDefault();\n this.handleKeyboardTabs(e);\n if (focusedElement === e.target) {\n focusedElement = null;\n checkFocus();\n }\n });\n }\n });\n }\n\n bindStartButton() {\n if (this.layoutElements.startButton) {\n const isWelcome = this.layoutParams.formMode === 'welcome';\n this.layoutElements.startButton.addEventListener('click', () => {\n const cardformWelcome = document.querySelector('#cardform-welcome-icon');\n const cardformHeader = document.querySelector('#cardform-header-icon');\n\n if (cardformWelcome && cardformHeader) {\n const child = cardformWelcome.firstChild;\n if (child && child.nodeName === 'DIV') {\n cardformHeader.innerHTML = child.innerHTML;\n } else {\n cardformHeader.innerHTML = cardformWelcome.innerHTML;\n }\n }\n\n this.setFormMode('form');\n this.hideWelcomeBadges();\n if (isWelcome) {\n this.shortenHeaders();\n this.calculateWelcomeSize();\n // this.fixLogoHeight();\n // this.calculateCardsHeight();\n }\n if (global.JotForm.nextPage) {\n this.selectNextQuestion();\n }\n });\n\n if (this.layoutElements.previousButton) {\n this.layoutElements.previousButton.addEventListener('click', () => {\n this.setFormMode('form');\n this.selectPreviousQuestion();\n });\n }\n }\n }\n\n onSubmit() {\n // check all cards for error after a delay then show form error message if it does not shown\n setTimeout(() => {\n if (this.cards.find(p => p.hasError && !p.isHidden)) {\n global.JotForm.showButtonMessage();\n }\n\n // for new mobile layout\n if (this.layoutParams.deviceType === 'mobile') {\n const submitError = document.querySelector('#jsSubmitError');\n const erroredFieldCount = this.cards.reduce((acc, card) => {\n return card.hasError ? acc + 1 : acc;\n }, 0);\n if (erroredFieldCount) {\n addClass(submitError, 'isVisible');\n submitError.innerHTML = `${erroredFieldCount} incomplete field${erroredFieldCount === 1 ? '' : 's'}.`;\n addClass(this.layoutElements.progressWrapper, 'hasSubmitError');\n this.onFormOverviewClicked(null, true);\n if (this.layoutParams.formMode === 'review') {\n this.setFormMode('form');\n }\n }\n }\n }, 50);\n }\n\n validateCard(_card, blurBefore = true, dontShowMessage = false) {\n const card = _card;\n\n if (card.type === 'creditCard' && card.question.type === 'control_square') {\n global.JotForm.squarePayment.validateFields();\n }\n\n // blur all form fields before validating. Some fields like control_datetime may its own validation logic when inputs lost focus.\n if (blurBefore) {\n forEach(card.cardContainer.querySelectorAll('input, textarea, select'), p => p.blur());\n }\n\n // this block for cardform square apm submitting failure\n // It checks selected pm and remove validation classes for the other apms' input(ach, creditcard etc.)\n const squareCc = card.type === 'creditCard' && card.question.type === 'control_square';\n const allSquarePaymentOptions = Array.from(document.querySelectorAll('input[name=\"radio-apm-cardform\"]'));\n const selectedOpt = allSquarePaymentOptions.find(item => item.checked);\n const isSquareApmSelected = selectedOpt && selectedOpt.id;\n if (squareCc && selectedOpt) {\n const apmList = document.querySelectorAll('div[id=\"square-payment-method\"]');\n Array.from(apmList).forEach(apm => {\n if (apm.dataset.id !== isSquareApmSelected) {\n const hasValidateClass = apm.querySelectorAll('input[type=\"text\"]');\n if (hasValidateClass.length > 0) {\n Array.from(hasValidateClass).forEach(c => {\n c.classList.remove('form-validation-error', 'validate[required]');\n });\n }\n }\n });\n }\n\n const fieldsToCheck = card.cardContainer.querySelectorAll('*[class*=\"validate\"]');\n const widgetsToCheck = card.cardContainer.querySelectorAll('*[class*=\"widget-required\"]');\n\n let isValid = true;\n forEach(fieldsToCheck, field => {\n if (field.validateInput) {\n // const valid = field.validateInput();\n // if (!valid) isValid = false;\n isValid = field.validateInput(false, dontShowMessage) && isValid;\n }\n });\n\n if (card.type === 'creditCard' && card.question.type === 'control_braintree') {\n // Shopping Bag is not initializing in donation forms so we need to separate shopping bag condition\n const shoppingBagCondition = global.JotForm.shoppingBag ? global.JotForm.shoppingBag.getTotalSelectedItems() > 0 : true;\n if (shoppingBagCondition && global.JotForm.paymentTotal > 0) {\n isValid = global.JotForm.braintree.validateFields();\n }\n }\n\n if (card.type === 'creditCard' && card.question.type === 'control_stripe' && global.JotForm.stripe && typeof global.JotForm.stripe.validateStripe !== 'undefined') {\n // Shopping Bag is not initializing in donation forms so we need to separate shopping bag condition\n const shoppingBagCondition = global.JotForm.shoppingBag ? global.JotForm.shoppingBag.getTotalSelectedItems() > 0 : true;\n if (shoppingBagCondition && global.JotForm.paymentTotal > 0) {\n isValid = global.JotForm.stripe.validateStripe();\n }\n }\n if (global.CardForm !== undefined && global.JotForm !== undefined && card.cardContainer.hasAttribute('data-payment') && global.JotForm.isPaymentSelected()) {\n if (global.JotForm.hasMinTotalOrderAmount()) {\n card.hasError = global.JotForm.handleMinTotalOrderAmount();\n }\n if (card.type === 'creditCard' && card.question.type === 'control_mollie' && typeof global.__mollie !== 'undefined') {\n card.hasError = !global.__mollie.cardFormMollieValidate();\n }\n }\n\n if (card.type === 'products' && typeof global.PaymentStock !== 'undefined') {\n isValid = !card.hasError && global.PaymentStock.validations.validateStock();\n }\n\n let isWidgetRequired = false;\n if (widgetsToCheck.length) {\n isValid = widgetsToCheck[0].value.length === 0 ? false : true;\n if (!isValid && !card.isHidden) {\n isWidgetRequired = true;\n }\n } else if (card.question.type === 'control_fileupload') {\n isValid = fieldsToCheck.length ? card.cardContainer.querySelector('.jfUpload-files-container').validateInput() : true;\n } else if (card.question.type === 'control_address') {\n const addressContainer = card.cardContainer.querySelector('.jfAddress-clean');\n const autocompleteField = document.getElementById(`input_${card.question.id}_addr_search`);\n if (addressContainer && autocompleteField && autocompleteField.value) {\n addressContainer.classList.remove('jfAddress-clean');\n }\n } else {\n isValid = !card.hasError && isValid;\n }\n\n card.hasError = !isValid;\n\n // after a card is validated check for the form error and hide it if there is no card with error\n setTimeout(() => {\n if (!this.cards.find(p => p.hasError)) {\n global.JotForm.hideButtonMessage();\n }\n }, 50);\n\n const cardIndex = this.erroredCards.indexOf(card);\n if (!isValid && cardIndex !== -1) {\n this.erroredCards.splice(cardIndex, 1);\n }\n\n if (!isValid && isWidgetRequired) {\n global.JotForm.errored(widgetsToCheck[0], global.JotForm.texts.required || FORM_TEXTS.required);\n }\n\n return isValid;\n }\n\n isCardFilled(_card) {\n const card = _card;\n\n if (card.question.type === 'control_fileupload') {\n return this.onFileUploadChanged(card.question.id);\n }\n\n let fieldsToCheck = Array.prototype.slice.call(card.cardContainer.querySelectorAll('input, textarea, select'));\n const questionType = card.question.type;\n\n fieldsToCheck = fieldsToCheck.filter(field => {\n if (questionType === 'control_time') {\n if (field.match('[name*=\"ampm\"]')) {\n return false;\n }\n }\n\n if (questionType === 'control_address') {\n if (field.match('[name*=\"dropdown_search\"]') || field.match('[name*=\"country\"]')) {\n return false;\n }\n }\n\n if (questionType === 'control_captcha') {\n if (field.match('[name=\"recaptcha_visible\"]')) {\n return false;\n }\n }\n\n if (questionType === 'control_datetime') {\n if (field.match('[name*=\"ampm\"]') || field.match('[name*=\"hour\"]') || field.match('[name*=\"min\"]')) {\n return false;\n }\n }\n\n if (questionType === 'control_appointment') {\n if (!field.match('[name*=\"date\"]')) {\n return false;\n }\n }\n\n return true;\n });\n\n for (let i = 0; i < fieldsToCheck.length; i++) {\n const field = fieldsToCheck[i];\n\n // ignore widget settings input\n if (field.className.indexOf('form-widget-settings') > -1) continue;\n\n if (field.type === 'radio' || field.type === 'checkbox') {\n if (field.checked) {\n card.isFilled = true;\n return true;\n }\n } else if (field.value) {\n card.isFilled = true;\n return true;\n } else if (questionType === 'control_widget') {\n const widgetFrame = card.wrapperContainer && card.wrapperContainer.querySelector(`#customFieldFrame_${card.question.id}`);\n const isWidgetFilled = widgetFrame && widgetFrame.getAttribute('data-value') ? true : false;\n card.isFilled = isWidgetFilled;\n return isWidgetFilled;\n }\n }\n card.isFilled = false;\n return false;\n }\n\n onFieldCorrected(input) {\n // for new mobile layout\n if (this.layoutParams.deviceType === 'mobile') {\n const erroredFieldCount = this.cards.reduce((acc, card) => {\n return card.hasError ? acc + 1 : acc;\n }, 0);\n const submitErr = document.querySelector('#jsSubmitError');\n if (erroredFieldCount && submitErr.innerHTML !== '' && hasClass(submitErr, 'isVisible')) {\n submitErr.innerHTML = `${erroredFieldCount} incomplete field${erroredFieldCount === 1 ? '' : 's'}.`;\n addClass(this.layoutElements.progressWrapper, 'hasSubmitError');\n } else {\n removeClass(this.layoutElements.progressWrapper, 'hasSubmitError');\n removeClass(submitErr, 'isVisible');\n }\n }\n const line = global.JotForm.getContainer(input);\n const card = this.layoutParams.isFullScreenMode\n ? this.cards[this.layoutParams.currentCardIndex]\n : this.cards.find(p => p.cardContainer === line || p.cardContainer.contains(line));\n card.hasError = false;\n\n this.updateCardStatus(card, false, false);\n if (hasClass(input, 'form-dropdown')) {\n this.updateDropdown(input, false);\n }\n\n // clearing separately marked errors from mixed control.\n if (line.getAttribute('data-type') === 'control_mixed') {\n addClass(input.parentNode, 'isValid');\n removeClass(input.parentNode, 'hasError');\n }\n }\n\n onFieldErrored(input) {\n const line = global.JotForm.getContainer(input);\n\n // Select card basedfon the view mode\n const card = this.layoutParams.isFullScreenMode\n ? this.cards[this.layoutParams.currentCardIndex]\n : this.cards.find(p => p.cardContainer === line);\n\n if (this.layoutParams.isFullScreenMode) {\n addClass(card, 'hasError');\n }\n\n card.hasError = true;\n if (this.erroredCards.indexOf(card) === -1) {\n this.erroredCards.push(card);\n }\n this.updateCardStatus(card, false, false);\n if (hasClass(input, 'form-dropdown')) {\n this.updateDropdown(input, true);\n }\n\n // marking errored fields separately for mixed control.\n if (line.getAttribute('data-type') === 'control_mixed') {\n removeClass(input.parentNode, 'isValid');\n addClass(input.parentNode, 'hasError');\n }\n }\n\n updateDropdown(input, errored) {\n const field = closest(input, '.jfField');\n const customSelect = field.querySelector('.jfInput-dropdown');\n if (errored) {\n addClass(customSelect, 'form-validation-error');\n } else {\n removeClass(customSelect, 'form-validation-error');\n }\n }\n\n recalculateTransform() {\n // if (this.layoutParams.forTemplate) return;\n\n const { cardAnimationWrapper } = this.layoutElements;\n const {\n leftMargin,\n currentCardSize,\n scaleFactor,\n cardScrollScale,\n scrollLeftExtra,\n formMode,\n cardMode,\n resolutionType,\n globalCardScaleFactor\n } = this.layoutParams;\n\n const scaleValue = ((cardMode === 'scroll' && resolutionType !== 'mobile' ? cardScrollScale : 1) * scaleFactor) * globalCardScaleFactor;\n const currentScrollLeft = this.getScrollLeft() + scrollLeftExtra;\n\n const transformOriginX = leftMargin + currentScrollLeft + (currentCardSize / 2);\n const percent = formMode === 'welcome' ? ' 62%' : ' 50%';\n const transformOrigin = `${transformOriginX}px ${percent} 0`;\n\n const transform = `translate3d(-${currentScrollLeft}px, 0,0) scale3d(${scaleValue * scaleFactor}, ${scaleValue * scaleFactor},1)`;\n cardAnimationWrapper.style.transform = transform;\n cardAnimationWrapper.style.webkitTransform = transform;\n cardAnimationWrapper.style.MozTransform = transform;\n cardAnimationWrapper.style.msTransform = transform;\n\n cardAnimationWrapper.style.transformOrigin = transformOrigin;\n cardAnimationWrapper.style.webkitTransformOrigin = transformOrigin;\n cardAnimationWrapper.style.MozTransformOrigin = transformOrigin;\n cardAnimationWrapper.style.msTransformOrigin = transformOrigin;\n }\n\n onFormOverviewClicked(event, scrollToFirstError) {\n const isMobile = this.layoutParams.deviceType === 'mobile';\n if (this.layoutParams.cardMode === 'scroll') {\n if (!this.progress.isFormProgressVisible && !isMobile && this.progress.layoutElements.progressItemsLine && this.progress.layoutElements.progressItemWrapper) {\n addClass(this.progress.layoutElements.progressItemsLine, ' jfProgress-hiddenWrapper');\n addClass(this.progress.layoutElements.progressItemWrapper, ' jfProgress-hiddenWrapper');\n }\n\n this.setCardIndex(this.getNearestCardIndexInScrollMode());\n this.setCardMode('single');\n } else {\n this.setCardMode('scroll', true);\n if (isMobile) {\n if (scrollToFirstError) {\n const firstErroredProgress = document.querySelector('.jfProgress-item.hasError');\n if (firstErroredProgress) {\n const { x } = firstErroredProgress.getBoundingClientRect();\n const progressWrapper = document.querySelector('.jfProgress#cardProgress');\n progressWrapper.scrollTop = x;\n }\n }\n } else {\n if (!this.progress.isFormProgressVisible && this.progress.layoutElements.progressItemsLine && this.progress.layoutElements.progressItemWrapper) {\n removeClass(this.progress.layoutElements.progressItemsLine, 'jfProgress-hiddenWrapper');\n removeClass(this.progress.layoutElements.progressItemWrapper, 'jfProgress-hiddenWrapper');\n }\n this.recalculateSmartEmbedLayout();\n }\n }\n }\n\n handleFeedbackButtonProgress() {\n if (!this.isFeedbackEmbedButton) return;\n const visibleQuestions = this.cards.filter(p => !p.isHidden);\n if (visibleQuestions.length) {\n const currentCardIndex = this.layoutParams.currentCardIndex || 1;\n const currentCard = this.cards[currentCardIndex];\n const currentQuestionIndex = visibleQuestions.indexOf(currentCard) + 1;\n const feedbackProgress = document.querySelector('.jsFeedbackProgressLine');\n const percentage = Math.ceil((currentQuestionIndex / visibleQuestions.length) * 100);\n feedbackProgress.style.width = `${percentage}%`;\n }\n }\n\n onProgressItemSelected(index) {\n if (this.layoutParams.resolutionType === 'mobile') {\n this.removeLayoutAnimation();\n this.setCardIndex(index, true);\n this.setCardMode('single', true);\n this.addLayoutAnimation(10);\n return;\n }\n\n if (this.layoutParams.cardMode === 'scroll') {\n this.setCardIndex(index);\n this.removeLayoutAnimation(400); // remove transition animation after form moved to selected card index\n } else {\n this.selectQuestion(index);\n }\n }\n\n arrangeSectionHeaders(welcomProps, sectionHeaders) {\n this.sectionHeaders = sectionHeaders;\n\n this.sectionHeaders.forEach(_header => {\n const header = _header;\n if (header.props.hidden && header.props.hidden.value === 'Yes') {\n header.isHidden = true;\n }\n });\n\n this.welcomePageProps = {\n index: 0,\n props: welcomProps || {}\n };\n\n if (!this.welcomePageProps.props.text) this.welcomePageProps.props.text = {};\n if (!this.welcomePageProps.props.subHeader) this.welcomePageProps.props.subHeader = {};\n }\n\n getSectionHeaderForIndex(_index) {\n const index = Object.keys(this.paymentsMergedCards).findIndex(e => e === this.cards[_index].question.qid);\n if (!this.layoutParams.formMode || this.layoutParams.formMode === 'welcome') {\n return this.welcomePageProps;\n }\n\n let currentHeader;\n if (this.sectionHeaders && this.sectionHeaders.length) {\n for (let i = this.sectionHeaders.length - 1; i >= 0; i--) {\n const header = this.sectionHeaders[i];\n if (header.index <= index) {\n currentHeader = header;\n break;\n }\n }\n }\n\n if (!currentHeader) {\n currentHeader = this.welcomePageProps;\n }\n\n return currentHeader;\n }\n\n updateFormHeader(sectionHeader) {\n if (this.sectionHeaders && sectionHeader && this.sectionHeaders.length && this.currentHeader !== sectionHeader) {\n const header = sectionHeader.props.text ? sectionHeader.props.text.value : undefined;\n const subHeader = sectionHeader.props.subHeader ? sectionHeader.props.subHeader.value : undefined;\n // section info\n const showSectionInfo = (sectionHeader.props.showQuestionCount && sectionHeader.props.showQuestionCount.value === 'Yes') ? true : false;\n let sectionQuestionCount = '';\n\n let nextButtonText;\n let previousButtonText;\n\n if (sectionHeader === this.welcomePageProps) {\n nextButtonText = this.welcomePageProps.props.buttonText ? this.welcomePageProps.props.buttonText.value : 'Start';\n\n document.querySelector('.jfWelcome-wrapper')?.classList.remove('isHeader');\n this.layoutElements.previousButton?.classList.remove('jfInput-button', 'forPrev-heading');\n this.layoutElements.startButton?.classList.remove('jfInput-button', 'forNext-heading');\n // previousButtonText = this.welcomePageProps.props.buttonText ? this.welcomePageProps.props.buttonText.value : 'Start';\n } else {\n const actionNextText = this.cards[0] ? this.cards[0].actionsButtons.next.innerHTML : 'Next';\n const actionPreviousText = this.cards[0] ? this.cards[0].actionsButtons.prev.innerHTML : 'Previous';\n nextButtonText = sectionHeader.props.nextButtonText && sectionHeader.props.nextButtonText.value ? sectionHeader.props.nextButtonText.value : actionNextText;\n previousButtonText = sectionHeader.props.previousButtonText && sectionHeader.props.previousButtonText.value ? sectionHeader.props.previousButtonText.value : actionPreviousText;\n document.querySelector('.jfWelcome-wrapper')?.classList.add('isHeader');\n this.layoutElements.previousButton?.classList.add('jfInput-button', 'forPrev-heading');\n this.layoutElements.startButton?.classList.add('jfInput-button', 'forNext-heading');\n }\n\n if (header !== undefined) {\n this.layoutElements.welcomeHeaderContainer.innerHTML = DomPurify.sanitize(header);\n } else {\n this.layoutElements.welcomeHeaderContainer.innerHTML = DomPurify.sanitize(this.welcomePageProps.props.text.value);\n }\n\n if (subHeader !== undefined) {\n this.layoutElements.welcomeSubHeaderContainer.innerHTML = DomPurify.sanitize(subHeader);\n } else {\n this.layoutElements.welcomeSubHeaderContainer.innerHTML = DomPurify.sanitize(this.welcomePageProps.props.subHeader.value || '');\n }\n\n const { allQuestions } = this.layoutParams;\n const { welcomeSectionInfoQuestionCount, welcomeSectionInfoText } = this.layoutElements;\n\n if (showSectionInfo && sectionHeader.props.id.value !== 'welcomePage') {\n const headIndex = this.sectionHeaders.map(q => { return q.props.id.value; }).indexOf(sectionHeader.props.id.value);\n const currentHeaderID = sectionHeader.props.id.value.toString();\n const nextHeaderID = this.sectionHeaders[headIndex + 1] ? this.sectionHeaders[headIndex + 1].props.id.value.toString() : false;\n\n const list = allQuestions.map(q => { return q.id; });\n\n const currentHeaderIndex = list.indexOf(currentHeaderID);\n if (currentHeaderIndex !== -1) {\n const nextHeaderIndex = nextHeaderID ? list.indexOf(nextHeaderID) : false;\n\n const sectionQuestions = nextHeaderIndex ? allQuestions.slice(currentHeaderIndex + 1, nextHeaderIndex) : allQuestions.slice(currentHeaderIndex + 1);\n const visibleSectionQuestions = sectionQuestions.map(q => {\n return this.cards.find(p => p.question.id === q.id);\n });\n sectionQuestionCount = visibleSectionQuestions.filter(p => !p.isHidden).length;\n }\n welcomeSectionInfoText.innerHTML = parseInt(sectionQuestionCount, 10) > 1 ? 'Questions'.locale() : 'Question'.locale();\n } else if (showSectionInfo && sectionHeader.props.id.value === 'welcomePage') {\n sectionQuestionCount = this.cards.filter(p => !p.isHidden && p.question.type !== 'control_head').length;\n }\n welcomeSectionInfoQuestionCount.innerHTML = sectionQuestionCount;\n\n this.layoutElements.startButton.innerHTML = nextButtonText;\n\n if (this.layoutElements.previousButton) {\n this.layoutElements.previousButton.innerHTML = previousButtonText;\n if (sectionHeader.index === 0) {\n this.layoutElements.previousButton.style.display = 'none';\n addClass(document.querySelector('.jfWelcome-wrapper'), 'noPrevButton');\n } else {\n this.layoutElements.previousButton.style.display = 'inline';\n this.layoutElements.previousButton.style.visibility = 'visible';\n this.layoutElements.previousButton.ariaHidden = 'false';\n this.layoutElements.welcomeHeaderContainer.style.opacity = '1';\n removeClass(document.querySelector('.jfWelcome-wrapper'), 'noPrevButton');\n }\n }\n }\n this.currentHeader = sectionHeader;\n this.checkHeaderSubHeaderCharLimits(sectionHeader);\n this.translateSectionHeader();\n if (this.layoutParams.formMode === 'form') this.shortenHeaders();\n\n if (this.layoutParams.formMode === 'sectionHeader') this.calculateWelcomeSize();\n }\n\n checkHeaderSubHeaderCharLimits(sectionHeader) {\n if (sectionHeader) {\n const header = sectionHeader.props.text ? sectionHeader.props.text.value : undefined;\n const subHeader = sectionHeader.props.subHeader ? sectionHeader.props.subHeader.value : undefined;\n\n if (this.layoutParams.resolutionType === 'mobile') {\n if (header && header.length > (this.layoutParams.formMode === 'welcome' ? 100 : 75)) {\n addClass(this.layoutElements.welcomeHeaderContainer, 'isLong');\n } else {\n removeClass(this.layoutElements.welcomeHeaderContainer, 'isLong');\n }\n\n if (subHeader && subHeader.length > (this.layoutParams.formMode === 'welcome' ? 100 : 75)) {\n addClass(this.layoutElements.welcomeSubHeaderContainer, 'isLong');\n } else {\n removeClass(this.layoutElements.welcomeSubHeaderContainer, 'isLong');\n }\n }\n }\n }\n\n setPrevNextQuestion(newIndex) {\n let nextIndex = newIndex + 1;\n let prevIndex = newIndex - 1;\n this.cards.forEach(card => {\n removeClass(card.wrapperContainer, 'prevQuestion');\n removeClass(card.wrapperContainer, 'nextQuestion');\n card.wrapperContainer.removeAttribute('aria-hidden');\n });\n while (nextIndex < this.cards.length && this.cards[nextIndex].isHidden) {\n nextIndex++;\n }\n if (nextIndex < this.cards.length) {\n addClass(this.cards[nextIndex].wrapperContainer, 'nextQuestion');\n this.cards[nextIndex].wrapperContainer.setAttribute('aria-hidden', 'true');\n }\n\n while (prevIndex > -1 && this.cards[prevIndex].isHidden) {\n prevIndex--;\n }\n if (prevIndex > -1) {\n addClass(this.cards[prevIndex].wrapperContainer, 'prevQuestion');\n this.cards[prevIndex].wrapperContainer.setAttribute('aria-hidden', 'true');\n }\n }\n\n setMobilePrevNextQuestionButtons(currentCardIndex) {\n if (this.layoutParams.deviceType !== 'mobile' && !this.isFeedbackEmbedButton) { return; }\n const {\n mobileNextButton,\n mobilePrevButton,\n mobileSubmitButton,\n mobileProgressInfo,\n progressWrapper,\n mobileUseJFSignButton\n } = this.layoutElements;\n const firstVisibleIndex = this.getFirstVisibleIndex();\n const lastVisibleIndex = this.getLastVisibleIndex();\n const backVisiblity = firstVisibleIndex !== currentCardIndex ? 'block' : 'none';\n const nextVisibility = lastVisibleIndex !== currentCardIndex ? 'block' : 'none';\n const submitVisibility = lastVisibleIndex === currentCardIndex ? 'inline-block' : 'none';\n const submitButton = (global.useJotformSign === 'Yes' && mobileUseJFSignButton && !this.layoutParams.reviewBeforeSubmit)\n ? mobileUseJFSignButton\n : mobileSubmitButton;\n\n if (mobileNextButton) { mobileNextButton.style.display = nextVisibility; }\n if (mobilePrevButton) { mobilePrevButton.style.display = backVisiblity; }\n if (submitButton) { submitButton.style.display = submitVisibility; }\n if (mobileProgressInfo) {\n if (lastVisibleIndex !== currentCardIndex) {\n mobileProgressInfo.style.display = 'block';\n addClass(progressWrapper, 'isProgressButtonVisible');\n } else {\n mobileProgressInfo.style.display = 'none';\n removeClass(progressWrapper, 'isProgressButtonVisible');\n }\n }\n }\n\n doObjectsCollide(DOMNode1, DOMNode2, checkTolerance = 0) {\n const getBoundsForNode = node => {\n const rect = node.getBoundingClientRect();\n\n return {\n top: rect.top + global.document.body.scrollTop,\n left: rect.left + global.document.body.scrollLeft,\n offsetWidth: node.offsetWidth,\n offsetHeight: node.offsetHeight\n };\n };\n\n const coordsCollide = (aTop, aLeft, bTop, bLeft, aWidth, aHeight, bWidth, bHeight, tolerance) => {\n const toleranceDistance = (typeof tolerance === 'undefined') ? 0 : tolerance;\n\n return !(\n (((aTop + aHeight) - toleranceDistance) < bTop)\n || ((aTop + toleranceDistance) > (bTop + bHeight))\n || (((aLeft + aWidth) - toleranceDistance) < bLeft)\n || ((aLeft + toleranceDistance) > (bLeft + bWidth))\n );\n };\n\n const checkCollision = (a, b, tolerance = 0) => {\n const aObj = (a instanceof global.HTMLElement) ? getBoundsForNode(a) : a;\n const bObj = (b instanceof global.HTMLElement) ? getBoundsForNode(b) : b;\n\n return coordsCollide(\n aObj.top,\n aObj.left,\n bObj.top,\n bObj.left,\n aObj.offsetWidth,\n aObj.offsetHeight,\n bObj.offsetWidth,\n bObj.offsetHeight,\n tolerance\n );\n };\n return checkCollision(DOMNode1, DOMNode2, checkTolerance);\n }\n\n updateFeedbackEmbedHeight() {\n if (!this.layoutParams.isFeedbackEmbedButton) { return; }\n const card = this.cards[this.layoutParams.currentCardIndex];\n // update this\n // const scrollThreshold = 10;\n const question = card.cardContainer.querySelector('.jfCard-question');\n const questionHeight = question.getBoundingClientRect().height;\n const scrollHeight = Math.abs(question.scrollHeight - questionHeight);\n const bottomBarHeight = 48;\n this.hwFeedbackEmbed.updateWindowHeight({\n messageType: 'updateHeight',\n questionHeight,\n scrollHeight,\n bottomBarHeight\n });\n }\n\n recalculateSmartEmbedLayout() {\n const {\n welcomeWrapper,\n progressWrapper,\n welcomeContainer,\n progressContainer,\n logoContainer\n } = this.layoutElements;\n const {\n smartEmbedMaxHeight,\n currentCardIndex,\n cardMode,\n formMode,\n resolutionType\n } = this.layoutParams;\n const cardContainer = currentCardIndex > -1 ? this.cards[currentCardIndex].cardContainer : null;\n const cardDimensions = cardContainer ? cardContainer.getBoundingClientRect() : { y: 100, height: 100 };\n const smartEmbedTreshold = smartEmbedMaxHeight + 200;\n const isSmartEmbed = hasClass(document.body, 'isSmartEmbed');\n const isMobile = resolutionType === 'mobile';\n\n if (cardContainer && logoContainer) {\n setTimeout(() => {\n if (this.doObjectsCollide(cardContainer, logoContainer, 15)) {\n addClass(logoContainer, 'isHidden');\n } else {\n removeClass(logoContainer, 'isHidden');\n }\n }, 300);\n }\n\n if (isSmartEmbed && this.layoutParams.isEmbed && this.jsForm) {\n const collisionTreshold = 120;\n const progressAdditionalMargin = 20;\n const welcomeContainerDimensions = welcomeContainer.getBoundingClientRect();\n const progressContainerDimensions = progressContainer.getBoundingClientRect();\n const requiredHeight = cardDimensions.height + collisionTreshold;\n\n if (cardMode === 'single' && formMode === 'form') {\n welcomeContainer.style.width = `${cardDimensions.width}px`;\n }\n if (cardMode === 'scroll' || formMode === 'welcome') {\n removeClass(document.body, 'isSmartEmbedCleanState');\n if (welcomeContainerDimensions.height) {\n welcomeWrapper.style.height = `${welcomeContainerDimensions.height}px`;\n }\n if (cardMode === 'scroll' && isMobile) {\n progressWrapper.style.height = null;\n } else {\n progressWrapper.style.height = `${progressContainerDimensions.height + progressAdditionalMargin}px`;\n }\n } else if (requiredHeight > smartEmbedTreshold) {\n addClass(document.body, 'isSmartEmbedCleanState');\n welcomeWrapper.style.height = `${welcomeContainerDimensions.height}px`;\n progressWrapper.style.height = `${progressContainerDimensions.height + progressAdditionalMargin}px`;\n } else {\n removeClass(document.body, 'isSmartEmbedCleanState');\n welcomeWrapper.style.height = `${cardDimensions.y}px`;\n progressWrapper.style.height = `${cardDimensions.y}px`;\n }\n } else {\n // Clearing embed styling\n welcomeWrapper.style.height = null;\n progressWrapper.style.height = null;\n }\n }\n\n handleFormSubmitError(newVisibleCard) {\n const submitButton = newVisibleCard.cardContainer.querySelector('.jfCard-actions .forSubmit');\n const cardActionNotifications = newVisibleCard.cardContainer.querySelector('.jfCard-actionsNotification');\n const errorMessage = cardActionNotifications.querySelector('.form-error-message');\n\n // find so far errored cards with their indexes\n const errorCards = this.cards.filter(p => !p.isHidden).reduce((acc, card, index) => {\n if (card.hasError) {\n acc.push({ card, index: index + 1 });\n }\n return acc;\n }, []);\n\n const errQCount = errorCards.length;\n if (!errQCount) {\n submitButton.removeAttribute('disabled');\n cardActionNotifications.removeChild(errorMessage);\n return;\n }\n\n let errorText = '';\n if (errQCount === 1) {\n errorText = `${errorCards[0].index}`;\n } else {\n const lastElementIndex = errorCards[errQCount - 1].index;\n const indexes = errorCards.map(a => a.index);\n if (errQCount <= 4) {\n indexes.pop();\n const othersText = indexes.join(', ');\n errorText = `${othersText} and ${lastElementIndex}`;\n } else {\n const othersText = indexes.splice(0, 3).join(', ');\n errorText = `${othersText} and ${errQCount - 3} other questions`;\n }\n }\n\n // handle errored fields text with index\n const newText = `Please answer the question ${errorText} before continuing.`;\n\n // show error text\n if (errorMessage) {\n errorMessage.innerHTML = newText;\n } else {\n const actionHTML = document.createElement('div');\n actionHTML.className = 'form-error-message';\n actionHTML.role = 'alert';\n actionHTML.innerHTML = newText;\n cardActionNotifications.appendChild(actionHTML);\n }\n submitButton.setAttribute('disabled', 'disabled');\n // go to first errored card with click\n }\n\n setCardIndex(index, withoutTransition, initial) {\n if (index === -1) {\n return;\n }\n if (this.cards[index].isHidden) {\n console.warn('trying to select a hidden question!!!'); // eslint-disable-line\n }\n const { currentCardIndex, formMode: currMode } = this.layoutParams;\n\n // check card if its filled to make progress item green. validation is done in selectNextQuestion\n if (currentCardIndex > -1) {\n this.updateCardStatus(this.cards[currentCardIndex], false, true);\n }\n\n const animationState = this.layoutParams.isLayoutAnimated;\n if (!withoutTransition) {\n this.addLayoutAnimation();\n } else {\n this.removeLayoutAnimation();\n }\n\n this.setPrevNextQuestion(index);\n if (currentCardIndex > -1) {\n const previousCard = this.cards[currentCardIndex];\n if (this.isAccessibleForm) {\n this.setCardTabIndex({ card: previousCard, tabIndex: -1 });\n }\n removeClass(previousCard.wrapperContainer, 'isVisible');\n // send the disable message to Iframe Embed widget in the previous card\n const { id, type } = previousCard.question;\n if (type === 'control_widget' && previousCard.wrapperContainer.querySelectorAll('[data-widget-id=\"5295629cba137d764f000004\"]').length > 0) {\n global.JotForm.disableWidget(id);\n }\n }\n this.layoutParams.currentCardIndex = index;\n const newVisibleCard = this.cards[this.layoutParams.currentCardIndex];\n if (this.isAccessibleForm) {\n this.setCardTabIndex({ card: newVisibleCard, tabIndex: 0 });\n }\n\n addClass(newVisibleCard.wrapperContainer, 'isVisible');\n if (newVisibleCard.question.type === 'control_matrix') {\n // Because of layout calculations, matrix layout can be broken\n // Lets re-calculate it until we fix other calculations.\n setTimeout(() => {\n global.JotForm.setMatrixLayout(newVisibleCard.question.id);\n }, 10);\n }\n // if (newVisibleCard.hasSubmit) {\n // this.handleFormSubmitError(newVisibleCard);\n // }\n\n // update welcome header status\n if (currMode !== 'welcome' && currMode !== null) {\n this.hideWelcomeBadges();\n }\n\n const hideWelcomeIndex = this.hasWelcome ? 0 : 1;\n if ((currMode === 'form' && index >= hideWelcomeIndex) || (currMode === 'form' && !this.welcomePageProps.props.isFormTitleVisible)) {\n this.hideHeader();\n } else {\n this.showHeader();\n }\n\n // update feedback button height\n if (!withoutTransition) {\n setTimeout(() => {\n this.updateFeedbackEmbedHeight();\n }, 300);\n } else {\n this.updateFeedbackEmbedHeight();\n }\n\n this.handleFeedbackButtonProgress();\n\n this.setMobilePrevNextQuestionButtons(index);\n // remove extra scroll margin of wheel or drag when selecting new card\n this.layoutParams.scrollLeftExtra = 0;\n this.progress.selectIndex(index);\n this.recalculateTransform();\n if (this.layoutParams.formMode === 'form' && !this.layoutParams.hasTouch) {\n this.focusToFirstInput(this.cards[index]);\n }\n\n // close all popups of dropdown and calendars\n this.datetimeHandler.closeAllCalendars();\n this.dropdown.closeAllDropdowns();\n if (animationState && withoutTransition) this.addLayoutAnimation(1);\n\n this.updateFormHeader(this.getSectionHeaderForIndex(index));\n if (!initial) {\n this.hiddenSubmit();\n }\n this.recalculateSmartEmbedLayout();\n // Update hash with current question number ~ disable for now.\n if (this.layoutParams.formMode === 'form') {\n // global.location.hash = `${index + 1}`;\n }\n\n if (this.pressEnterHint && this.layoutParams.formMode === 'form' && !this.canQuestionMoveAutomatically(this.getCurrentCard().question.question_type)) {\n this.pressEnterHint.show();\n }\n\n this.calculateAvailableHeightForFields(index);\n\n if (\n currMode === 'form'\n && global.FormTranslation\n && global.FormTranslation.properties\n && global.FormTranslation.properties.firstPageOnly === '1'\n ) {\n const firstVisibleCardIndex = this.cards.findIndex(card => card.isHidden === false);\n this.setLanguageDropdownVisibility(firstVisibleCardIndex, index);\n }\n\n // reshow widgets if possible\n this.handleWidgetsVisibility(newVisibleCard);\n }\n\n hiddenSubmit(forceSubmit) {\n // SACL: Save And Continue Later\n let sessionAndTokenBasedSACLActivated = false;\n let onlySessionBasedSACLActivated = false;\n\n if (this.isSaveAndContinueLaterActivated && this.saveAndContinueLater.inited && this.continueLater.active) {\n sessionAndTokenBasedSACLActivated = true;\n } else if (global.JotForm.sessionID) {\n onlySessionBasedSACLActivated = true;\n }\n\n if (!(sessionAndTokenBasedSACLActivated || onlySessionBasedSACLActivated)) {\n return false;\n }\n if (this.saveAndContinueLater && this.saveAndContinueLater.hiddenSubmit) {\n return this.saveAndContinueLater.hiddenSubmit();\n }\n const jotformForm = document.forms[0];\n const currentValues = this.getInputNamesAndValues();\n // get diff with previous session for atomic submission.\n const diff = this.getFormDataDiff(currentValues, this.continueLater.lastAnswers, jotformForm);\n if ((diff.length > 0 || !!forceSubmit) && !global.JotForm.loadingPendingSubmission) {\n this.continueLater.lastAnswers = currentValues;\n const merged = this.mergeDiffWithStaticData(diff);\n if (!merged) { return; }\n const dummyForm = jotformForm.cloneNode(false);\n document.body.appendChild(dummyForm);\n\n for (let i = 0; i < merged.length; i++) {\n const p = merged[i];\n const input = createInput({ type: 'hidden', name: p.name, value: p.value });\n dummyForm.appendChild(input);\n }\n\n global.JotForm.hiddenSubmit(dummyForm, {\n async: true,\n onSuccessCb: response => {\n // set the submissionId if it is not exist\n if (!global.JotForm.submissionID && response.responseText) {\n const resJSON = JSON.parse(response.responseText);\n global.JotForm.setSubmissionID(resJSON.submissionId);\n }\n // if file uploaded then run makeUploadCheck to update related fields\n const regexTempFile = /temp_upload\\[.*?]\\[.*?]$/g; // file upload input name format\n const shouldUploadCheck = diff.some(d => regexTempFile.test(d.name));\n if (shouldUploadCheck) {\n global.JotForm.makeUploadChecks();\n }\n if (this.saveAndContinueLater) {\n this.saveAndContinueLater.changeState(this.saveAndContinueLater.states.saved);\n }\n },\n onFailureCb: () => {\n this.saveAndContinueLater.changeState(this.saveAndContinueLater.states.error);\n },\n onCompleteCb: () => {\n document.body.removeChild(dummyForm);\n }\n });\n }\n }\n\n mergeDiffWithStaticData(diff) {\n const data = [];\n const simpleSpc = document.getElementById('simple_spc'); // Simple spam check\n data.push({ name: 'session_id', value: global.JotForm.sessionID });\n if (global.JotForm.submissionID) {\n data.push({ name: 'submission_id', value: global.JotForm.submissionID });\n }\n if (simpleSpc) {\n data.push({ name: 'simple_spc', value: simpleSpc.value });\n }\n // data.push({ name: 'continueLater', value: '1' });\n // data.push({ name: 'hidden_submission', value: '1' });\n data.push({ name: 'submission_token', value: global.JotForm.submissionToken });\n data.push({ name: 'formID', value: this.formID });\n data.push({ name: 'continue_card_index', value: this.layoutParams.currentCardIndex }); // where user might left off\n const merged = [...diff];\n for (let i = 0; i < data.length; i++) {\n const isExists = !!merged.find(q => q.name === data[i].name);\n if (!isExists) {\n merged.push(data[i]);\n }\n }\n return merged;\n }\n\n getFormDataDiff(currentData, previousData, jotformForm) {\n return currentData.filter(current => {\n // always send uploadedBefore fields\n if (current.name.include('uploadedBefore')) {\n return true;\n }\n // always send all array like inputs with values, otherwise it causes problem while merging on the server side (except file upload inputs)\n const regexOneDim = /\\[.*?]$/g; // 1D array like inputs include '[*]' in their names\n const regexTempFile = /temp_upload\\[.*?]\\[.*?]$/g; // file upload input name format\n if (regexOneDim.test(current.name) && !regexTempFile.test(current.name)) {\n // if it is a two dimensional array input like 'control_matrix', always return all of them although it has no value. otherwise the order of inputs will be changed\n const regexTwoDim = /\\[.*?]\\[.*?]$/g; // 2D array like inputs include '[*][]' in their names\n if (current.name.match(regexTwoDim)) {\n return true;\n }\n // if it is an unselected other option, do not send it\n const checkboxOther = jotformForm.querySelector(`input[type=\"checkbox\"][name=\"${current.name}\"]`);\n if (current.name.include('[other]') && checkboxOther && !checkboxOther.checked) {\n return false;\n }\n return !!current.value;\n }\n // if there is no previous data, send it\n if (!previousData) {\n return true;\n }\n // send only changed values, if it is not an array like input\n return !previousData.find(prev => prev.name === current.name && prev.value === current.value);\n });\n }\n\n get visibleCards() {\n return this.cards.filter((card, index) => { return this.isVisibleIndex(index) ? card : false; });\n }\n\n get isAccessibleForm() {\n return global.JotForm.accessible ?? false;\n }\n\n get currentCard() {\n const { currentCardIndex } = this.layoutParams;\n if (typeof currentCardIndex !== 'number') return;\n return this.cards?.[currentCardIndex];\n }\n\n get isFeedbackEmbedButton() {\n return window.location.href.indexOf('?feedbackEmbedButton') !== -1;\n }\n\n get isAIAgentEmbed() {\n return new URLSearchParams(window.location.search).get('isAIAgentEmbed') === '1';\n }\n\n get isContinueLaterActivated() { // TODO Burak to remove?\n const isSessionIDExists = this.hiddenSubmissionSessionID ? true : false;\n return (isSessionIDExists ? !this.isEditMode() : false);\n }\n\n get hiddenSubmissionSessionID() {\n if (!global.JotForm.sessionID) {\n global.JotForm.sessionID = document.get.session;\n }\n return global.JotForm.sessionID;\n }\n\n get isPreviewMode() {\n return global.location && global.location.href.indexOf('preview=true') >= 0;\n }\n\n get isManualPrefillCreation() {\n return window.location.href.indexOf('jf_createPrefill=1') !== -1;\n }\n\n get isPrefilledForm() {\n var path = window.location.pathname.split('/').splice(2);\n return (typeof document.get.prefillToken !== 'undefined') || (path[0] === 'prefill' && path[1].split('?')[0].trim() !== '');\n }\n\n get isFullscreenFormEnabled() {\n let isEnabled = this.layoutParams.fullscreenForm && this.layoutParams.isEmbed;\n\n const isMobile = this.layoutParams.deviceType === 'mobile';\n const isFeedbackEmbed = this.isFeedbackEmbedButton;\n const { isPreviewMode, isManualPrefillCreation, isAIAgentEmbed } = this;\n const isEditMode = this.isEditMode();\n const isSingleCardNoWelcome = this.cards.length === 1 && this.layoutParams.formMode === 'form';\n\n if (isMobile || isFeedbackEmbed || isPreviewMode || isEditMode || isSingleCardNoWelcome || isManualPrefillCreation || isAIAgentEmbed) {\n isEnabled = false;\n }\n\n return isEnabled;\n }\n\n showInputTooltip(input, { message, callback, onClose }) {\n const questionWrapper = closest(input, '.jfQuestion-fields');\n const cardWrapper = closest(input, '.jfCard-wrapper');\n const [firstPart, actionPart, lastPart] = message.split('|');\n // const keenData = {\n // formID: this.formID,\n // currentValue: input.value,\n // suggestionValue: actionPart\n // };\n\n // // keen event\n // const openData = Object.assign({}, keenData, { type: 'opened' });\n // collectKeenEvent('email_field_tooltip', openData);\n\n const tooltipContainer = questionWrapper ? questionWrapper.querySelector('.js-tooltipContainer') : false;\n if (!tooltipContainer) { return; }\n\n if (cardWrapper) {\n cardWrapper.addEventListener('click', e => {\n if (!closest(e.target, '.js-tooltipContainer')) {\n this.removeInputTooltip(input);\n }\n });\n }\n\n const tooltipMessageContainer = tooltipContainer.querySelector('.js-tooltipMessageContainer-info');\n const tooltipCloseButton = tooltipContainer.querySelector('.js-tooltipCloseButton');\n\n tooltipCloseButton.addEventListener('click', e => {\n e.preventDefault();\n // keen event\n // const closeData = Object.assign({}, keenData, { type: 'closed' });\n // collectKeenEvent('email_field_tooltip', closeData);\n this.removeInputTooltip(input);\n if (onClose) { onClose(); }\n });\n\n tooltipMessageContainer.innerHTML = '';\n\n const textNode = document.createTextNode(firstPart);\n tooltipMessageContainer.appendChild(textNode);\n\n if (actionPart) {\n // callback action\n const actionHTML = document.createElement('span');\n actionHTML.innerHTML = actionPart;\n actionHTML.className = 'jfCardTooltip-link';\n tooltipMessageContainer.appendChild(actionHTML);\n\n actionHTML.addEventListener('click', e => {\n if (callback) { callback(e); }\n this.removeInputTooltip(input);\n // keen event\n // const clickData = Object.assign({}, keenData, { type: 'clicked' });\n // collectKeenEvent('email_field_tooltip', clickData);\n });\n\n if (lastPart) {\n const lastNode = document.createTextNode(lastPart);\n tooltipMessageContainer.appendChild(lastNode);\n }\n }\n addClass(questionWrapper, 'isTooltipOpen');\n }\n\n removeInputTooltip(input) {\n const questionWrapper = closest(input, '.jfQuestion-fields');\n const tooltipContainer = questionWrapper ? questionWrapper.querySelector('.js-tooltipContainer') : false;\n if (tooltipContainer) {\n const tooltipMessageContainer = tooltipContainer.querySelector('.js-tooltipMessageContainer-info');\n\n tooltipMessageContainer.innerHTML = '';\n const allTypes = Object.keys(TOOLTIP_TYPES).map(keyName => TOOLTIP_TYPES[keyName]);\n let close = true;\n allTypes.forEach(item => {\n if (hasClass(tooltipContainer, item)) { close = false; }\n });\n if (close) {\n removeClass(questionWrapper, 'isTooltipOpen');\n }\n }\n }\n\n bindFormSubmit() {\n if (this.layoutParams.deviceType === 'mobile' || this.isFeedbackEmbedButton) {\n this.layoutElements.mobileSubmitButton.addEventListener('click', e => {\n e.preventDefault();\n this.submitFormWithJS(document.querySelector('.jotform-form'));\n });\n }\n }\n\n bindTouchSwipeEvents() {\n const swipeThreshold = 70;\n var touchEvents = {};\n const nonInputElements = ['image', 'text'];\n document.addEventListener('touchstart', e => {\n // prevent swipe when the overlay wrapper is visible\n const { overlayWrapper } = this.layoutElements;\n if (overlayWrapper && hasClass(overlayWrapper, 'isVisible')) {\n return;\n }\n // Prevent touch on fullscreen mode\n if (this.layoutParams.isFullScreenMode) return;\n\n let component = e.target.getAttribute('data-component');\n if (!component) {\n component = closest(e.target, 'div').getAttribute('data-component');\n }\n // let swipe for non input fields\n const swipeable = nonInputElements.indexOf(component) !== -1;\n if (swipeable || !closest(e.target, '.jfQuestion-fields')) { // prevent swipe if it started from the field itself\n touchEvents.startX = e.touches[0].screenX;\n touchEvents.startY = e.touches[0].screenY;\n }\n });\n document.addEventListener('touchmove', e => {\n touchEvents.moveX = e.touches[0].screenX;\n touchEvents.moveY = e.touches[0].screenY;\n });\n\n document.addEventListener('touchend', () => {\n if (touchEvents.startX !== undefined && touchEvents.startY !== undefined && !this.layoutParams.isFullScreenMode) {\n var vertical = Math.abs(touchEvents.startY - touchEvents.moveY) > swipeThreshold;\n if (this.layoutParams.cardMode !== 'scroll') {\n if (!vertical && (touchEvents.startX > touchEvents.moveX + swipeThreshold)) {\n const { formMode } = this.layoutParams;\n if (formMode === 'welcome') {\n this.setFormMode('form');\n } else {\n this.checkConditionOnCurrentCard();\n this.selectNextQuestion();\n }\n } else if (!vertical && (touchEvents.startX + swipeThreshold < touchEvents.moveX)) {\n this.selectPreviousQuestion();\n }\n }\n }\n touchEvents = {};\n });\n }\n\n bindResizeEvent() {\n global.addEventListener('resize', () => {\n const isAndroidDevice = this.browserProperties.isAndroid;\n const scrollElement = document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA' || document.activeElement.getAttribute('contenteditable') === 'true';\n if (isAndroidDevice && this.layoutParams.deviceType === 'mobile' && scrollElement) {\n // will be updated with polyfill\n document.activeElement.scrollIntoView();\n }\n this.disableTransitions();\n this.recalculateLayout();\n this.recalculateSmartEmbedLayout();\n this.handleFullScreenToggle();\n this.recalculateBackgroundStyle();\n setTimeout(() => {\n this.enableTransitions();\n this.updateMatrixLayout();\n this.recalculateSmartEmbedLayout();\n this.calculateWelcomeSize();\n this.recalculateCurrentCardHeight();\n }, 100);\n // we are forcing layout to resize on OS level in JotForm Next.\n if (this.isOpenedOnJotFormMobileApp) {\n // It is not a default behaviour on iOS; because of that cardforms is not resizing it.\n // This will re-calculate layout after keyboard animation only on our new(jotform next) mobile app.\n setTimeout(() => {\n this.recalculateLayout();\n this.recalculateCurrentCardHeight();\n }, 251); // native ios animation time for keyboard animations is 250ms\n }\n }, true);\n\n global.addEventListener('orientationchange', () => {\n setTimeout(() => {\n this.recalculateLayout();\n this.updateMatrixLayout();\n this.recalculateSmartEmbedLayout();\n this.calculateWelcomeSize();\n this.recalculateCurrentCardHeight();\n }, 1000);\n }, true);\n }\n\n bindHashChangeEvent() {\n global.addEventListener('hashchange', this.onLocationHashChange, true);\n }\n\n addScrollLeftDelta(delta) {\n if (this.layoutParams.resolutionType !== 'mobile') {\n const { currentCardIndex, currentCardSize } = this.layoutParams;\n const qCount = this.cards.filter(p => !p.isHidden).length;\n this.layoutParams.scrollLeftExtra += delta;\n const currentVisibleIndex = this.getVisibleIndex(currentCardIndex);\n const maxScroll = (currentVisibleIndex * currentCardSize) + ((qCount - 1 - currentVisibleIndex) * currentCardSize);\n const minScroll = 0; // currentVisibleIndex * (currentCardSize);\n const currentScroll = this.layoutParams.scrollLeftExtra + this.getScrollLeft();\n\n if (currentScroll <= minScroll) this.layoutParams.scrollLeftExtra = minScroll - this.getScrollLeft();\n if (currentScroll >= maxScroll) this.layoutParams.scrollLeftExtra = maxScroll - this.getScrollLeft();\n this.recalculateTransform();\n }\n }\n\n bindCardClickEvents() {\n const isMobile = this.layoutParams.deviceType === 'mobile';\n\n this.cards.forEach((p, index) => {\n (i => {\n p.cardContainer.addEventListener('click', () => {\n if (this.layoutParams.cardMode === 'scroll') {\n this.setCardIndex(i);\n this.setCardMode('single');\n\n if (!this.progress.isFormProgressVisible && !isMobile && this.progress.layoutElements.progressItemsLine && this.progress.layoutElements.progressItemWrapper) {\n addClass(this.progress.layoutElements.progressItemsLine, ' jfProgress-hiddenWrapper');\n addClass(this.progress.layoutElements.progressItemWrapper, ' jfProgress-hiddenWrapper');\n }\n }\n });\n })(index);\n });\n }\n\n setAddressFieldValue(card, suffixKey, val) {\n const { question: { id }, cardContainer } = card;\n const suffix = this.addressTypeSuffixMap[suffixKey];\n const field = cardContainer.querySelector(`#input_${id}_${suffix}`);\n if (field) {\n field.value = val;\n this.setFieldIsFilledIfHasValue(field);\n\n if (field.tagName === 'SELECT') {\n const dropdownSearchField = cardContainer.querySelector(`[data-type=\"${suffix}\"] #jfDropdown_${id}`);\n if (dropdownSearchField) {\n dropdownSearchField.value = val;\n }\n }\n }\n }\n\n // Select next question if possible.\n autoSelectNextQuestion(card) {\n if ((this.isPrefilledForm && !this.isPrefillCompleted) || !this.isPrepopulationCompleted) return; // prevent autoskipping on forms during question are populating with prefill\n const { mobileNextButton, mobilePrevButton } = this.layoutElements;\n const { prev, next } = card.actionsButtons;\n // Elements for disable / enable during animations\n const elementArray = [mobilePrevButton, mobileNextButton, prev, next];\n enableDisableDOMElements(elementArray, false);\n if (this.isCardFilled(card)) {\n if (!this.autoSelectionTimeoutQueue) {\n this.autoSelectionTimeoutQueue = [];\n }\n const timeOutId = setTimeout(() => {\n if (this.autoSelectionTimeoutQueue.length > 0) {\n this.autoSelectionTimeoutQueue = this.autoSelectionTimeoutQueue.filter(timeOut => {\n if (timeOut === timeOutId) {\n clearTimeout(timeOut);\n }\n return timeOut !== timeOutId;\n });\n }\n if (this.autoSelectionTimeoutQueue.length <= 0) this.selectNextQuestion();\n enableDisableDOMElements(elementArray, true);\n }, 500);\n this.autoSelectionTimeoutQueue.push(timeOutId);\n }\n }\n\n bindInputChange() {\n this.cards.forEach(card => {\n if (card.question.type !== 'control_datetime') {\n const inpts = card.cardContainer.querySelectorAll('.jfInput-input, .jfRadio-input, .jfInput-textarea, .jfRating-input, .jsToggle');\n const isAutoMoveEnabledForField = this.canQuestionMoveAutomatically(card.question.type);\n for (let i = 0; i < inpts.length; i++) {\n inpts[i].addEventListener('change', event => {\n if (isAutoMoveEnabledForField && !hasClass(event.target, 'jfRadio-otherInputField') && !hasClass(event.target, 'jfRadio-otherInput')) {\n // check conditions before autoSelect\n this.checkConditionOnCurrentCard();\n this.autoSelectNextQuestion(card);\n }\n const target = event.target || event.srcElement;\n this.setFieldIsFilledIfHasValue(target);\n });\n }\n }\n });\n }\n\n bindSelectChange() {\n this.cards.forEach(card => {\n if (card.question.type !== 'control_datetime') {\n const selects = card.cardContainer.querySelectorAll('select.form-dropdown');\n forEach(selects, select => {\n select.addEventListener('change', event => {\n const target = event.target || event.srcElement;\n this.setFieldIsFilledIfHasValue(target);\n });\n });\n }\n });\n }\n\n setFieldIsFilledIfHasValue(element) {\n const fieldParent = closest(element, '.jfField', 'body');\n if (fieldParent) {\n if (element.value.length > 0 || ['select-one', 'select-multiple'].indexOf(element.type) >= 0) {\n addClass(fieldParent, 'isFilled');\n } else {\n removeClass(fieldParent, 'isFilled');\n }\n }\n }\n\n isEditMode() {\n return window.location.href.indexOf('/edit/') !== -1 || window.location.href.indexOf('mode=inlineEdit') !== -1;\n }\n\n setFormMode(nextMode, isInit, transitionsAsIs) {\n const { formMode: currMode } = this.layoutParams;\n if (currMode === nextMode) return;\n this.layoutParams.formMode = nextMode;\n if (!isInit && this.layoutElements.staticItems) {\n addClass(document.body, 'hideStaticItems');\n this.layoutElements.formWrapper.classList.remove('isBadgesVisible');\n } else if (this.layoutElements.staticItems && this.layoutElements.staticItems.children.length > 0) {\n this.layoutElements.formWrapper.classList.add('isBadgesVisible');\n }\n if (nextMode === 'form') {\n if (this.layoutElements.formWrapper) {\n this.layoutElements.formWrapper.removeAttribute('aria-hidden');\n }\n if (this.layoutParams.currentCardIndex !== 0 || this.layoutParams.resolutionType === 'mobile') {\n this.progress.layoutElements.progress.removeAttribute('aria-hidden');\n this.progress.layoutElements.progress.removeAttribute('tabindex');\n }\n if (currMode === 'welcome') {\n setTimeout(() => { this.recalculateCurrentCardHeight(); }, 400);\n\n if (this.sectionHeaders && this.sectionHeaders.length) {\n const sectionHeaderForFirstVisibleIndex = this.getSectionHeaderForIndex(this.getFirstVisibleIndex());\n if (\n sectionHeaderForFirstVisibleIndex\n && !sectionHeaderForFirstVisibleIndex.isHidden\n && sectionHeaderForFirstVisibleIndex.props.id.value !== 'welcomePage'\n ) {\n this.setFormMode('sectionHeader', true, false);\n return;\n }\n }\n\n this.hideHeader();\n }\n\n this.layoutParams.scaleFactor = 1;\n if (!isInit && !this.layoutParams.isLayoutAnimated && !transitionsAsIs) {\n this.enableTransitions();\n }\n if (this.layoutElements.startButton) {\n this.layoutElements.startButton.style.display = 'none';\n }\n if (this.layoutElements.previousButton) {\n this.layoutElements.previousButton.style.display = 'none';\n }\n if (!this.layoutParams.hasTouch) {\n this.focusToFirstInput(this.cards[this.layoutParams.currentCardIndex]);\n }\n } else if (nextMode === 'sectionHeader') {\n if (this.layoutElements.formWrapper) {\n this.layoutElements.formWrapper.setAttribute('aria-hidden', 'true');\n }\n if (this.layoutParams.resolutionType !== 'mobile') {\n this.progress.layoutElements.progress.setAttribute('aria-hidden', 'true');\n }\n this.updateFormHeader(this.getSectionHeaderForIndex(this.getFirstVisibleIndex()));\n this.layoutElements.startButton.style.display = 'inline';\n const logo = document.querySelector('.jfWelcome-image');\n if (logo) {\n addClass(logo, 'collapse');\n }\n // scale out the form layout for welcome and thankyou page.\n this.layoutParams.scaleFactor = 0.2;\n this.showHeader();\n setTimeout(() => {\n const nextButton = this.layoutElements.welcomeWrapper.querySelector('.forNext-heading');\n const isNotNoJump = window.location.search.indexOf('noJump') === -1;\n const firstVisibleCardIndex = this.cards.findIndex(c => c.isHidden === false);\n if (nextButton && isNotNoJump && (!this.layoutParams.isEmbed || this.layoutParams.currentCardIndex > firstVisibleCardIndex)) {\n nextButton.focus();\n }\n }, 300);\n } else {\n if (this.layoutElements.formWrapper) {\n this.layoutElements.formWrapper.setAttribute('aria-hidden', 'true');\n }\n // scale out the form layout for welcome and thankyou page.\n this.layoutParams.scaleFactor = 0.2;\n if (this.layoutElements.startButton) {\n this.layoutElements.startButton.style.display = 'inline';\n }\n if (this.layoutElements.previousButton) {\n this.layoutElements.previousButton.style.display = 'none';\n }\n }\n removeClass(document.body, 'formMode');\n removeClass(document.body, 'welcomeMode');\n removeClass(document.body, 'thankyouMode');\n removeClass(document.body, 'reviewMode');\n removeClass(document.body, 'sectionHeaderMode');\n addClass(document.body, `${this.layoutParams.formMode}Mode`);\n\n // this.calculateAvailableHeightForFields();\n this.calculateWelcomeSize();\n\n this.checkHeaderSubHeaderCharLimits(this.currentHeader);\n if (!isInit) {\n this.recalculateTransform();\n }\n\n this.recalculateSmartEmbedLayout();\n\n if (this.layoutParams.formMode === 'form' && !this.welcomePageProps.props.isFormTitleVisible) {\n this.hideHeader();\n }\n\n setTimeout(() => {\n this.calculateAvailableHeightForFields(); // for #1298080 workaround\n this.recalculateCurrentCardHeight();\n this.calculatePaymentHeights();\n this.recalculateSmartEmbedLayout();\n this.updateFeedbackEmbedHeight();\n }, 300);\n }\n\n calculatePaymentHeights() {\n if (global.JotForm.productPages) global.JotForm.productPages.initProductPages();\n }\n\n calculateProductsPerPage() {\n if (global.JotForm.productPages) return global.JotForm.productPages.setProductsPerPage();\n }\n\n addLayoutAnimation(delay) {\n if (this.layoutParams.formMode !== 'form' || !this.isTransitionsEnabled) return;\n const { cardAnimationWrapper } = this.layoutElements;\n if (delay) {\n return setTimeout(() => {\n addClass(cardAnimationWrapper, 'transition-all-03s');\n this.layoutParams.isLayoutAnimated = true;\n }, delay);\n }\n addClass(cardAnimationWrapper, 'transition-all-03s');\n this.layoutParams.isLayoutAnimated = true;\n return false;\n }\n\n setScale(factor) {\n this.layoutParams.scaleFactor = factor;\n this.recalculateTransform();\n }\n\n enableTransitions() {\n this.isTransitionsEnabled = true;\n this.addLayoutAnimation();\n this.cards.forEach(card => {\n addClass(card.wrapperContainer, 'transition-all-015s');\n });\n }\n\n disableTransitions() {\n this.isTransitionsEnabled = true;\n this.removeLayoutAnimation();\n this.cards.forEach(card => {\n removeClass(card.wrapperContainer, 'transition-all-015s');\n });\n }\n\n removeLayoutAnimation(delay) {\n const { cardAnimationWrapper } = this.layoutElements;\n if (delay) {\n if (this.removeLayoutAnimation.timeout) {\n clearTimeout(this.removeLayoutAnimation.timeout);\n }\n this.removeLayoutAnimation.timeout = setTimeout(() => {\n this.removeLayoutAnimation.timeout = null;\n removeClass(cardAnimationWrapper, 'transition-all-03s');\n this.layoutParams.isLayoutAnimated = false;\n }, delay);\n } else {\n removeClass(cardAnimationWrapper, 'transition-all-03s');\n this.layoutParams.isLayoutAnimated = false;\n }\n }\n\n showProgress() {\n removeClass(this.progress.layoutElements.progress, 'progress-animate');\n setTimeout(() => {\n addClass(this.progress.layoutElements.progress, 'no-animate');\n this.progress.layoutElements.progress.removeAttribute('aria-hidden');\n this.progress.layoutElements.progress.removeAttribute('tabindex');\n }, 700);\n\n // this.progress.layoutElements.progress.style.transform = '';\n }\n\n checkCardIfMoveAutomatically(card) {\n const questionType = card.question.type;\n const canMoveAuto = this.canQuestionMoveAutomatically(questionType);\n if (canMoveAuto) {\n addClass(card.cardContainer, 'canMoveAuto');\n }\n }\n\n canQuestionMoveAutomatically(questionType) {\n const questionTypes = ['control_radio', 'control_imagechoice', 'control_yesno', 'control_rating', 'control_scale'];\n const isExistsInArray = questionTypes.indexOf(questionType) > -1;\n // May be check mobile or desktop bla bla.\n const isAccessibleForm = global.JotForm.accessible;\n return isExistsInArray && !isAccessibleForm;\n }\n\n closeTimezonePicker() {\n const openTimezonePicker = document.querySelector('.jDropdownWG-wrapper:not(.isClose)');\n\n if (openTimezonePicker) {\n openTimezonePicker.classList.add('isClose');\n }\n }\n\n selectNextQuestion(ignoreValidation, withoutTransition = false) {\n const { currentCardIndex, cardMode, formMode } = this.layoutParams;\n\n if (formMode === 'sectionHeader') {\n this.setFormMode('form');\n this.updateFormHeader(this.getSectionHeaderForIndex(currentCardIndex));\n return;\n }\n\n if (currentCardIndex > -1) {\n if (cardMode === 'scroll' || !!ignoreValidation || this.validateCard(this.cards[currentCardIndex])) {\n this.showProgress();\n\n let nextVisibleIndex = currentCardIndex + 1;\n while (nextVisibleIndex < this.cards.length && this.cards[nextVisibleIndex].isHidden) {\n nextVisibleIndex++;\n }\n\n if (this.layoutElements.staticItems) {\n this.layoutElements.formWrapper.classList.remove('isBadgesVisible');\n addClass(document.body, 'hideStaticItems');\n }\n\n let jumpToQuestionPageTriggered = true;\n\n if (global.JotForm.nextPage) {\n jumpToQuestionPageTriggered = false;\n let skipIndex = currentCardIndex;\n const nextPageId = global.JotForm.nextPage.id.substring(global.JotForm.nextPage.id.indexOf('_') + 1);\n\n for (let i = 0; i < this.cards.length; i++) {\n if (this.cards[i].question.id === nextPageId) {\n skipIndex = i;\n break;\n }\n this.cards[i].formLine.removeAttribute('data-skipped-by');\n }\n nextVisibleIndex = skipIndex;\n if (global.JotForm.headerInBetween) {\n jumpToQuestionPageTriggered = true;\n }\n global.JotForm.nextPage = false;\n }\n\n if (nextVisibleIndex < this.cards.length) {\n const [currentHeader, nextHeader] = [this.getSectionHeaderForIndex(currentCardIndex), this.getSectionHeaderForIndex(nextVisibleIndex)];\n\n if (cardMode !== 'scroll' && currentHeader !== nextHeader && !nextHeader.isHidden && jumpToQuestionPageTriggered) {\n this.setFormMode('sectionHeader');\n\n this.calculateWelcomeSize();\n\n this.updateFormHeader(nextHeader);\n this.setCardIndex(nextVisibleIndex, false);\n } else {\n this.setCardIndex(nextVisibleIndex, withoutTransition);\n }\n\n this.cards[nextVisibleIndex].prevCard = this.cards[currentCardIndex].question;\n\n if (cardMode === 'scroll') {\n this.removeLayoutAnimation(400); // provide free scroll without transitions\n }\n\n if (this.cards[currentCardIndex].question.type === 'control_appointment') {\n this.closeTimezonePicker();\n }\n }\n } else {\n this.shakeCard(currentCardIndex);\n this.focusToFirstError(currentCardIndex);\n }\n }\n }\n\n focusToFirstError(cardIndex) {\n const erroreousInput = this.cards[cardIndex].cardContainer.querySelector('.form-validation-error');\n if (erroreousInput) {\n erroreousInput.focus();\n }\n }\n\n selectPreviousQuestion() {\n const { currentCardIndex, cardMode, formMode } = this.layoutParams;\n if (formMode === 'sectionHeader') return;\n let prevVisibleIndex = currentCardIndex - 1;\n while (prevVisibleIndex > -1 && this.cards[prevVisibleIndex].isHidden) {\n prevVisibleIndex--;\n }\n\n // If the current card has prevCard, it will go back to the this page\n if (currentCardIndex > -1 && this.cards[currentCardIndex].prevCard) {\n prevVisibleIndex = this.cards.findIndex(card => card.question.id === this.cards[currentCardIndex].prevCard.id && !card.isHidden);\n this.cards[currentCardIndex].prevCard = null;\n }\n\n if (prevVisibleIndex > -1) {\n this.setCardIndex(prevVisibleIndex);\n if (cardMode === 'scroll') {\n this.removeLayoutAnimation(400); // provide free scroll without transitions\n }\n }\n }\n\n bindPrevNextButtonsClick() {\n // const actionContainer = document.querySelectorAll('.jfCard-actions');\n document.body.addEventListener('click', e => {\n if (hasClass(e.target, 'forNext') || hasClass(e.target, 'forMobileNav')) {\n this.checkConditionOnCurrentCard();\n }\n\n if (hasClass(e.target, 'forNext')) {\n e.preventDefault();\n this.selectNextQuestion();\n } else if (hasClass(e.target, 'forPrev')) {\n e.preventDefault();\n this.selectPreviousQuestion();\n }\n });\n }\n\n findEmailAnswer() {\n const emailCards = this.cards.filter(card => card.question.type === 'control_email' && !card.isHidden && !card.hasError);\n\n if (emailCards.length === 0) {\n return '';\n }\n return emailCards[0].fieldContainer.querySelector('input[type=\"email\"]').value;\n }\n\n bindKeyUpEvent() {\n document.addEventListener('keydown', e => {\n const { overlayWrapper } = this.layoutElements;\n if (overlayWrapper && hasClass(overlayWrapper, 'isVisible')) {\n return;\n }\n const { formMode, cardMode, currentCardIndex } = this.layoutParams;\n const currentQuestion = this.cards[currentCardIndex] ? this.cards[currentCardIndex].question : {};\n const disallowedKeyCodes = fieldRelatedNavigationKeyCodes[e.target.tagName];\n const { activeElement } = document;\n const { isContentEditable } = activeElement;\n const disableEnterEvent = activeElement.getAttribute('data-disable-enter-event');\n const disableEscapeEvent = activeElement.getAttribute('data-disable-escape-event');\n const hasActiveAutoSelectAnimation = this.autoSelectionTimeoutQueue && Array.isArray(this.autoSelectionTimeoutQueue) && this.autoSelectionTimeoutQueue.length > 0;\n if (!hasActiveAutoSelectAnimation && (!disallowedKeyCodes || disallowedKeyCodes.indexOf(e.keyCode) === -1 || !e.target.value)) {\n if (\n !disableEscapeEvent && (\n (e.keyCode === 27 && this.layoutParams.isFullScreenMode)\n || (e.keyCode === 13 && e.shiftKey && (e.metaKey || e.altKey))\n )\n ) {\n if (formMode === 'form' && cardMode === 'single') {\n this.toggleFullScreenMode();\n }\n return;\n }\n\n // Don't respond to other shortcuts when full screen mode is enabled.\n if (this.layoutParams.isFullScreenMode) { return; }\n\n if (e.keyCode === 13 || e.keyCode === 39) {\n this.checkConditionOnCurrentCard();\n }\n\n if (!isContentEditable && !disableEnterEvent) {\n if ((e.keyCode === 39 || e.keyCode === 13) && !document.getElementById('isStripeACHVerification')) {\n if ((this.layoutParams.formMode === 'welcome' || this.layoutParams.formMode === 'sectionHeader') && e.keyCode === 13) {\n this.setFormMode('form');\n this.shortenHeaders();\n e.preventDefault();\n } else if (this.layoutParams.cardMode === 'scroll' && e.keyCode === 13) {\n this.setCardIndex(this.getNearestCardIndexInScrollMode());\n this.setCardMode('single');\n } else if (e.keyCode === 13 && currentQuestion.type === 'control_address' && activeElement\n && (activeElement === document.body || activeElement.id === `input_${currentQuestion.id}_addr_search`)) {\n e.preventDefault();\n } else {\n e.preventDefault();\n this.selectNextQuestion();\n }\n } else if (e.keyCode === 37) {\n if (this.layoutParams.formMode === 'sectionHeader') {\n this.setFormMode('form');\n }\n this.selectPreviousQuestion();\n }\n }\n }\n });\n }\n\n getNearestCardIndexInScrollMode() {\n const { scrollLeftExtra, currentCardIndex, currentCardSize } = this.layoutParams;\n const scaledCardSize = currentCardSize; // * cardScrollScale;\n const addedIndex = parseInt(Math.abs(scrollLeftExtra) / scaledCardSize, 10);\n const left = (Math.abs(scrollLeftExtra) % scaledCardSize) > (scaledCardSize / 2) ? 1 : 0;\n let indexDiff = addedIndex + left;\n let hiddenCountInBetween = 0;\n\n if (scrollLeftExtra > 0) {\n for (let i = currentCardIndex + 1; i < this.cards.length && indexDiff > 0; i++) {\n if (this.cards[i].isHidden) {\n hiddenCountInBetween++;\n } else {\n indexDiff--;\n }\n }\n return (currentCardIndex + addedIndex + left) + hiddenCountInBetween;\n }\n\n for (let i = currentCardIndex - 1; i >= 0 && indexDiff > 0; i--) {\n if (this.cards[i].isHidden) {\n hiddenCountInBetween++;\n } else {\n indexDiff--;\n }\n }\n return (currentCardIndex - (addedIndex + left)) - hiddenCountInBetween;\n }\n\n shakeCard(cardIndex) {\n const card = this.cards[cardIndex].cardContainer;\n addClass(card, 'animate-shake');\n\n setTimeout(() => {\n removeClass(card, 'animate-shake');\n }, 400);\n }\n\n setCardMode(mode, withoutTransition) {\n const { cardAnimationWrapper } = this.layoutElements;\n this.layoutParams.cardMode = mode;\n if (this.layoutParams.cardMode === 'scroll') {\n addClass(this.layoutElements.cardAnimationWrapper, 'noselect');\n this.removeLayoutAnimation(400); // remove animations in scroll mode to provide clean & free scrolling\n addClass(cardAnimationWrapper, 'onScrollMode');\n addClass(document.body, 'onScrollMode');\n global.addEventListener('wheel', this.onWheel, { passive: false });\n this.calculateAllCardsHeight();\n } else {\n removeClass(this.layoutElements.cardAnimationWrapper, 'noselect');\n if (!withoutTransition) {\n // enable animations in 'single' mode\n this.addLayoutAnimation();\n setTimeout(() => { this.recalculateSmartEmbedLayout(); }, 300);\n // clear any delayed animation removal timeout\n clearTimeout(this.removeLayoutAnimation.timeout);\n } else {\n this.recalculateSmartEmbedLayout();\n }\n removeClass(cardAnimationWrapper, 'onScrollMode');\n removeClass(document.body, 'onScrollMode');\n global.removeEventListener('wheel', this.onWheel, { passive: false });\n }\n this.recalculateTransform();\n }\n\n onWheel(e) {\n const { cardMode, resolutionType } = this.layoutParams;\n if (cardMode === 'scroll' && resolutionType !== 'mobile') {\n e.preventDefault();\n this.addScrollLeftDelta(Math.abs(e.deltaY) > Math.abs(e.deltaX) ? e.deltaY : e.deltaX);\n }\n }\n\n selectQuestion(index) {\n this.setCardMode('scroll');\n\n setTimeout(() => {\n this.setCardIndex(index);\n }, 400);\n\n setTimeout(() => {\n this.setCardMode('single');\n }, 800);\n }\n\n getTotalWidth() {\n const questionCount = this.cards.filter(p => !p.isHidden).length;\n return `${(questionCount * this.layoutParams.currentCardSize) + this.layoutParams.leftMargin}px`;\n }\n\n getVisibleIndex(index) {\n const invisibleCountToIndex = this.cards.slice(0, index).reduce((acc, card) => {\n return card.isHidden ? acc + 1 : acc;\n }, 0);\n\n return index - invisibleCountToIndex;\n }\n\n getScrollLeft() {\n return this.layoutParams.currentCardSize * this.getVisibleIndex(this.layoutParams.currentCardIndex);\n }\n\n setWrapperWidth() {\n const { cardAnimationWrapper } = this.layoutElements;\n const { currentCardSize, leftMargin } = this.layoutParams;\n cardAnimationWrapper.style.width = this.getTotalWidth();\n this.cards.forEach((card, index) => {\n const wrapper = card.wrapperContainer;\n wrapper.style.width = `${currentCardSize}px`;\n if (this.layoutParams.for1Template || this.getVisibleIndex(index) === 0) {\n wrapper.style.marginLeft = `${leftMargin}px`;\n } else {\n wrapper.style.marginLeft = '0px';\n }\n });\n }\n\n // Returns current orientation type of the device\n // ['portrait-primary', 'portrait-secondary', 'landscape-primary', 'landscape-seconday']\n getCurrentOrientation() {\n const { screen, orientation } = global;\n const screenOrientation = screen.orientation || screen.mozOrientation || screen.msOrientation;\n if (screenOrientation && typeof screenOrientation.type === 'string') {\n // defaults: desktop -> landscape-primary, mobile -> portratir-primary\n return screenOrientation.type;\n }\n\n // Lets calculate from angle for old browsers\n const orientationAngle = orientation || (screenOrientation && screenOrientation.angle) || 0;\n return calculateOrientationType(orientationAngle);\n }\n\n // This function uses bowser library, and adds necessary classes to body.\n checkAndSetBrowserBasedClasses() {\n const classNames = ['browserName-', 'browserVersion-', 'browserType-', 'isWebKit', 'osName-', 'osVersion-', 'browserOrientation-'];\n const [orientationType] = this.getCurrentOrientation().split('-');\n const currentClasses = document.body.className.split(' ');\n const newClasses = [\n // Somehow split join is faster than replace global o_O\n `browserName-${this.browserProperties.browserName.split(' ').join('')}`,\n `browserVersion-${this.browserProperties.browserVersion}`,\n `browserOrientation-${orientationType}`\n ];\n if (this.browserProperties.isWebkit) {\n newClasses.push('isWebKit');\n }\n if (this.browserProperties.isMobile || this.browserProperties.isTablet) {\n newClasses.push(`browserType-${this.browserProperties.isMobile ? 'mobile' : 'tablet'}`);\n }\n if (this.browserProperties.osName) {\n newClasses.push(`osName-${this.browserProperties.osName}`);\n }\n if (this.browserProperties.osVersion) {\n newClasses.push(`osVersion-${this.browserProperties.osVersion}`);\n }\n classNames.forEach(cname => {\n const currentClassName = currentClasses.find(c => c.indexOf(cname) > -1);\n const newClassName = newClasses.find(c => c.indexOf(cname) > -1);\n if (currentClassName !== newClassName) {\n if (currentClassName) { removeClass(document.body, currentClassName); }\n if (newClassName) { addClass(document.body, newClassName); }\n }\n });\n }\n\n checkAndSetDeviceType() {\n var viewportWidth = window.innerWidth || window.screen.width;\n if (viewportWidth <= deviceSize.cardwidthp) {\n this.layoutParams.resolutionType = 'mobile';\n } else if (viewportWidth <= deviceSize.cardwidthpt) {\n this.layoutParams.resolutionType = 'mobile';\n } else if (viewportWidth <= deviceSize.cardwidtht) {\n this.layoutParams.resolutionType = '';\n } else if (viewportWidth <= deviceSize.cardwidthsm) {\n this.layoutParams.resolutionType = '';\n } else if (viewportWidth <= deviceSize.cardwidthm) {\n this.layoutParams.resolutionType = '';\n } else if (viewportWidth <= deviceSize.cardwidthxl) {\n this.layoutParams.resolutionType = '';\n } else {\n this.layoutParams.resolutionType = '';\n }\n this.checkAndSetBrowserBasedClasses();\n }\n\n recalculateLayout() {\n const { cardAnimationWrapper } = this.layoutElements;\n this.checkAndSetDeviceType();\n\n let currentCardSize;\n var viewportWidth = window.innerWidth || window.screen.width;\n\n if (viewportWidth <= deviceSize.cardwidthp) {\n currentCardSize = cardSize.cardwidthp;\n } else if (viewportWidth <= deviceSize.cardwidthpt) {\n currentCardSize = cardSize.cardwidthpt;\n } else if (viewportWidth <= deviceSize.cardwidtht) {\n currentCardSize = cardSize.cardwidtht;\n } else if (viewportWidth <= deviceSize.cardwidthsm) {\n currentCardSize = cardSize.cardwidthsm;\n } else if (viewportWidth <= deviceSize.cardwidthm) {\n currentCardSize = cardSize.cardwidthm;\n } else if (viewportWidth <= deviceSize.cardwidthxl) {\n currentCardSize = cardSize.cardwidthxl;\n } else {\n currentCardSize = cardSize.cardwidthxl;\n }\n\n // handle percentage width\n if ((typeof currentCardSize) === 'string' && currentCardSize.indexOf('%') > -1) {\n currentCardSize = viewportWidth * (+(currentCardSize.replace('%', '')) / 100);\n }\n\n this.layoutParams.leftMargin = (viewportWidth - currentCardSize) / 2;\n this.layoutParams.currentCardSize = currentCardSize;\n\n cardAnimationWrapper.style.width = this.getTotalWidth();\n this.setWrapperWidth();\n this.calculateAvailableHeightForFields();\n\n this.recalculateTransform();\n\n // update feedback button height\n this.updateFeedbackEmbedHeight();\n }\n\n recalculateBackgroundStyle() {\n const formWrapper = document.querySelector('.jfForm-backgroundContainer') || document.querySelector('.jfForm-wrapper');\n const progressWrapper = document.querySelector('.jfProgress#cardProgress');\n const viewportWidth = global.window.innerWidth || global.window.screen.width;\n const viewportHeight = global.window.innerHeight || global.window.screen.height;\n const currentOrientation = viewportWidth > viewportHeight ? 'landscape' : 'portrait'; // Not using getCurrentOrientation due to limited browser support.\n\n if (this.layoutParams.resolutionType === 'mobile') {\n if (!this.layoutParams.isEmbed) {\n const backgroundStyle = (() => {\n switch (currentOrientation) {\n case 'landscape':\n return { size: 'cover', position: 'center' };\n case 'portrait':\n return { size: `auto ${viewportHeight + 1}px`, position: 'top center' };\n default:\n return null;\n }\n })();\n formWrapper.style.backgroundSize = backgroundStyle.size;\n formWrapper.style.backgroundPosition = backgroundStyle.position;\n progressWrapper.style.backgroundSize = backgroundStyle.size;\n progressWrapper.style.backgroundPosition = backgroundStyle.position;\n }\n } else {\n formWrapper.style.backgroundSize = null;\n formWrapper.style.backgroundPosition = null;\n progressWrapper.style.backgroundSize = null;\n progressWrapper.style.backgroundPosition = null;\n }\n }\n\n getXPos(event) {\n if (event.clientX) {\n return event.clientX;\n }\n if (event.touches && event.touches.length) {\n return event.touches[0].clientX;\n }\n return 0;\n }\n\n mouseDown(e) {\n if (this.layoutParams.cardMode === 'scroll') {\n this.layoutParams.isDraggingStart = true;\n this.layoutParams.dragStartX = this.getXPos(e);\n }\n }\n\n mouseUp() {\n if (this.layoutParams.cardMode === 'scroll') {\n this.layoutParams.isDraggingStart = false;\n setTimeout(() => {\n this.layoutParams.isDragging = false;\n }, 10);\n }\n }\n\n mouseMove(e) {\n if (this.layoutParams.cardMode === 'scroll' && this.layoutParams.isDraggingStart) {\n this.layoutParams.isDragging = true;\n const delta = this.layoutParams.dragStartX - this.getXPos(e);\n this.layoutParams.dragStartX = this.getXPos(e);\n this.addScrollLeftDelta(delta);\n }\n }\n\n bindDragPage() {\n document.body.addEventListener('mousedown', this.mouseDown);\n document.body.addEventListener('mouseup', this.mouseUp);\n document.body.addEventListener('mousemove', this.mouseMove);\n document.body.addEventListener('touchstart', this.mouseDown);\n document.body.addEventListener('touchend', this.mouseUp);\n document.body.addEventListener('touchmove', this.mouseMove);\n document.body.addEventListener('pointerdown', this.mouseDown);\n document.body.addEventListener('pointerup', this.mouseUp);\n document.body.addEventListener('pointermove', this.mouseMove);\n }\n\n onFieldVisibilityChanged(success, isVisible, ...params) {\n const [id] = params;\n const ids = Array.isArray(id) ? id : [id];\n\n // filter cards to update visibility - skip if incoming visibility is same\n let cardsToUpdate = this.cards.filter(p => ids.includes(p.question.id) && p.isHidden === isVisible);\n\n if (success && cardsToUpdate) {\n const lengthClass = (this.visibleCards.length > 116 && 'isVeryLongForm') || (this.visibleCards.length > 72 && 'isLongForm');\n const classesToRemove = (this.visibleCards.length > 116 && ['isLongForm']) || (this.visibleCards.length > 72 && ['isVeryLongForm']) || ['isLongForm', 'isVeryLongForm'];\n\n if (lengthClass) {\n addClass(document.body, lengthClass);\n }\n\n classesToRemove.forEach(className => removeClass(document.body, className));\n\n // filter out cards that forced to be hidden\n if (isVisible) {\n cardsToUpdate = cardsToUpdate.filter(p => !p.forceHide);\n }\n\n if (cardsToUpdate.length) {\n this.setCardVisibility(cardsToUpdate, isVisible);\n }\n }\n\n if (cardsToUpdate.length === 0 && this.sectionHeaders && this.sectionHeaders.length) {\n // check if its section header\n const headers = this.sectionHeaders.filter(p => ids.includes(p.props.id.value));\n headers.forEach(header => {\n if (header && !!header.isHidden === !!isVisible) {\n header.isHidden = !isVisible; // eslint-disable-line no-param-reassign\n if (!isVisible && this.layoutParams.formMode !== 'welcome') {\n this.setFormMode('form');\n }\n }\n });\n }\n }\n\n setCardVisibility(_card, isVisible) {\n const cards = Array.isArray(_card) ? _card : [_card];\n\n // remove animations for immadiate layout transformation\n this.removeLayoutAnimation();\n this.cards.forEach(card => {\n removeClass(card.wrapperContainer, 'transition-all-015s');\n });\n // ////////////////////////////////////////////////\n\n const hiddenIndexes = !isVisible ? cards.map(p => this.cards.indexOf(p)) : [];\n cards.forEach(card => {\n card.isHidden = !isVisible; // eslint-disable-line no-param-reassign\n this.progress.setIndexVisibility(this.cards.indexOf(card), isVisible);\n });\n\n this.progress.setCurrentIndexText();\n this.progress.setFirstLastCellClasses();\n this.progress.setQuestionOrderNumbers();\n this.progress.showProgressBarIfNeeded();\n\n this.setPrevNextQuestion(this.layoutParams.currentCardIndex);\n this.setWrapperWidth();\n this.recalculateTransform();\n\n // update card indexes\n this.updateCardIndexes();\n\n // enable animations\n setTimeout(() => {\n this.enableTransitions();\n }, 50);\n // /////////////////////\n\n // if hidden field is current field select next visible field\n if (hiddenIndexes.indexOf(this.layoutParams.currentCardIndex) > -1) {\n let nextVisibleIndex = -1;\n for (let i = 1; i < this.cards.length; i++) {\n const currentIndex = (this.layoutParams.currentCardIndex + i) % this.cards.length;\n if (!this.cards[currentIndex].isHidden) {\n nextVisibleIndex = currentIndex;\n break;\n }\n }\n\n if (nextVisibleIndex > -1) {\n this.setCardIndex(nextVisibleIndex);\n } else {\n console.warn('no visible card exists'); // eslint-disable-line\n }\n }\n\n // update card labels\n this.updateCardLabels();\n this.repositionActionButtons();\n }\n\n updateCardIndexes() {\n this.cards.forEach((_card, index) => {\n const card = _card;\n card.indexContainer.textContent = this.getVisibleIndex(index) + 1;\n });\n }\n\n getCardLabels() {\n const labels = [];\n forEach(this.visibleCards, (card, index) => {\n const _card = card;\n const labelContainer = card.cardContainer.querySelector('.jfQuestion-label');\n\n if (labelContainer && labelContainer.childNodes && labelContainer.childNodes[0]) {\n labels.push({\n question: _card.question,\n label: labelContainer.childNodes[0].textContent\n });\n } else {\n labels.push({\n question: _card.question,\n label: `Question ${index + 1}`\n });\n }\n });\n\n return labels;\n }\n\n updateCardLabels() {\n forEach(this.visibleCards, (card, index) => {\n const _card = card;\n const labelContainer = card.cardContainer.querySelector('.jfQuestion-label');\n\n if (labelContainer && labelContainer.childNodes && labelContainer.childNodes[0]) {\n _card.label = labelContainer.childNodes[0].textContent;\n } else {\n _card.label = `Question ${index + 1}`;\n if (_card.type === Payment.paymentCards.creditCard) {\n _card.label = 'Credit Card';\n }\n }\n });\n\n if (this.progress) { this.progress.setQuestionOrderNumbers(); }\n }\n\n onRequireField(id, isRequired) {\n const cards = this.cards.filter(p => p.question.id === id);\n cards.forEach(card => {\n const { cardContainer } = card;\n const requiredElement = cardContainer.querySelector('.jfRequiredStar');\n if (isRequired) {\n if (requiredElement) {\n requiredElement.style.display = 'initial';\n } else {\n this.addRequiredElementToCard(cardContainer);\n }\n } else {\n if (requiredElement) {\n requiredElement.style.display = 'none';\n }\n if (card.hasError) {\n this.updateCardStatus(card);\n } else {\n this.updateCardStatus(card, false, false);\n }\n }\n });\n }\n\n addRequiredElementToCard(cardElement) {\n const span = document.createElement('span');\n span.className = 'jfRequiredStar';\n const messageSpan = document.createElement('span');\n messageSpan.className = 'jfRequiredStar-message';\n messageSpan.textContent = 'This field is required';\n span.appendChild(document.createTextNode('*'));\n span.appendChild(messageSpan);\n\n const labelElement = cardElement.querySelector('.jfQuestion-label');\n if (labelElement) {\n labelElement.appendChild(span);\n }\n }\n\n updateCardStatus(card, checkValid = true, checkIsFilled = true) {\n const index = this.cards.indexOf(card);\n this.progress.unsetInvalidIndex(index);\n this.progress.unsetValidIndex(index);\n if (checkValid) this.validateCard(card);\n if (checkIsFilled) this.isCardFilled(card);\n if (card.hasError) {\n this.progress.setInvalidIndex(index);\n } else if (card.isFilled || NonInputFields.indexOf(card.question.type) > -1) {\n this.progress.setValidIndex(index);\n }\n }\n\n // setEnterButton(card, show) {\n // const span = card.cardContainer.querySelector('.jfCard-actions').querySelector('span');\n // const showButton = (this.isCardFilled(card) && this.validateCard(card)) || !!show ? '' : 'none';\n // span.style.display = showButton;\n // }\n\n bindFocusOnMobileWithKeyboard() {\n function handleKeyPress() {\n if (hasTouch()) {\n let formLine = document.querySelector('.form-line .isVisible').parentElement;\n if (hasClass(document.body, 'isFullScreen')) {\n formLine = document.querySelector('.forFullScreen');\n }\n // Textarea with markdown editor focus is a bit different from regular one\n if (formLine.getAttribute('data-type') === 'control_textarea') {\n // Check editable div and if exists focus on it\n const editableTextareaDiv = formLine.querySelector('.jfTextarea-editor');\n if (editableTextareaDiv) {\n return editableTextareaDiv.focus();\n }\n }\n\n const focusElements = formLine.querySelectorAll('input');\n const isFocused = (document.activeElement.localName.indexOf('input') > -1) || (document.activeElement.classList.toString().indexOf('jfInput') > -1);\n if (focusElements && focusElements.length > 0 && !isFocused) {\n focusElements[0].focus();\n }\n }\n }\n document.onkeypress = handleKeyPress.bind(this);\n }\n\n focusToFirstInput(card) {\n if (card) {\n const { browserName, forTemplate } = this.layoutParams;\n\n const firstVisibleCardIndex = this.cards.findIndex(c => c.isHidden === false);\n if (\n (!this.layoutParams.isEmbed || this.layoutParams.currentCardIndex > firstVisibleCardIndex)\n && this.layoutParams.cardMode === 'single' && !forTemplate && !(card.type === 'products')) {\n const isTextArea = card.question && card.question.type === 'control_textarea';\n const selectionQuery = isTextArea && card.markdownEditor ? `#${card.question.qid}_editor` : 'input,textarea,select[class*=\"jfInput\"]';\n const focusElement = card.cardContainer.querySelector(selectionQuery);\n\n setTimeout(() => {\n if (focusElement) focusElement.focus();\n\n // Ticket #1354844: First focus fix for safari\n if (isTextArea && card.markdownEditor && ['Safari', 'Firefox'].indexOf(browserName) > -1) {\n card.markdownEditor.saveSelection();\n }\n }, 500);\n }\n }\n }\n\n onEnableDisableField(id, enable) {\n const cards = this.cards.filter(p => p.question.id === id);\n cards.forEach(_card => {\n const card = _card;\n card.isDisabled = !enable;\n const { cardContainer } = card;\n const question = cardContainer.querySelector('.jfCard-question');\n const jfQuestionFields = cardContainer.querySelector('.jfQuestion-fields');\n\n if (jfQuestionFields.getAttribute('data-component') === 'matrix') {\n const tableRows = cardContainer.querySelectorAll('.jfMatrixTable-row');\n tableRows.forEach(element => {\n const tableRow = element;\n tableRow.style.pointerEvents = enable ? 'inherit' : 'none';\n });\n const columnDotListText = cardContainer.querySelector('.jfMatrixProgress-text');\n if (columnDotListText && columnDotListText.style.display && columnDotListText.style.display === 'none') {\n columnDotListText.style.removeProperty('display');\n }\n const jfMatrixPrevButton = cardContainer.querySelector('.jfMatrixProgress-button.forMatrixPrev.js-mobileMatrixPrevButton.noTranslate.conditionallyDisabled');\n if (jfMatrixPrevButton && jfMatrixPrevButton.disabled) {\n jfMatrixPrevButton.disabled = false;\n }\n const jfMatrixNextButton = cardContainer.querySelector('.jfMatrixProgress-button.forMatrixNext.js-mobileMatrixNextButton.noTranslate.conditionallyDisabled');\n if (jfMatrixNextButton && jfMatrixNextButton.disabled) {\n jfMatrixNextButton.disabled = false;\n }\n } else {\n question.style.pointerEvents = enable ? 'inherit' : 'none';\n }\n\n const questionsThatNeedBlocker = ['control_textarea', 'control_matrix'];\n const forMobile = cardContainer.querySelectorAll('.jfMatrix.forMobile.forClassic')[0];\n const forMobileCheck = forMobile && (forMobile.matches('.jfMatrix.forMobile.forClassic.hidden-matrix'));\n // If the matrix is opened by mobil and hidden\n // should be not removed matrix events\n if (questionsThatNeedBlocker.indexOf(card.question.type) > -1 && forMobileCheck) {\n setTimeout(() => {\n const listener = enable ? question.removeEventListener : question.addEventListener;\n [\n 'click',\n 'mousedown',\n 'mouseup',\n 'mousemove',\n 'touchstart',\n 'touchend',\n 'touchmove',\n 'keydown',\n 'keyup',\n 'pointerup',\n 'pointerdown',\n 'pointermove'\n ].forEach(eventName => {\n listener.call(question, eventName, this.eventBlocker, true);\n });\n }, 500);\n }\n\n // jotform disables all elements under
  • . We dont want to disable card next prev actions\n // so enable elements under actions container action\n const checkjfQuestionField = cardContainer.querySelector('.jfQuestion-fields, [data-wrapper-react=true]');\n const checkjfCardAction = cardContainer.querySelector('.jfCard-actions');\n if (checkjfQuestionField && checkjfCardAction) {\n if (enable) {\n checkjfQuestionField.style.opacity = 1;\n return;\n }\n const buttons = checkjfCardAction.querySelectorAll('button');\n forEach(buttons, button => {\n removeClass(button, 'conditionallyDisabled');\n button.disabled = false; // eslint-disable-line\n });\n checkjfQuestionField.style.opacity = 0.5;\n }\n });\n }\n\n eventBlocker(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n renderReCaptcha(captchaMode) {\n window.onload = () => {\n if (global.grecaptcha) {\n if ((captchaMode === 'recaptcha_invisible' || captchaMode === 'invisibleFromAdvancedSettings')) {\n const recaptchaInvisible = document.querySelector('#recaptcha_invisible');\n if (recaptchaInvisible) {\n if (captchaMode === 'invisibleFromAdvancedSettings') {\n recaptchaInvisible.addClassName('u-hidden');\n }\n global.grecaptcha.render(recaptchaInvisible, {\n sitekey: '6LcG3CgUAAAAAGOEEqiYhmrAm6mt3BDRhTrxWCKb',\n size: 'invisible',\n badge: 'inline',\n callback: this.recaptchaCallback\n });\n }\n } else if (captchaMode === 'recaptcha_visible' && document.querySelector('#recaptcha_visible')) {\n global.grecaptcha.render('recaptcha_visible', {\n sitekey: '6LdU3CgUAAAAAB0nnFM3M3T0sy707slYYU51RroJ',\n size: this.layoutParams.currentCardSize < 385 ? 'compact' : 'normal'\n });\n const reCaptchaResponseField = document.querySelector('.g-recaptcha-response');\n if (reCaptchaResponseField) {\n reCaptchaResponseField.addClassName('validate[required]');\n global.JotForm.setFieldValidation(reCaptchaResponseField);\n }\n } else if (captchaMode === 'hcaptcha_visible' && document.querySelector('#hcaptcha_visible')) {\n global.grecaptcha.render('hcaptcha_visible', {\n sitekey: '772f4a50-7161-425e-8cd5-4d7e361ab765',\n size: this.layoutParams.currentCardSize < 385 ? 'compact' : 'normal'\n });\n const hCaptchaResponseField = document.querySelector('[name=\"h-captcha-response\"]');\n if (hCaptchaResponseField) {\n hCaptchaResponseField.addClassName('validate[required]');\n global.JotForm.setFieldValidation(hCaptchaResponseField);\n }\n }\n }\n };\n }\n\n recaptchaCallback() {\n global.captchaFilled = true;\n this.submitFormWithJS(document.querySelector('.jotform-form'));\n }\n\n hcaptchaCallback() {\n global.captchaFilled = true;\n this.submitFormWithJS(document.querySelector('.jotform-form'));\n }\n\n submitFormWithJS(form) {\n if (this.layoutParams.deviceType !== 'mobile' || (this.layoutParams.deviceType === 'mobile' && global.JotForm.validateAll())) {\n global.JotForm.disableButtons();\n }\n const button = form.ownerDocument.createElement('input');\n button.style.display = 'none';\n button.type = 'submit';\n form.appendChild(button).click();\n form.removeChild(button);\n }\n\n onCreditCardAddressVisibilityChanged(isVisible) {\n const cards = this.cards.filter(p => p.type === Payment.paymentCards.creditCard || p.type === Payment.paymentCards.address);\n if (cards && cards.length) {\n cards.forEach(_card => {\n const card = _card;\n card.forceHide = !isVisible;\n card.wrapperContainer.style.display = isVisible ? 'block' : 'none';\n });\n\n this.setCardVisibility(cards, isVisible);\n }\n }\n\n setCardActionMode(_card, mode) {\n const card = _card;\n card.actionsButtons.mode = mode;\n card.actionsButtons.prev.style.display = mode === 'last' || mode === 'middle' ? 'block' : 'none';\n card.actionsButtons.next.style.display = mode === 'first' || mode === 'middle' ? 'block' : 'none';\n card.actionsButtons.submit.style.display = mode === 'last' || mode === 'submit' ? 'block' : 'none';\n\n // if submit button is displayed add 'form-submit-button' class otherview remove\n if (card.actionsButtons.submit.style.display === 'block') {\n addClass(card.actionsButtons.submit, 'form-submit-button');\n // reserve original text[1393090], this is done initially inside jotform.js for '.form-submit-button'\n if (!hasClass(card.actionsButtons.submit, 'for-upload')) {\n card.actionsButtons.submit.oldText = card.actionsButtons.submit.innerHTML;\n }\n } else {\n removeClass(card.actionsButtons.submit, 'form-submit-button');\n\n if (hasClass(card.actionsButtons.submit, 'for-upload')) {\n removeClass(card.actionsButtons.submit, 'for-upload');\n card.actionsButtons.submit.innerHTML = card.actionsButtons.submit.oldText;\n }\n }\n\n // hide actual submit button to show dummy useJotformSign button\n if (global.useJotformSign === 'Yes' && !this.layoutParams.reviewBeforeSubmit) {\n const jotformSignButton = card.cardContainer.querySelector('.useJotformSign-button');\n if (mode === 'last' || mode === 'submit') {\n jotformSignButton.style.display = 'block';\n jotformSignButton.id = 'useJotformSign-button';\n jotformSignButton.oldText = jotformSignButton.innerHTML;\n card.actionsButtons.submit.style.display = 'none';\n return;\n }\n jotformSignButton.style.display = 'none';\n }\n }\n\n repositionActionButtons() {\n const firstVisibleIndex = this.getFirstVisibleIndex();\n\n if (firstVisibleIndex === -1) return;\n\n let lastVisibleIndex = 0;\n for (let i = this.cards.length - 1; i >= 0; i--) {\n if (!this.cards[i].isHidden) {\n lastVisibleIndex = i;\n break;\n }\n }\n\n this.setMobilePrevNextQuestionButtons(this.layoutParams.currentCardIndex);\n if (firstVisibleIndex === lastVisibleIndex) {\n return this.setCardActionMode(this.cards[firstVisibleIndex], 'submit');\n }\n\n this.setCardActionMode(this.cards[firstVisibleIndex], 'first');\n this.setCardActionMode(this.cards[lastVisibleIndex], 'last');\n\n this.cards.slice(firstVisibleIndex + 1, lastVisibleIndex).forEach(card => {\n this.setCardActionMode(card, 'middle');\n });\n }\n\n shortenHeaders() {\n // Shortening should be done if only and only if in the form mode!\n if (this.layoutParams.formMode !== 'form') return;\n\n const headerWrapper = this.layoutElements.welcomeWrapper.querySelector('#header_welcomePage');\n const subHeaderWrapper = this.layoutElements.welcomeWrapper.querySelector('#subHeader_welcomePage');\n\n this.shortenElementContent(headerWrapper, 150);\n this.shortenElementContent(subHeaderWrapper, 150);\n }\n\n setElementVisibility(visibility, element) {\n if (!(element instanceof HTMLElement)) return;\n if (visibility === 'show') {\n element.classList.remove('hidden');\n element.removeAttribute('aria-hidden');\n }\n if (visibility === 'hidden') {\n element.classList.add('hidden');\n element.setAttribute('aria-hidden', 'true');\n }\n }\n\n hideWelcomeBadges() {\n this.setElementVisibility('hidden', this.layoutElements.featureBadge);\n }\n\n hideHeader() {\n this.setElementVisibility('hidden', this.layoutElements.welcomeWrapper);\n }\n\n showHeader() {\n this.setElementVisibility('show', this.layoutElements.welcomeWrapper);\n if (this.layoutParams.formMode !== 'welcome') return;\n this.setElementVisibility('show', this.layoutElements.featureBadge);\n }\n\n shortenElementContent(element, characterLimit) {\n const content = element.textContent;\n if (content.length > characterLimit) {\n element.setAttribute('title', content);\n element.textContent = `${content.slice(0, characterLimit)}...`; // eslint-disable-line no-param-reassign\n }\n }\n\n onCalendarSelected(container, date) {\n const card = this.cards.find(p => p.cardContainer === container);\n this.datetimeHandler.onCalendarSelected(card, date);\n }\n\n onCalendarInit(calendar, container) {\n const id = container.split('-').slice(2).join('-');\n if (id.indexOf('-') > -1) {\n const jfcard = document.getElementById(`lite_mode_${id}`).closest('.jfCard');\n const card = this.cards.find(c => c.cardContainer === jfcard);\n this.datetimeHandler.onCalendarInit(card, calendar);\n } else {\n const card = this.cards.find(p => p.question.id === id);\n this.datetimeHandler.onCalendarInit(card, calendar);\n }\n }\n\n handleBackgroundVideo() {\n // IE11 cannot handle video and animations\n const { backgroundVideoPlayer: player } = this.layoutElements;\n const { browserName, browserVersion } = this.browserProperties;\n const isIE11 = browserName === 'Internet Explorer' && browserVersion === '11.0';\n if (isIE11 && player && player.pause && typeof player.pause === 'function') {\n player.pause();\n }\n }\n\n initBackgroundImageLoader() {\n const computedStyles = window.getComputedStyle(document.querySelector('.jfForm-backgroundContainer') || document.querySelector('.jfForm-wrapper'));\n const background = computedStyles ? computedStyles.getPropertyValue('background-image') : undefined;\n\n var removeNotLoaded = (() => {\n let isRemoved = false;\n return () => {\n if (!isRemoved) {\n removeClass(document.body, 'notLoaded');\n const isSmartEmbed = hasClass(document.body, 'isSmartEmbed');\n if (isSmartEmbed && this.cards.length) {\n const firstVisibleIndex = this.getFirstVisibleIndex();\n this.setCardIndex(firstVisibleIndex, false, true);\n }\n isRemoved = true;\n\n if (this.layoutParams.formMode === 'welcome') {\n this.calculateWelcomeSize();\n }\n }\n };\n })();\n\n if (background && background.indexOf('url(') > -1) {\n const url = background.split('\"')[1];\n const image = new global.Image(0, 0);\n if (window && window.location.search === '?newForms=1') {\n const underlay = document.querySelector('.jfForm-backgroundUnderlay');\n if (underlay) {\n addClass(document.body, 'backgroundImageReady');\n }\n } else {\n setTimeout(() => {\n removeNotLoaded();\n }, 5000);\n const intervalID = setInterval(() => {\n if (image.complete) {\n // Remove image placeolder if defined\n const underlay = document.querySelector('.jfForm-backgroundUnderlay');\n if (underlay) {\n setTimeout(() => {\n addClass(document.body, 'backgroundImageReady');\n }, 125); // Magic number! (thanks safari <3)\n }\n removeNotLoaded();\n clearInterval(intervalID);\n }\n }, 500);\n }\n\n image.src = url;\n } else {\n removeNotLoaded();\n }\n }\n\n bindChangeEventForPressEnter() {\n // const setPressEnterVisibilty = (e) => {\n // const formLine = closest(e.target, '.form-line');\n // if (formLine) {\n // const card = this.cards.find(p => p.formLine === formLine);\n // if (card && card.question.type !== 'control_address' && (card.actionsButtons.mode === 'first' || card.actionsButtons.mode === 'middle') && this.validateCard(card, false, true)) {\n // removeClass(card.pressEnterContainer, 'isHidden');\n // } else {\n // addClass(card.pressEnterContainer, 'isHidden');\n // }\n // }\n // };\n\n // bind events after calculation logic runs for the first time since it fires change event\n // setTimeout(() => {\n // document.body.addEventListener('change', setPressEnterVisibilty);\n // document.body.addEventListener('input', setPressEnterVisibilty);\n // }, 100);\n }\n\n bindChangeEventForNextButtons() {\n const updateNextButtonClasses = e => {\n const formLine = closest(e.target, '.form-line', 'body');\n if (formLine && formLine.getAttribute('data-type') !== 'control_address') {\n const card = this.cards.find(p => p.formLine === formLine);\n if (this.validateCard(card, false, true)) {\n const targetCard = closest(e.target, '.jfCard', 'body');\n const nextButton = targetCard.querySelector('.forNext');\n\n if (!hasClass(nextButton, 'animateNextButton')) {\n addClass(nextButton, 'animateNextButton');\n }\n }\n }\n };\n\n setTimeout(() => {\n document.body.addEventListener('change', updateNextButtonClasses);\n document.body.addEventListener('input', updateNextButtonClasses);\n }, 100);\n }\n\n getInputNamesAndValues() {\n const formData = document.forms[0].serialize().split('&').map(p => {\n return {\n name: decodeURIComponent(p.split('=')[0]),\n value: decodeURIComponent(p.split('=')[1])\n };\n });\n\n document.forms[0].querySelectorAll('.conditionallyDisabled').forEach(el => {\n formData.push({\n name: el.name,\n value: el.value\n });\n });\n\n this.cards.forEach(card => {\n const missingFields = ['control_radio', 'control_checkbox', 'control_imagechoice'].indexOf(card.question.type) !== -1;\n const markDownFields = ['control_textarea'].indexOf(card.question.type) !== -1;\n\n if (missingFields) {\n const inputs = card.cardContainer.querySelectorAll('input');\n let empty = true;\n forEach(inputs, input => {\n if (input.checked) { empty = false; }\n if (empty && input.hasAttribute('data-otherhint')) {\n const otherData = formData.find(other => other.name === input.name);\n\n if (otherData) {\n otherData.empty = true;\n }\n }\n });\n if (empty) { formData.push({ name: inputs[0].name, value: '', empty: true }); }\n }\n if (markDownFields) {\n const inputs = card.cardContainer.querySelectorAll('textarea');\n forEach(inputs, input => {\n const selectionQuery = card.markdownEditor ? `#${card.question.qid}_editor` : '*[class*=\"jfInput-textarea\"]';\n const focusElement = card.cardContainer.querySelector(selectionQuery);\n if (focusElement) {\n const exactValue = card.markdownEditor != null ? focusElement.innerHTML : focusElement.value;\n formData.push({ name: input.name, value: exactValue, empty: true });\n }\n });\n }\n });\n\n return formData;\n }\n\n getFormData() {\n var translator = global.FormTranslation;\n\n const translate = text => {\n if (text) {\n const decoded = global.JotForm.decodeHtmlEntities(text).strip();\n return translator.translate(decoded);\n }\n return null;\n };\n\n const inputNamesAndValues = this.getInputNamesAndValues();\n const form = inputNamesAndValues.reduce((acc, { name, value, empty }) => {\n const regexTempFile = /temp_upload\\[[^\\]]+\\]\\[\\]$/;\n\n if ((name.indexOf('_') > -1 && name.split('_')[0].indexOf('q') === 0) || regexTempFile.test(name)) {\n let element = document.forms[0][name];\n\n if (!element.tagName) { // means element is an array like\n forEach(element, elem => {\n if (elem.value === value) {\n element = elem;\n }\n });\n }\n\n if (!element.tagName) { // if no value match => not expected\n [element] = element;\n }\n\n const { id: elementId } = element;\n\n if (elementId.indexOf('addr_search') > -1) {\n return acc;\n }\n\n if (elementId.indexOf('fileUpload') > -1) {\n var jfCard = document.querySelectorAll('.jfCard');\n var id = elementId.match(/q(\\d+)/)[1];\n\n jfCard.forEach(item => {\n if (item.parentNode.id.indexOf(`cid_${id}`) > -1) {\n item.appendChild(element);\n }\n });\n }\n\n const card = this.cards.find(p => p.cardContainer === closest(element, '.jfCard', 'body'));\n const existingCard = acc.find(p => p.card === card);\n\n // Translate element label\n if (card && translator && ('to' in translator)) {\n card.label = translate(card.label);\n }\n\n if (!existingCard) {\n acc.push({\n card, elements: [element], empty: empty\n });\n } else {\n existingCard.elements.push(element);\n }\n }\n return acc;\n }, []).map(p => {\n if (!p.card) {\n return undefined;\n }\n\n let multiSelectElements = null;\n const inputs = p.empty ? [] : p.elements.map(q => {\n // support for multiple select questions - included multi-line question\n if (q.type === 'select-multiple') {\n multiSelectElements = Array.from(q.querySelectorAll('option[selected]')).map(el => el.value).join(', ');\n } else {\n multiSelectElements = null;\n }\n return ({ element: q, name: q.name, value: multiSelectElements || q.value });\n });\n\n return {\n card: p.card,\n label: p.card ? p.card.label : '',\n valid: p.card && p.card.validate ? p.card.validate() : false,\n inputs\n };\n }).filter(p => typeof p !== 'undefined');\n // set custom markup for cards\n form.forEach(p => {\n p.customDraw = this.getCardReviewCustomDraw(p.card, p.inputs); // eslint-disable-line\n });\n\n // filter visible cards\n return form.filter(p => !p.card.isHidden);\n }\n\n getCardReviewCustomDraw(card, inputs) {\n if (card.type === Payment.paymentCards.products) {\n const wrapper = document.createElement('div');\n const div = document.createElement('div');\n const container = card.cardContainer;\n forEach(container.querySelectorAll('.product'), productRow => {\n const productSelection = Array.from(productRow.childNodes).find(c => c.tagName === 'INPUT');\n if (productSelection && productSelection.checked) {\n const pNameAndDetails = productRow.querySelector('.product__title');\n // Get product name from element without including it's children\n // User array's reduce method on array-like childNodes\n const pName = [].reduce.call(pNameAndDetails.childNodes, ((a, b) => { return a + (b.nodeType === 3 ? b.textContent : ''); }), '');\n // Get product details\n const pDetails = pNameAndDetails.querySelector('.jfField-product-description');\n const pSpan = document.createElement('span');\n pSpan.appendChild(global.document.createTextNode(`${pName}${pDetails && pDetails.textContent.length > 0 ? `, ${pDetails.textContent}` : ''},\\u00A0`));\n div.appendChild(pSpan);\n const options = productRow.querySelectorAll('.jfProductOption');\n forEach(options, (option, index) => {\n const optionLabel = option.getAttribute('data-name');\n if (optionLabel) {\n const label = optionLabel;\n const optionValue = option.querySelector('select, input').value;\n\n const optionSpan = document.createElement('span');\n optionSpan.appendChild(global.document.createTextNode(`${label}: ${optionValue}${index < options.length - 1 ? ',' : ''}\\u00A0`));\n div.appendChild(optionSpan);\n }\n });\n\n const table = productRow.querySelector('.jfSubProductTable');\n if (table) {\n const copy = table.cloneNode(true);\n forEach(copy.querySelectorAll('select, input'), input => {\n if (input.tagName !== 'SELECT' && (input.type === 'hidden' || input.style.display === 'none')) {\n input.parentNode.removeChild(input);\n return;\n }\n const { value } = input;\n if (value && value !== '0') {\n const parent = closest(input, 'td');\n map(parent.childNodes, p => p).forEach(p => { parent.removeChild(p); });\n parent.appendChild(global.document.createTextNode(value));\n } else {\n const tr = closest(input, 'tr');\n tr.parentNode.removeChild(tr);\n }\n });\n div.appendChild(copy);\n }\n\n wrapper.appendChild(div);\n }\n });\n if (container.querySelector('.donation-wrapper')) {\n const currency = card.cardContainer.querySelector('.js-donationCurrency');\n const amount = inputs && inputs[0] && inputs[0].value ? inputs[0].value : '';\n wrapper.appendChild(global.document.createTextNode(`${amount} ${currency && currency.textContent ? currency.textContent : ''}`));\n } else {\n const currencyLeft = card.cardContainer.querySelector('.currency__left');\n const total = global.document.getElementById('payment_footer_total');\n const currencyRight = card.cardContainer.querySelector('.currency__right');\n const currencyLeftTextContent = currencyLeft && currencyLeft.textContent ? currencyLeft.textContent : '';\n const currencyRightTextContent = currencyRight && currencyRight.textContent ? currencyRight.textContent : '';\n const totalTextContent = total && total.textContent ? total.textContent : '';\n\n const totalSpan = document.createElement('span');\n totalSpan.appendChild(global.document.createTextNode(`Total: ${currencyLeftTextContent}${totalTextContent}${currencyRightTextContent}`));\n wrapper.appendChild(totalSpan);\n }\n return wrapper;\n } else if (card.type === Payment.paymentCards.creditCard) {\n const creditCardWrapper = document.createElement('span');\n inputs.map(q => {\n const { value } = q;\n if (!q.value) return null;\n if (hasClass(q.element, 'cc_number')) return `************${value.substring(value.length - 4)}`;\n return value;\n })\n .filter(q => q)\n .forEach((answer, i) => {\n const answerSpan = document.createElement('span');\n const textNodeContent = `${answer}${i < inputs.length - 1 ? ',\\u00A0' : ''}`;\n answerSpan.appendChild(global.document.createTextNode(textNodeContent));\n creditCardWrapper.appendChild(answerSpan);\n });\n return creditCardWrapper;\n } else if (card.question.type === 'control_imagechoice') {\n if (inputs && inputs.length) {\n const wrapper = document.createElement('div');\n inputs.forEach((input, i) => {\n const label = input.element.parentElement.querySelector('[class*=-labelText]').innerHTML;\n if (label) {\n const labelSpan = document.createElement('span');\n labelSpan.appendChild(global.document.createTextNode(`${label}${i < inputs.length - 1 ? ',\\u00A0' : ''}`));\n wrapper.appendChild(labelSpan);\n }\n });\n return wrapper;\n }\n } else if (card.question.type === 'control_widget' && inputs) {\n const widgetData = inputs[0];\n if (widgetData) {\n const wrapper = document.createElement('div');\n try {\n const metadata = JSON.parse(widgetData.value);\n metadata.widget_metadata.value.forEach((value, i) => {\n if (value && value.name) {\n const labelSpan = document.createElement('span');\n labelSpan.appendChild(global.document.createTextNode(`${value.name}${i < metadata.widget_metadata.value.length - 1 ? ',\\u00A0' : ''}`));\n wrapper.appendChild(labelSpan);\n }\n });\n } catch (ex) {\n const labelSpan = document.createElement('span');\n labelSpan.appendChild(global.document.createTextNode(widgetData.value));\n wrapper.appendChild(labelSpan);\n }\n return wrapper;\n }\n } else if (card.question.type === 'control_signature') {\n const wrapper = document.createElement('div');\n\n const image = new global.Image();\n image.src = inputs[0].value;\n wrapper.appendChild(image);\n return wrapper;\n } else if (card.question.type === 'control_matrix' && inputs) {\n const matrix = document.querySelector(`#matrix_${card.question.id}`);\n const dataType = matrix.getAttribute('data-type');\n if (dataType === 'Radio Button') {\n const translator = global.FormTranslation;\n const wrapper = document.createElement('div');\n const filteredInputs = inputs.filter(item => !(item.name.includes('rowIds') || item.name.includes('colIds')));\n filteredInputs.forEach((input, index) => {\n const value = translator && translator.translate ? translator.translate(input.value) : input.value;\n let label = '';\n if (this.layoutParams.deviceType === 'mobile') {\n const choiceWrapper = closest(input.element, '.jfMatrix-choiceWrapper');\n const dataVal = choiceWrapper.getAttribute('data-order');\n const cells = closest(input.element, '.jfMatrix').querySelectorAll('.jfMobileMatrix-question');\n const matrixCell = map(cells, p => p).filter(cell => cell.getAttribute('data-order') === dataVal);\n label = matrixCell && matrixCell[0] ? matrixCell[0].textContent : '';\n } else {\n const tableCells = closest(input.element, '.jfMatrixTable-row').querySelectorAll('.jfMatrixTable-cell');\n const valueCell = tableCells[0];\n label = valueCell.querySelector('.form-matrix-row-headers').querySelector('label').innerHTML;\n }\n wrapper.appendChild(global.document.createTextNode(`${label}: ${value}`));\n if (index < filteredInputs.length - 1) {\n wrapper.appendChild(document.createElement('br'));\n }\n });\n return wrapper;\n }\n } else if (card.question.type === 'control_datetime') {\n return this.createDatetimeReviewString(inputs);\n } else if (card.question.type === 'control_textarea' && card.markdownEditor && card.markdownEditor.editorContainer) {\n const textareaWrapper = global.document.createElement('span');\n const { childNodes } = card.markdownEditor.editorContainer;\n forEach(childNodes, node => {\n const cloneNode = node.cloneNode(true);\n textareaWrapper.appendChild(cloneNode);\n });\n return textareaWrapper;\n } else if (card.question.type === 'control_time') {\n const timeFormat = inputs.find(input => {\n return input.name.indexOf('ampm') > -1;\n });\n const wrapper = document.createElement('div');\n inputs.forEach((input, i) => {\n if (input && input.value) {\n const labelSpan = document.createElement('span');\n let sign = '';\n if (i < inputs.length - 1) {\n if (timeFormat !== undefined) { // if the time format is AM/PM\n sign = input.name.indexOf('[ampm]') > -1 ? ',\\u00A0' : ':';\n if (inputs[i + 1] && inputs[i + 1].name.indexOf('ampm') > -1) { sign = '\\u00A0'; }\n } else {\n sign = inputs[i + 1] && inputs[i + 1].name.indexOf('hourSelectRange') > -1 ? ',\\u00A0' : ':';\n }\n if (inputs[i + 1] && inputs[i + 1].name.indexOf('timeRangeDuration') > -1) { sign = '\\u00A0:'; }\n }\n labelSpan.appendChild(global.document.createTextNode(`${input.value}${sign}`));\n wrapper.appendChild(labelSpan);\n }\n });\n return wrapper;\n } else if (card.question.type === 'control_mixed') {\n const wrapper = document.createElement('div');\n const labelSpan = document.createElement('span');\n const inputValues = inputs.filter(input => {\n return (input && input.value && input.value !== '');\n });\n inputValues.forEach((input, i) => {\n labelSpan.appendChild(global.document.createTextNode(`${input.value}${i < inputValues.length - 1 ? ',\\u00A0' : ''} `));\n wrapper.appendChild(labelSpan);\n });\n return wrapper;\n } else if (card.question.type === 'control_inline') {\n // detect signatures for custom draw\n const customDraws = {};\n inputs.forEach((input, i) => {\n if (input.value.indexOf('data:image/png;base64') === 0) {\n const wrapper = document.createElement('span');\n const image = new global.Image();\n image.src = input.value;\n wrapper.appendChild(image);\n customDraws[i] = wrapper;\n }\n });\n return customDraws;\n }\n }\n\n createDatetimeReviewString(inputs) {\n // Get year, month, day, hour, min and ampm format\n const values = {\n year: '',\n month: '',\n day: '',\n hour: '',\n min: '',\n ampm: '',\n datetimeString: ''\n };\n const indexes = {\n year: false,\n month: false,\n day: false\n };\n Object.keys(values).forEach(key => {\n const index = inputs.findIndex(input => input.name.indexOf(`[${key}]`) > -1);\n if (key in indexes) {\n indexes[key] = index;\n }\n values[key] = index !== -1 ? inputs[index].value : '';\n });\n const findLocaleDelimiter = str => {\n if (!str) return '/';\n for (let i = 0; i < str.length; i++) {\n if (!/^[0-9a-zA-Z\\s]+$/.test(str[i])) {\n return str[i];\n }\n }\n return '/';\n };\n // Create string\n let datetime = new Date();\n if (values.year && values.month && values.day) {\n datetime = new Date(values.year, values.month - 1, values.day);\n const datetimeString = datetime.toLocaleDateString(undefined, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n });\n const delimiter = findLocaleDelimiter(datetimeString);\n const sortedValues = Object.keys(indexes).sort((a, b) => indexes[a] - indexes[b]);\n values.datetimeString = sortedValues.reduce((prev, cur) => {\n return `${prev}${delimiter}${values[cur]}`;\n }, '').substr(1) || datetimeString;\n }\n if (values.hour && values.min) {\n if (values.ampm === 'AM') {\n if (values.hour === '12') values.hour = '0';\n } else if (values.ampm === 'PM') {\n if (values.hour !== '12') values.hour = parseInt(values.hour, 10) + 12;\n }\n datetime.setHours(values.hour);\n datetime.setMinutes(values.min);\n values.datetimeString = `${values.datetimeString} ${datetime.toLocaleTimeString(undefined, {\n hour: '2-digit',\n minute: '2-digit'\n })}`;\n }\n // Append our string into container\n const dateTimeTextNode = global.document.createTextNode(values.datetimeString);\n const dateTimeSpan = document.createElement('span').appendChild(dateTimeTextNode);\n return dateTimeSpan;\n }\n\n adjustAppointmentDate(values) {\n const MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n const DAYS_OF_WEEK = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\n const duration = values[2] || 0;\n const stringToDate = values[1].replaceAll('-', '/');\n const date = new Date(stringToDate);\n const endDate = new Date();\n endDate.setTime(date.getTime() + (Number(duration) * 60000));\n\n return `${DAYS_OF_WEEK[date.getDay()].locale()}, ${MONTHS[date.getMonth()].locale().substring(0, 3)} ${this.padStart2(date.getDate())}, ${date\n .getFullYear()} ${this.padStart2(date.getHours())}:${this.padStart2(date.getMinutes())} - ${this\n .padStart2(endDate.getHours())}:${this.padStart2(endDate.getMinutes())}, ${values[3]}`;\n }\n\n padStart2(element) {\n return String(element).padStart(2, '0');\n }\n\n prepareReviewMarkup(form) {\n const itemTemplate = global.document.querySelector('#reviewBeforeSubmit .js-reviewItemTemplate');\n const translator = global.FormTranslation;\n const lines = form.map(p => {\n const markup = itemTemplate.cloneNode(true);\n markup.style.display = 'block';\n const cardOrder = this.cards.filter(c => !c.isHidden).indexOf(p.card) + 1;\n const labelContainer = markup.querySelector('.js-reviewItemTitle');\n const indexContainer = markup.querySelector('.js-reviewItemIndex');\n const answersContainer = markup.querySelector('.js-reviewItemAnswer');\n const editLink = markup.querySelector('.js-reviewItemEditLink');\n editLink.addEventListener('click', () => { this.showFormPreview(false, this.cards.indexOf(p.card)); });\n\n if (!p.valid) {\n const titleContainer = markup.querySelector('.jfReviewItem-header');\n addClass(titleContainer, 'hasError');\n }\n\n // get placeholder values for review card and replace accordingly.\n var matches = p.label ? p.label.match(/([^{]*?)\\w(?=\\})/gmi) : null;\n if (matches) {\n let resultLabel = p.label;\n matches.forEach(match => {\n let element;\n for (let i = 0; i < this.cards.length; i++) {\n const card = this.cards[i];\n element = card.cardContainer.querySelector(`span[class*=\"_${match}\"]`);\n if (element) {\n break;\n }\n }\n if (element && element.innerHTML !== '') {\n var rgx = new RegExp(`{${match}}`, 'g');\n resultLabel = resultLabel.replace(rgx, element.innerHTML);\n }\n });\n labelContainer.appendChild(global.document.createTextNode(resultLabel));\n } else {\n labelContainer.appendChild(global.document.createTextNode(p.label));\n }\n\n indexContainer.appendChild(global.document.createTextNode(cardOrder));\n if (p.customDraw) {\n if (p.card.question.type === 'control_imagechoice') {\n const imageChoiceContainer = document.createElement('div');\n imageChoiceContainer.className = 'imageChoiceContainer';\n const values = p.inputs.map(q => q.value.split('|'));\n values.forEach((element, i) => {\n const imageChoiceContent = document.createElement('div');\n imageChoiceContent.className = 'imageChoiceContent';\n const answerContent = document.createElement('div');\n const answerImage = document.createElement('img');\n answerImage.src = element[1].length > 0 ? element[1] : 'data:,';\n answerImage.alt = element[1].length > 0 ? element[1] : 'data:,';\n answerContent.textContent = `${element[0]}${(element[0].length === 0 || i === values.length - 1) ? '\\u00A0' : ',\\u00A0'}`;\n imageChoiceContent.appendChild(answerImage);\n imageChoiceContent.appendChild(answerContent);\n imageChoiceContainer.appendChild(imageChoiceContent);\n answersContainer.appendChild(imageChoiceContainer);\n });\n } else if (p.card.question.type === 'control_widget') {\n if (p.card.cardContainer.querySelectorAll('[data-widget-id=\"529c8286a75dae5e7f000005\"]').length > 0 && p.inputs[0].value.length > 0) {\n // Take Photo Widget\n const takePhotoContainer = document.createElement('div');\n takePhotoContainer.className = 'imageChoiceContainer';\n const { value } = p.inputs[0];\n const takePhotoContent = document.createElement('div');\n takePhotoContent.className = 'imageChoiceContent';\n const answerImage = document.createElement('img');\n answerImage.src = value;\n answerImage.alt = value;\n takePhotoContent.appendChild(answerImage);\n takePhotoContainer.appendChild(takePhotoContent);\n answersContainer.appendChild(takePhotoContainer);\n } else if (p.card.cardContainer.querySelectorAll('[data-widget-id=\"533946093c1ad0c45d000070\"]').length > 0 && p.inputs[0].value.length > 0) {\n const { value } = p.inputs[0];\n if (this.isJsonString(value)) {\n const jsonData = value.replace(/\"([^\"]+)\":/g, '\"$1 \":');\n const elements = JSON.parse(jsonData);\n const table = document.createElement('table');\n table.className = 'table-grid';\n table.style.cssText = 'border:0;cellpadding:5;cellspacing:0;width:100%';\n\n const tbody = document.createElement('tbody');\n tbody.className = 'table-body';\n let setHeader = true;\n elements.forEach(valueElement => {\n if (setHeader) {\n const headerTr = document.createElement('tr');\n headerTr.className = 'table-row';\n /* eslint-disable no-restricted-syntax */\n for (const key in valueElement) {\n const thead = document.createElement('th');\n thead.className = 'table-head';\n thead.textContent = key;\n headerTr.appendChild(thead);\n }\n /* eslint-enable no-restricted-syntax */\n tbody.appendChild(headerTr);\n }\n const tr = document.createElement('tr');\n /* eslint-disable no-restricted-syntax */\n for (const key in valueElement) {\n const td = document.createElement('td');\n td.className = 'table-col';\n td.textContent = valueElement[key];\n tr.appendChild(td);\n }\n /* eslint-enable no-restricted-syntax */\n tbody.appendChild(tr);\n setHeader = false;\n });\n table.appendChild(tbody);\n answersContainer.appendChild(table);\n } else {\n answersContainer.appendChild(p.customDraw);\n }\n } else {\n answersContainer.appendChild(p.customDraw);\n }\n } else if (p.card.question.type === 'control_inline') {\n const values = p.inputs.map(q => q.value);\n values.forEach((answer, i) => {\n if (p.customDraw[i]) {\n answersContainer.appendChild(p.customDraw[i]);\n } else if (answer !== '') {\n const answerSpan = document.createElement('span');\n const textNodeContent = `${answer}${i < values.length - 1 ? ',\\u00A0' : ''}`;\n answerSpan.appendChild(global.document.createTextNode(textNodeContent));\n answersContainer.appendChild(answerSpan);\n }\n });\n } else {\n answersContainer.appendChild(p.customDraw);\n }\n } else {\n let values = p.inputs.map(q => q.value);\n if (p.card.question.type === 'control_appointment' && values[1] && values[3]) {\n values = [this.adjustAppointmentDate(values)];\n }\n const uniqueValues = values.filter((el, i) => {\n return (el && values.indexOf(el) === i);\n });\n uniqueValues.forEach((answer, i) => {\n const answerSpan = document.createElement('span');\n // only translate answers with options\n let val = answer;\n const fieldsToTranslate = ['control_dropdown', 'control_yesno', 'control_radio', 'control_checkbox', 'control_matrix'];\n if (translator && translator.translate && fieldsToTranslate.include(p.card.question.type)) {\n val = translator.translate(answer);\n }\n let textNodeContent;\n if (p.card.question.type === 'control_fullname') {\n textNodeContent = `${val}${i < uniqueValues.length - 1 ? '\\u00A0' : ''}`;\n } else if (p.card.question.type === 'control_fileupload') {\n const file = document.querySelector(`.qq-upload-list li:nth-child(${i + 1})`);\n const size = file.querySelector('.qq-upload-size').textContent;\n answerSpan.style.display = 'block';\n textNodeContent = `${val} (${size})`;\n } else {\n textNodeContent = `${val}${i < uniqueValues.length - 1 ? ',\\u00A0' : ''}`;\n }\n answerSpan.appendChild(global.document.createTextNode(textNodeContent));\n answersContainer.appendChild(answerSpan);\n });\n }\n return markup;\n });\n const container = global.document.createElement('div');\n container.className = 'js-reviewItemsContainer';\n lines.sort((first, second) => {\n const firstVal = first.querySelector('.js-reviewItemIndex').textContent / 1;\n const secondVal = second.querySelector('.js-reviewItemIndex').textContent / 1;\n if (firstVal > secondVal) {\n return 1;\n }\n if (firstVal < secondVal) {\n return -1;\n }\n return 0;\n });\n lines.forEach(p => { container.appendChild(p); });\n\n return container;\n }\n\n showFormPreview(show, questionIndex) {\n const reviewContainer = global.document.getElementById('reviewBeforeSubmit');\n const listContainer = reviewContainer.querySelector('.js-reviewItemList');\n if (show) {\n const old = reviewContainer.querySelector('.js-reviewItemsContainer');\n if (old) {\n old.parentNode.removeChild(old);\n }\n this.updateCardLabels();\n const items = this.prepareReviewMarkup(this.getFormData());\n listContainer.appendChild(items);\n this.setFormMode('review');\n } else {\n setTimeout(() => {\n if (typeof questionIndex === 'number') {\n this.setCardIndex(questionIndex, true);\n }\n this.setFormMode('form', false, true);\n }, 0);\n }\n }\n\n replaceSubmitWithReviewAndSubmit() {\n const cloneDesktopSubmitButton = this.cards[0].actionsButtons.submit.cloneNode(true);\n const invisibleSubmitButton = this.cards[0].actionsButtons.submit.cloneNode(true);\n const { mobileSubmitButton, mobileNavigationWrapper } = this.layoutElements;\n const cloneMobileSubmit = mobileSubmitButton.cloneNode(true);\n\n invisibleSubmitButton.style.display = 'none';\n invisibleSubmitButton.style.position = 'absolute';\n document.forms[0].appendChild(invisibleSubmitButton);\n\n cloneDesktopSubmitButton.removeAttribute('style');\n addClass(cloneDesktopSubmitButton, 'form-submit-button');\n const { reviewText, backText } = this.layoutParams.reviewBeforeSubmit;\n const overrideSubmitButton = btn => {\n btn.textContent = reviewText; // eslint-disable-line\n btn.type = 'button'; // eslint-disable-line\n removeClass(btn, 'form-submit-button');\n removeClass(btn, 'forSubmit');\n removeClass(btn, 'jsMobileSubmit');\n addClass(btn, 'forReviewButton');\n addClass(btn, 'forReview');\n };\n this.cards.forEach(card => {\n overrideSubmitButton(card.actionsButtons.submit);\n });\n\n overrideSubmitButton(this.layoutElements.mobileSubmitButton);\n const cloneSubmitButtons = [cloneDesktopSubmitButton, cloneMobileSubmit];\n // bind submit events\n forEach(cloneSubmitButtons, btn => btn.addEventListener('click', () => {\n invisibleSubmitButton.click();\n }));\n\n const submitButtonInReview = global.document.querySelector('#reviewBeforeSubmit .forReviewButton');\n const backToFormButtons = global.document.querySelectorAll('#reviewBeforeSubmit .forBackToForm, .jsMobileNavigation .forBackToForm');\n const useJFSignButton = global.document.querySelector('.useJotformSign-button');\n\n forEach(backToFormButtons, reviewButton => {\n if (reviewButton) {\n reviewButton.textContent = backText; // eslint-disable-line\n reviewButton.addEventListener('click', () => {\n this.showFormPreview(false);\n });\n }\n });\n // selected JF sign button needs to be visible\n if (global.useJotformSign === 'Yes' && useJFSignButton) {\n useJFSignButton.style.display = 'block';\n }\n\n // for desktop\n submitButtonInReview.parentNode.replaceChild(\n // when JF sign automation enabled, custom sign button needs to be replaced instead of normal submit button\n (global.useJotformSign === 'Yes' && useJFSignButton)\n ? useJFSignButton\n : cloneDesktopSubmitButton, submitButtonInReview\n );\n\n global.document.addEventListener('click', e => {\n if (closest(e.target, '.forReviewButton')) {\n if (global.JotForm.validateAll()) {\n if (global.JotForm.disableSubmitButton) {\n global.JotForm.toggleDisableSubmitMessage();\n } else {\n const { currentCardIndex, cardMode } = this.layoutParams;\n if (currentCardIndex > -1) {\n // added an additional check for review and submit\n // check current card validate for error statements\n if (cardMode === 'scroll' || this.validateCard(this.cards[currentCardIndex])) {\n this.showFormPreview(true);\n // custom sign button(useJotformSign-button) needs to be excluded from form submit buttons\n const isSubmitExists = mobileNavigationWrapper && mobileNavigationWrapper.querySelector('.form-submit-button:not(.useJotformSign-button)');\n if (!isSubmitExists) { // for mobile\n mobileNavigationWrapper.appendChild(cloneMobileSubmit);\n // button actions are re-run because of the clone operation\n global.JotForm.setButtonActions();\n }\n } else {\n this.shakeCard(currentCardIndex);\n this.focusToFirstError(currentCardIndex);\n }\n }\n }\n }\n }\n });\n }\n\n getTotalWelcome() {\n const welcomeRect = document.getElementById('header_welcomePage') ? document.getElementById('header_welcomePage').getBoundingClientRect() : { height: 0 };\n const welcomeSubRect = document.getElementById('subHeader_welcomePage') ? document.getElementById('subHeader_welcomePage').getBoundingClientRect() : { height: 0 };\n return welcomeSubRect.height > (welcomeRect.height * 2.9) ? (welcomeRect.height * 3.9) : welcomeRect.height + welcomeSubRect.height;\n }\n\n calculateAvailableHeightForFields(nextCardIndex = null) {\n if (!this.cards || !this.cards[0]) return;\n // const cardScale = _cardScale || this.layoutParams.formMode === 'form' ? 1 : 100;\n\n // const { smartEmbedMaxHeight, deviceType } = this.layoutParams;\n const isSmartEmbed = hasClass(document.body, 'isSmartEmbed');\n\n const totalWelcome = this.getTotalWelcome();\n const progressRect = document.getElementById('cardProgress').getBoundingClientRect();\n const footerHeight = document.querySelector('.formFooter') ? document.querySelector('.formFooter').getBoundingClientRect().height : 0;\n const windowHeight = window.innerHeight;\n const welcomeTopMargin = windowHeight * 0.05;\n // const computedStyles = window.getComputedStyle(this.cards[0].cardContainer);\n // const currentCardFontSizePx = computedStyles ? +computedStyles.fontSize.slice(0, -2) : 16;\n // const cardQuestionPaddingTopAndBottom = currentCardFontSizePx * 2.2;\n const paddingBottom = this.layoutParams.deviceType === 'mobile' ? 80 : 54;\n let bottomPaddingTotal = this.layoutParams.resolutionType === 'mobile' ? (paddingBottom + footerHeight) : (progressRect.height + footerHeight); // it has fixed height in mobile view\n // if progress is not visible on form, give a little space to bottom\n bottomPaddingTotal = bottomPaddingTotal === 0 ? welcomeTopMargin : bottomPaddingTotal;\n // const maxOfWelcomeAndProgress = Math.max(welcomeTopMargin + totalWelcome, progressRect.height) * 2;\n // const welcomeAndBottomSide = isSmartEmbed ? 0 : (welcomeTopMargin + totalWelcome + bottomPaddingTotal);\n // const additionalMargin = 4.2 * currentCardFontSizePx; // previously 2.5 but it was a little bit tight\n // const actionHeight = (3.5 * currentCardFontSizePx) + 2;\n\n // const total = actionHeight + cardQuestionPaddingTopAndBottom + welcomeAndBottomSide + additionalMargin;\n // const total = actionHeight + welcomeAndBottomSide + additionalMargin;\n\n if (this.layoutParams.formMode === 'form') {\n document.querySelector('.jfForm-wrapper').style.paddingBottom = `${isSmartEmbed ? 0 : bottomPaddingTotal}px`;\n document.querySelector('.jfForm-wrapper').style.paddingTop = `${isSmartEmbed ? 0 : (welcomeTopMargin + totalWelcome + (this.layoutParams.deviceType === 'mobile' ? -15 : 0))}px`;\n }\n\n if (this.layoutParams.deviceType === 'mobile') {\n this.cards.forEach(card => {\n if (card.label) {\n const label = card.cardContainer.querySelector('.jfQuestion-label');\n const charLimits = [0, 100, 200, 300, 400];\n const classList = ['p1', 'p2', 'p3', 'p4', 'p5'];\n let index = 0;\n while (card.label.length >= charLimits[index]) {\n index++;\n }\n index = index === 0 ? 0 : index - 1;\n if (label) {\n addClass(label, `${classList[index]}`);\n }\n }\n });\n }\n\n this.calculateCardsHeight(nextCardIndex);\n\n this.handleFullScreenToggle();\n }\n\n onFileUploadChanged(id) {\n const card = this.cards.find(p => p.question.id === id);\n if (card) {\n const fileList = card.cardContainer.querySelectorAll('.qq-upload-list li');\n card.isFilled = fileList.length > 0;\n }\n }\n\n fillInitialValuesForEditMode(card) {\n if (card.question.type === 'control_datetime') {\n const qid = card.question.id;\n const day = card.cardContainer.querySelector(`#day_${qid}`);\n const month = card.cardContainer.querySelector(`#month_${qid}`);\n const year = card.cardContainer.querySelector(`#year_${qid}`);\n\n if (day.value && month.value && year.value) {\n const dateInput = card.cardContainer.querySelector('.jfCardDateInput');\n dateInput.value = `${year.value}-${month.value}-${day.value}`;\n }\n } else if (card.question.type === 'control_rating') {\n const items = map(card.cardContainer.querySelectorAll('.jfRating-item.jfRating-selection'), p => p);\n const checkedIndex = items.findIndex(p => p.querySelector('input').checked === true);\n\n if (checkedIndex > -1) {\n for (let i = 0; i <= checkedIndex; i++) {\n addClass(items[i], 'checked');\n }\n // #1749513: add the selected rating value to hidden input of rating stars\n const starsInput = document.querySelector(`input[name=\"q${card.question.id}_stars\"]`);\n starsInput.value = checkedIndex + parseInt(starsInput.dataset.lowest, 10);\n }\n }\n }\n\n // Returns if index is visible or not.\n isVisibleIndex(index) {\n const card = this.cards[index];\n return card && !card.isHidden;\n }\n\n // Returns first visible card index.\n getFirstVisibleIndex(type = null) {\n if (type) {\n return this.cards.findIndex(p => !p.isHidden && p.question.type === type);\n }\n return this.cards.findIndex(p => !p.isHidden);\n }\n\n getLastVisibleIndex() {\n let lastVisibleIndex = 0;\n for (let i = this.cards.length - 1; i >= 0; i--) {\n if (!this.cards[i].isHidden) {\n lastVisibleIndex = i;\n break;\n }\n }\n return lastVisibleIndex;\n }\n\n // Extract id from url (#id) (not index! it is id, so if you need index you need to do -1)\n getQuestionIdFromUrlHash(url) {\n const match = url.match(/#([0-9]+)/);\n return (match ? match[1] : false);\n }\n\n // Listen question changes\n onLocationHashChange() {\n const url = global.location.href || '';\n const newQuestionId = this.getQuestionIdFromUrlHash(url);\n const newQuestionIndex = newQuestionId ? parseInt(newQuestionId, 10) - 1 : 0;\n const isQuestionChanged = newQuestionIndex !== this.layoutParams.currentCardIndex;\n\n // Do nothing if question is not changed.\n if (!isQuestionChanged) { return; }\n\n // Go to question if it is visible\n if (this.isVisibleIndex(newQuestionIndex)) {\n this.setCardIndex(newQuestionIndex);\n return;\n }\n\n // otherwise go to first question :) hehe.\n const firstVisibleIndex = this.getFirstVisibleIndex();\n this.setCardIndex(firstVisibleIndex);\n }\n\n setDropdownInitialValues() {\n this.dropdown.setInitialValues();\n }\n\n onFormTranslated() {\n translateDefaultCardFormTexts();\n translateComponentFields(this.cards);\n this.translateSectionHeader();\n this.translateListOfQuestionsItems();\n setTimeout(() => this.updateMatrixLayout(), 25);\n }\n\n translateListOfQuestionsItems() {\n const listOfQuestionItems = document.getElementsByClassName('jfProgress-itemWrapper')[0].children;\n let index = 0;\n Array.from(listOfQuestionItems).forEach(question => {\n const label = question.querySelector('.jfProgress-itemLabel');\n const labelTextWithoutQNumber = label.innerText.replace(`${index + 1}. `, '');\n if (labelTextWithoutQNumber === `Question ${index + 1}`) {\n const translator = global.FormTranslation;\n const { cardTexts } = translator;\n const currentLang = translator.to;\n const translateText = '{number} Question';\n if (cardTexts && currentLang && cardTexts[currentLang] && cardTexts[currentLang][translateText]) {\n const questionTitle = cardTexts[currentLang][translateText];\n label.innerText = questionTitle.replace('{number}', `${index + 1}.`);\n }\n }\n index++;\n });\n }\n\n translateSectionHeader() {\n const translator = global.FormTranslation;\n\n if (translator) {\n const sectionHeader = this.currentHeader;\n const translate = text => {\n if (text) {\n const decoded = global.JotForm.decodeHtmlEntities(text).strip();\n return translator.translate(decoded);\n }\n return null;\n };\n\n const {\n welcomeHeaderContainer,\n welcomeSubHeaderContainer,\n welcomeSectionInfoText,\n welcomeSectionInfoQuestionCount\n } = this.layoutElements;\n\n const headerTranslation = translate(sectionHeader.props.text.value);\n if (headerTranslation) welcomeHeaderContainer.innerHTML = headerTranslation;\n\n const subHeaderTranslation = translate(sectionHeader.props.subHeader.value);\n if (subHeaderTranslation) welcomeSubHeaderContainer.innerHTML = subHeaderTranslation;\n\n if (sectionHeader.props.showQuestionCount && sectionHeader.props.showQuestionCount.value === 'Yes') {\n let sectionText = welcomeSectionInfoText.innerHTML;\n const { cardTexts } = translator;\n const currentLang = translator.to;\n if (cardTexts && currentLang && cardTexts[currentLang] && sectionText) {\n let sectionInfoText = '{number} Question';\n if (parseInt(welcomeSectionInfoQuestionCount.innerHTML, 10) > 1) {\n sectionInfoText = '{number} Questions';\n }\n if (cardTexts[currentLang][sectionInfoText]) {\n sectionText = cardTexts[currentLang][sectionInfoText];\n welcomeSectionInfoText.innerHTML = sectionText.replace(/{number}\\s?/, '');\n } else {\n welcomeSectionInfoText.innerHTML = cardTexts[currentLang][sectionText] ? cardTexts[currentLang][sectionText] : sectionText;\n }\n }\n }\n\n let nextButtonText = 'Next';\n\n if (sectionHeader === this.welcomePageProps && sectionHeader.props.buttonText && sectionHeader.props.buttonText.value) {\n nextButtonText = sectionHeader.props.buttonText.value;\n } else if (sectionHeader.props.nextButtonText && sectionHeader.props.nextButtonText.value) {\n nextButtonText = sectionHeader.props.nextButtonText.value;\n }\n\n const previousButtonText = sectionHeader.props.previousButtonText && sectionHeader.props.previousButtonText.value ? sectionHeader.props.previousButtonText.value : 'Previous';\n\n const nextButtonTranslation = translate(nextButtonText);\n if (nextButtonTranslation) this.layoutElements.startButton.innerHTML = nextButtonTranslation;\n\n const prevButtonTranslation = translate(previousButtonText);\n if (prevButtonTranslation) this.layoutElements.previousButton.innerHTML = prevButtonTranslation;\n }\n }\n\n setInitialSelectionForMatrixSliders(id) {\n const matrixQuestion = this.cards.find((q) => q.question.id == id).question; // eslint-disable-line\n const hasMatrixSliders = (matrixQuestion && matrixQuestion.componentClass && matrixQuestion.componentClass.sliders && matrixQuestion.componentClass.sliders.length > 0) ? true : false;\n if (hasMatrixSliders) {\n matrixQuestion.componentClass.sliders.forEach(item => {\n item.slider.makeInitialSelection();\n });\n }\n }\n\n updateMatrixLayout() {\n this.layoutParams.questions.forEach(q => {\n if (q.type === 'control_matrix') {\n global.JotForm.setMatrixLayout(q.id);\n }\n });\n }\n\n clearAddressFields() {\n const cleanClass = 'jfAddress-clean';\n const cleanAddressFields = global.document.getElementsByClassName(cleanClass);\n\n forEach(cleanAddressFields, field => removeClass(field, cleanClass));\n }\n\n recalculateCurrentCardHeight() {\n this.calculateCardHeight(this.getCurrentCard());\n }\n\n calculateWelcomeSize() {\n const { formMode } = this.layoutParams;\n const { welcomeContainer, welcomeCardBackground } = this.layoutElements;\n\n if (!formMode || formMode === 'form') return;\n if (!welcomeContainer || !welcomeCardBackground) return;\n\n setTimeout(() => {\n const { offsetWidth, offsetHeight } = welcomeContainer;\n welcomeCardBackground.style.width = `${offsetWidth}px`;\n welcomeCardBackground.style.height = `${offsetHeight}px`;\n }, 50);\n }\n\n calculateInitialCardHeight() {\n this.calculateCardHeight(this.cards[0]);\n }\n\n calculateCardsHeight(nextCardIndex) {\n const forced = global.location.href.indexOf('forceCardHeightCalc=true') >= 0;\n if (!forced && this.layoutParams.deviceType === 'mobile') return;\n if (!forced && this.isFeedbackEmbedButton) return;\n\n if (nextCardIndex === null) {\n // Note: Going thru all the questions was causing huge performance issues\n // as the question count increases. For 512 questions performance sample\n // count dropped from 14,000~ to an average of 400~, please only whitelist\n // the questions that might render more content after it's loaded or it's\n // own card UI might change at some point for some reason.\n //\n // Fixes #4447305\n const whitelistedQuestionTypes = [\n 'control_appointment',\n 'control_payment'\n ];\n\n this.cards.filter(card => whitelistedQuestionTypes.includes(card.question.type)).forEach(this.calculateCardHeight);\n } else {\n this.calculateCardHeight(this.cards[nextCardIndex]);\n }\n }\n\n calculateAllCardsHeight() {\n this.cards.forEach(this.calculateCardHeight);\n }\n\n calculateCardHeight(c) {\n const card = c;\n\n let maxCardHeight = this.layoutElements.formWrapper.clientHeight;\n\n const getFontSize = el => parseInt(window.getComputedStyle(el).fontSize.replace('px', ''), 10);\n const decreaseLabelFontSize = elem => {\n const el = elem;\n el.style.fontSize = `${getFontSize(el) - 2}px`;\n };\n\n const resetScroll = elem => {\n const el = elem;\n el.style.maxHeight = 'unset';\n el.style.overflowY = 'unset';\n };\n\n const cardHasScroll = el => el.questionContainer.scrollHeight > el.questionContainer.clientHeight;\n\n const isLabelSingleLine = l => {\n const labelLineHeight = parseInt(window.getComputedStyle(l).lineHeight.replace('px', ''), 10);\n return l.clientHeight <= labelLineHeight;\n };\n\n const label = card.cardContainer.querySelector('.jfQuestion-label');\n const desc = card.cardContainer.querySelector('.jfQuestion-description');\n\n let actionButtonWrapperHeight = card.actionButtonsWrapper !== null && card.actionButtonsWrapper.getBoundingClientRect().height;\n const submitError = card.cardContainer.querySelector('.form-button-error');\n\n if (this.layoutParams.cardMode === 'scroll') {\n actionButtonWrapperHeight /= this.layoutParams.cardScrollScale;\n }\n\n if (card.hasSubmit && submitError) {\n maxCardHeight = maxCardHeight - submitError.getBoundingClientRect().height;\n }\n\n if (!hasClass(document.body, 'forMiniCard')) {\n maxCardHeight = maxCardHeight - this.getTotalWelcome();\n }\n\n card.cardContainer.style.maxHeight = `${maxCardHeight}px`;\n card.questionContainer.style.maxHeight = `${maxCardHeight - actionButtonWrapperHeight}px`;\n\n if (card.question.type !== 'control_address') {\n card.questionContainer.style.overflowY = 'auto';\n }\n\n if (window && window.formUserHeader === true) {\n card.questionContainer.style.maxHeight = `${maxCardHeight - actionButtonWrapperHeight - 140}px`;\n }\n\n if (label) {\n resetScroll(label);\n label.setAttribute('tabindex', 0);\n }\n\n if (desc) desc.setAttribute('tabindex', 0);\n\n if (cardHasScroll(card)) {\n const description = card.cardContainer.querySelector('.jfQuestion-description');\n\n if (label || description) {\n let labelFontSize = 0;\n let descFontSize = 0;\n\n if (label) labelFontSize = getFontSize(label);\n\n if (description) descFontSize = getFontSize(description);\n\n let i = 0;\n // The smallest mobile screen width is 320px\n while (cardHasScroll(card) && ((!isLabelSingleLine(label) && labelFontSize > this.minLabelFontSize) || descFontSize > this.minDescFontSize) && label.clientWidth > 320) {\n if (label && labelFontSize > this.minLabelFontSize) {\n if (!isLabelSingleLine(label)) decreaseLabelFontSize(label);\n labelFontSize = getFontSize(label);\n }\n\n if (description && descFontSize > this.minDescFontSize) {\n decreaseLabelFontSize(description);\n descFontSize = getFontSize(description);\n }\n\n i++;\n // shit happens\n if (i > 10) break;\n }\n }\n }\n\n this.datetimeHandler.updateCalendarPositions();\n\n if (card.type === 'products' && this.getCurrentCard().type === card.type) {\n this.calculateProductsPerPage();\n }\n }\n\n setLanguageDropdownVisibility(firstVisibleCardIndex, currentCardIndex) {\n const langDropdown = document.querySelector('#langDd');\n if (!langDropdown) return;\n\n if (currentCardIndex > firstVisibleCardIndex) {\n langDropdown.classList.add('firstPageOnly');\n } else {\n langDropdown.classList.remove('firstPageOnly');\n }\n }\n\n handleWidgetsVisibility(visibleCard) {\n // get the widget on the current visible card\n const { id, type } = visibleCard.question;\n if (type === 'control_widget') {\n global.JotForm.showWidget(id);\n }\n }\n\n checkConditionOnCurrentCard() {\n if (global.JotForm.conditions.length !== undefined) {\n const currentCard = this.getCurrentCard();\n const questionID = currentCard && currentCard.question && currentCard.question.id;\n global.JotForm.conditions.forEach(condition => {\n let isConditionRelatedWithCurrentField = true;\n if (questionID) {\n isConditionRelatedWithCurrentField = Array.isArray(condition.terms) && condition.terms.some(term => {\n // check for the multi-line question type\n if (term.field && term.field.indexOf('|') > -1) {\n return term.field.split('|')[0] === questionID.toString();\n }\n return term.field === questionID.toString();\n });\n }\n\n if (!condition.disabled && isConditionRelatedWithCurrentField) {\n global.JotForm.checkCondition(condition);\n }\n });\n }\n }\n\n onSCLStateChange(newState) {\n const stateElement = document.querySelector('.jf-saclState');\n const progressSacl = document.querySelector('.jfProgress-sacl');\n if (!stateElement || !progressSacl) {\n return;\n }\n\n let icon;\n let text;\n\n switch (newState) {\n case this.saveAndContinueLater.states.default:\n icon = defaultIcon;\n text = 'Save & Continue Later';\n break;\n case this.saveAndContinueLater.states.saved:\n icon = savedIcon;\n text = 'Answers saved';\n // this.handleSaveSuccess();\n break;\n case this.saveAndContinueLater.states.error:\n icon = errorIcon;\n text = 'Answers not saved';\n // this.handleSaveFailure();\n break;\n default:\n icon = defaultIcon;\n text = 'Save & Continue Later';\n console.info('No such state implemented:', newState); // eslint-disable-line\n break;\n }\n\n progressSacl.setAttribute('data-tooltip-msg', text);\n stateElement.innerHTML = `${icon}`;\n }\n\n // This will be used in JotForm common to execute new SCL flow.\n asyncInitSaveAndContinueLaterFlow(getSCLManager) {\n const newSCLManager = getSCLManager({\n formID: this.formID,\n triggerButtonSelector: '.jfProgress-sacl',\n onStateChange: this.onSCLStateChange,\n hiddenSubmit: this.hiddenSubmit,\n localConfiguration: this.continueLater\n });\n if (newSCLManager && this.saveAndContinueLater) { // Lets remove existing ones..\n this.saveAndContinueLater = newSCLManager; // should have same methods inside\n }\n }\n\n initSaveAndContinueLater() {\n this.saveAndContinueLater = new SaveAndContinueLater(this.continueLater, this.hiddenSubmit, this.findEmailAnswer, this.formID, this.apiURL, this.tranlatedTexts);\n }\n\n isJsonString(str) {\n try {\n var o = JSON.parse(str);\n // Handle non-exception-throwing cases:\n // Neither JSON.parse(false) or JSON.parse(1234) throw errors, hence the type-checking,\n // but... JSON.parse(null) returns 'null', and typeof null === \"object\",\n // so we must check for that, too.\n if (o && typeof o === 'object' && o !== null) {\n return true;\n }\n } catch (e) {\n console.log(e);\n }\n\n return false;\n }\n}\n\nglobal.CardLayout = Cards;\n"],"names":["module","exports","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","defaults","Cancel","config","Promise","resolve","reject","onCanceled","requestData","data","requestHeaders","headers","responseType","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","onloadend","responseHeaders","getAllResponseHeaders","value","err","response","responseText","status","statusText","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","send","bind","Axios","mergeConfig","axios","createInstance","defaultConfig","context","instance","prototype","extend","create","instanceConfig","CancelToken","isCancel","VERSION","all","promises","spread","isAxiosError","message","toString","__CANCEL__","executor","promise","resolvePromise","token","then","_listeners","i","l","length","onfulfilled","_resolve","reason","throwIfRequested","listener","push","index","splice","source","c","InterceptorManager","dispatchRequest","validator","validators","interceptors","arguments","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","Array","apply","concat","shift","newConfig","onFulfilled","onRejected","error","getUri","replace","handlers","use","options","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","transformData","throwIfCancellationRequested","call","transformRequest","merge","common","adapter","transformResponse","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","Object","keys","configValue","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","stringifySafely","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","args","encode","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","decodeURIComponent","remove","now","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","substr","callback","arr","thing","deprecatedWarnings","version","formatMessage","opt","desc","opts","console","warn","schema","allowUnknown","result","Error","getPrototypeOf","isFunction","obj","hasOwnProperty","constructor","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","assignValue","a","b","str","stripBOM","content","charCodeAt","$","safeAdd","x","y","lsw","md5cmn","q","s","t","num","md5ff","d","md5gg","md5hh","md5ii","binlMD5","len","olda","oldb","oldc","oldd","binl2rstr","input","output","length32","String","fromCharCode","rstr2binl","length8","rstr2hex","hexTab","str2rstrUTF8","rawMD5","rawHMACMD5","k","rstrHMACMD5","bkey","ipad","opad","md5","string","raw","define","amd","r","n","m","o","defineProperty","enumerable","get","Symbol","toStringTag","__esModule","default","p","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","map","parseInt","getAndroidVersionName","getVersionPrecision","compareVersions","Math","max","u","reverse","min","find","assign","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chrome","Chromium","Electron","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","android","bada","blackberry","chrome","chromium","electron","epiphany","firefox","focus","generic","googlebot","google_search","ie","k_meleon","maxthon","edge","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","safari","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","uc","vivaldi","webos","wechat","yandex","tablet","mobile","desktop","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","getParser","getResult","configurable","writable","_ua","parsedResult","getUA","parseBrowser","browser","some","describe","getBrowser","getBrowserName","getBrowserVersion","getOS","os","parseOS","getOSName","getOSVersion","getPlatform","platform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","satisfies","isOS","isPlatform","f","isBrowser","compareVersion","isEngine","is","versionName","vendor","model","Number","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","setFunctionLength","$TypeError","$apply","$call","$reflectApply","$defineProperty","$max","originalFunction","func","applyBind","parent","entryUnbind","from","fromCodePoint","global","isCallable","tryToString","TypeError","argument","isConstructor","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","isPrototypeOf","it","Prototype","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","arrayLike","step","iterator","next","O","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iteratorMethod","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","uncurryThis","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","self","boundFunction","filter","every","findIndex","filterReject","fails","METHOD_NAME","SPECIES","originalArray","C","arraySpeciesConstructor","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","object","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","tag","callee","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","hasOwn","ownKeys","getOwnPropertyDescriptorModule","exceptions","getOwnPropertyDescriptor","F","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","DESCRIPTORS","bitmap","toPropertyKey","propertyKey","IS_PURE","FunctionName","createIteratorConstructor","setPrototypeOf","createNonEnumerableProperty","redefine","IteratorsCore","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","proto","forced","EXISTS","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","classList","documentCreateElement","DOMTokenListPrototype","Deno","Pebble","classof","getBuiltIn","versions","v8","CONSTRUCTOR","METHOD","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","NATIVE_BIND","FunctionPrototype","Function","Reflect","aCallable","getDescriptor","namespace","getMethod","usingIterator","V","P","check","globalThis","g","propertyIsEnumerable","store","functionToString","inspectSource","cause","set","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","replacement","feature","detection","normalize","POLYFILL","NATIVE","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","kind","innerResult","innerError","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","flush","head","last","notify","toggle","node","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","exit","enter","nextTick","createTextNode","observe","characterData","task","V8_VERSION","getOwnPropertySymbols","symbol","PromiseCapability","$$resolve","$$reject","$default","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","A","B","alphabet","chr","T","S","j","activeXDocument","definePropertiesModule","enumBugKeys","html","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","style","display","appendChild","src","contentWindow","NullProtoObject","ActiveXObject","Properties","V8_PROTOTYPE_DEFINE_BUG","defineProperties","props","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","internalObjectKeys","getOwnPropertyNames","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","setter","CORRECT_SETTER","__proto__","pref","valueOf","getOwnPropertyNamesModule","NativePromiseConstructor","IS_BROWSER","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","REJECTION_EVENT","newPromiseCapability","promiseCapability","checkCorrectnessOfIteration","Queue","tail","add","item","entry","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","CONSTRUCTOR_NAME","Constructor","TAG","uid","SHARED","mode","copyright","license","aConstructor","defaultConstructor","toIntegerOrInfinity","requireObjectCoercible","CONVERT_TO_STRING","pos","first","second","position","size","codeAt","defer","channel","arraySlice","validateArgumentsLength","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","run","runner","event","post","postMessage","handler","port2","port1","onmessage","importScripts","removeChild","integer","ceil","floor","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","passed","required","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","clearErrorStack","installErrorCause","iterate","normalizeStringArgument","ERROR_STACK_INSTALLABLE","$AggregateError","errors","isInstance","AggregateErrorPrototype","errorsArray","AggregateError","$findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","$find","FIND","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","Arguments","newPromiseCapabilityModule","perform","allSettled","capability","promiseResolve","remaining","alreadyCalled","$promiseResolve","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","real","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","redefineAll","setSpecies","anInstance","speciesConstructor","microtask","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","initEvent","IS_UNHANDLED","emit","isUnhandled","unwrap","internalReject","internalResolve","wrapper","wrap","onFinally","race","PromiseConstructorWrapper","CHECK_WRAPPER","RangeError","$fromCodePoint","elements","STRING_ITERATOR","point","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","$SyntaxError","gopd","property","nonEnumerable","nonWritable","nonConfigurable","loose","hasSymbols","toStr","defineDataProperty","supportsDescriptors","predicate","predicates","util","newUtil","escape","parseExtension","mimeType","WOFF","JPEG","extension","mimes","dataAsUrl","isDataUrl","canvasToBlob","canvas","toBlob","binaryString","atob","toDataURL","binaryArray","Uint8Array","Blob","resolveUrl","baseUrl","doc","implementation","createHTMLDocument","base","body","getAndEncode","domtoimage","impl","cacheBust","getTime","placeholder","FileReader","readAsDataURL","useCredentials","imagePlaceholder","delay","ms","arg","asArray","array","escapeXhtml","makeImage","uri","image","Image","crossOrigin","onload","width","leftBorder","px","rightBorder","scrollWidth","height","topBorder","bottomBorder","scrollHeight","styleProperty","parseFloat","getComputedStyle","getPropertyValue","inliner","newInliner","URL_REGEX","inlineAll","readUrls","urls","inline","shouldProcess","dataUrl","RegExp","fontFaces","newFontFaces","resolveAll","readAll","webFonts","webFont","cssStrings","styleSheets","cssRules","sheet","log","rule","CSSRule","FONT_FACE_RULE","rules","newWebFont","webFontRule","parentStyleSheet","cssText","images","newImages","background","Element","inlineBackground","inlined","setProperty","getPropertyPriority","HTMLImageElement","newImage","childNodes","child","element","defaultOptions","toSvg","toPng","draw","toJpeg","quality","toPixelData","getContext","getImageData","toCanvas","cloneNode","root","HTMLCanvasElement","clone","children","original","cloneChildrenInOrder","childClone","font","copyProperties","clonePseudoElement","className","currentClass","getAttribute","styleElement","selector","HTMLTextAreaElement","innerHTML","HTMLInputElement","SVGElement","SVGRectElement","attribute","embedFonts","inlineImages","bgcolor","backgroundColor","XMLSerializer","serializeToString","xhtml","foreignObject","svg","domNode","scale","newCanvas","ctx","fillStyle","fillRect","drawImage","styleNode","factory","isFrozen","freeze","seal","fun","thisValue","Func","arrayForEach","unapply","arrayPop","pop","arrayPush","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","_len2","_key2","_len","_key","addToSet","transformCaseFunc","lcElement","newObject","cleanArray","lookupGetter","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","text","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","EXPRESSIONS","CUSTOM_ELEMENT","NODE_TYPE","progressingInstruction","comment","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","policyName","createHTML","createScriptURL","scriptUrl","_","createDOMPurify","trustedTypesPolicy","DOMPurify","removed","nodeType","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","MozNamedAttrMap","DOMParser","ElementPrototype","getNextSibling","getChildNodes","getParentNode","template","ownerDocument","emptyHTML","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","TRUSTED_TYPES_POLICY","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","tagName","namespaceURI","parentTagName","Boolean","_forceRemove","_removeAttribute","getAttributeNode","removeAttribute","_initDocument","dirty","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","insertBefore","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","elm","nodeName","textContent","attributes","hasChildNodes","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","allowedTags","firstElementChild","_isBasicCustomElement","parentNode","childCount","__removalCount","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","SANITIZE_NAMED_PROPS_PREFIX","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","returnNode","firstChild","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","attr","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","EvalError","ReferenceError","SyntaxError","URIError","forEachArray","receiver","forEachString","forEachObject","list","concatty","slicy","arrLike","offset","joiny","joiner","bound","ERROR_MESSAGE","boundLength","boundArgs","Empty","$EvalError","$RangeError","$ReferenceError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasProto","getProto","needsEval","TypedArray","INTRINSICS","Atomics","BigInt","BigInt64Array","BigUint64Array","DataView","decodeURI","encodeURI","eval","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","Map","Proxy","Set","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","alias","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","hasPropertyDescriptors","hasArrayLengthDefineBug","foo","$Object","origSymbol","hasSymbolSham","sym","symObj","syms","$hasOwn","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","hasToStringTag","isIE68","isDDA","strClass","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","resIndex","baseTimes","isArguments","isIndex","isTypedArray","objectProto","inherited","isArr","isArg","isBuff","isType","skipIndexes","eq","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","other","bitmask","customizer","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","isMasked","toSource","reIsHostCtor","funcToString","funcProto","reIsNative","pattern","isLength","typedArrayTags","isPrototype","nativeKeys","iteratee","cache","coreJsData","arraySome","cacheHas","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","symbolProto","symbolValueOf","byteLength","byteOffset","convert","stacked","getAllKeys","objProps","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","freeGlobal","baseGetAllKeys","getSymbols","isKeyable","baseIsNative","getValue","getPrototype","overArg","nativeObjectToString","unmasked","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","nativeCreate","reIsUint","maskSrcKey","assocIndexOf","arrayProto","getMapData","freeExports","freeModule","freeProcess","moduleExports","nodeUtil","types","require","binding","transform","freeSelf","pairs","LARGE_ARRAY_SIZE","baseIsArguments","stubFalse","Buffer","nativeIsBuffer","objectCtorString","baseIsTypedArray","baseUnary","nodeIsTypedArray","arrayLikeKeys","baseKeys","isArrayLike","warning","delimiter","russianPluralGroups","lastTwo","end","defaultPluralRules","pluralTypes","arabic","bosnian_serbian","chinese","croatian","french","german","russian","lithuanian","czech","polish","icelandic","slovenian","pluralTypeToLanguages","defaultTokenRegex","transformPhrase","phrase","substitutions","locale","tokenRegex","pluralRules","smart_count","count","ret","texts","langToPluralType","langs","lang","en","expression","Polyglot","phrases","currentLocale","onMissingKey","constructTokenRegex","prefix","interpolation","newLocale","morePhrases","prefixedKey","unset","newPhrases","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","hasWeakMap","weakSetHas","hasWeakSet","weakRefDeref","hasWeakRef","deref","booleanValueOf","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","isEnumerable","gPO","addNumericSeparator","Infinity","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","isRegExp","inspect_","depth","maxStringLength","customInspect","indent","numericSeparator","inspectString","lowbyte","bigIntStr","maxDepth","getIndent","baseIndent","prev","inspect","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","HTMLElement","attrs","xs","singleLineValues","indentedJoin","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isBigInt","ys","protoTag","stringTag","constructorTag","lineJoiner","symMap","keysShim","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","theKeys","skipProto","skipConstructor","origKeys","originalKeys","shim","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bool","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","percentTwenties","formatters","RFC1738","RFC3986","formats","allowDots","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decoder","decode","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","parseArrayValue","parseValues","cleanStr","limit","skipIndex","bracketEqualsPos","maybeMap","encodedVal","$0","numberStr","combine","parseObject","valuesParsed","leaf","cleanRoot","parseKeys","givenKey","segment","brackets","normalizeParseOptions","tempObj","newObj","compact","getSideChannel","arrayPrefixGenerators","indices","repeat","pushToArray","valueOrArray","toISO","defaultFormat","addQueryPrefix","encodeValuesOnly","format","formatter","serializeDate","date","skipNulls","sentinel","generateArrayPrefix","commaRoundTrip","sort","sideChannel","objKeys","tmpSc","findFlag","isNonNullishPrimitive","adjustedPrefix","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","joined","hexTable","compactQueue","compacted","arrayToObject","reduce","acc","refs","strWithoutPlus","defaultEncoder","out","mapped","mergeTarget","targetItem","for","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","ref","__self","__source","jsx","defaultProps","$$typeof","_owner","w","z","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","D","E","updater","G","isReactComponent","setState","forceUpdate","H","isPureReactComponent","I","J","K","L","M","Q","R","_status","_result","U","transition","Children","toArray","only","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","ReactCurrentDispatcher","ReactCurrentBatchConfig","cloneElement","createContext","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","_context","createFactory","createRef","forwardRef","render","isValidElement","lazy","_payload","_init","memo","compare","startTransition","unstable_act","useCallback","useContext","useDebugValue","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition","hasDescriptors","gOPD","functionLengthIsConfigurable","functionLengthIsWritable","callBound","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","curr","listGet","objects","listSet","$wm","$m","$o","assert","RequireObjectCoercible","ToString","mvsIsWS","leftWhitespace","rightWhitespace","getPolyfill","boundMethod","zeroWidthSpace","mongolianVowelSeparator","polyfill","$String","_define_property","getOwnPropertyDescriptors","enumerableOnly","symbols","HiddenQuestionTypes","htmlDecode","quoteS","optTemp","noquotes","OPTS","ENT_NOQUOTES","ENT_HTML_QUOTE_SINGLE","ENT_HTML_QUOTE_DOUBLE","ENT_COMPAT","ENT_QUOTES","ENT_IGNORE","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","querySelectorAll","MONTHS","lastHundredYears","cyear","getYear","years","year","specialOptions","None","controls","Countries","COUNTRIES","country","Gender","GENDERS","gender","Days","DAYS","day","Months","month","nonLocale","LocationCountries","getByType","LogoComponent","isBuilder","logoTitle","handleAddFormLogo","formWidth","formLogoProperties","usePreLoad","imageLoaded","setImageLoaded","img","React","logoImage","aspectRatio","maxWidth","onClick","visibility","FormLogo","updateFormProperty","styleJSON","_formLogoProperties_topPosition","_formLogoProperties_image","wrapperClass","topPosition","handleFormWidthChange","onUpdating","logoWidth","immediate","debouncedHandleFormWidthChange","callNow","clearTimeout","marginBottom","bottomMargin","propTypes","FORM_TEXTS","confirmEmail","pleaseWait","validateEmail","confirmClearForm","lessThan","incompleteFields","requireOne","requireEveryRow","requireEveryCell","email","alphabetic","numeric","alphanumeric","cyrillic","currency","fillMask","uploadExtensions","noUploadExtensions","uploadFilesize","uploadFilesizemin","gradingScoreError","inputCarretErrorA","inputCarretErrorB","maxDigitsError","minCharactersError","maxCharactersError","freeEmailError","minSelectionsError","maxSelectionsError","pastDatesDisallowed","dateLimited","dateInvalid","dateInvalidSeparate","ageVerificationError","multipleFileUploads_typeError","multipleFileUploads_sizeError","multipleFileUploads_minSizeError","multipleFileUploads_emptyError","multipleFileUploads_uploadFailed","multipleFileUploads_onLeave","multipleFileUploads_fileLimitError","dragAndDropFilesHere_infoMessage","chooseAFile_infoMessage","maxFileSize_infoMessage","generalError","generalPageError","wordLimitError","wordMinLimitError","characterLimitError","characterMinLimitError","ccInvalidNumber","ccInvalidCVC","ccInvalidExpireDate","ccInvalidExpireMonth","ccInvalidExpireYear","ccMissingDetails","ccMissingProduct","ccMissingDonation","disallowDecimals","restrictedDomain","ccDonationMinLimitError","requiredLegend","geoPermissionTitle","geoPermissionDesc","geoNotAvailableTitle","geoNotAvailableDesc","geoTimeoutTitle","geoTimeoutDesc","selectedTime","formerSelectedTime","cancelAppointment","cancelSelection","noSlotsAvailable","slotUnavailable","multipleError","oneError","doneMessage","invalidTime","doneButton","reviewSubmitText","nextButtonText","prevButtonText","seeErrorsButton","notEnoughStock","notEnoughStock_remainedItems","soldOut","justSoldOut","selectionSoldOut","subProductItemsLeft","startButtonText","submitButtonText","submissionLimit","reviewBackText","seeAllText","progressMiddleText","fieldError","closest","_element","stopSelector","retval","parentElement","support","searchParams","blob","formData","arrayBuffer","viewClasses","normalizeName","normalizeValue","iteratorFor","items","Headers","append","header","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","readAsArrayBuffer","bufferClone","buf","view","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","_bodyFormData","_bodyArrayBuffer","readAsText","readArrayBufferAsText","chars","json","oldValue","Request","upcased","credentials","referrer","form","bytes","Response","bodyInit","redirectStatuses","redirect","DOMException","init","xhr","abortXhr","rawHeaders","preProcessedHeaders","fetch","ancestor","contains","origin","deviceSize","cardwidthp","cardwidthpt","cardwidtht","cardwidthsm","cardwidthm","cardwidthxl","cardSize","addClass","classes","removeClass","hasClass","toggleClass","isDescendant","initialValue","hasTouch","isTesting","deviceHasTouch","maxTouchPoints","msMaxTouchPoints","msPointerEnabled","MSGesture","DocumentTouch","querySelector","isVisible","elem","opacity","offsetWidth","offsetHeight","getBoundingClientRect","elemCenter","left","top","clientWidth","innerWidth","clientHeight","innerHeight","pointContainer","elementFromPoint","makeHiddenSubmissionKey","formID","createInput","triggerEvent","eventName","fireEvent","enableDisableDOMElements","translateItem","formTranslation","FormTranslation","currentText","originalElement","originalFormElements","originalDynamicFormElements","originalText","translation","translateCardTexts","translateDefaultCardFormTexts","getBrowserProperties","bowser","osName","browserName","isAndroid","isWebkit","isMobile","isTablet","browserVersion","osVersion","getDeviceType","TOOLTIP_TYPES","INFO","ERROR","ERROR_TYPES","TOOLTIP","MOST_USED_PROVIDERS","EmojiList","Progress","layoutElements","progress","getElementById","progressItems","progressToggle","progressCurrentIndexText","progressQuestionCountText","progressItemsLine","getElementsByClassName","progressItemWrapper","isFormProgressVisible","populateProgressItems","progressItemCells","cards","layoutParams","selectedIndex","hiddenIndexes","validIndexes","invalidIndexes","deviceType","isHidden","isFeedbackEmbedButton","isSaveAndContinueLaterActivated","events","onFormOverviewClicked","onItemSelected","bindSwipeOverviewMode","progressItem","keyCode","click","setCurrentIndexText","setFirstLastCellClasses","setQuestionOrderNumbers","shouldProgressDisplayed","hideProgressBar","tStartY","tEndY","touches","screenY","isInScrollMode","diff","selectIndex","innerText","getVisibleIndex","setValidIndexes","indexArr","invisibleCountToIndex","visibleItemCount","setValidIndex","setInvalidIndexes","setInvalidIndex","setIndexVisibility","unsetInvalidIndex","unsetValidIndex","questions","cellTemplate","newCells","cell","label","question","cellParent","showProgressBar","isFirstSet","isLastSet","visibleCells","queryValues","parseQueryString","query","vars","queryString","pair","JotForm","calculations","calculation","newStr","replaceText","sanitizer","DomPurify","stripScripts","stripEvents","replaceValue","progressText","showProgressBarIfNeeded","Overlay","overlayedQuestions","bindOverlayEvents","openSaveAndContinueModal","clearImageSrc","openOverlay","saclModal","closeSaveAndContinueModal","ID","imageWrapper","_question","imageElement","openNewTabButton","openImageOverlay","overlayImage","overlayWrapper","closeOverlay","hasSaveAndContinueLater","overlayClose","closestDiv","uploadRemoveSVG","getUploaderTemplate","buttonText","getUploadedFileTemplate","onUploadComplete","scrollTop","onUploadAdd","allUploadLists","uploadList","getUploaderSelectors","button","drop","dropActive","file","spinner","deleteItem","uploading","success","SummaryPage","makeList","products","formProducts","emptyList","inpt","checked","productID","getProductID","hasSubProduct","subProducts","getSubProducts","makeListItem","sub","prices","hasSpecialQuantityPricing","specialPriceField","quantity","getQuantity","getProductName","price","getProductPrice","PaymentStock","handleStockManagement","setOriginalDynamicFormElements","shoppingBag","setHeight","isSubProduct","pid","productMini","productMiniHeader","makeProductMiniHeader","productMiniBody","productMiniOptions","quantityOption","makeProductMiniOption","productOptions","expanded","expandedIndex","quantityFieldID","miniOption","properties","fieldParameters","valueField","qLine","productMiniActions","makeProductMiniActions","listWrapper","hasQuantityField","quantityField","getProductFromID","hasExpandedOption","expandedOption","getExpandedOption","optIndex","subProduct","productName","subProductSelectedIndex","specialPrice","specialPriceList","prod","makeNameContainer","container","specialPriceIndex","makePriceContainer","makeEditButton","editButton","editButtonClick","decimal","dSeparator","tSeparator","currencyFormat","productMiniTitle","productMiniPrice","formatMoney","productMiniRemoveButton","removeButtonClick","buttonKeyPress","productMiniEditButton","getProduct","productMiniOption","productMiniOptionName","productMiniOptionColon","productMiniOptionValue","backToProductList","inputId","openProductDetails","closeSummaryPage","slideUp","openSummaryPage","slideDown","makeRemoveButton","removeButton","isProductRequired","disabled","removeItemFromList","hasSelectedSubProductItem","updateCartItems","removeFromBag","preventDefault","stopPropagation","backButtonClick","isEditButtonVisible","summaryList","summarListItem","currDisplay","backButton","selectors","productDetail","ShoppingBag","initShoppingBag","isSingleSelection","unclickableProduct","hasRequiredProduct","handleProductClick","detailsBackButtonHandler","addButton","addToBag","productImage","enableImagePreview","onProductImageClicked","handleDetailsRemoveButton","setProductHeight","shoppingBagButton","changeShoppingBagButtonPosition","productListWrapper","footer","recalculateProductHeights","hasClassName","hideQuestionHeader","hideProductList","hideFooter","hideShoppingBagButton","summaryPage","getProductInputIDs","showShoppingBagButton","showFooter","showProductList","showQuestionHeader","show","hide","productsListItems","pageIndex","productIndex","getProductsPerPage","productPages","handlePageChange","hasProductOption","inputSelectors","paymentCard","showDetailPage","setNextButtonState","setDetailPageButtons","activeProduct","calculateTotal","highlightProductItem","resetDetailState","removeHighlightProductItem","totalItems","getTotalSelectedItems","updateShoppingBagButton","totalSelectedItems","selectedSubProduct","zeroOptionProductClick","setActiveProduct","inputElement","changeEventForCondition","Event","bubbles","isEditButtonClicked","isCameFromEdit","unsetActiveProduct","productWrapper","force","hasOption","hasSubProductItem","acu","splittedKey","allProducts","pro","shakeFooter","detail","orientationChange","activeProductDetailState","getProductOptions","option","cardQuestionWrapper","productModuleWrapper","countTotal","ele","complete","clonedElement","radio","elementHeight","onPageChange","isDisabled","CardForm","getCurrentCard","actionsButtons","detailFooterButton","setOnPageChange","ProductPages","initProductPages","paginationWrapper","productsPerPage","productsPerPageFixed","totalPage","createPaginationItems","bindPrevButtonClick","bindNextButtonClick","triggerPageChange","removeAllItems","startPage","selectedPage","maxVisiblePages","endPage","visibleFirstPage","visibleLastPage","pageItem","createPaginationItem","pageWrapper","pageNumber","pageLabel","pageButton","getActivePage","getActivePageNumber","activePage","updateButtonStatus","previousPageButton","firstPage","nextPageButton","lastPage","handlePrevClick","handleFirstClick","handleNextClick","handleLastClick","activePageNumber","nextPageNumber","changeActivePage","updateProductList","setNextPageProductsHeight","nextPage","nextPageItem","paginationWrapperDisplayStyle","availableSpaceForListItem","getAvaibleMaxHeight","productsListWrapper","setProductsPerPage","productsSummaryWrapper","getStopNodeInnerHeight","siblingsHeight","elementSiblings","getElementSiblings","getSiblingHeight","getNodeMarginAndPadding","getStyleSum","styles","computedStyle","sum","Donation","initDonation","suggestions","field","onSuggestionChange","donationField","onDonationFieldChange","donationFieldOverlay","onOverlayClick","resetDonationField","openDonationField","donationSpecial","closeDonationField","questionWrapper","Patch","patchSubmit","captchaMode","grecaptcha","captchaFilled","validateAll","stopImmediatePropagation","execute","enableButtons","onSubmit","postFormData","clb","http","getFormData","setOrPush","getFormResults","formElements","formParams","patchHandleSavedForm","handleSavedForm","originalHandleSavedForm","hiddenSubmissionKey","sessionID","submissionToken","submissionID","previousSessionObject","continueLater","useStorage","storageEngine","isAvailable","parseJSON","delete","forms","submissionTokenInput","submissionIDInput","sessionInput","patchSetSubmissionID","setSubmissionID","originalSetSubmissionID","patchErrored","errored","_input","_message","dontShowMessage","errorType","isFullScreen","otherCheckboxInput","otherRadioInput","showTooltip","errorMessage","card","getContainer","insertEl","mobileErrorWrapper","addElementIfNotExists","_card","errorClass","errorWrapper","addBefore","errorElement","role","prepend","existingErrorElement","onFieldErrored","patchCorrected","corrected","erroredChildren","onFieldCorrected","patchDateTime","Calendar","originalCalendarSetup","setup","checkFieldFilledClass","originalSelectHandler","selectHandler","calendar","dateField","triggerElement","startOnMonday","limits","calendarObject","cardContainer","onCalendarSelected","onCalendarInit","validateInput","patchShowHideFields","showField","hideField","showOrHideMultipleFields","shouldBeVisible","fields","additionalParams","fieldIds","failedFieldIds","callable","onFieldVisibilityChanged","patchRequireField","originalRequire","requireField","onRequireField","patchEnableDisableField","originalFunc","enableDisableField","enable","onEnableDisableField","patchFileUploaderTemplates","onFileUploadChanged","onDelete","patchCreditCardAddressVisibilityChanged","setCreditCardVisibility","onCreditCardAddressVisibilityChanged","patchIsVisible","patchHandlePaymentSubProducts","handlePaymentSubProducts","paymentWithSubProduct","subProductsQuantity","sp","subproduct","changeEvent","totalCounter","patchInitShoppingBag","patchInitProductPages","patchInitDonation","donation","patchHandleSingleChoiceWithMultiTypeColumns","patchHandleSingleChoiceWithMultiTypeColumnsMobile","patchHandleSingleChoiceWithMultiTypeColumnsDesktop","listItem","inputCellChild","formRadioElements","selectedItem","selectedElementName","parentCells","parentCellsLength","matrixCellsItem","radioCellItem","notSelectedItem","setValue","firstChildOfE","handleSingleChoiceWithMultiTypeColumnsForCardForms","getPacContainer","pacContainerObject","pacContainerKey","handleGeocodingResult","place","zipComponent","address_components","address","long_name","zipRegex","streetAddress","formatted_address","setAddressFieldValue","handleSafariProcess","handleAddressComponents","showHiddenFields","questionContainer","getQuestionContainer","getQuestionCard","updateFeedbackEmbedHeight","bindAutocompleteEvents","autocompleteFields","clearField","autocomplete","geolocationField","bindPacContainer","addListener","inputKey","gm_accessors_","pacContainer","setPacContainerState","handleAutocompleteResult","getPlace","clearAddressSubFields","inProgress","GeocoderAPI","PositionAPI","geolocation","getCurrentPosition","coords","latitude","longitude","geocoder","geocode","placeResult","catch","alert","appendDiv","createPacAdditionItem","togglePacContainer","addressSearch","addressTypeSuffixMap","suffixKey","blur","streetRegexMatch","adr_address","streetAddressValue","relativity","handleRelativity","extendedAddressRegexMatch","validateInputsAgain","geocoderPromise","fieldsToCheck","nameArr","isSafari","addressComponents","addressComponent","addressTypes","adaptCityState","googleMapsAPI","google","maps","placesAPI","places","AutocompleteAPI","Autocomplete","Geocoder","LatLng","searchFields","fullScreenContainer","getGeolocationField","getClearField","convertToClean","markerSpan","querySpan","cleanContainer","setFieldIsFilledIfHasValue","formLine","dropdownSearchField","city","postalTown","district","sublocality","locality","cityField","addressHasAddressTypes","short_name","countrySpecifications","administrative_area_level_1","postal_code","street","street2","searchField","TR","GB","DE","getDefaultOptions","rowSelector","labelSelector","rangeSelector","scaleSeperatorSelector","visibleClass","transitionClass","filledClass","scaleListItemSelector","getPixelByPercent","sliderRow","setRange","percent","isInit","_container_querySelector","selectedRangeArea","allScales","nearest","getNearestScale","newLabel","newLabelScale","scaleSeperator","dataset","visibleLabel","getVisibleLabel","currentPercentage","questionLabel","qid","visibleLabelAlt","alt","sliderButton","setPointerValues","startX","pixelByPercent","positionX","isTouchEvent","abs","makeInitialSelection","initialWith","parsedWidth","lastSelection","setFilled","handleMove","clientX","currentPx","handleMoveEnd","onChange","handleMoveStart","startPercent","moveNextStep","stepSize","movePreviousStep","handleKeyDown","handlePopulateData","featureSet","useDcols","dataType","row","percentage","filledIndex","currIndex","sliderInputs","sliders","slider","matrixContainer","handleSliders","handleToggles","initMobileYesNoButtons","onSliderValueChange","sliderIndex","rowCount","isDesktopSlider","equalSlider","scaleItem","_this_question","Slider","initMobileSliderButtons","mobileSlider","mobileNext","mobilePrev","rowList","bulletList","rowLength","currentRow","mobileItems","newIndex","newEl","matrix","lastStatus","yesSelection","noSelection","elementCount","changeStatus","activeOrder","autoNextTimer","selectNextQuestion","TLDs","tlds","EMAIL_PATTERN","clearTranslationMarkup","textParents","selectParents","elc","outline","zIndex","originalSize","originalMultiple","addTranslationMarkup","initial","currentStyle","maxHeight","searchTextInDOM","classesToBeFiltered","rgx","isInViewport","offsetTop","elementRect","windowHeight","windowWidth","scrollX","pageXOffset","scrollY","pageYOffset","casperJsTest","scrollIntoView","behavior","block","getTextContents","Translations","currentLocaleUntranslated","untranslatedStrings","currentProcessed","processedStrings","allUntranslatedStrings","initServerSideDictionary","langCode","dictionary","setLocale","filterUntranslatedStrings","strings","updateProcessedStrings","addUntranslatedString","rotateUntranslatedStrings","foundStrings","orderElements","textContents","dictionaries","handleMissingKey","translate","translated","variables","templateSyntax","strVar","variableName","eraseTemplate","usedTranslations","useTranslationScreenshots","debounceProcess","callTimer","processNotTranslated","debounceTime","limitElements","processLimit","filterFalseTranslations","screenshots","emptyIndexes","filteredStrings","filteredScreenshots","ss","resetProcess","casperjsTestDomParam","foundElements","captureInProcess","orderedFoundElements","elementsToProcess","untranslatedToPost","takeScreenShot","ssDataAll","submitNotTranslated","submitPromises","depthCount","depthLabel","qs","action","lang_code","autoSuggestion","screenshot","foundElement","visibilityResult","wholeText","capturedData","tempCaptureData","filterTags","filteredNodeClass","classStr","filterClasses","defaultLang","langCodes","tr","es","pt","fr","de","bg","sr","hu","fi","ka","nl","uk","ua","ko","ar","ja","pl","ca","sv","no","da","ro","ru","zh","af","he","partialTranslations","DEFAULT_LANGUAGE","isProduction","_global_window___jfrouter","_global_window1","__jfrouter","JOTFORM_ENV","encodedAndProcessedStrings","processTranslation","_string_replace","TextEncoder","encoded","crypto","subtle","digest","padStart","encodeUsedTranslations","translations","collectionTimer","getFullYear","getMonth","getDate","hours","getHours","UTC","getMinutes","startDate","endDate","unlocalizeOriginHref","_Object_keys","shortLangCodes","exp","prepareControlModeChange","controlMode","loaded","prepareAddTranslationToDictionary","translationData","clearedDic","dic","generateDictionaryURL","sanitizedCode","loadDictionaryViaTag","tmpScriptTag","Locale","language","loadDictionaryViaFetch","prepareAddDictionary","partialDictionaryName","_global_window_location","_global1","addTranslationToDictionary","partialDictionaryPath","loadMethod","sendUsedTranslationsInterval","isNil","processUsedTranslationsInterval","forceStopCollecting","setInterval","_global_Translations_encodedAndProcessedStrings","_global_Translations_usedTranslations","_global_location","finishInterval","clearInterval","hashes","res","_res_data","responseCode","_this","branding21","initializeTranslationFromGlobal","_global_window_Locale","addDictionary","controlModeChange","__t","startCollectUsedTranslationsInterval","useLocaleDictionary","isFilled","isEmail","defaultSelectors","prompter","successIcon","failIcon","changeEmailButton","resendCodeButton","sentVerificationText","patienceText","didntReceiveVerification","or","translateSentVerificationText","sentVerificationTextHTML","resendCodeButtonText","orText","didntReceiveVerificationText","changeEmailButtonText","updateStyledEmail","setLayoutElements","handleInputEvent","onResendCode","onChangeEmail","setEmailAddress","mailAddress","emailAddress","updateElement","clearValue","clearIcons","reflectOnPrompter","functions","prompterValue","verificationCallback","onSuccess","onFail","onFinished","which","substring","persistentKeyList","StorageHelper","testStorage","testItem","testKey","storage","getStorage","setItem","getItem","removeItem","storageBase","sessionStorage","localStorage","defaultValue","itemString","expiry","ttl","isPersistantKey","maxCount","numericVal","isEqual","keyOrPattern","Storage","setLocalStorageItem","removeLocalStorageItem","readCookie","createCookie","eraseCookie","deleteAll","regex","baseLocalStorageKey","Email","getLayoutElements","initVerificationArea","emailVerificationArea","sendVerificationCodeButton","isEmailVerified","handleSendVerificationCodeButton","cancelVerificationStep","finishVerificationStep","checkVerificationCode","resendVerificationCode","onVerificationSuccess","verificationPrompterBox","VerificationPrompterBox","onVerificationFail","_token","setMode","validations","primaryInput","confirmationInput","getInputValidations","isVerificationCodeFresh","loadVerificationCodeInfo","generateToken","localStorageKey","emailDomain","hasAtCharacter","emailUsername","hasDotCharacter","hasVerificationArea","hasValidation","freeEmailAddresses","isFreeDomain","currentDomainName","isAcceptedDomain","acceptedDomains","hasError","isEmailVerificationButtonActive","hasSuggestion","providerList","domainList","strip","showSuggestions","useTooltip","suggestionList","checkList","emailTLD","newMode","setVerificationStatus","validateField","formId","formIdStr","temporal","formIdLastNumber","tokenCode","newToken","saveVerificationCodeInfo","verificationCodeInfo","generatedAt","nowTimestamp","deleteVerificationCodeInfo","storageData","clearVerificationCodeInfo","validationName","closeTooltip","removeTooltip","addTooltip","misspelledDomain","suggestedEmail","tooltipOptions","onClose","moveSuggestionDropdownToBody","suggestionDropdown","handleDropdownPosition","inputRect","bottom","handleDropdownEvents","domainOptions","handleSuggestionOptions","ul","closeDropdown","itemText","handleFuzzySearch","fuzzySearch","_searchItem","itemArray","completeValue","firstPart","searchItem","secondPart","testElem","mailProviders","_provider","provider","testParts","handleTooltip","onTypingFinished","confirmValue","setVerificationButtonStatus","startVerificationMode","apiURL","responseObject","sendVerificationCodeButtonWrapper","confirmationCode","addHiddenField","openDropdown","resetTimer","typingTimeout","handleConfirmationInputEvent","deep","_dontShowMessage","verificationButtonStatus","primaryInputValue","confirmationValue","errorDetails","errorState","isValidEmail","targetInput","isEditMode","overridenValidateInput","fieldContainer","sliderOptions","_params_question","feedbackIframeMessager","sendPostMessage","setOS","OS","messageType","setDeviceType","updateWindowHeight","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","exitFullscreen","mozCancelFullScreen","mozCancelFullscreen","webkitExitFullscreen","msExitFullscreen","fullscreenElement","webkitFullscreenElement","webkitCurrentFullScreenElement","mozFullScreenElement","msFullscreenElement","radios","checkboxes","yesNos","bindEvents","optionInputs","optionInput","currentTarget","handleEvents","validateCard","isPreviewMode","Dropdown","jfDropdown","elementsArr","dropdown","getItems","getElements","getList","popupListUl","bindDropdownEvents","bindSearchInput","updatePopupPosition","movePopupListBelowButton","setInitialValues","popupContainer","fontSize","nextSibling","rect","dropdownWrapper","parentRect","popup","documentMode","select","searchInput","defaultChips","chipContainer","_ul","nodes","shuffled","filterOptionList","newItems","selectedOptions","selectedOption","isMultiple","itemValue","noResult","searchVal","searchInputPlaceholder","setSearchInputValue","selectEl","defaultChip","chipVal","newList","fireChangeEvent","customList","optVal","optionValue","replacedOptVal","chip","removeChipButton","selectOptionValue","selectOption","singleSelect","isPopupOpen","bindDropdownKeyEvents","bindClickOutside","scrollableDiv","scrollParent","bindSelectChangeEvent","isDropdownDisabled","selectFromKeyboard","moveNextPrevElement","jsSelected","toggleSearchInput","jfOpts","closeAllDropdowns","chipSpan","direction","alignToTop","nextElement","isSelected","firstOption","selectValue","selectText","selectElement","selectedItems","selected","createClickEvent","initMouseEvent","generateEmojiPicker","editor","emojiPicker","emojiList","generateEmojiList","generateEmojiListItem","generateEmojiButton","emoji","emojiLink","emojiButton","handleEmojiButtonClick","restoreSelection","selection","getSelection","focusNode","anchorOffset","focusOffset","isLeft","startPart","endPart","emojiPart","range","createRange","setStart","collapse","removeAllRanges","addRange","handleEmojiTriggerClick","triggetButton","btnRect","emojiPickerWidth","spaceLeft","neededSpace","emojiContainer","isSelectionCollapsed","isCollapsed","selectionFocus","saveSelection","selectionState","getSelectedRange","getRangeAt","rangeCount","setSelectionRange","createTextRange","ch","getToolbarButtonByCommand","command","editorToolbarButtons","namedItem","questionID","initBasic","editorManipulationEventList","eventType","editorInput","limitsCounter","bindEditorButton","btn","bindEditorButtonModal","EmojiPicker","editorContainer","bindEditorButtonSelect","handleEditorButtonClick","listParent","listItems","evt","modalDiv","modalBtn","modalInput","handleModalExecution","isCommandActive","selectedText","isValidUrl","validUrlRegex","validationRegexes","tagToAdd","execCommand","togglableCommands","handleEditorMutation","delayedCall","createNewEvent","isSaveNeed","isUpdateNeed","handleKeydownEvent","preventNextKeyUp","updateToolbarStatus","limitSpan","limitValidation","shortcutKey","keyCommandMap","shiftKey","getActiveTags","commandTagMap","heading","tagsToSearch","activeTags","activeTagsInfo","haystack","li","tagValue","methodToUse","textToCheck","renderType","childElements","limitType","isMinFailed","minLimit","isMaxFailed","maxLimit","limitValue","errorPrefix","errorTextKey","errorText","setMarkdownFromHtml","toMarkdown","htmlText","markdownText","setHtmlFromMarkdown","md","showdown","Converter","mdText","converter","makeHtml","initEditor","contentEditable","bold","italic","underline","insertOrderedList","insertUnorderedList","formatBlock","createLink","insertImage","editorClassName","editorToolbar","headerSelector","contentSelector","creditCardAddressSelector","labelIdPostfix","creditCard","paymentType","paymentCards","plaid","paymentTypes","cloneWrapper","wrapperContainer","cloneCard","indexContainer","pressEnterContainer","submit","removeSiblings","setCardLabel","textContainerElement","labelText","nodeValue","getPaymentCard","constructProductCard","hideSingleProduct","forceHide","constructPaymentMethodCard","constructCreditCard","constructAddressCard","constructEmailCard","constructPlaidCard","constructNewCard","wrapperSelector","padding","populateCards","_cards","labels","oldCardIndex","oldPaymentCardWrapper","paypalSPBLabel","newCards","actionButtonsWrapper","wrappers","calendarContainer","liteModeInput","dateInput","blotId","setCalendarVisibility","isCalendarVisible","setInputVisibility","bindToggleButton","bindDateInput","moveCalendarToBody","bindCalendarCloseOnDateSelect","updateCalendarPosition","setInputType","inputType","hideDefaultInputFields","onLiteInputChange","clearDateInputs","validate","dateFormat","dateSeperator","seperator","formattedDate","setDate","previousSibling","additionalProps","isDesktop","dateCards","inlineQuestionsCards","DateHandler","closeAllCalendars","listenCalendarOutsideClick","updateCalendarPositions","listenResize","apiClient","withBaseUrl","requestOptions","EmbedOptions","bindIframeMessageListener","listenEmbedOptionsMessage","attachEvent","handleOptionsButtonClick","togglePanelStatus","populateEmbedOptionsButton","optionsButton","setStyle","cursor","tooltip","textAlign","borderRadius","tooltipSpan","link","addStyle","applyStyles","addStyleWithTag","tagId","styleText","cssRule","isEmbedButton","showOwnerButton","embedStyleJSON","beginBackgroundColor","formBackgroundImage","buttonBackgroundColor","buttonTextColor","color","svgStyle","sectionBackgroundColor","sectionTextColor","fill","cardBorderColor","border","nextButtonColor","prevButtonColor","overviewColor","progressBackground","overviewTextColor","progressTextColor","toggleProgress","toggleOverview","toggleLogo","formLogo","toggleTitle","headerText","toggleShadow","onlyCard","sizeTitle","calculateWelcomeSize","loadEmbedStyle","requestStorageAccess","handleInlineEmbedAPIRequest","embedUrl","embedUrlHash","embedKeys","formcss","cdn","formcssUrl","embedHash","actions","queryParameters","client","clients","getEmbedStyles","saveEmbedStyles","requestBody","resetEmbedStyles","withButton","callbackDenied","hasStorageAccess","permission","permissions","initializeModernProgress","dummyItem","initializeStandardProgress","itemWrapper","calculateFormHeight","welcomeRect","welcomeSubRect","totalWelcome","progressRect","footerHeight","currentCardFontSizePx","total","layout","handleQuestionChange","inlineEmbed","nanoid","getRandomValues","byte","defaultIcon","savedIcon","errorIcon","SaveAndContinueLater","initiate","inited","generateSessionID","openSaveAndContinueLaterModal","active","hiddenSubmitter","overlay","continue","changeState","states","saved","newState","icon","stateElement","progressSacl","tranlatedTexts","info","uniq","emailAnswerFinder","saving","fieldRelatedNavigationKeyCodes","INPUT","TEXTAREA","NonInputFields","Cards","isTouchDevice","arrangeSectionHeaders","welcomePageProps","sectionHeaders","cardAnimationWrapper","welcomeCardBackground","startButton","previousButton","welcomeWrapper","featureBadge","welcomeContainer","welcomeHeaderContainer","welcomeSubHeaderContainer","welcomeSectionInfoText","welcomeSectionInfoQuestionCount","logoContainer","progressWrapper","progressContainer","mobileNavigationWrapper","mobileNextButton","mobilePrevButton","mobileSubmitButton","mobileUseJFSignButton","mobileProgressInfo","fullScreenProxy","formWrapper","staticItems","backgroundVideoPlayer","indexes","formlines","pressEnterContainers","ownerView","isHiddenField","widgetType","sheetField","submissionWidget","cardToolbar","isReadOnly","prevCard","hasSubmit","cardLabels","getCardLabels","Payment","paymentsMergedCards","newResult","updateCardLabels","currentCardSize","leftMargin","currentCardIndex","cardMode","formMode","cardScrollScale","scaleFactor","scrollLeftExtra","resolutionType","browserProperties","forTemplate","reviewBeforeSubmit","globalCardScaleFactor","isFeedbackEmbed","allQuestions","smartEmbedMaxHeight","isFullScreenMode","fullscreenForm","fullscreenMode","isEmbed","minLabelFontSize","minDescFontSize","ownerPercentage","initMobileVersion","isSSOProtected","initializeFeedbackEmbedMode","hwFeedbackEmbed","FeedbackIframeMessager","initializeHWFeedbackEmbedButton","OptionsBase","Address","datetimeHandler","DatetimeHandler","markdownEditor","Textarea","ProgressClass","onProgressItemSelected","bindCardClickEvents","checkAndSetDeviceType","questionIdFromHash","getQuestionIdFromUrlHash","initialCardIndex","questionIndexFromHash","isVisibleIndex","initialFormMode","setCardIndex","setFormMode","updateFormHeader","getSectionHeaderForIndex","bindResizeEvent","recalculateLayout","recalculateBackgroundStyle","bindPrevNextButtonsClick","newInitialCardIndex","isPrefillCompleted","isPrepopulationCompleted","bindInputChange","bindSelectChange","bindKeyUpEvent","bindDragPage","onLoad","isFullscreenFormEnabled","FS","Fullscreen","bindStartButton","Sentry","isNewForms","sentryConfig","dsn","enviroment","whitelistUrls","integrations","Integrations","GlobalHandlers","onunhandledrejection","blacklistUrls","ignoreErrors","beforeSend","calculateInitialCardHeight","bindTouchSwipeEvents","bindInputFocus","bindFocusOnMobileWithKeyboard","repositionActionButtons","setMobilePrevNextQuestionButtons","renderReCaptcha","updateCardIndexes","bindChangeEventForPressEnter","bindHashChangeEvent","attachComponentClassToCard","checkCardIfMoveAutomatically","isAccessibleForm","_card_question","_this_currentCard_question","isCurrentCard","currentCard","setCardTabIndex","tabIndex","handleFullScreenToggle","bindMobileValidations","enableTransitions","initBackgroundImageLoader","handleBackgroundVideo","replaceSubmitWithReviewAndSubmit","bindFormSubmit","checkCardsIfFilled","onEditModeCompleted","fillInitialValuesForEditMode","clearAddressFields","setDropdownInitialValues","continueCardIndex","showProgress","isAdmin","bindFullScreenMode","embedOptions","saveAndContinueLater","newCardFormMobile","formFooter","setUserVars","isCardFormNewMobile_bool","newFormFooter","footerButton","footerLogo","createUniqueSubmitterID","focusableElements","getElementsByFocus","excludeAttributes","excludeStyles","hasExcludedStyles","notSelectors","focusableQuery","offsetParent","attributesArray","_window_getComputedStyle","componentClass","Matrix","showInputTooltip","removeInputTooltip","EmojiSlider","checkFeedbackEmbedMode","JotformFeedbackManager","updateCardStatus","inputs","erroredCards","handleKeyboardTabs","newField","relatedTarget","newCardIndex","selectPreviousQuestion","questionType","fullScreenBtn","skipCardTypes","containerHeight","toggleFullScreenMode","cardActions","cardActionNotifications","cardQuestion","cardQuestionShadow","cardToolbarShadow","applyFullScreenModeUI","updateMatrixLayout","toggleFullScreenDisplayMode","textareaLimitSpan","modeSwitch","focusedElement","checkFocus","isWelcome","cardformWelcome","cardformHeader","hideWelcomeBadges","shortenHeaders","showButtonMessage","submitError","erroredFieldCount","blurBefore","squarePayment","validateFields","squareCc","selectedOpt","allSquarePaymentOptions","isSquareApmSelected","apm","hasValidateClass","widgetsToCheck","isValid","paymentTotal","braintree","stripe","validateStripe","isPaymentSelected","hasMinTotalOrderAmount","handleMinTotalOrderAmount","__mollie","cardFormMollieValidate","validateStock","isWidgetRequired","addressContainer","autocompleteField","hideButtonMessage","cardIndex","isCardFilled","widgetFrame","isWidgetFilled","submitErr","updateDropdown","customSelect","recalculateTransform","scaleValue","currentScrollLeft","getScrollLeft","transformOrigin","webkitTransform","MozTransform","msTransform","webkitTransformOrigin","MozTransformOrigin","msTransformOrigin","scrollToFirstError","getNearestCardIndexInScrollMode","setCardMode","firstErroredProgress","recalculateSmartEmbedLayout","handleFeedbackButtonProgress","visibleQuestions","currentQuestionIndex","feedbackProgress","removeLayoutAnimation","addLayoutAnimation","selectQuestion","welcomProps","_header","hidden","subHeader","_index","currentHeader","sectionHeader","_document_querySelector","_this_layoutElements_previousButton","_this_layoutElements_startButton","_document_querySelector1","_this_layoutElements_previousButton1","_this_layoutElements_startButton1","previousButtonText","showSectionInfo","showQuestionCount","sectionQuestionCount","actionNextText","actionPreviousText","headIndex","currentHeaderID","nextHeaderID","currentHeaderIndex","nextHeaderIndex","visibleSectionQuestions","ariaHidden","checkHeaderSubHeaderCharLimits","translateSectionHeader","setPrevNextQuestion","nextIndex","prevIndex","firstVisibleIndex","getFirstVisibleIndex","lastVisibleIndex","getLastVisibleIndex","submitButton","useJotformSign","doObjectsCollide","DOMNode1","DOMNode2","checkTolerance","getBoundsForNode","scrollLeft","coordsCollide","aTop","aLeft","bTop","bLeft","aWidth","aHeight","bWidth","bHeight","tolerance","toleranceDistance","checkCollision","aObj","bObj","questionHeight","bottomBarHeight","cardDimensions","isSmartEmbed","jsForm","welcomeContainerDimensions","progressContainerDimensions","requiredHeight","handleFormSubmitError","newVisibleCard","errorCards","errQCount","lastElementIndex","othersText","newText","actionHTML","withoutTransition","currMode","animationState","isLayoutAnimated","previousCard","disableWidget","setMatrixLayout","hideWelcomeIndex","hasWelcome","isFormTitleVisible","hideHeader","showHeader","focusToFirstInput","hiddenSubmit","pressEnterHint","canQuestionMoveAutomatically","question_type","calculateAvailableHeightForFields","firstPageOnly","firstVisibleCardIndex","setLanguageDropdownVisibility","handleWidgetsVisibility","forceSubmit","sessionAndTokenBasedSACLActivated","onlySessionBasedSACLActivated","jotformForm","currentValues","getInputNamesAndValues","getFormDataDiff","lastAnswers","loadingPendingSubmission","merged","mergeDiffWithStaticData","dummyForm","async","onSuccessCb","resJSON","submissionId","regexTempFile","makeUploadChecks","onFailureCb","onCompleteCb","simpleSpc","currentData","previousData","include","regexOneDim","checkboxOther","visibleCards","_global_JotForm_accessible","accessible","_this_cards","isAIAgentEmbed","isContinueLaterActivated","isSessionIDExists","hiddenSubmissionSessionID","session","isManualPrefillCreation","isPrefilledForm","prefillToken","isEnabled","isSingleCardNoWelcome","cardWrapper","actionPart","lastPart","tooltipContainer","tooltipMessageContainer","tooltipCloseButton","textNode","lastNode","allTypes","keyName","submitFormWithJS","touchEvents","nonInputElements","component","screenX","startY","moveX","moveY","vertical","checkConditionOnCurrentCard","isAndroidDevice","scrollElement","activeElement","disableTransitions","recalculateCurrentCardHeight","isOpenedOnJotFormMobileApp","onLocationHashChange","addScrollLeftDelta","delta","qCount","currentVisibleIndex","maxScroll","currentScroll","minScroll","autoSelectNextQuestion","elementArray","autoSelectionTimeoutQueue","timeOutId","timeOut","inpts","isAutoMoveEnabledForField","srcElement","fieldParent","nextMode","transitionsAsIs","sectionHeaderForFirstVisibleIndex","logo","nextButton","isNotNoJump","calculatePaymentHeights","calculateProductsPerPage","isTransitionsEnabled","setScale","factor","isExistsInArray","questionTypes","closeTimezonePicker","openTimezonePicker","ignoreValidation","nextVisibleIndex","jumpToQuestionPageTriggered","nextPageId","headerInBetween","nextHeader","shakeCard","focusToFirstError","erroreousInput","prevVisibleIndex","findEmailAnswer","emailCards","currentQuestion","disallowedKeyCodes","isContentEditable","disableEnterEvent","disableEscapeEvent","metaKey","altKey","addedIndex","scaledCardSize","indexDiff","hiddenCountInBetween","onWheel","passive","calculateAllCardsHeight","deltaY","deltaX","getTotalWidth","questionCount","setWrapperWidth","for1Template","marginLeft","getCurrentOrientation","screen","orientation","screenOrientation","mozOrientation","msOrientation","calculateOrientationType","angle","checkAndSetBrowserBasedClasses","orientationType","currentClasses","newClasses","classNames","cname","currentClassName","newClassName","viewportWidth","viewportHeight","currentOrientation","backgroundStyle","backgroundSize","backgroundPosition","getXPos","mouseDown","isDraggingStart","dragStartX","mouseUp","isDragging","mouseMove","ids","cardsToUpdate","lengthClass","classesToRemove","setCardVisibility","currentIndex","labelContainer","requiredElement","addRequiredElementToCard","cardElement","span","messageSpan","labelElement","checkValid","checkIsFilled","onkeypress","handleKeyPress","editableTextareaDiv","focusElements","isFocused","localName","isTextArea","selectionQuery","focusElement","jfQuestionFields","tableRows","tableRow","pointerEvents","columnDotListText","removeProperty","jfMatrixPrevButton","jfMatrixNextButton","forMobile","forMobileCheck","questionsThatNeedBlocker","eventBlocker","checkjfQuestionField","checkjfCardAction","recaptchaInvisible","addClassName","sitekey","badge","recaptchaCallback","reCaptchaResponseField","setFieldValidation","hCaptchaResponseField","hcaptchaCallback","disableButtons","setCardActionMode","oldText","jotformSignButton","headerWrapper","subHeaderWrapper","shortenElementContent","setElementVisibility","characterLimit","jfcard","player","pause","computedStyles","removeNotLoaded","isRemoved","intervalID","bindChangeEventForNextButtons","updateNextButtonClasses","targetCard","serialize","missingFields","markDownFields","otherData","exactValue","translator","decoded","decodeHtmlEntities","inputNamesAndValues","elementId","jfCard","existingCard","multiSelectElements","valid","customDraw","getCardReviewCustomDraw","div","productRow","productSelection","pNameAndDetails","pName","pDetails","pSpan","optionLabel","optionSpan","copy","amount","currencyLeft","currencyRight","currencyLeftTextContent","currencyRightTextContent","totalTextContent","totalSpan","creditCardWrapper","answer","answerSpan","textNodeContent","labelSpan","widgetData","widget_metadata","ex","filteredInputs","dataVal","choiceWrapper","matrixCell","valueCell","createDatetimeReviewString","textareaWrapper","timeFormat","sign","inputValues","customDraws","hour","ampm","datetimeString","datetime","toLocaleDateString","findLocaleDelimiter","sortedValues","cur","setHours","setMinutes","toLocaleTimeString","minute","dateTimeTextNode","adjustAppointmentDate","duration","replaceAll","setTime","DAYS_OF_WEEK","getDay","padStart2","prepareReviewMarkup","itemTemplate","lines","markup","cardOrder","answersContainer","editLink","showFormPreview","resultLabel","imageChoiceContainer","imageChoiceContent","answerContent","answerImage","takePhotoContainer","takePhotoContent","isJsonString","setHeader","valueElement","headerTr","thead","td","uniqueValues","fieldsToTranslate","firstVal","secondVal","questionIndex","reviewContainer","listContainer","old","cloneDesktopSubmitButton","invisibleSubmitButton","cloneMobileSubmit","reviewText","backText","overrideSubmitButton","submitButtonInReview","backToFormButtons","useJFSignButton","reviewButton","replaceChild","disableSubmitButton","toggleDisableSubmitMessage","setButtonActions","getTotalWelcome","nextCardIndex","welcomeTopMargin","paddingBottom","bottomPaddingTotal","paddingTop","charLimits","calculateCardsHeight","fileList","checkedIndex","starsInput","lowest","newQuestionId","newQuestionIndex","onFormTranslated","translateComponentFields","translateListOfQuestionsItems","listOfQuestionItems","labelTextWithoutQNumber","cardTexts","currentLang","to","translateText","questionTitle","headerTranslation","subHeaderTranslation","sectionText","sectionInfoText","nextButtonTranslation","prevButtonTranslation","setInitialSelectionForMatrixSliders","matrixQuestion","cleanClass","calculateCardHeight","whitelistedQuestionTypes","maxCardHeight","getFontSize","decreaseLabelFontSize","cardHasScroll","isLabelSingleLine","labelLineHeight","lineHeight","actionButtonWrapperHeight","overflowY","formUserHeader","labelFontSize","descFontSize","langDropdown","visibleCard","showWidget","conditions","isConditionRelatedWithCurrentField","terms","term","checkCondition","onSCLStateChange","asyncInitSaveAndContinueLaterFlow","getSCLManager","newSCLManager","triggerButtonSelector","onStateChange","localConfiguration","initSaveAndContinueLater","updateCardProgressItem","patch","CardLayout"],"mappings":"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CA,aACA,iBACA,2BACA,OACA,QACA,QACA,mBACA,0BACA,WACA,UACA,QACA,eACA,aACA,gBACA,UACA,OACA,aACA,SACA,iBACA,mCACA,UACA,WACA,WACA,qBACA,UACA,QACA,cACA,oBACA,UACA,UACA,WACA,mBACA,gBACA,OACA,UACA,SACA,mBACA,QACA,aACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,aACA,OACA,YACA,WACA,SACA,gBACA,SACA,QACA,WACA,YACA,UACA,UACA,QACA,YACA,OACA,OACA,UACA,SACA,QACA,UACA,QACA,SACA,SACA,aACA,QACA,WACA,cACA,cACA,SACA,SACA,aACA,OACA,SACA,UACA,UACA,UACA,QACA,gBACA,YACA,aACA,QACA,YACA,aACA,SACA,WACA,WACA,OACA,QACA,mBACA,aACA,aACA,YACA,UACA,SACA,aACA,UACA,SACA,WACA,aACA,aACA,UACA,aACA,UACA,mBACA,UACA,QACA,QACA,cACA,uBACA,gBACA,cACA,YACA,QACA,UACA,OACA,iBACA,sCACA,mBACA,SACA,OACA,WACA,QACA,YACA,SACA,mBACA,WACA,OACA,cACA,mBACA,SACA,WACA,cACA,QACA,wBACA,UACA,SACA,SACA,mBACA,eACA,wBACA,cACA,eACA,4BACA,mCACA,QACA,aACA,wBACA,eACA,UACA,SACA,aACA,eACA,YACA,WACA,WACA,kBACA,UACA,aACA,eACA,gBACA,cACA,QACA,YACA,QACA,WACA,WACA,WACA,SACA,cACA,QACA,SACA,aACA,WACA,WACA,cACA,OACA,UACA,QACA,6BACA,sBACA,mBACA,UACA,SACA,eACA,2BACA,SACA,SACA,UACA,uBACA,iBACA,gBACA,UACA,aACA,UACA,eACA,YACA,UACA,yBACA,cACA,oBACA,oBACA,iBACA,QACA,SACA,WAAW,CD3MQpwD,GAAG,CAACqwD,GAAWA,EAAQvZ,MAAM,GAChD,EACA,iBAAkB,CAChBoZ,SAAU,WACVllE,MAAO2kE,CACT,EACAW,OA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"}