{"version":3,"sources":["file://webpack/bootstrap","file:///opt/wh/whtree/node_modules/core-js/modules/_export.js","file:///opt/wh/whtree/node_modules/core-js/modules/_global.js","file:///opt/wh/whtree/node_modules/core-js/modules/_fails.js","file:///opt/wh/whtree/node_modules/core-js/modules/_an-object.js","file:///opt/wh/whtree/node_modules/core-js/modules/_is-object.js","file:///opt/wh/whtree/node_modules/core-js/modules/_wks.js","file:///opt/wh/whtree/modules/system/js/dompack/index.es","file:///opt/wh/whtree/node_modules/core-js/modules/_to-length.js","file:///opt/wh/whtree/node_modules/core-js/modules/_core.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-dp.js","file:///opt/wh/whtree/node_modules/core-js/modules/_descriptors.js","file:///opt/wh/whtree/node_modules/core-js/modules/_to-object.js","file:///opt/wh/whtree/node_modules/core-js/modules/_redefine.js","file:///opt/wh/whtree/node_modules/core-js/modules/_string-html.js","file:///opt/wh/whtree/node_modules/core-js/modules/_has.js","file:///opt/wh/whtree/node_modules/core-js/modules/_hide.js","file:///opt/wh/whtree/node_modules/core-js/modules/_to-iobject.js","file:///opt/wh/whtree/modules/tollium/js/gettid.es","file:///opt/wh/whtree/node_modules/core-js/modules/_strict-method.js","file:///opt/wh/whtree/node_modules/core-js/modules/_ctx.js","file:///opt/wh/whtree/node_modules/core-js/modules/_a-function.js","file:///opt/wh/whtree/node_modules/core-js/modules/_to-integer.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-gopd.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-sap.js","file:///opt/wh/whtree/node_modules/core-js/modules/_array-methods.js","file:///opt/wh/whtree/node_modules/core-js/modules/_cof.js","file:///opt/wh/whtree/node_modules/core-js/modules/_defined.js","file:///opt/wh/whtree/node_modules/core-js/modules/_typed-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/_to-primitive.js","file:///opt/wh/whtree/node_modules/core-js/modules/_meta.js","file:///opt/wh/whtree/node_modules/core-js/modules/_property-desc.js","file:///opt/wh/whtree/node_modules/core-js/modules/_uid.js","file:///opt/wh/whtree/node_modules/core-js/modules/_library.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-keys.js","file:///opt/wh/whtree/node_modules/core-js/modules/_to-absolute-index.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-create.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-gopn.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-gpo.js","file:///opt/wh/whtree/node_modules/core-js/modules/_add-to-unscopables.js","file:///opt/wh/whtree/node_modules/core-js/modules/_validate-collection.js","file:///opt/wh/whtree/modules/system/js/wh/integration.es","file:///opt/wh/whtree/node_modules/core-js/modules/_set-to-string-tag.js","file:///opt/wh/whtree/node_modules/core-js/modules/_string-trim.js","file:///opt/wh/whtree/node_modules/core-js/modules/_iterators.js","file:///opt/wh/whtree/node_modules/core-js/modules/_set-species.js","file:///opt/wh/whtree/node_modules/core-js/modules/_an-instance.js","file:///opt/wh/whtree/node_modules/core-js/modules/_redefine-all.js","file:///opt/wh/whtree/modules/system/js/dompack/src/debug.es","file:///opt/wh/whtree/node_modules/core-js/modules/_iobject.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-pie.js","file:///opt/wh/whtree/node_modules/core-js/modules/_classof.js","file:///opt/wh/whtree/node_modules/core-js/modules/_species-constructor.js","file:///opt/wh/whtree/modules/publisher/js/forms/internal/form.lang.json","file:///opt/wh/whtree/modules/system/js/dompack/src/events.es","file:///opt/wh/whtree/node_modules/core-js/modules/_shared.js","file:///opt/wh/whtree/node_modules/core-js/modules/_array-includes.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-gops.js","file:///opt/wh/whtree/node_modules/core-js/modules/_is-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/_iter-detect.js","file:///opt/wh/whtree/node_modules/core-js/modules/_flags.js","file:///opt/wh/whtree/node_modules/core-js/modules/_regexp-exec-abstract.js","file:///opt/wh/whtree/node_modules/core-js/modules/_fix-re-wks.js","file:///opt/wh/whtree/node_modules/core-js/modules/_for-of.js","file:///opt/wh/whtree/node_modules/core-js/modules/_user-agent.js","file:///opt/wh/whtree/node_modules/core-js/modules/_collection.js","file:///opt/wh/whtree/node_modules/core-js/modules/_typed.js","file:///opt/wh/whtree/modules/system/js/dompack/extra/browser.es","file:///opt/wh/whtree/modules/publisher/js/forms/internal/form.rpc.json","file:///opt/wh/whtree/node_modules/core-js/modules/_dom-create.js","file:///opt/wh/whtree/node_modules/core-js/modules/_wks-ext.js","file:///opt/wh/whtree/node_modules/core-js/modules/_shared-key.js","file:///opt/wh/whtree/node_modules/core-js/modules/_enum-bug-keys.js","file:///opt/wh/whtree/node_modules/core-js/modules/_html.js","file:///opt/wh/whtree/node_modules/core-js/modules/_set-proto.js","file:///opt/wh/whtree/node_modules/core-js/modules/_string-ws.js","file:///opt/wh/whtree/node_modules/core-js/modules/_inherit-if-required.js","file:///opt/wh/whtree/node_modules/core-js/modules/_string-repeat.js","file:///opt/wh/whtree/node_modules/core-js/modules/_math-sign.js","file:///opt/wh/whtree/node_modules/core-js/modules/_math-expm1.js","file:///opt/wh/whtree/node_modules/core-js/modules/_string-at.js","file:///opt/wh/whtree/node_modules/core-js/modules/_iter-define.js","file:///opt/wh/whtree/node_modules/core-js/modules/_string-context.js","file:///opt/wh/whtree/node_modules/core-js/modules/_is-regexp.js","file:///opt/wh/whtree/node_modules/core-js/modules/_fails-is-regexp.js","file:///opt/wh/whtree/node_modules/core-js/modules/_is-array-iter.js","file:///opt/wh/whtree/node_modules/core-js/modules/_create-property.js","file:///opt/wh/whtree/node_modules/core-js/modules/core.get-iterator-method.js","file:///opt/wh/whtree/node_modules/core-js/modules/_array-fill.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.iterator.js","file:///opt/wh/whtree/node_modules/core-js/modules/_regexp-exec.js","file:///opt/wh/whtree/node_modules/core-js/modules/_advance-string-index.js","file:///opt/wh/whtree/node_modules/core-js/modules/_task.js","file:///opt/wh/whtree/node_modules/core-js/modules/_typed-buffer.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_global.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_is-object.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_descriptors.js","file:///opt/wh/whtree/modules/system/js/dompack/extra/cookie.es","file:///opt/wh/whtree/modules/system/js/dompack/src/tree.es","file:///opt/wh/whtree/modules/publisher/js/forms/internal/merge.es","file:///opt/wh/whtree/modules/publisher/js/forms/formbase.es","file:///opt/wh/whtree/modules/publisher/js/forms/internal/customvalidation.es","file:///opt/wh/whtree/modules/system/js/wh/rpc.es","file:///opt/wh/whtree/modules/system/js/compat/upload.es","file:///opt/wh/whtree/node_modules/core-js/modules/_ie8-dom-define.js","file:///opt/wh/whtree/node_modules/core-js/modules/_wks-define.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-keys-internal.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-dps.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-gopn-ext.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-assign.js","file:///opt/wh/whtree/node_modules/core-js/modules/_same-value.js","file:///opt/wh/whtree/node_modules/core-js/modules/_bind.js","file:///opt/wh/whtree/node_modules/core-js/modules/_invoke.js","file:///opt/wh/whtree/node_modules/core-js/modules/_parse-int.js","file:///opt/wh/whtree/node_modules/core-js/modules/_parse-float.js","file:///opt/wh/whtree/node_modules/core-js/modules/_a-number-value.js","file:///opt/wh/whtree/node_modules/core-js/modules/_is-integer.js","file:///opt/wh/whtree/node_modules/core-js/modules/_math-log1p.js","file:///opt/wh/whtree/node_modules/core-js/modules/_iter-create.js","file:///opt/wh/whtree/node_modules/core-js/modules/_iter-call.js","file:///opt/wh/whtree/node_modules/core-js/modules/_array-species-create.js","file:///opt/wh/whtree/node_modules/core-js/modules/_array-reduce.js","file:///opt/wh/whtree/node_modules/core-js/modules/_array-copy-within.js","file:///opt/wh/whtree/node_modules/core-js/modules/_iter-step.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.regexp.exec.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.regexp.flags.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.promise.js","file:///opt/wh/whtree/node_modules/core-js/modules/_new-promise-capability.js","file:///opt/wh/whtree/node_modules/core-js/modules/_promise-resolve.js","file:///opt/wh/whtree/node_modules/core-js/modules/_collection-strong.js","file:///opt/wh/whtree/node_modules/core-js/modules/_collection-weak.js","file:///opt/wh/whtree/node_modules/core-js/modules/_to-index.js","file:///opt/wh/whtree/node_modules/core-js/modules/_own-keys.js","file:///opt/wh/whtree/node_modules/core-js/modules/_string-pad.js","file:///opt/wh/whtree/node_modules/core-js/modules/_object-to-array.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_core.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_fails.js","file:///opt/wh/whtree/modules/system/js/dompack/browserfix/focus.es","file:///opt/wh/whtree/modules/system/js/dompack/src/promise.es","file:///opt/wh/whtree/modules/system/js/dompack/types/text.es","file:///opt/wh/whtree/modules/system/js/dompack/extra/keyboard.es","file:///opt/wh/whtree/modules/publisher/js/forms/fields/fileeditbase.es","file:///opt/wh/whtree/modules/system/js/dompack/extra/preload.es","file:///opt/wh/whtree/node_modules/@babel/polyfill/lib/index.js","file:///opt/wh/whtree/node_modules/@babel/polyfill/lib/noConflict.js","file:///opt/wh/whtree/node_modules/regenerator-runtime/runtime.js","file:///opt/wh/whtree/node_modules/core-js/es6/index.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.symbol.js","file:///opt/wh/whtree/node_modules/core-js/modules/_function-to-string.js","file:///opt/wh/whtree/node_modules/core-js/modules/_enum-keys.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.create.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.define-property.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.define-properties.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.get-prototype-of.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.keys.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.get-own-property-names.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.freeze.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.seal.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.prevent-extensions.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.is-frozen.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.is-sealed.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.is-extensible.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.assign.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.is.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.set-prototype-of.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.object.to-string.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.function.bind.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.function.name.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.function.has-instance.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.parse-int.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.parse-float.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.constructor.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.to-fixed.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.to-precision.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.epsilon.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.is-finite.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.is-integer.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.is-nan.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.is-safe-integer.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.max-safe-integer.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.min-safe-integer.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.parse-float.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.number.parse-int.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.acosh.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.asinh.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.atanh.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.cbrt.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.clz32.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.cosh.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.expm1.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.fround.js","file:///opt/wh/whtree/node_modules/core-js/modules/_math-fround.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.hypot.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.imul.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.log10.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.log1p.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.log2.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.sign.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.sinh.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.tanh.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.math.trunc.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.from-code-point.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.raw.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.trim.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.iterator.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.code-point-at.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.ends-with.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.includes.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.repeat.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.starts-with.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.anchor.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.big.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.blink.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.bold.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.fixed.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.fontcolor.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.fontsize.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.italics.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.link.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.small.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.strike.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.sub.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.string.sup.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.date.now.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.date.to-json.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.date.to-iso-string.js","file:///opt/wh/whtree/node_modules/core-js/modules/_date-to-iso-string.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.date.to-string.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.date.to-primitive.js","file:///opt/wh/whtree/node_modules/core-js/modules/_date-to-primitive.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.is-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.from.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.of.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.join.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.slice.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.sort.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.for-each.js","file:///opt/wh/whtree/node_modules/core-js/modules/_array-species-constructor.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.map.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.filter.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.some.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.every.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.reduce.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.reduce-right.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.index-of.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.last-index-of.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.copy-within.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.fill.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.find.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.find-index.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.array.species.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.regexp.constructor.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.regexp.to-string.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.regexp.match.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.regexp.replace.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.regexp.search.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.regexp.split.js","file:///opt/wh/whtree/node_modules/core-js/modules/_microtask.js","file:///opt/wh/whtree/node_modules/core-js/modules/_perform.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.map.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.set.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.weak-map.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.weak-set.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.typed.array-buffer.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.typed.data-view.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.typed.int8-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.typed.uint8-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.typed.int16-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.typed.uint16-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.typed.int32-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.typed.uint32-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.typed.float32-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.typed.float64-array.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.apply.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.construct.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.define-property.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.delete-property.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.enumerate.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.get.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.get-prototype-of.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.has.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.is-extensible.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.own-keys.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.prevent-extensions.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.set.js","file:///opt/wh/whtree/node_modules/core-js/modules/es6.reflect.set-prototype-of.js","file:///opt/wh/whtree/node_modules/core-js/fn/array/includes.js","file:///opt/wh/whtree/node_modules/core-js/modules/es7.array.includes.js","file:///opt/wh/whtree/node_modules/core-js/fn/array/flat-map.js","file:///opt/wh/whtree/node_modules/core-js/modules/es7.array.flat-map.js","file:///opt/wh/whtree/node_modules/core-js/modules/_flatten-into-array.js","file:///opt/wh/whtree/node_modules/core-js/fn/string/pad-start.js","file:///opt/wh/whtree/node_modules/core-js/modules/es7.string.pad-start.js","file:///opt/wh/whtree/node_modules/core-js/fn/string/pad-end.js","file:///opt/wh/whtree/node_modules/core-js/modules/es7.string.pad-end.js","file:///opt/wh/whtree/node_modules/core-js/fn/string/trim-start.js","file:///opt/wh/whtree/node_modules/core-js/modules/es7.string.trim-left.js","file:///opt/wh/whtree/node_modules/core-js/fn/string/trim-end.js","file:///opt/wh/whtree/node_modules/core-js/modules/es7.string.trim-right.js","file:///opt/wh/whtree/node_modules/core-js/fn/symbol/async-iterator.js","file:///opt/wh/whtree/node_modules/core-js/modules/es7.symbol.async-iterator.js","file:///opt/wh/whtree/node_modules/core-js/fn/object/get-own-property-descriptors.js","file:///opt/wh/whtree/node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","file:///opt/wh/whtree/node_modules/core-js/fn/object/values.js","file:///opt/wh/whtree/node_modules/core-js/modules/es7.object.values.js","file:///opt/wh/whtree/node_modules/core-js/fn/object/entries.js","file:///opt/wh/whtree/node_modules/core-js/modules/es7.object.entries.js","file:///opt/wh/whtree/node_modules/core-js/fn/promise/finally.js","file:///opt/wh/whtree/node_modules/core-js/modules/es7.promise.finally.js","file:///opt/wh/whtree/node_modules/core-js/web/index.js","file:///opt/wh/whtree/node_modules/core-js/modules/web.timers.js","file:///opt/wh/whtree/node_modules/core-js/modules/web.immediate.js","file:///opt/wh/whtree/node_modules/core-js/modules/web.dom.iterable.js","file:///opt/wh/whtree/modules/publisher/js/internal/polyfills/modern.es","file:///opt/wh/whtree/node_modules/core-js/library/fn/global.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/es7.global.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_export.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_ctx.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_a-function.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_hide.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_object-dp.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_an-object.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_ie8-dom-define.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_dom-create.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_to-primitive.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_property-desc.js","file:///opt/wh/whtree/node_modules/core-js/library/modules/_has.js","file:///opt/whdata/installedmodules/rotarynl.20250206T113012.116Z/webdesigns/org001/index.es","file:///opt/wh/whtree/modules/system/js/dompack/src/busy.es","file:///opt/wh/whtree/modules/system/js/dompack/extra/storage.es","file:///opt/wh/whtree/modules/system/js/dompack/src/create.es","file:///opt/wh/whtree/modules/system/js/dompack/src/components.es","file:///opt/wh/whtree/modules/publisher/js/internal/rtd.lang.json","file:///opt/wh/whtree/modules/publisher/js/richcontent/all.es","file:///opt/wh/whtree/modules/publisher/js/richcontent/video.es","file:///opt/wh/whtree/modules/publisher/js/forms/index.es","file:///opt/wh/whtree/modules/publisher/js/analytics/consenthandler.es","file:///opt/wh/whtree/modules/publisher/js/forms/internal/webharefields.es","file:///opt/wh/whtree/modules/system/js/dompack/extra/merge.es","file:///opt/wh/whtree/modules/publisher/js/forms/fields/checkboxgroup.es","file:///opt/wh/whtree/modules/publisher/js/forms/fields/radiogroup.es","file:///opt/wh/whtree/modules/publisher/js/forms/fields/addressfield.es","file:///opt/wh/whtree/modules/publisher/js/forms/fields/arrayfield.es","file:///opt/wh/whtree/modules/publisher/js/forms/fields/captchafield.es","file:///opt/wh/whtree/modules/publisher/js/captcha/api.es","file:///opt/wh/whtree/modules/consilio/js/pxl.es","file:///opt/wh/whtree/modules/publisher/js/forms/rpc.es","file:///opt/wh/whtree/modules/system/js/dompack/types/datetime.es","file:///opt/wh/whtree/modules/publisher/js/forms/internal/emailvalidation.es","file:///opt/wh/whtree/modules/publisher/js/forms/fields/upload.es","file:///opt/wh/whtree/modules/publisher/js/forms/fields/imgedit.es","file:///opt/wh/whtree/modules/publisher/js/forms/fields/rtd/index.es","file:///opt/wh/whtree/modules/system/js/dompack/api/dialog.es","file:///opt/wh/whtree/modules/tollium/web/ui/components/richeditor/styling.es"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","installedCssChunks","2","__webpack_require__","exports","module","l","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","s","global","core","hide","redefine","ctx","$export","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","expProto","Function","U","W","R","Math","self","__g","exec","isObject","it","TypeError","store","uid","USE_SYMBOL","toInteger","min","version","__e","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","Attributes","a","defined","has","SRC","$toString","TPL","split","inspectSource","val","safe","isFunction","join","String","this","fails","quot","createHTML","string","attribute","p1","replace","NAME","test","toLowerCase","createDesc","IObject","language","tids","allTids","tidMerge","readContext","writeContext","keys","Array","isArray","curLang","encodeHTML","input","resolveTid","tid","params","options","text","domdebug","debugflags","sut","pop","substr","indexOf","wh","config","islive","gtd","warn","overridelanguage","getTidLanguage","group","info","context","every","part","found","executed","executeCompiledTidText","rich","output","tok","get_param","sub","subs","toUpperCase","subselse","link","linkparam","encoding","encodeValue","html","groupEnd","getTid","p2","p3","p4","arguments","getHTMLTid","documentElement","lang","convertElementTids","scope","body","from","querySelectorAll","forEach","node","textContent","addEventListener","set","method","arg","aFunction","fn","that","b","apply","ceil","floor","isNaN","pIE","toIObject","gOPD","getOwnPropertyDescriptor","KEY","toObject","toLength","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","res","index","result","toString","LIBRARY","$typed","$buffer","anInstance","propertyDesc","redefineAll","toIndex","toAbsoluteIndex","classof","isArrayIter","getPrototypeOf","gOPN","getIterFn","wks","createArrayMethod","createArrayIncludes","speciesConstructor","ArrayIterators","Iterators","$iterDetect","setSpecies","arrayFill","arrayCopyWithin","$DP","$GOPD","RangeError","Uint8Array","ArrayProto","$ArrayBuffer","ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayFind","arrayFindIndex","arrayIncludes","arrayIndexOf","arrayValues","values","arrayKeys","arrayEntries","entries","arrayLastIndexOf","lastIndexOf","arrayReduce","reduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","sort","arraySlice","arrayToString","arrayToLocaleString","toLocaleString","ITERATOR","TAG","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","toOffset","BYTES","offset","validate","C","speciesFromList","list","fromList","addGetter","internal","_d","$from","step","iterator","aLen","mapfn","mapping","iterFn","next","done","$of","TO_LOCALE_BUG","$toLocaleString","proto","copyWithin","start","fill","filter","find","predicate","findIndex","searchElement","includes","separator","map","reverse","middle","some","comparefn","subarray","begin","end","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","len","$iterators","isTAIndex","$getDesc","$setDesc","desc","configurable","writable","$TypedArrayPrototype$","constructor","wrapper","CLAMPED","GETTER","SETTER","TypedArray","Base","TAC","FORCED","ABV","TypedArrayPrototype","addElement","v","round","setter","$offset","$length","byteLength","klass","$len","iter","concat","$nativeIterator","CORRECT_ITER_NAME","$iterator","of","valueOf","META","setDesc","id","isExtensible","FREEZE","preventExtensions","setMeta","w","meta","NEED","fastKey","getWeak","onFreeze","bitmap","px","random","$keys","enumBugKeys","max","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","contentWindow","open","write","lt","close","Properties","hiddenKeys","getOwnPropertyNames","ObjectProto","UNSCOPABLES","_t","instr","assign","ismodal","dompack","flagUIBusy","url","idoc","contentDocument","form","generateForm","action","vars","adopted_form","adoptNode","submit","location","submitForm","reload","opener","postMessage","parent","item","whconfigel","querySelector","JSON","parse","obj","site","errhandler","statuscode","statusmessage","def","stat","spaces","space","ltrim","RegExp","rtrim","exporter","ALIAS","FORCE","trim","DESCRIPTORS","SPECIES","Constructor","forbiddenField","parseDebugURL","varname","urldebugvar","match","debugstr","decodeURIComponent","addDebugFlags","flags","flagname","startsWith","classList","add","log","debugcookie","domcookie","read","cof","propertyIsEnumerable","ARG","T","tryGet","callee","D","registerTexts","element","fireHTMLEvent","prop","evt","CustomEvent","bubbles","cancelable","detail","defaultaction","dispatchEvent","defaultPrevented","defaulthandler","changeValue","newvalue","NodeList","nodeName","checked","dispatchDomEvent","charCodeAt","keyIdentifier","keyCode","keydata","fromCodePoint","parseInt","char","ctrlKey","altKey","shiftKey","metaKey","repeat","isComposing","preventDefault","stopImmediatePropagation","eventconstructor","createEvent","initCustomEvent","Event","eventtype","ownerDocument","createtype","initEvent","relatedTarget","IScroll","_constructed","copyright","IS_INCLUDES","el","fromIndex","getOwnPropertySymbols","SAFE_CLOSING","riter","skipClosing","arr","ignoreCase","multiline","unicode","sticky","builtinExec","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","str","arg2","forceStringMethod","strfn","rxfn","BREAK","RETURN","iterable","navigator","userAgent","forOf","setToStringTag","inheritIfRequired","methods","common","IS_WEAK","ADDER","fixMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","clear","getConstructor","setStrong","Typed","TypedArrayConstructors","parseUserAgent","ua","UA","platform","ret","device","documentMode","browser","RPCClient","default","rpcclient","rpcResolve","_handleLegacyRPCResolve","invoke","JSONRPC","HTTP_ERROR","JSON_ERROR","PROTOCOL_ERROR","RPC_ERROR","OFFLINE_ERROR","TIMEOUT_ERROR","SERVER_ERROR","getUploadedFileFinalURL","GetUploadedFileFinalURL","uploadurl","getImgFromRemoteURL","GetImgFromRemoteURL","requestBuiltinForm","RequestBuiltinForm","submitinfo","filename","formname","validateEmbeddedObjects","ValidateEmbeddedObjects","objrefs","callFormService","CallFormService","args","validateEmail","ValidateEmail","langcode","emailaddress","is","shared","check","setPrototypeOf","buggy","__proto__","count","Infinity","sign","x","$expm1","expm1","TO_STRING","pos","charAt","$iterCreate","BUGGY","returnThis","DEFAULT","IS_SET","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","isRegExp","searchString","MATCH","$defineProperty","getIteratorMethod","endPos","addToUnscopables","iterated","_i","_k","Arguments","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","lastIndex","reCopy","at","defer","channel","port","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","nextTick","now","port2","port1","onmessage","importScripts","BaseBuffer","abs","pow","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","NaN","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","intIndex","_b","pack","conversion","ArrayBufferProto","j","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","isIsolated","isolatedcookies","entry","cookie","parts","Cookie","remove","path","domain","duration","secure","encode","httponly","httpOnly","samesite","encodeURIComponent","date","Date","setTime","getTime","toGMTString","selector","closest","matches","parentElement","ancestor","child","nodes","before","insertBefore","generateInsertList","after","nextSibling","replaceWith","replaceChild","firstChild","classname","settoggle","toggle","toggles","lastChild","relativeto","nodecoords","getBoundingClientRect","relcoords","top","left","right","bottom","width","height","callback","isDomReady","stack","fileName","lineNumber","columNumber","attributename","doc","baseURI","base","URL","node_or_selector","IS_NON_DIMENSIONAL","cssText","createTextNode","frag","createDocumentFragment","tocall","matchesSelector","msMatchesSelector","webkitMatchesSelector","readyState","anyinputselector","submitselector","getErrorFields","validationresult","failed","field","dataset","whFormName","whFormGroupFor","hasEverFailed","contains","doValidation","isafter","propWhFormhandler","owner","focusfailed","handleValidateEvent","handleValidateAfterEvent","FormBase","formnode","elements","webharefields","setup","_checkClick","_onTakeFocus","_onInputChange","_submit","_doSubmit","_doSetFieldError","_rewriteEnableOn","_updateConditions","_applyPrefills","pagestate","_getPageState","_updatePageVisibility","pages","_updatePageNavigation","_formhandling","pxl","_formsessionid","generateId","_firstinteraction","formid","whFormId","sendPxlEvent","ds_formmeta_id","ds_formmeta_session","dn_formmeta_time","dn_formmeta_pagenum","curpage","ds_formmeta_pagetitle","_getPageTitle","qSA","control","whFormEnable","ourcondition","matchtype","whFormEnabledIf","conditions","stringify","searchparams","searchParams","_queryAllFields","allvalues","getAll","multi","shouldbechecked","setFieldValue","tocheck","_","_isNowSettable","formhandling","_dovalidation","_curtriggerevents","triggerevents","_curafterevents","triggerafterfailure","eventname","noValidate","getError","mygroup","failedfield","toggleClass","Node","dispatchCustomEvent","messagenode","suggestionholder","className","append","empty","_updateFieldGroupMessageState","propWhSetFieldError","propWhValidationError","propWhValidationSuggestion","stop","reportimmediately","_reportFieldValidity","iserror","propWhFormNativeError","issuggestion","_updateFieldGroupErrorState","_updateFieldGroupSuggestionState","extradata","submitter","_submitter","fhv","tempbutton","propWhErrorServerSide","propWhCleanupFunction","lock","component","_submitstart","warnslow","_submittimeout","_submitHasTimedOut","resetServerSideErrors","valid","submittype","_getVariableValueForConditions","sendFormEvent","ds_formmeta_errorfields","ds_formmeta_errorsource","dn_formmeta_waittime","release","ds_formmeta_waitfor","containingpage","pagenum","page","gotoPage","actionnode","executeFormAction","whFormAction","pagelist","currentpage","idx","state","scrollto","origscrollto","scrollIntoView","pageidx","goingforward","dn_formmeta_targetpagenum","ds_formmeta_targetpagetitle","merge","getFormValue","direction","propWhFormCurrentVisible","pagenode","whFormPagetitle","_getDestinationPage","whFormBacklink","validationstatus","isinit","hiddenPages","mergeNodes","anychanges","formpage","visible","whFormVisibleIf","_matchesCondition","tovalidate","hiddengroups","enabledgroups","requiredgroups","formgroup","enabled","propWhFormInitialRequired","required","whFormRequiredIf","propWhFormCurrentEnabled","propWhFormCurrentRequired","formline","propWhFormlineCurrentVisible","inputtargets","propWhFormSavedEnabled","disabled","propWhFormSavedRequired","node_enabled","propWhNodeCurrentEnabled","removeAttribute","node_required","propWhNodeCurrentRequired","option","option_enabled","selectnode","selected","whPlaceholder","selectedIndex","iffailedbefore","fixupMergeFields","formvalue","mergeNode","whDontMerge","conditiontext","condition","_matchesConditionRecursive","fieldname","hasAttribute","matchfield","HTMLCollection","RadioNodeList","currentvalue","checkdisabled","conditionfield","fields","attrname","_getConditionRawValue","selectedvalue","qS","__extrafields","extrafields","subcondition","matchcase","compareagainst","birthdate","age","getFullYear","getMonth","getDate","nextpage","morepages","curpagerole","whFormPagerole","nextpagerole","toggleClasses","richvalues","whFormPageredirect","executeSubmitInstruction","updateRichValues","CSS","escape","innerHTML","registerMissed","whUseFormGetValue","deferred","createDeferred","files","compatupload","getFileAsDataURL","dataurl","fieldnode","foundfields","startnode","skiparraymembers","skipfield","_isPartOfForm","onlysettable","addto","getFieldValue","getMultifieldValue","outdata","fieldpromises","_processFieldValue","_getQueryiedFieldValue","catch","receivedvalue","inputnode","fieldline","opts","getOptions","getSelectedOptions","vals","getValues","setFieldError","validity","customError","validationMessage","valueMissing","rangeOverflow","rangeUnderflow","badInput","tooShort","minLength","tooLong","maxLength","stepMismatch","typeMismatch","alreadyfailed","checkValidity","validitystatus","_getErrorForValidity","whFormsBuiltinChecker","validateSingleFormField","whFormsApiChecker","limitset","fdv","firstfailed","siblings","sibling","fld","_validateSingleFieldOurselves","validationresults","validationcancelled","tofocus","domfocus","canFocusTo","getFocusableComponents","focus","preventScroll","reportValidity","reset","getForNode","setupValidator","checker","submitbutton","click","serverside","removeEventListener","setupServerErrorClear","setCustomValidity","metadata","globalseqnr","ControlledCall","client","callurl","fetchoptions","abortcontroller","AbortController","signal","_handleTimeout","_abort","_callurl","_fetchoptions","fetchpromise","fetch","_completeCall","__jsonrpcinfo","timedout","abort","aborted","resolution","legacyresolve","response","status","retry429","headers","retryafter","debug","json","jsonresponse","_tryLogError","wrapresult","whservicematch","rpc","origin","addfunctionname","urlappend","_legacyResolve","trace","rec","line","col","func","credentials","keepalive","Boolean","uploaddefer","inputOptions","accept","mimetypes","multiple","capture","getName","lastinputnode","canceluploadhandler","uploader","wh_testapi_fakeupload","upl","file","reader","FileReader","readdata","readAsDataURL","newchunksize","default_upload_chunk_size","queue_manager","EventTarget","handlers","eventhandlers","RawUploadItem","pvt_sessionid","pvt_parentgroup","pvt_start","pvt_history","pvt_end","speed","getCurrentSpeed","remainingbytes","getUploadSize","getUploaded","getElapsedTime","last","first","loaded","getSessionId","sessionid","setSessionId","uploaded","size","addProgressToHistory","splice","SchedulableRawUploadItem","schedule","UploaderAggregator","pvt_subitems","pvt_aborting","pvt_sentloadstart","pvt_sentloadend","subitems","gotLoadStart","fireProgress","gotAbort","gotError","gotLoad","gotLoadEnd","getCompletedFiles","filetoken","fileinfo","downloadurl","fullpath","getFileTokens","pvt_sendloadstart","fireLoadStart","fireLoad","pvt_sendloadend","fireLoadEnd","Html5UploadItem","host","html5file","upload_chunk_size","uploadchunksize","transferbaseurl","pvt_host","pvt_fileid","pvt_file","items","total","ofs","chunksize","Html5SingleChunk","setItems","uploadfile","xmlhttp","pvt_loaded","XMLHttpRequest","overrideMimeType","canStart","upload","gotProgress","send","responseText","fileid","complete","contenttype","UploadItemGroup","fromFileList","uploadhost","filelist","pending","running","gotEnd","processQueue","UploadSession","getBaseURI","started","anyerror","getEventDetail","gotabort","success","wksExt","$Symbol","names","getKeys","defineProperties","windowNames","getWindowNames","gOPS","$assign","A","K","k","getSymbols","isEnum","y","factories","construct","partArgs","bound","un","$parseInt","$trim","ws","hex","radix","$parseFloat","parseFloat","msg","isFinite","log1p","descriptor","original","memo","isRight","to","inc","forced","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","task","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","isNode","newPromiseCapability","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","_n","chain","_c","_v","ok","_s","reaction","exited","handler","fail","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","capability","$$reject","remaining","$index","alreadyCalled","race","PromiseCapability","$$resolve","promiseCapability","$iterDefine","SIZE","getEntry","_f","_l","prev","$has","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","ufstore","number","Reflect","ownKeys","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","isEntries","getActiveElement","activeElement","getToplevelWindow","toplevelwindow","frameElement","getIframeFocusableNodes","currentnode","recurseframes","subnodes","isContentEditable","nodeType","contentEditable","tabIndex","focusable","currentstyle","getComputedStyle","visibility","limitdoc","focused","tagName","PromiseType","finally","dec","fromCharCode","getKeyNames","normalizeKeyboardEventData","propnames","propname","modifier","newkeys","singlemodifier","getFinalKey","validateKeyName","modifiers","mod","original_order","KeyboardHandler","keymap","stopmapped","dontpropagate","onkeypress","captureunsafekeys","_listenoptions","listenoptions","keyname","_onkeydown","_onKeyDown","_onkeypress","_onKeyPress","keynames","is_special_combo","keybinding","_mustIgnoreKey","stopPropagation","getEventKeyNames","hasNativeEventCopyKey","hasNativeEventMultiSelectKey","getDragModeOverride","override","FileEditBase","isrequired","_check","getValue","busy","deferredvalues","_handleEnable","_handleRequire","_updateEnabledStatus","_getEnabled","getFieldValueLink","nowenabled","finishGetValue","valuelink","whFilename","mimetype","whFiletype","toresolve","selectFiles","uploadFile","whAccept","filetype","masks","basetype","isAcceptableType","uploadingcontrol","_isAcceptableType","whAccepterror","formservice","handleUploadedFile","imgsrc","img","Image","naturalWidth","naturalHeight","scriptsrc","scripttag","_global","_babelPolyfill","runtime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","$fails","wksDefine","enumKeys","_create","gOPNExt","$GOPS","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","symbols","$getPrototypeOf","$freeze","$seal","$preventExtensions","$isFrozen","$isSealed","$isExtensible","FProto","nameRE","HAS_INSTANCE","FunctionProto","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","digits","aNumberValue","$toFixed","toFixed","ERROR","multiply","c2","divide","numToString","acc","fractionDigits","z","x2","$toPrecision","toPrecision","precision","EPSILON","_isFinite","isInteger","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","Number","sqrt","$acosh","acosh","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","clz32","LOG2E","cosh","fround","EPSILON32","MAX32","MIN32","$abs","$sign","hypot","value1","value2","div","sum","larg","$imul","imul","xn","yn","xl","yl","log10","LOG10E","log2","sinh","tanh","trunc","$fromCodePoint","raw","callSite","tpl","$at","point","codePointAt","$endsWith","endsWith","endPosition","search","$startsWith","color","toJSON","toISOString","pv","$toISOString","lz","num","getUTCFullYear","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","DateProto","hint","createProperty","upTo","cloned","$sort","$forEach","STRICT","$filter","$some","$every","$reduce","$indexOf","NEGATIVE_ZERO","$find","$flags","$RegExp","CORRECT_NEW","tiRE","piRE","fiU","proxy","define","advanceStringIndex","regExpExec","$match","maybeCallNative","rx","fullUnicode","matchStr","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","$replace","searchValue","replaceValue","functionalReplace","results","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","ch","sameValue","SEARCH","$search","previousLastIndex","callRegExpExec","$min","$push","LENGTH","SUPPORTS_Y","SPLIT","$split","internalSplit","limit","lastLength","lastLastIndex","splitLimit","separatorCopy","splitter","unicodeMatching","lim","q","macrotask","Observer","MutationObserver","WebKitMutationObserver","flush","standalone","observe","characterData","strong","InternalMap","each","weak","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","$WeakMap","$isView","isView","fin","viewS","viewT","init","rApply","fApply","thisArgument","argumentsList","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","Enumerate","enumerate","receiver","V","existingDescriptor","ownDesc","setProto","$includes","flatMap","flattenIntoArray","arraySpeciesCreate","sourceLen","IS_CONCAT_SPREADABLE","depth","mapper","thisArg","spreadable","targetIndex","sourceIndex","mapFn","padStart","$pad","WEBKIT_BUG","padEnd","trimLeft","trimRight","getOwnPropertyDescriptors","getDesc","$values","onFinally","MSIE","time","boundArgs","setInterval","$task","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","Element","replaceChildren","__whCompatibility","IS_WRAP","virtual","require","register","UploadField","ImgEditField","RTDField","forms","pnode","prevnode","previousElementSibling","cleanupEmptyParagraphs","lockmgr","waitUIFree","Lock","busycounter","locallocks","ischild","LockManager","locks","deferreduipromise","uiwatcher","modallocked","returnvalue","domevents","islock","bus","locknum","acquirestack","releasestack","prepWatcher","checkUIFree","anyModalLocks","dompromise","getNumLocks","getLockIds","lockpos","$dompack$busylockmanager","locallockmgr","isolated","backupsession","sessionStorage","setItem","removeItem","sessionfail","retval","backuplocal","localStorage","localfail","MATCH_DASH_AND_CHAR","match_1","elementname","childNodes","children","flattenArray","elt","MATCH_UPCASE","toDashed","substring","toattrs","setStyles","setClassName","srcrect","bcr","rect","newreg","components","afterdomready","domtree","onDomReady","applyRegistration","WeakMap","reg","domready","unshift","isNodeCompletelyInDom","processRegistration","createMyFrame","ifrm","launchVideo","video","network","playback","autoplay","mute","starttime","endtime","controls","loop","youtube_url","title","initYouTube","background","api","player_id","vimeo_url","initVimeo","activateVideo","videonode","__initialized","hidden","videoOptions","initializeVideoElementV1","whVideo","playbutton","whConsentRequired","consenthandler","onConsent","initializeVideoElementV2","handlername","didregister","whFormHandler","newform","formoptions","_setupFormHandler","defaultsettings","RPCFormBase","registerMergeFormatter","registerFormatter","formobj","usecookiename","consentrequester","cst","cookiename","consentoptions","cookiedomain","cookieduration","defaultconsent","consentstatus","ignore","storeConsent","updateConsent","consentsetting","details","getConsentDetail","consent","newsetting","consent_revoked","lc","anl","isdefault","updateConsentOverlays","overlays","overlay","whConsent","whResetConsent","datecontrol","datematch","thedate","datetime","getISOLocalDate","whValidationPolyfilled","validateDate","timecontrol","propvalue","getHours","getMinutes","getSeconds","validateTime","checkboxgroup","CheckboxGroupField","RadioGroupField","addresscontrol","AddressField","arrayfieldgroup","ArrayField","whFormCaptcha","captchanode","data-wh-form-name","CaptchaField","dateparts","year","month","day","isValidDate","normalizeddate","timeparts","hours","minutes","seconds","formatters","updaters","isNodeFunc","exprpath","callparts","funcrest","exprpathparts","sets","whMerge","whFormIsValidator","whCheckboxGroupField","_validate","whMin","whMax","anyenabled","numChecked","lookupcache","numvaliditycalls","countryNode","currentcountry","fieldName","orderingData","orderingdata","prefixLength","allFields","Map","fieldpos","fieldgroup","_gotFieldChange","_reconfigureFieldOrdering","_updatingFields","_clearErrors","_getFieldValue","_checkValidity","firstfield","country","ordering","countries","prevgroup","fieldorder","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","visiblefields","anyset","allrequiredset","lookupkey","curstate","_getCurState","invokeBackgroundRPC","_getFirstCountrySpecificField","looked_up","refreshConditions","nextnewrowid","template","insertPoint","_onClick","valueNode","_onGetValue","rownode","_fixupRowNode","newrow","content","cloneNode","whFormRowid","previousSibling","addRow","delNode","_removeRowNode","valuePromises","row","rowFields","rowPromises","rowValue","formrowid","firstnode","whFormCellname","valueRows","rowid","subname","minRows","maxRows","numRows","_getValue","_setFieldError","apikey","getCaptchaResponse","busycomponent","captcharegistry","getResponse","globalOptions","pingPxlEvent","isaltsample","pagesession","eventname_regex","datakey_regex","seqnr","setPxlOptions","donottrack","recordurl","altsamplerate","altrecordurl","sessionexpiration","nobrowserenvironment","pxlFailed","errormessage","whintegration","makePxlUrl","baseurl","var_sep","doNotTrack","msDoNotTrack","getPxlId","getPxlSessionId","referrer","getTriplet","getDevice","screen","devicePixelRatio","havelocalstorage","getItem","expiration","timestamp","whPxlLog","beacon","sendBeacon","xhr","cache","makePart","__formhandler","errors","warnings","formref","whFormRef","pendingrpcs","waiter","onRPC","invokeargs","methodname","getServiceSubmitInfo","_processMessages","messages","_invokeRPC","processFieldMessage","submitting","insubmitrpc","eventdetail","rpchandler","_flushPendingRPCs","extrasubmit","getFormExtraSubmitData","extrasubmitdata","submitted","submitparameters","didfirstfocus","globalerrors","failednode","_navigateToThankYou","onSubmitSuccess","failedfields","displayGlobalErrors","onSubmitFailed","ds_formmeta_exception","onSubmitException","runMessageBox","alert","block","behavior","resultsguid","whFormResultguid","submitinstruction","getCurrentlyFocusedElement","validation","emailvalidation","validateField","mayValidateField","readOnly","autocomplete","acceptEmailSuggestion","suggestion","blocked","force","class","on","label","labelnode","getLabelText","selectFile","_takeFocus","_filenameinput","_filenamefield","placeholder","aria-label","_deletebutton","tabindex","_doDelete","keypress","_checkForDelete","_uploadbutton","refresh","_afterConstruction","whFileurl","hasfile","readBackgroundUrl","imgnode","backgroundImage","checkForUploadOrClear","setupComponent","doDrop","doDelete","deletebutton","arialabel","role","dataTransfer","changed","preload","promiseImage","imgpreload","holder","richeditor","whRTDField","structure","whRtdoptions","hidebuttons","onInsertVideo","blockstyles","rtdoptions","readonly","backgroundcolor","allowtags","editembeddedobjects","_fieldgroup","setupRTE","System","rte","RTE","setValue","executeAction","whFormStateListener","formhandler","invokeRPC","getEditor","insertEmbeddedObject","embeddedobject","setEnabled","newdialogconstructor","dialogconstructor","dialogoptions","messageboxclassbase","dialogstack","keyhandler","onTab","contentnode","tofocusidx","DialogBase","allowcancel","borrow","_borrowedfrom","_borrowednext","_deferred","_previousfocus","_openDialog","afterShow","_checkFocus","closeDialog","myoffset","focusonclose","destroy","createDialog","dialog","question","choices","choicebuttons","choice","messageboxResult","buttonsnode","runModal"],"mappings":"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","file":"ap.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t2: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + {\"0\":\"dd276f7ea3cadbbf2ce3\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"0\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + chunkId + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/.ap/rotarynl.org001/st/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 146);\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","/* @importstatement:\n import * as dompack from 'dompack';\n\n This function is our public api. Any direct inclusions from src/.... not mentioned here are not a stable API\n*/\n\nexport { createDeferred } from './src/promise.es';\nexport { flagUIBusy } from './src/busy.es';\nexport { dispatchCustomEvent, dispatchDomEvent, fireModifiedEvents, changeValue, normalizeKeyboardEventData\n , stop\n } from './src/events.es';\nexport { qS, qSA, contains, closest, matches\n , empty, isDomReady, onDomReady, getJSONAttribute\n , before, after, replaceWith, remove, prepend, append\n , toggleClass, toggleClasses\n , setStyles\n , getBaseURI, getRelativeBounds } from './src/tree.es';\nexport { create, jsxcreate } from './src/create.es';\nexport { focus, register, registerMissed, scrollIntoView, getRect } from './src/components.es';\nexport { debugflags, parseDebugURL, addDebugFlags, initDebug } from './src/debug.es';\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '' + tag + '>';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","import * as encoding from \"dompack/types/text.es\";\nimport * as domdebug from \"dompack/src/debug.es\";\nimport * as wh from \"@mod-system/js/wh/integration.es\";\n\n/*\nSupported debug flags:\n gtd Debug get(Rich)Tid\n*/\n\nlet allTids = {};\nlet curLang = \"\";\n\nfunction encodeHTML(input)\n{\n return input.split('&').join('&')\n .split('<').join('<')\n .split('>').join('>')\n .split('\\n').join('');\n}\n\nfunction executeCompiledTidText(text, params, rich)\n{\n if(typeof text == \"object\" && !Array.isArray(text))\n text = text?.[\"\"];\n if (text == null)\n return text;\n if(typeof text == \"string\")\n return rich ? encodeHTML(text) : text;\n\n let output = '';\n for(let tok of text)\n {\n if(typeof tok == \"string\")\n {\n output += rich ? encodeHTML(tok) : tok;\n }\n else if (typeof tok == \"number\")\n {\n if (tok >= 1)\n {\n let get_param = params?.[tok-1];\n if(get_param)\n {\n output += rich ? encodeHTML(get_param) : get_param;\n }\n }\n }\n else if(tok.t == \"tag\")\n {\n let sub = executeCompiledTidText(tok.subs, params, rich);\n output += rich ? `<${tok.tag}>${sub}${tok.tag}>` : sub;\n }\n else if(tok.t == \"ifparam\")\n {\n let get_param = params?.[tok.p-1] || '';\n output += executeCompiledTidText(get_param.toUpperCase() == tok.value.toUpperCase() ? tok.subs : tok.subselse, params, rich);\n }\n else if(tok.t == \"a\")\n {\n let sub = executeCompiledTidText(tok.subs, params, rich);\n if(rich)\n {\n let link = tok.link;\n if(tok.linkparam > 0 && tok.linkparam <= params.length)\n link = params[tok.linkparam - 1];\n if(link)\n output += `${sub}`;\n else\n output += sub;\n }\n else\n {\n output += sub;\n }\n }\n }\n return output;\n}\n\nfunction resolveTid(tid, params, options)\n{\n if(curLang=='debug')\n {\n return '{' + tid + (params.length ? '|' + params.join('|') : '') + '}';\n }\n\n // Make sure we have 4 string params\n for (let i = 0; i < 4; ++i)\n if (params.length == i)\n params.push(\"\");\n else if (typeof params[i] == \"number\")\n params[i] = \"\" + params[i];\n else if (!params[i])\n params[i] = \"\";\n params = params.slice(0, 4);\n\n // Initialize text with the 'cannot find text' message\n let text = domdebug.debugflags.sut ? \".\" + tid.split(\".\").pop() : \"(cannot find text:\" + tid + \")\";\n\n // Check if the module is defined\n let module = tid.substr(0, tid.indexOf(\":\"));\n if (!module || !(module in allTids))\n {\n if (!wh.config.islive || domdebug.debugflags.gtd)\n console.warn(\"No language texts found for module '\" + module + \"'\");\n return /*cannot find*/ text;\n }\n\n let language = options?.overridelanguage || getTidLanguage();\n if (!(language in allTids[module]))\n {\n if (!wh.config.islive || domdebug.debugflags.gtd)\n console.warn(\"No language texts found for language '\" + language + \"'\");\n return /*cannot find*/ text;\n }\n\n try\n {\n if (domdebug.debugflags.gtd)\n {\n console.group(`Resolving tid '${tid}'`);\n console.info(tid, params, options, language);\n }\n\n // Dig into the module gid structure\n let context = allTids[module][language];\n tid = tid.substr(module.length + 1);\n if (!tid.split(\".\").every(part =>\n {\n let found = part in context;\n if (found)\n context = context[part];\n else if (domdebug.debugflags.gtd)\n console.warn(\"Subpart '\"+ part + \"' not found\");\n\n return found; // If not found, break 'every' loop\n }))\n {\n return /*cannot find*/ text;\n }\n\n const executed = executeCompiledTidText(context, params, options?.html);\n if (executed == null)\n {\n if (domdebug.debugflags.gtd)\n console.warn(`Tid '${module}:${tid}'' is a group node`);\n return /*cannot find*/ text;\n }\n if (domdebug.debugflags.gtd)\n console.info(\"getTid\", `${module}:${tid}`, params, executed);\n\n return executed;\n }\n finally\n {\n if (domdebug.debugflags.gtd)\n console.groupEnd();\n }\n}\n\nfunction getTid(tid, p1, p2, p3, p4)\n{\n return resolveTid(tid, Array.prototype.slice.call(arguments, 1));\n}\n\nfunction getHTMLTid(tid, p1, p2, p3, p4)\n{\n return resolveTid(tid, Array.prototype.slice.call(arguments, 1), { html: true });\n}\n\nfunction getTidLanguage()\n{\n if (curLang)\n return curLang;\n\n // Read the document's language, if there is a DOM context\n if (typeof document != \"undefined\")\n curLang = (document.documentElement.lang||'').substr(0,2);\n\n return curLang;\n}\n\nfunction setTidLanguage(lang)\n{\n curLang = lang;\n}\n\nfunction tidMerge(readContext, writeContext)\n{\n for (let key of Object.keys(readContext))\n {\n if (typeof readContext[key] != \"object\" || Array.isArray(readContext[key])) //a leaf, safe to copy\n {\n writeContext[key] = readContext[key];\n }\n else\n {\n if (!(key in writeContext))\n writeContext[key] = {};\n tidMerge(readContext[key], writeContext[key]);\n }\n }\n}\n\nfunction registerTexts(module, language, tids)\n{\n if (!(module in allTids))\n {\n allTids[module] = {};\n }\n if (!(language in allTids[module]))\n {\n allTids[module][language] = tids;\n return;\n }\n tidMerge(tids, allTids[module][language]);\n}\n\n// Fill nodes with a data-texttid attribute with the translated text\nfunction convertElementTids(scope = document.body)\n{\n // Only available in a DOM context and if the DOM is ready\n if (typeof document == \"undefined\" || !scope)\n return;\n Array.from(scope.querySelectorAll(\"*[data-texttid]\")).forEach(function(node)\n {\n node.textContent = getTid(node.getAttribute(\"data-texttid\"));\n });\n}\n\n// If this script is run within a DOM context, convert data-texttid attributes automatically\nif (typeof document != \"undefined\")\n document.addEventListener(\"DOMContentLoaded\", event => convertElementTids());\n\n\n// Define 'tidLanguage' as a property on the main export (so you can use getTid.tidLanguage)\nObject.defineProperty(getTid, \"tidLanguage\", { get: getTidLanguage, set: setTidLanguage });\n// Define 'html' as a method on the main export (so you can use getTid.html)\ngetTid.html = getHTMLTid;\n\n// Export getTid as the default function, explicitly export getTid, getHTMLTid and registerTexts as well\nexport { getTid as default\n , getTid\n , getTidLanguage\n , getHTMLTid\n , convertElementTids\n , registerTexts\n };\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","module.exports = false;\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","/**\nimport * as whintegration from '@mod-system/js/wh/integration';\n*/\n\nimport * as dompack from 'dompack';\n\nexport let config = {};\n\nfunction generateForm(action, values, method)\n{\n var form = dompack.create(\"form\", { action: action, method: method || \"POST\", charset: \"utf-8\" });\n if(values instanceof Array)\n {\n values.forEach(function(item)\n {\n form.appendChild(dompack.create(\"input\", { type: \"hidden\", name: item.name, value: item.value }));\n });\n }\n else Object.keys(values, key =>\n {\n form.appendChild(dompack.create(\"input\", { type: \"hidden\", name: key, value: values[key] }));\n });\n return form;\n}\n\nexport function submitForm(action, values, method)\n{\n var form = generateForm(action, values, method);\n document.body.appendChild(form);\n form.submit();\n}\n\nexport function executeSubmitInstruction(instr, options)\n{\n if(!instr)\n throw Error(\"Unknown instruction received\");\n\n options = Object.assign({ ismodal: true }, options);\n //Are there any cirumstances where you would want to reelase this lock?\n dompack.flagUIBusy({ ismodal: options.ismodal });\n\n if (options.iframe)\n {\n switch (instr.type)\n {\n case \"redirect\":\n {\n options.iframe.src = instr.url;\n } break;\n\n case \"form\":\n {\n // FIXME: Clear iframe if document is not cross-domain accessible\n var idoc = options.iframe.document || options.iframe.contentDocument || options.iframe.contentWindow.document;\n\n var form = generateForm(instr.form.action, instr.form.vars, instr.method);\n var adopted_form = idoc.adoptNode(form);\n idoc.body.appendChild(adopted_form);\n adopted_form.submit();\n } break;\n\n default:\n {\n throw Error(\"Unknown submit instruction '\" + instr.type + \"' for iframe received\");\n }\n }\n return;\n }\n\n switch (instr.type)\n {\n case \"redirect\":\n {\n location.href=instr.url;\n } break;\n\n case \"form\":\n {\n submitForm(instr.form.action, instr.form.vars, instr.form.method);\n } break;\n\n case \"refresh\":\n case \"reload\":\n {\n window.location.reload();\n } break;\n\n case \"postmessage\":\n {\n if (!instr.target || instr.target === \"parent\")\n parent.postMessage(instr.message, \"*\");\n else if (instr.target === \"opener\")\n {\n opener.postMessage(instr.message, \"*\");\n window.close();\n }\n else\n throw Error(\"Unknown postmessage target '\" + instr.target + \"' received\");\n } break;\n\n case \"close\":\n {\n window.close();\n } break;\n\n default:\n {\n throw new Error(\"Unknown submit instruction '\" + instr.type + \"' received\");\n }\n }\n}\n\nif(typeof window !== 'undefined') //check we're in a browser window, ie not serverside or some form of worker\n{\n let whconfigel = typeof document != \"undefined\" ? document.querySelector('script#wh-config') : null;\n if(whconfigel)\n config = JSON.parse(whconfigel.textContent);\n\n // Make sure we have obj/site as some sort of object, to prevent crashes on naive 'if ($wh.config.obj.x)' tests'\n if(!config.obj)\n config.obj={};\n if(!config.site)\n config.site={};\n\n let errhandler = config[\"system:errorhandler\"];\n if(errhandler)\n console.error(errhandler.statuscode + \" \" + errhandler.statusmessage);\n}\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = {};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","export let debugflags = {};\nimport * as domcookie from '../extra/cookie.es';\n\n/** Extract a specific variable from the URL\n @param varname Variable name, eg dompack-debug\n*/\nexport function parseDebugURL(varname)\n{\n //FIXME proper regex escape for varname, but fortunately this isn't user input\n let urldebugvar = window.location.href.match(new RegExp('[?]' + varname + '=([^?]*)'));\n if(urldebugvar)\n {\n let debugstr = decodeURIComponent(urldebugvar[1]).split(',');\n if(debugstr.length)\n addDebugFlags(debugstr);\n }\n}\nexport function addDebugFlags(flags)\n{\n flags.forEach(flagname =>\n {\n if(flagname.startsWith('sig='))\n return;\n\n debugflags[flagname] = true;\n document.documentElement.classList.add(\"dompack--debug-\" + flagname);\n });\n\n if(debugflags.dompack)\n console.log('[dompack] debugging flags: ' + Object.keys(debugflags).join(', '));\n}\n\nexport function initDebug()\n{\n //no-op but there are still external callers which need fixing\n}\n\n//initialize debugging support (read debugflags etc)\nparseDebugURL('wh-debug');\n\nlet debugcookie = domcookie.read(\"wh-debug\");\nif(debugcookie)\n addDebugFlags(debugcookie.split('.'));\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","// Auto-generated language file from /opt/wh/whtree/modules/publisher/js/forms/internal/form.lang.json\nvar registerTexts = require(\"@mod-tollium/js/gettid\").registerTexts;\nregisterTexts(\"publisher\",\"en\",{\"site\":{\"forms\":{\"addressfield\":{\"address_not_found\":\"The address could not be found.\",\"invalid_nr_detail\":\"Invalid house number.\",\"invalid_zip\":\"Invalid ZIP or postal code.\",\"zip_not_found\":\"Unknown combination of postal code and house number.\"},\"commonerrors\":{\"alphanum\":\"This value should be alphanumeric.\",\"badfiletype\":\"This file type is not allowed\",\"cannotprocessfile\":\"This file looks suspicious and can unfortunately not be uploaded\",\"check\":[\"You must select between \",1,\" and \",2,\" choices.\"],\"default\":\"This value seems to be invalid.\",\"digits\":\"This value should be digits.\",\"email\":\"This value should be a valid email.\",\"email_baddomain\":[\"Due to difficulties with mailing to \",1,\" email addresses we kindly request you to use an alternative email provider.\"],\"email_suggestion\":[\"Did you mean \",1,\"?\"],\"equalto\":\"This value should be the same.\",\"integer\":\"This value should be a valid integer.\",\"length\":[\"This value length is invalid. It should be between \",1,\" and \",2,\" characters long.\"],\"max\":[\"This value should be lower than or equal to \",1,\".\"],\"maxarray\":[\"You can add at most \",{\"p\":1,\"subs\":[\"1 item\"],\"subselse\":[1,\" items\"],\"t\":\"ifparam\",\"value\":\"1\"},\".\"],\"maxcheck\":[\"You must select \",{\"p\":1,\"subs\":[\"1 choice\"],\"subselse\":[1,\" choices\"],\"t\":\"ifparam\",\"value\":\"1\"},\" or fewer.\"],\"maxlength\":[\"This value is too long. It should have \",{\"p\":1,\"subs\":[\"1 character\"],\"subselse\":[1,\" characters\"],\"t\":\"ifparam\",\"value\":\"1\"},\" or fewer.\"],\"min\":[\"This value should be greater than or equal to \",1,\".\"],\"minarray\":[\"You must add at least \",{\"p\":1,\"subs\":[\"1 item\"],\"subselse\":[1,\" items\"],\"t\":\"ifparam\",\"value\":\"1\"},\".\"],\"mincheck\":[\"You must select at least \",{\"p\":1,\"subs\":[\"1 choice\"],\"subselse\":[1,\" choices\"],\"t\":\"ifparam\",\"value\":\"1\"},\".\"],\"minlength\":[\"This value is too short. It should have \",{\"p\":1,\"subs\":[\"1 character\"],\"subselse\":[1,\" characters\"],\"t\":\"ifparam\",\"value\":\"1\"},\" or more.\"],\"notblank\":\"This value should not be blank.\",\"number\":\"This value should be a valid number.\",\"pattern\":\"This value seems to be invalid.\",\"range\":[\"This value should be between \",1,\" and \",2,\".\"],\"required\":\"This value is required.\",\"step1mismatch\":\"The value must be a whole number\",\"stepmismatch\":[\"The value should be a multiple of \",1,\".\"],\"unacceptableemail\":\"This email address is not acceptable here\",\"upload_cannotcheck\":\"This file cannot be uploaded as we are currently unable to verify it\",\"upload_suspicious\":\"This file looks suspicious and can unfortunately not be uploaded\",\"url\":\"This value should be a valid url.\"},\"imgedit-groupelement-replace\":[1,\", Replace image\"],\"imgedit-groupelement-upload\":[1,\", Upload image\"],\"imgedit-remove\":\"Remove image\",\"nextpage\":\"Next\",\"previouspage\":\"Previous\",\"selectfile\":\"Select file\",\"splitdatetime-day-arialabel\":\"day\",\"splitdatetime-hours-arialabel\":\"hour\",\"splitdatetime-minutes-arialabel\":\"minute\",\"splitdatetime-month-arialabel\":\"month\",\"splitdatetime-seconds-arialabel\":\"second\",\"splitdatetime-year-arialabel\":\"year\",\"starsrequired\":\"* indicates a required field\",\"submit\":\"Submit\",\"upload-emptytext\":\"No file chosen\",\"upload-filename\":[\"Uploaded file is \",1],\"upload-remove\":\"Remove file\"}}});\nregisterTexts(\"publisher\",\"nl\",{\"site\":{\"forms\":{\"addressfield\":{\"address_not_found\":\"Het adres kon niet worden gevonden.\",\"invalid_nr_detail\":\"Ongeldig huisnummer.\",\"invalid_zip\":\"Ongeldige postcode.\",\"zip_not_found\":\"Combinatie van postcode en huisnummer komt niet voor.\"},\"commonerrors\":{\"alphanum\":\"De waarde moet alfanumeriek zijn.\",\"badfiletype\":\"Dit bestandstype is niet toegestaan\",\"check\":[\"Kies minimaal \",1,\" en maximaal \",2,\" items.\"],\"default\":\"Deze waarde is onjuist.\",\"digits\":\"De waarde moet numeriek zijn.\",\"email\":\"Dit is geen geldig e-mailadres.\",\"email_baddomain\":[\"Vanwege problemen met het e-mailen naar \",1,\" e-mailadressen, willen we je vragen om een alternatief e-mailadres te gebruiken.\"],\"email_suggestion\":[\"Bedoel je \",1,\"?\"],\"equalto\":\"De waardes moeten identiek zijn.\",\"integer\":\"De waarde moet een nummer zijn.\",\"length\":[\"De waarde moet tussen \",1,\" en \",2,\" karakters lang zijn.\"],\"max\":[\"De waarde mag niet groter zijn dan \",1,\".\"],\"maxarray\":[\"U kunt maximaal \",{\"p\":1,\"subs\":[\"1 onderdeel\"],\"subselse\":[1,\" onderdelen\"],\"t\":\"ifparam\",\"value\":\"1\"},\" toevoegen.\"],\"maxcheck\":[\"Kies maximaal \",{\"p\":1,\"subs\":[\"1 item\"],\"subselse\":[1,\" items\"],\"t\":\"ifparam\",\"value\":\"1\"},\".\"],\"maxlength\":[\"De waarde is te lang. Deze mag maximaal \",{\"p\":1,\"subs\":[\"1 karakter\"],\"subselse\":[1,\" karakters\"],\"t\":\"ifparam\",\"value\":\"1\"},\" lang zijn.\"],\"min\":[\"De waarde mag niet lager zijn dan \",1,\".\"],\"minarray\":[\"U moet minimaal \",{\"p\":1,\"subs\":[\"1 onderdeel\"],\"subselse\":[1,\" onderdelen\"],\"t\":\"ifparam\",\"value\":\"1\"},\" toevoegen.\"],\"mincheck\":[\"Kies minimaal \",{\"p\":1,\"subs\":[\"1 item\"],\"subselse\":[1,\" items\"],\"t\":\"ifparam\",\"value\":\"1\"},\".\"],\"minlength\":[\"De tekst is te kort. Deze moet uit minimaal \",{\"p\":1,\"subs\":[\"1 karakter\"],\"subselse\":[1,\" karakters\"],\"t\":\"ifparam\",\"value\":\"1\"},\" bestaan.\"],\"notblank\":\"De waarde mag niet leeg zijn.\",\"number\":\"De waarde moet een nummer zijn.\",\"pattern\":\"De waarde is onjuist.\",\"range\":[\"De waarde moet tussen \",1,\" en \",2,\" liggen.\"],\"required\":\"Dit veld is verplicht.\",\"step1mismatch\":\"De waarde moet een geheel getal zijn\",\"stepmismatch\":[\"De waarde moet een meervoud zijn van \",1,\".\"],\"unacceptableemail\":\"Dit e-mailadres is hier niet toegestaan\",\"upload_cannotcheck\":\"Dit bestand kan niet geüpload worden omdat we het momenteel niet kunnen verifiëren\",\"upload_suspicious\":\"Dit bestand ziet er verdacht uit en kan helaas niet geüpload worden\",\"url\":\"Dit is geen geldige URL.\"},\"imgedit-groupelement-replace\":[1,\", Vervang afbeelding\"],\"imgedit-groupelement-upload\":[1,\", Upload afbeelding\"],\"imgedit-remove\":\"Verwijder afbeelding2\",\"nextpage\":\"Volgende\",\"previouspage\":\"Vorige\",\"selectfile\":\"Selecteer bestand\",\"splitdatetime-day-arialabel\":\"dag\",\"splitdatetime-hours-arialabel\":\"uur\",\"splitdatetime-minutes-arialabel\":\"minuut\",\"splitdatetime-month-arialabel\":\"maand\",\"splitdatetime-seconds-arialabel\":\"seconde\",\"splitdatetime-year-arialabel\":\"jaar\",\"starsrequired\":\"* betekent dat een veld verplicht is\",\"submit\":\"Versturen\",\"upload-emptytext\":\"Geen bestand geselecteerd\",\"upload-filename\":[\"Geselecteerde bestand is \",1],\"upload-remove\":\"Verwijder bestand\"}}});\n// Adding dependency: /opt/wh/whtree/modules/publisher/language/default.xml\n// Adding dependency: /opt/wh/whtree/modules/publisher/language/nl.xml\n","let eventconstructor = null;\n\nif(typeof window !== 'undefined')\n{\n try //IE11 does not ship with CustomEvent\n {\n new window.CustomEvent(\"test\");\n eventconstructor = window.CustomEvent;\n }\n catch(e)\n {\n eventconstructor = function(event, params)\n {\n var evt;\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n\n evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n eventconstructor.prototype = window.Event.prototype;\n }\n}\n\nexport let CustomEvent = eventconstructor;\n\nexport function dispatchDomEvent(element, eventtype, options)\n{\n //see here https://developer.mozilla.org/en-US/docs/Web/Events whether an event is bubbles/cancelabel\n options = { bubbles: [\"input\",\"change\",\"click\",\"contextmenu\",\"dblclick\",\n \"reset\",\"submit\"].includes(eventtype)\n , cancelable: [\"animationstart\",\"animationcancel\",\"animationend\",\"animationiteration\"\n ,\"beforeunload\"\n ,\"click\",\"contextmenu\",\"dblclick\"\n ,\"reset\",\"submit\"\n ,\"transitionstart\",\"transitioncancel\",\"transitionend\",\"transitionrun\"].includes(eventtype)\n , ...options\n };\n\n if(!element.ownerDocument)\n return true; //the element has left the dom... so there's no more bubbling. just drop it\n\n let createtype = [\"load\",\"scroll\"].includes(eventtype) == \"load\" ? \"UIEvents\" : [\"focus\",\"blur\",\"focusin\",\"focusout\"].includes(eventtype) ? \"FocusEvent\" : eventtype == \"click\" ? \"MouseEvents\" : \"HTMLEvents\";\n\n var evt = element.ownerDocument.createEvent(createtype);\n evt.initEvent(eventtype, options.bubbles, options.cancelable);\n if(options.detail)\n evt.detail = options.detail;\n if(options.relatedTarget) //its a readonly prop, so redefine it\n Object.defineProperty(evt, 'relatedTarget', { value:options.relatedTarget, writable: false });\n\n if(eventtype == 'click' && window.IScroll)\n evt._constructed = true; //ensure IScroll doesn't blindly cancel our synthetic clicks\n\n return element.dispatchEvent(evt);\n}\n\n//fire the proper modified events (input and/or change) on the element after changing its value - DEPRECATED, you should fire the proper input and change events according to the situation\nexport function fireModifiedEvents(element, options)\n{\n fireHTMLEvent(element, 'input', options);\n fireHTMLEvent(element, 'change', options);\n}\n\n//manually fire 'onchange' events. needed for event simulation - DEPRECATED\nexport function fireHTMLEvent(element, type, options)\n{\n return dispatchDomEvent(element, type, options);\n}\n\n/** Fire a custom event\n @param node node to fire the event on\n @param event event type\n @param params\n @cell params.bubbles\n @cell params.cancelable\n @cell params.detail\n @cell params.defaulthandler Handler to execute if the default isn't prevented by a event listener\n @return true if the default wasn't prevented\n*/\nexport function dispatchCustomEvent(node, event, params)\n{\n if(!params)\n params={};\n ['bubbles','cancelable'].forEach(prop =>\n {\n if(!(prop in params))\n throw new Error(`Missing '${prop}' in dispatchCustomEvent parameter`);\n });\n\n let evt = new CustomEvent(event, { bubbles: params.bubbles\n , cancelable: params.cancelable\n , detail: params.detail\n });\n let defaultaction = true;\n try\n {\n if(!node.dispatchEvent(evt))\n defaultaction = false; //defaultPrevented is unreliable on IE11, so double check\n }\n finally\n {\n if(!evt.defaultPrevented && params.defaulthandler && defaultaction)\n {\n params.defaulthandler(evt);\n }\n }\n return defaultaction && !evt.defaultPrevented;\n}\n\n/** Change the value of a form element, and fire the correct events as if it were a user change\n @param element Element to change\n @param newvalue New value */\nexport function changeValue(element, newvalue)\n{\n if(element instanceof Array || element instanceof NodeList)\n {\n Array.from(element).forEach(node => changeValue(node, newvalue));\n return;\n }\n\n if(element.nodeName=='INPUT' && ['radio','checkbox'].includes(element.type))\n {\n if(!!element.checked == !!newvalue)\n return;\n element.checked=!!newvalue;\n }\n else\n {\n if(element.value == newvalue)\n return;\n\n element.value = newvalue;\n }\n dispatchDomEvent(element, 'input');\n dispatchDomEvent(element, 'change');\n}\n\nlet keydata;\nfunction initKeyMapping()\n{\n keydata =\n {\n // Mapping from keyIdentifier/key to key. If not found, translate U+XXXX to the unicode char and return that.\n\n // List of all current key mappings (and current inconsistencies\n // at https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values\n mapping:\n { \"Del\": \"Delete\" // IE/edge use 'Del' instead of 'Delete'\n , \"Esc\": \"Escape\" // IE/edge use 'Esc' instead of 'Escape'\n , \"OS\": \"Meta\" // Meta key is called OS on IE 9 and Firefox (tested v50)\n , \"Win\": \"Meta\" // Meta key is called Win on IE/Edge\n , \"Scroll\": \"ScrollLock\" // More IE/Edge, from tests\n , \"PrintScreen\": \"Print\" // More IE/Edge, from tests\n , \"MozHomeScreen\": \"GoHome\" // Prior to Firefox 37, the Home button generated a key code of \"Exit\". Starting in Firefox 37, the button generates the key code \"MozHomeScreen\".\n\n // Internet Explorer 9 and Firefox 36 and earlier return \"Left\", \"Right\", \"Up\", and \"Down\" for the arrow keys, instead of \"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", and \"ArrowDown\".\n , \"Left\": \"ArrowLeft\"\n , \"Right\": \"ArrowRight\"\n , \"Up\": \"ArrowUp\"\n , \"Down\": \"ArrowDown\"\n // More IE and old Firefox stuff\n , \"Crsel\": \"CrSel\"\n , \"Exsel\": \"ExSel\"\n , \"Nonconvert\": \"NonConvert\"\n // Internet Explorer 9 and Firefox 36 and earlier report \"Apps\" instead of \"ContextMenu\" for the context menu key.\n , \"Apps\": \"ContextMenu\"\n // Internet Explorer 9 and Firefox 36 and earlier use \"MediaNextTrack\" and \"MediaPreviousTrack\" instead of \"MediaTrackNext\" and \"MediaTrackPrevious\".\n , \"MediaNextTrack\": \"MediaTrackNext\"\n , \"MediaPreviousTrack\": \"MediaTrackPrevious\"\n // In Internet Explorer 9, and prior to Firefox 49, \"AudioVolumeUp\", \"AudioVolumeDown\", and \"AudioVolumeMute\" were \"VolumeUp\", \"VolumeDown\", and \"VolumeMute\".\n // In Firefox 49 they were updated to match the latest specification. The old names are still used on Boot to Gecko.\n , \"VolumeUp\": \"AudioVolumeUp\"\n , \"VolumeDown\": \"AudioVolumeDown\"\n , \"VolumeMute\": \"AudioVolumeMute\"\n // Firefox added proper support for the \"TV\" key in Firefox 37; before that, this key generated the key code \"Live\".\n , \"Live\": \"TV\"\n // Internet Explorer 9 and Firefox 36 and earlier identify the zoom toggle button as \"Zoom\". Firefox 37 corrects this to \"ZoomToggle\".\n , \"Zoom\": \"ZoomToggle\"\n // Internet Explorer 9 and Firefox 36 and earlier use \"SelectMedia\" instead of \"LaunchMediaPlayer\". Firefox 37 through Firefox 48 use \"MediaSelect\". Firefox 49 has been updated to match the latest specification, and to return \"LaunchMediaPlayer\".\n , \"SelectMedia\": \"LaunchMediaPlayer\"\n , \"MediaSelect\": \"LaunchMediaPlayer\"\n // Google Chrome returns \"LaunchCalculator\" instead of \"LaunchApplication1\". See Chromium bug 612743 for more information.\n // Google Chrome returns \"LaunchMyComputer\" instead of \"LaunchApplication2\". See Chromium bug 612743 for more information.\n // (LaunchCalculator and LaunchMyComputer are valid too, so no translation)\n\n // While older browsers used words like \"Add\", \"Decimal\", \"Multiply\", and so forth modern browsers identify these using the actual character (\"+\", \".\", \"*\", and so forth).\n , \"Multiply\": \"*\"\n , \"Add\": \"+\"\n , \"Divide\": \"/\"\n , \"Subtract\": \"-\"\n , \"Decimal\": \".\" // (mozilla Key_Values doc says depends on region)\n , \"Separator\": \".\" // (mozilla Key_Values doc says depends on region)\n\n // keyIdenfier spec mapping of non-printable keys: https://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#keyset-keyidentifiers\n // Used in safari\n , \"U+0008\": \"Backspace\"\n , \"U+0009\": \"Tab\"\n , \"U+000D\": \"Enter\"\n , \"U+0018\": \"Cancel\"\n , \"U+001B\": \"Escape\"\n , \"U+007F\": \"Delete\"\n , \"U+0300\": \"DeadGrave\"\n , \"U+0301\": \"DeadEacute\"\n , \"U+0302\": \"DeadCircumflex\"\n , \"U+0303\": \"DeadTilde\"\n , \"U+0304\": \"DeadMacron\"\n , \"U+0306\": \"DeadBreve\"\n , \"U+0307\": \"DeadAboveDot\"\n , \"U+0308\": \"DeadUmlaut\"\n , \"U+030A\": \"DeadAboveRing\"\n , \"U+030B\": \"DeadDoubleacute\"\n , \"U+030C\": \"DeadCaron\"\n , \"U+0327\": \"DeadCedilla\"\n , \"U+0328\": \"DeadOgonek\"\n , \"U+0345\": \"DeadIota\"\n , \"U+3099\": \"DeadVoicedSound\"\n , \"U+309A\": \"DeadSemivoicedSound\"\n\n // keyIdenfier spec mapping to characters: https://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#keyset-keyidentifiers\n , \"Exclamation\": \"!\"\n , \"DoubleQuote\": \"\\\"\"\n , \"Hash\": \"#\"\n , \"Dollar\": \"$\"\n , \"Ampersand\": \"&\"\n , \"LeftParen\": \"(\"\n , \"RightParen\": \")\"\n , \"Asterisk\": \"*\"\n , \"Plus\": \"+\"\n , \"Percent\": \"%\"\n , \"Comma\": \",\"\n , \"HyphenMinus\": \"-\"\n , \"Period\": \".\"\n , \"Solidus\": \"/\"\n , \"Colon\": \":\"\n , \"Semicolon\": \";\"\n , \"LessThan\": \"<\"\n , \"Equals\": \"=\"\n , \"GreaterThan\": \">\"\n , \"QuestionMark\": \"?\"\n , \"At\": \"@\"\n , \"LeftSquareBracket\": \"[\"\n , \"Backslash\": \"\\\\\"\n , \"RightSquareBracket\": \"]\"\n , \"Circumflex\": \"^\"\n , \"Underscore\": \"_\"\n , \"Grave\": \"`\"\n , \"LeftCurlyBracket\": \"{\"\n , \"Pipe\": \"|\"\n , \"RightCurlyBracket\": \"}\"\n , \"Euro\": \"€\"\n , \"InvertedExclamation\": \"¡\"\n\n // Safari fixes: viewed in local tests\n , \"U+0010\": \"ContextMenu\"\n }\n };\n}\n\n/** Returns normalized keyboard event properties, following the current W3C UI Events spec\n @param evt Keyboard event\n @return Normalized keyboard event data\n*/\nexport function normalizeKeyboardEventData(evt)\n{\n // event.key is supported from chrome:51, edge, ff: 29, ie: 9, not in safari\n // event.keyIdentifier in chrome 26-54, opera 15-41, safara: 5.1\n // safari doesn't provide either in keypress events, use U+evt.keyCode (uppercase 4-byte hex)\n\n let key = evt.key;\n if (key && key.charCodeAt(0) < 32) // IE11 under selenium gives back control chars at keypress\n key = \"\";\n\n key = key || evt.keyIdentifier || (evt.keyCode ? \"U+\" + (\"000\" + evt.keyCode.toString(16)).substr(-4).toUpperCase() : \"\");\n if (!key)\n key = \"Unidentified\";\n if (!keydata)\n initKeyMapping();\n if (keydata.mapping.hasOwnProperty(key))\n key = keydata.mapping[key];\n else if (key.startsWith(\"U+\")) // U+xxxx code\n key = String.fromCodePoint(parseInt(key.substr(2), 16));\n\n // IE11/edge numpad '.' with numlock returns 'Del' in .key in keypress event.\n if (evt.type === \"keypress\" && evt.char === \".\")\n key = \".\";\n else if (evt.key == \"\\u0000\" && evt.code == \"NumpadDecimal\") // seen in chrome 56.0.2924.76 on linux, numpad '.' without numlock returns key \"\\u0000\"\n key = \".\";\n\n return (\n { type: evt.type\n , target: evt.target\n , key: key\n , code: evt.code || \"Unidentified\"\n , ctrlKey: evt.ctrlKey\n , altKey: evt.altKey\n , location: evt.location\n , shiftKey: evt.shiftKey\n , metaKey: evt.metaKey\n , repeat: evt.repeat\n , isComposing: evt.isComposing\n });\n}\n\n/** Stop, fully, an event */\nexport function stop(event)\n{\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","/* @recommendedimport: import * as browser from 'dompack/extra/browser';\n\n Identify devices for the purpose of analytics/tracing\n NOT a library for feature detection!\n\n Based on Mootools.Browser\n*/\n/* eslint no-useless-escape: off */\n\nexport function parseUserAgent(ua)\n{\n ua = ua.toLowerCase();\n\n // chrome is included in the edge UA, so need to check for edge first, before checking if it's chrome.\n // safari is included in the miuibrowser UA, so need to check for miuibrowser first, before checking if it's safari.\n var UA = ua.match(/(edge|miuibrowser)[\\s\\/:]([\\w\\d\\.]+)/);\n if (!UA)\n UA = ua.match(/(opera|ie|firefox|chrome|trident|crios|version)[\\s\\/:]([\\w\\d\\.]+)?.*?(safari|(?:rv[\\s\\/:]|version[\\s\\/:])([\\w\\d\\.]+)|$)/);\n if (!UA) //try ios 11.4.1\n {\n UA = ua.match(/; cpu os ([\\d]+)/);\n if(UA)\n UA = [null, 'safari', parseInt(UA[1]) ];\n }\n if (!UA)\n UA = [null, 'unknown', 0];\n\n if (UA[1] == 'trident'){\n UA[1] = 'ie';\n if (UA[4]) UA[2] = UA[4];\n } else if (UA[1] == 'crios'){\n UA[1] = 'chrome';\n }\n\n let platform = ua.match(/ip(?:ad|od|hone)/) ? 'ios' : (ua.match(/(?:webos|android)/) || ua.match(/mac|win|linux/) || ['other'])[0];\n if (platform == 'win') platform = 'windows';\n\n let ret = { name: (UA[1] == 'version') ? UA[3] : UA[1],\n version: parseInt((UA[1] == 'opera' && UA[4]) ? UA[4] : UA[2]),\n platform: platform,\n device: ua.match(/ipad/) ? 'tablet' : [ 'ios', 'webos', 'android' ].includes(platform) ? 'mobile' : [ 'mac', 'windows', 'linux' ].includes(platform) ? 'desktop' : ''\n };\n if (ret.name == 'ie' && !ret.version && document.documentMode)\n ret.version = document.documentMode;\n\n return ret;\n}\n\n//module.exports =\nlet browser = parseUserAgent(navigator.userAgent);\n\nexport function getName()\n{\n return browser.name;\n}\nexport function getVersion()\n{\n return browser.version;\n}\nexport function getPlatform()\n{\n return browser.platform;\n}\nexport function getDevice()\n{\n return browser.device;\n}\nexport function getTriplet()\n{\n return browser.platform + '-' + browser.name + '-' + browser.version;\n}\n","// Auto-generated RPC interface from /opt/wh/whtree/modules/publisher/js/forms/internal/form.rpc.json\nvar RPCClient = require(\"@mod-system/js/wh/rpc\").default;\nvar request = exports.rpcclient = new RPCClient(\"publisher:forms\");\nexports.rpcResolve = function(promise, result) { request._handleLegacyRPCResolve(promise, result) };\nexports.invoke = function() { return request.invoke.apply(request,Array.prototype.slice.call(arguments)); }\n\nObject.defineProperty(module.exports, \"HTTP_ERROR\", { get: function() { return JSONRPC.HTTP_ERROR; }});\nObject.defineProperty(module.exports, \"JSON_ERROR\", { get: function() { return JSONRPC.JSON_ERROR; }});\nObject.defineProperty(module.exports, \"PROTOCOL_ERROR\", { get: function() { return JSONRPC.PROTOCOL_ERROR; }});\nObject.defineProperty(module.exports, \"RPC_ERROR\", { get: function() { return JSONRPC.RPC_ERROR; }});\nObject.defineProperty(module.exports, \"OFFLINE_ERROR\", { get: function() { return JSONRPC.OFFLINE_ERROR; }});\nObject.defineProperty(module.exports, \"TIMEOUT_ERROR\", { get: function() { return JSONRPC.TIMEOUT_ERROR; }});\nObject.defineProperty(module.exports, \"SERVER_ERROR\", { get: function() { return JSONRPC.SERVER_ERROR; }});\n\n// Adding dependency: '/opt/wh/whtree/modules/publisher/lib/internal/forms/rpc.whlib'\n\nexports.getUploadedFileFinalURL = exports.GetUploadedFileFinalURL = /*STRING*/function(/*STRING*/ uploadurl)\n{\nreturn request.invoke.apply(request,[\"GetUploadedFileFinalURL\"].concat(Array.prototype.slice.call(arguments)));\n}\n\nexports.getImgFromRemoteURL = exports.GetImgFromRemoteURL = /*STRING*/function(/*STRING*/ uploadurl)\n{\nreturn request.invoke.apply(request,[\"GetImgFromRemoteURL\"].concat(Array.prototype.slice.call(arguments)));\n}\n\nexports.requestBuiltinForm = exports.RequestBuiltinForm = /*RECORD*/function(/*RECORD*/ submitinfo, /*STRING*/ filename, /*STRING*/ formname)\n{\nreturn request.invoke.apply(request,[\"RequestBuiltinForm\"].concat(Array.prototype.slice.call(arguments)));\n}\n\nexports.validateEmbeddedObjects = exports.ValidateEmbeddedObjects = /*RECORD*/function(/*STRING ARRAY*/ objrefs)\n{\nreturn request.invoke.apply(request,[\"ValidateEmbeddedObjects\"].concat(Array.prototype.slice.call(arguments)));\n}\n\nexports.callFormService = exports.CallFormService = /*VARIANT*/function(/*STRING*/ method, /*VARIANT ARRAY*/ args)\n{\nreturn request.invoke.apply(request,[\"CallFormService\"].concat(Array.prototype.slice.call(arguments)));\n}\n\nexports.validateEmail = exports.ValidateEmail = /*RECORD*/function(/*STRING*/ langcode, /*STRING*/ emailaddress)\n{\nreturn request.invoke.apply(request,[\"ValidateEmail\"].concat(Array.prototype.slice.call(arguments)));\n}\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","exports.f = require('./_wks');\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","/** This is currently more or less based on the mootools Cookie library */\n/* eslint no-useless-escape: off */\n\nimport { isIsolated } from './storage.es';\nlet isolatedcookies = {};\n\nfunction escapeRegExp(xx)\n{\n return xx.replace(/([-.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n}\n\n//based on mootools cookie\nclass Cookie\n{\n constructor(key,options)\n {\n if(!options)\n options={};\n\n this.key = key;\n this.options = { path: 'path' in options ? options.path : '/'\n , domain: 'domain' in options ? options.domain : false\n , duration: 'duration' in options ? options.duration : false\n , secure: 'secure' in options ? options.secure : false\n , encode: 'encode' in options ? options.encode : true\n , httponly: 'httpOnly' in options ? options.httpOnly : 'httponly' in options ? options.httponly : false\n , samesite: 'samesite' in options ? options.samesite : ''\n };\n }\n write(value)\n {\n if(isIsolated())\n {\n isolatedcookies[\"c.\" + this.key] = String(value);\n return;\n }\n\n if (this.options.encode)\n value = encodeURIComponent(value);\n if (this.options.domain)\n value += '; domain=' + this.options.domain;\n if (this.options.path)\n value += '; path=' + this.options.path;\n if (this.options.duration)\n {\n var date = new Date();\n date.setTime(date.getTime() + this.options.duration * 24 * 60 * 60 * 1000);\n value += '; expires=' + date.toGMTString();\n }\n if (this.options.secure)\n value += '; secure';\n if (this.options.httponly)\n value += '; HttpOnly';\n if (this.options.samesite)\n value += '; SameSite='+this.options.samesite;\n\n document.cookie = this.key + '=' + value;\n return this;\n }\n read()\n {\n if(isIsolated())\n return isolatedcookies[\"c.\" + this.key] || null;\n\n var value = document.cookie.match('(?:^|;)\\\\s*' + escapeRegExp(this.key) + '=([^;]*)');\n return (value) ? decodeURIComponent(value[1]) : null;\n }\n remove()\n {\n if(isIsolated())\n {\n delete isolatedcookies[\"c.\" + this.key];\n return;\n }\n new Cookie(this.key, Object.assign({}, this.options, {duration: -1})).write('');\n }\n}\n\nexport function list()\n{\n if(isIsolated())\n return Object.entries(isolatedcookies).map(entry => ({ name: entry[0].substr(2), value: entry[1] }));\n\n return document.cookie.split(';').map(cookie =>\n {\n let parts = cookie.split('=');\n return { name: decodeURIComponent(parts[0].trim()), value:decodeURIComponent(parts[1]||'') };\n });\n}\n\nexport function write(key, value, options)\n{\n return new Cookie(key, options).write(value);\n}\n\nexport function read(key)\n{\n return new Cookie(key).read();\n}\n\nexport function remove(key, options)\n{\n new Cookie(key, options).remove();\n}\n","\n/* Regex to identify dimensionless style sttributes. copied from old version of preact/src/constants.js (MIT)\n meant to capture:\n { boxFlex:1, boxFlexGroup:1, columnCount:1, fillOpacity:1, flex:1, flexGrow:1,\n flexPositive:1, flexShrink:1, flexNegative:1, fontWeight:1, lineClamp:1, lineHeight:1,\n opacity:1, order:1, orphans:1, strokeOpacity:1, widows:1, zIndex:1, zoom:1\n*/\nconst IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\nfunction generateInsertList(nodes)\n{\n if(nodes.length==1)\n return typeof nodes[0]==='string' ? document.createTextNode(nodes[0]) : nodes[0];\n\n let frag = document.createDocumentFragment();\n nodes.forEach(node => frag.appendChild(typeof node === 'string' ? document.createTextNode(node) : node));\n return frag;\n}\n\nexport function matches(node, selector)\n{\n var tocall = node.matches || node.matchesSelector || node.msMatchesSelector || node.webkitMatchesSelector;\n //if none of the 'matches' was found, this might be a textnode or something. returning false is probably safest\n return tocall && tocall.apply(node, [selector]);\n}\nexport function closest(node, selector)\n{\n if(node.closest)\n return node.closest(selector);\n for(;node&&!matches(node,selector);node=node.parentElement)\n /*iterate*/;\n return node;\n}\n//implements contains. TODO we only really need this on IE11, which doesn't consider a text node a child, we can probably fall back to native elsewhere ?\nexport function contains(ancestor, child)\n{\n for(;child;child=child.parentNode)\n if(child===ancestor)\n return true;\n return false;\n}\n//insert a range of nodes before a node: https://dom.spec.whatwg.org/#dom-childnode-before\nexport function before(node,...nodes)\n{\n if(node.before)\n {\n node.before(...nodes);\n return;\n }\n if(node.parentNode)\n node.parentNode.insertBefore(generateInsertList(nodes), node);\n}\n//insert a range of nodes after a node: https://dom.spec.whatwg.org/#dom-childnode-after\nexport function after(node,...nodes)\n{\n if(node.after)\n {\n node.after(...nodes);\n return;\n }\n if(node.parentNode)\n node.parentNode.insertBefore(generateInsertList(nodes), node.nextSibling);\n}\n//replace node with a set of nodes : https://dom.spec.whatwg.org/#dom-childnode-replacewith\nexport function replaceWith(node,...nodes)\n{\n if(node.replaceWith)\n {\n node.replaceWith(...nodes);\n return;\n }\n if(node.parentNode)\n node.parentNode.replaceChild(generateInsertList(nodes), node);\n}\n//remove node with a set of nodes : https://dom.spec.whatwg.org/#dom-childnode-remove\nexport function remove(node)\n{\n if(node.parentNode)\n node.parentNode.removeChild(node);\n}\n//insert nodes at start: https://dom.spec.whatwg.org/#dom-parentnode-prepend\nexport function prepend(node, ...nodes)\n{\n node.insertBefore(generateInsertList(nodes), node.firstChild);\n}\n//insert nodes at end: https://dom.spec.whatwg.org/#dom-parentnode-append\nexport function append(node, ...nodes)\n{\n node.appendChild(generateInsertList(nodes));\n}\n\n//offer toggleClass ourselves as IE11's native version is broken - does not understand the last parameter\n/** Toggle a single class */\nexport function toggleClass(node, classname, settoggle)\n{\n if (arguments.length === 2)\n node.classList.toggle(classname);\n else if (settoggle)\n node.classList.add(classname);\n else\n node.classList.remove(classname);\n}\n\n/** Toggle classes in a node\n @param node Node which classes to toggle\n @param toggles Object, all keys will be added/removed based on the truthyness of their values\n*/\nexport function toggleClasses(node, toggles)\n{\n if (typeof(toggles) !== \"object\")\n throw new Error(\"Expected an object with keys as classnames\");\n Object.keys(toggles).forEach(key => node.classList[toggles[key] ? \"add\" : \"remove\"](key));\n}\n\n/* remove the contents of an existing node */\nexport function empty(node)\n{\n //node.innerHTML=''; // this does NOT work for IE11, it destroys all nodes instead of unlinking them\n while(node.lastChild)\n node.removeChild(node.lastChild);\n}\n\n/** get the relative bound difference between two elements, and return a writable copy */\nexport function getRelativeBounds(node, relativeto)\n{\n if(!relativeto)\n relativeto = node.ownerDocument.documentElement;\n\n var nodecoords = node.getBoundingClientRect();\n var relcoords = relativeto.getBoundingClientRect();\n return { top: nodecoords.top - relcoords.top\n , left: nodecoords.left - relcoords.left\n , right: nodecoords.right - relcoords.left\n , bottom: nodecoords.bottom - relcoords.top\n , width: nodecoords.width\n , height: nodecoords.height\n };\n}\n\nexport function isDomReady()\n{\n return document.readyState == \"interactive\" || document.readyState == \"complete\";\n}\n\n/* run the specified function 'on ready'. adds to DOMContentLoaded if dom is not ready yet. Exceptions from the ready handler will not be fatal to the rest of code execution */\nexport function onDomReady(callback)\n{\n if(isDomReady())\n {\n try\n {\n callback();\n }\n catch(e)\n {\n console.error(\"Exception executing a domready handler\");\n console.log(e,e.stack);\n\n if (window.onerror)\n {\n // Send to onerror to trigger exception reporting\n try\n {\n window.onerror(e.message, e.fileName || \"\", e.lineNumber || 1, e.columNumber || 1, e);\n }\n catch (e)\n {\n }\n }\n }\n }\n else\n document.addEventListener(\"DOMContentLoaded\", callback);\n}\n\n//parse JSON data, throw with more info on parse failure\nexport function getJSONAttribute(node, attributename)\n{\n try\n {\n return JSON.parse(node.getAttribute(attributename));\n }\n catch(e)\n {\n console.error(\"JSON parse failure on attribute '\" +attributename+ \"' of node\", node);\n throw e;\n }\n}\n\n/** Get the base URI of the current document. IE11 doesn't implement document.baseURI\n @param doc Document to query. Defaults to window.document\n*/\nexport function getBaseURI(doc)\n{\n if(!doc)\n doc=window.document;\n if(doc.baseURI)\n return doc.baseURI;\n\n let base = doc.querySelector('base');\n if(base && base.href)\n return base.href;\n return doc.URL;\n}\n\n//queryselector quick wrapper\nexport function qS(node_or_selector, selector)\n{\n if(typeof node_or_selector == 'string')\n return document.querySelector(node_or_selector);\n else\n return node_or_selector.querySelector(selector);\n}\n\n//queryselectorall quick wrapper\nexport function qSA(node_or_selector, selector)\n{\n if(typeof node_or_selector == 'string')\n return Array.from(document.querySelectorAll(node_or_selector));\n else\n return Array.from(node_or_selector.querySelectorAll(selector));\n}\n\n\n/** Sets multiple styles on a node, automatically adding 'px' to numbers when appropriate\n (can be used as replacement for Mootools .setStyles)\n*/\nexport function setStyles(node, value)\n{\n if (!value || typeof value === 'string')\n node.style.cssText = value || '';\n else if (typeof value === 'object')\n {\n for (let i in value)\n {\n // for numbers, add 'px' if the constant isn't dimensionless (eg zIndex)\n node.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false\n ? value[i] + 'px'\n : value[i];\n }\n }\n}\n","export { run, registerFormatter } from 'dompack/extra/merge.es';\n","import * as dompack from 'dompack';\nimport * as domfocus from 'dompack/browserfix/focus';\nimport * as webharefields from './internal/webharefields';\nimport * as merge from './internal/merge';\nimport { executeSubmitInstruction } from '@mod-system/js/wh/integration';\nimport './internal/requiredstyles.css';\nimport { getTid } from \"@mod-tollium/js/gettid\";\nimport \"./internal/form.lang.json\";\nimport { reportValidity, setFieldError, setupValidator } from './internal/customvalidation.es';\nimport * as compatupload from '@mod-system/js/compat/upload';\nimport * as pxl from '@mod-consilio/js/pxl.es';\n\nconst anyinputselector = 'input,select,textarea,*[data-wh-form-name],*[data-wh-form-is-validator]';\nconst submitselector = 'input[type=submit],input[type=image],button[type=submit],button:not([type])';\n\nfunction isNodeCollection(node)\n{\n // IE11 returns an HTMLCollection for checkbox/radio groups, so check for that instead of RadioNodeList (which is undefined in IE11)\n return (node instanceof HTMLCollection || (typeof RadioNodeList != \"undefined\" && node instanceof RadioNodeList));\n}\nfunction getErrorFields(validationresult)\n{\n return validationresult.failed.map(field => field.name || field.dataset.whFormName || field.dataset.whFormGroupFor || \"?\")\n .sort()\n .filter( (value, index, self) => self.indexOf(value) === index) //unique filter\n .join(\" \");\n}\nfunction hasEverFailed(field)\n{\n return field.classList.contains('wh-form__field--everfailed');\n}\nfunction doValidation(field, isafter)\n{\n //If we're not an 'after failure' event, stay silent if the field hasn't erred yet\n if(isafter && !hasEverFailed(field))\n return;\n\n let form = field.closest('form');\n if(!form || !form.propWhFormhandler)\n return;\n\n let owner = field.closest('*[data-wh-form-is-validator]');\n let formhandler = form.propWhFormhandler;\n formhandler.validate([owner || field], {focusfailed:false});\n}\n\nfunction handleValidateEvent(event)\n{\n doValidation(event.target,false);\n}\nfunction handleValidateAfterEvent(event)\n{\n doValidation(event.target,true);\n}\n\nexport default class FormBase\n{\n constructor(formnode)\n {\n this.node = formnode;\n if(this.node.nodeName != 'FORM')\n throw new Error(\"Specified node is not a \"); //we want our clients to be able to assume 'this.node.elements' works\n\n this.elements = formnode.elements;\n if(this.node.propWhFormhandler)\n throw new Error(\"Specified node already has an attached form handler\");\n this.node.propWhFormhandler = this;\n\n //Implement webhare fields extensions, eg 'now' for date fields or 'enablecomponents'\n webharefields.setup(this.node);\n //Implement page navigation\n this.node.addEventListener(\"click\", evt => this._checkClick(evt));\n this.node.addEventListener(\"dompack:takefocus\", evt=> this._onTakeFocus(evt), true);\n this.node.addEventListener(\"input\", evt => this._onInputChange(evt), true);\n this.node.addEventListener(\"change\", evt => this._onInputChange(evt), true);\n this.node.addEventListener('submit', evt => this._submit(evt, null));\n this.node.addEventListener('wh:form-dosubmit', evt => this._doSubmit(evt, null));\n this.node.addEventListener(\"wh:form-setfielderror\", evt => this._doSetFieldError(evt));\n\n this._rewriteEnableOn();\n this._updateConditions(true); //Update required etc handlers\n this._applyPrefills();\n\n //Update page navigation\n let pagestate = this._getPageState();\n this._updatePageVisibility(pagestate.pages, 0);\n this._updatePageNavigation();\n }\n\n sendFormEvent(eventtype, vars)\n {\n if(!this._formhandling || !this._formhandling.pxl)\n return;\n\n let now = Date.now();\n if(!this._formsessionid)\n {\n this._formsessionid = pxl.generateId();\n this._firstinteraction = now;\n }\n\n let pagestate = this._getPageState();\n let formid = this.node.dataset.whFormId;\n pxl.sendPxlEvent(eventtype, { ds_formmeta_id: formid && formid != '-' ? formid : ''\n , ds_formmeta_session: this._formsessionid\n , dn_formmeta_time: now - this._firstinteraction\n , dn_formmeta_pagenum: pagestate.curpage + 1\n , ds_formmeta_pagetitle: this._getPageTitle(pagestate.curpage)\n , ...vars\n }, { node: this.node });\n }\n\n _rewriteEnableOn() //ADDME move this to webhare server\n {\n // This is the initialization, check the enable components for all elements within the form\n for (let control of dompack.qSA(this.node, \"*[data-wh-form-enable]\"))\n for (let element of control.dataset.whFormEnable.split(\" \"))\n {\n let target = this.node.elements[element];\n if (target)\n {\n let name = (control.nodeName == \"OPTION\" ? control.closest(\"select\") : control).name;\n if(!name) //duplicated node?\n continue;\n\n let ourcondition = { field: name, matchtype: \"IN\", value: control.value };\n if(target.dataset.whFormEnabledIf) //append to existing criterium\n ourcondition = { conditions: [ JSON.parse(target.dataset.whFormEnabledIf).c, ourcondition ], matchtype: \"AND\" };\n target.dataset.whFormEnabledIf = JSON.stringify({c:ourcondition});\n }\n }\n }\n\n _applyPrefills()\n {\n //Apply prefills. Set in field order, so controls-enabling-controls things will generally work\n let searchparams = new URL(location.href).searchParams;\n for(let field of this._queryAllFields())\n {\n let allvalues = searchparams.getAll(field.name);\n if(!allvalues.length)\n continue;\n\n if(field.multi && field.nodes[0].type=='checkbox')\n {\n for(let node of field.nodes)\n {\n let shouldbechecked = allvalues.includes(node.value);\n if(shouldbechecked != field.checked)\n this.setFieldValue(node, shouldbechecked);\n }\n }\n else if(field.multi && field.nodes[0].type=='radio')\n {\n let tocheck = field.nodes.filter(_ => _.value == allvalues[allvalues.length-1])[0];\n if(tocheck && !tocheck.checked)\n this.setFieldValue(tocheck, true);\n if(!tocheck)\n field.nodes.filter(_ => _.checked).forEach(_ => this.setFieldValue(_, false));\n }\n else\n {\n if(!this._isNowSettable(field.node))\n continue;\n this.setFieldValue(field.node, allvalues[allvalues.length-1]); //last value wins\n }\n }\n }\n\n /** Setup how the form will handle validation and events. This is invoked\n after the form is setup and handled separately from any options passed\n to the constructor.. because there may be a race between form construction\n and forms.setup being invoked */\n _setupFormHandler(formhandling)\n {\n if(this._formhandling)\n throw new Error(\"Form handling can only be setup once\");\n\n this._formhandling = { ...formhandling };\n this._dovalidation = formhandling.validate;\n if(this._dovalidation)\n {\n this._curtriggerevents = [...formhandling.triggerevents];\n this._curafterevents = [...formhandling.triggerafterfailure];\n this._curtriggerevents.forEach(eventname => this.node.addEventListener(eventname, handleValidateEvent, true));\n this._curafterevents.forEach(eventname => this.node.addEventListener(eventname, handleValidateAfterEvent, true));\n this.node.noValidate = true;\n }\n }\n\n _updateFieldGroupMessageState(field, type, getError)\n {\n let mygroup = field.closest(\".wh-form__fieldgroup\");\n if(!mygroup)\n return null;\n\n //look for failing class, eg .wh-form__field--error - might actually apply to this group itself!\n let failedfield = mygroup.classList.contains(\"wh-form__field--\" + type) ? mygroup : mygroup.querySelector(\".wh-form__field--\" + type);\n dompack.toggleClass(mygroup, \"wh-form__fieldgroup--\" + type, !!failedfield); //eg. wh-form__fieldgroup--error\n\n let error = (failedfield ? getError(failedfield) : null) || null;\n if(error) //mark the field has having failed at one point. we will now switch to faster updating error state\n field.classList.add('wh-form__field--everfailed');\n\n if(error && !(error instanceof Node))\n error = dompack.create('span', { textContent: error });\n\n if(!dompack.dispatchCustomEvent(mygroup, 'wh:form-displaymessage', //this is where parsley hooks in and cancels to handle the rendering of faults itself\n { bubbles: true\n , cancelable: true\n , detail: { message: error\n , field: failedfield\n , type: type\n } }))\n {\n return null;\n }\n\n let messagenode = mygroup.querySelector(\".wh-form__\" + type); //either wh-form__error or wh-form__suggestion\n if(!messagenode)\n {\n if(!failedfield)\n return; //nothing to do\n\n let suggestionholder = field.closest('.wh-form__fields') || mygroup.querySelector('.wh-form__fields') || mygroup;\n messagenode = dompack.create(\"div\", { className: \"wh-form__\" + type });\n dompack.append(suggestionholder, messagenode);\n }\n\n dompack.empty(messagenode);\n if(error)\n messagenode.appendChild(error);\n }\n\n _updateFieldGroupErrorState(field)\n {\n this._updateFieldGroupMessageState(field, 'error', failedfield => failedfield.propWhSetFieldError || failedfield.propWhValidationError);\n }\n\n _updateFieldGroupSuggestionState(field)\n {\n this._updateFieldGroupMessageState(field, 'suggestion', failedfield => failedfield.propWhValidationSuggestion);\n }\n\n _doSetFieldError(evt)\n {\n //FIXME properly handle multiple fields in this group reporting errors\n if(!this._dovalidation)\n return;\n\n dompack.stop(evt);\n\n //if we're already in error mode, always update reporting\n if(!evt.detail.reportimmediately && !evt.target.classList.contains(\"wh-form__field--error\"))\n return;\n\n this._reportFieldValidity(evt.target);\n }\n\n _reportFieldValidity(node)\n {\n let iserror = (node.propWhSetFieldError || node.propWhValidationError || node.propWhFormNativeError);\n dompack.toggleClass(node, \"wh-form__field--error\", !!iserror);\n\n let issuggestion = !iserror && node.propWhValidationSuggestion;\n dompack.toggleClass(node, \"wh-form__field--suggestion\", !!issuggestion);\n\n this._updateFieldGroupErrorState(node);\n this._updateFieldGroupSuggestionState(node);\n return !iserror;\n }\n\n //validate and submit. normal submissions should use this function, directly calling submit() skips validation and busy locking\n async validateAndSubmit(extradata)\n {\n await this._submit(null, extradata);\n }\n\n async _submit(evt, extradata)\n {\n if(this.node.classList.contains('wh-form--submitting')) //already submitting\n return;\n\n //A form element's default button is the first submit button in tree order whose form owner is that form element.\n let submitter = this._submitter || this.node.querySelector(submitselector);\n this._submitter = null;\n\n if(dompack.debugflags.fhv)\n console.log('[fhv] received submit event, submitter:', submitter);\n\n let tempbutton = null;\n if(submitter)\n { //temporarily add a hidden field representing the selected button\n tempbutton = document.createElement('input');\n tempbutton.name = submitter.name;\n tempbutton.value = submitter.value;\n tempbutton.type = \"hidden\";\n this.node.appendChild(tempbutton);\n }\n\n try\n {\n if(!dompack.dispatchCustomEvent(this.node, 'wh:form-beforesubmit',{ bubbles:true, cancelable:true })) //allow parsley to hook into us\n return; //we expect parsley to invoke _doSubmit through wh:form-dosubmit\n\n await this._doSubmit(evt, extradata);\n }\n finally\n {\n dompack.remove(tempbutton);\n }\n }\n\n //reset any serverside generated errors (generally done when preparing a new submission)\n resetServerSideErrors()\n {\n for(let field of Array.from(this.node.querySelectorAll(anyinputselector)))\n {\n if(field.propWhSetFieldError && field.propWhErrorServerSide)\n field.propWhCleanupFunction();\n }\n\n }\n\n async _doSubmit(evt, extradata)\n {\n if(evt)\n evt.preventDefault();\n\n let lock = dompack.flagUIBusy({ ismodal: true, component: this.node });\n this._submitstart = Date.now();\n if(this._formhandling && this._formhandling.warnslow)\n this._submittimeout = setTimeout(() => this._submitHasTimedOut(), this._formhandling.warnslow);\n\n this.node.classList.add('wh-form--submitting');\n\n try\n {\n this.resetServerSideErrors();\n\n let validationresult = await this.validate();\n if(validationresult.valid)\n {\n let result = await this.submit(extradata);\n if (result.result && result.result.submittype && result.result.submittype != this._getVariableValueForConditions(\"formsubmittype\"))\n {\n this.node.setAttribute(\"data-wh-form-var-formsubmittype\", result.result.submittype);\n this._updateConditions(false);\n }\n }\n else\n {\n this.sendFormEvent('publisher:formfailed', { ds_formmeta_errorfields: getErrorFields(validationresult)\n , ds_formmeta_errorsource: 'client'\n , dn_formmeta_waittime: Date.now() - this._submitstart\n });\n }\n }\n finally\n {\n lock.release();\n this.node.classList.remove('wh-form--submitting');\n if(this._submittimeout)\n {\n clearTimeout(this._submittimeout);\n this._submittimeout = 0;\n }\n }\n }\n\n _submitHasTimedOut() //TODO extend this to (background) RPCs too, and make waitfor more specific. also check whether we're stuck on client or server side\n {\n this.sendFormEvent('publisher:formslow', { dn_formmeta_waittime: Date.now() - this._submitstart\n , ds_formmeta_waitfor: \"submit\"\n });\n this._submittimeout = 0;\n }\n\n //default submission function. eg. RPC will override this\n async submit()\n {\n this.node.submit();\n }\n\n _onTakeFocus(evt)\n {\n let containingpage = evt.target.closest('.wh-form__page');\n if(containingpage && containingpage.classList.contains('wh-form__page--hidden'))\n {\n //make sure the page containing the errored component is visible\n let pagenum = dompack.qSA(this.node, '.wh-form__page').findIndex(page => page == containingpage);\n if(pagenum >= 0)\n this.gotoPage(pagenum);\n }\n }\n\n _checkClick(evt)\n {\n let actionnode = evt.target.closest(\"*[data-wh-form-action]\");\n if(!actionnode)\n {\n let submitter = evt.target.closest(submitselector);\n if(submitter)\n {\n this._submitter = submitter; //store as submitter in case a submit event actually occurs\n setTimeout(() => this._submitter = null); //but clear it as soon as event processing ends\n }\n return;\n }\n\n dompack.stop(evt);\n this.executeFormAction(actionnode.dataset.whFormAction);\n }\n\n _getPageState()\n {\n let pages = dompack.qSA(this.node, '.wh-form__page');\n let curpage = pages.findIndex(page => !page.classList.contains('wh-form__page--hidden'));\n return { pages, curpage };\n }\n\n _updatePageVisibility(pagelist, currentpage)\n {\n pagelist.forEach( (page,idx) =>\n {\n dompack.toggleClass(page, 'wh-form__page--hidden', idx != currentpage);\n dompack.toggleClass(page, 'wh-form__page--visible', idx == currentpage);\n });\n }\n\n ///Get the currently opened page (page node)\n getCurrentPage()\n {\n let state = this._getPageState();\n return state.curpage >= 0 ? state.pages[state.curpage] : null;\n }\n\n /** Position the specified element's group or the form itself into view, using `.wh-anchor` nodes to correct for fixed headers\n @param scrollto Element to position into view. If not set, the form it scrolled into view */\n scrollIntoView(scrollto)\n {\n let origscrollto = scrollto;\n scrollto = (scrollto ? scrollto.closest('.wh-form__fieldgroup') : null) || this.node;\n scrollto = scrollto.querySelector('.wh-anchor') || scrollto;\n if(origscrollto && scrollto != origscrollto && dompack.debugflags.fhv)\n console.log('[fhv] Modified scroll target from ', origscrollto, ' to anchor ', scrollto);\n else\n console.log('[fhv] Scroll to ', scrollto);\n\n scrollto.scrollIntoView();\n }\n\n /** Goto a specific page\n @param pageidx 0-based index of page to jump to */\n async gotoPage(pageidx)\n {\n let state = this._getPageState();\n if(state.curpage == pageidx)\n return;\n if (pageidx < 0 || pageidx >= state.pages.length)\n throw new Error(`Cannot navigate to nonexisting page #${pageidx}`);\n\n let goingforward = pageidx > state.curpage;\n this.sendFormEvent(goingforward ? 'publisher:formnextpage' : 'publisher:formpreviouspage'\n , { dn_formmeta_targetpagenum: pageidx + 1\n , ds_formmeta_targetpagetitle: this._getPageTitle(pageidx)\n });\n\n this._updatePageVisibility(state.pages, pageidx);\n if(goingforward) //only makes sense to update if we're making progress\n merge.run(state.pages[pageidx], { form: await this.getFormValue() });\n\n this._updatePageNavigation();\n\n //scroll back up\n this.scrollIntoView();\n\n /* tell the page it's now visible - note that we specifically don't fire this on init, as it's very likely\n users would 'miss' the event anyway - registerHandler usually executes faster than your wh:form-pagechange\n registrations, if you wrapped those in a dompack.register */\n dompack.dispatchCustomEvent(state.pages[pageidx], \"wh:form-pagechange\", { bubbles: true, cancelable: false });\n }\n\n _getDestinationPage(pagestate, direction)\n {\n let pagenum = pagestate.curpage + direction;\n while (pagenum >= 0 && pagenum < pagestate.pages.length && pagestate.pages[pagenum].propWhFormCurrentVisible === false)\n pagenum = pagenum + direction;\n if (pagenum < 0 || pagenum >= pagestate.pages.length)\n return -1;\n return pagenum;\n }\n\n _getPageTitle(pagenum)\n {\n let pagenode = this._getPageState().pages[pagenum];\n if(!pagenode)\n return \"\";\n return pagenode.dataset.whFormPagetitle || (\"#\" + (pagenum+1));\n }\n\n async executeFormAction(action)\n {\n switch(action)\n {\n case 'previous':\n {\n if(this.node.classList.contains('wh-form--allowprevious'))\n {\n let pagestate = this._getPageState();\n if(pagestate.curpage > 0)\n this.gotoPage(this._getDestinationPage(pagestate, -1));\n else if(this.node.dataset.whFormBacklink)\n location.href = this.node.dataset.whFormBacklink;\n }\n return;\n }\n case 'next':\n {\n let pagestate = this._getPageState();\n if(this.node.classList.contains('wh-form--allownext'))\n {\n this.resetServerSideErrors();\n\n let validationstatus = await this.validate(pagestate.pages[pagestate.curpage]);\n if(validationstatus.valid)\n {\n this.gotoPage(this._getDestinationPage(pagestate, +1));\n }\n else\n {\n this.sendFormEvent('publisher:formfailed', { ds_formmeta_errorfields: getErrorFields(validationstatus)\n , ds_formmeta_errorsource: 'nextpage'\n });\n }\n }\n return;\n }\n default:\n {\n console.error(`Unknown form action '${action}'`);\n }\n }\n }\n\n async refreshConditions()\n {\n await this._updateConditions(false);\n }\n\n _onInputChange(evt)\n {\n if(!this._firstinteraction)\n this.sendFormEvent(\"publisher:formstarted\");\n\n this._updateConditions(false);\n }\n\n async _updateConditions(isinit)\n {\n // Check pages visibility\n let hiddenPages = [];\n let mergeNodes = [];\n let anychanges = false;\n\n for (let formpage of dompack.qSA(this.node, \".wh-form__page\"))\n {\n let visible = true;\n if (formpage.dataset.whFormVisibleIf)\n {\n visible = this._matchesCondition(formpage.dataset.whFormVisibleIf);\n if (!visible)\n hiddenPages.push(formpage); // We don't have to check fields on this page any further\n\n if (visible != formpage.propWhFormCurrentVisible)\n {\n anychanges = true;\n formpage.propWhFormCurrentVisible = visible;\n mergeNodes.push(formpage);\n }\n }\n }\n if (anychanges)\n this._updatePageNavigation();\n\n let tovalidate = [];\n let hiddengroups = [], enabledgroups = [], requiredgroups = [];\n for (let formgroup of dompack.qSA(this.node, \".wh-form__fieldgroup\"))\n {\n let visible = !hiddenPages.includes(formgroup.closest(\".wh-form__page\"))\n && this._matchesCondition(formgroup.dataset.whFormVisibleIf);\n\n if(!visible)\n hiddengroups.push(formgroup);\n\n let enabled = visible\n && this._matchesCondition(formgroup.dataset.whFormEnabledIf);\n\n if(enabled)\n enabledgroups.push(formgroup);\n\n //load initial status?\n if(formgroup.propWhFormInitialRequired === undefined)\n formgroup.propWhFormInitialRequired = formgroup.classList.contains(\"wh-form__fieldgroup--required\");\n\n let required = enabled\n && (formgroup.dataset.whFormRequiredIf ? this._matchesCondition(formgroup.dataset.whFormRequiredIf) : formgroup.propWhFormInitialRequired);\n\n if(required)\n requiredgroups.push(formgroup);\n\n if (visible !== formgroup.propWhFormCurrentVisible // These are initially undefined, so this code will always run first time\n || enabled !== formgroup.propWhFormCurrentEnabled\n || required !== formgroup.propWhFormCurrentRequired)\n {\n formgroup.propWhFormCurrentVisible = visible;\n formgroup.propWhFormCurrentEnabled = enabled;\n formgroup.propWhFormCurrentRequired = required;\n\n dompack.toggleClass(formgroup, \"wh-form__fieldgroup--hidden\", !visible);\n dompack.toggleClass(formgroup, \"wh-form__fieldgroup--disabled\", !enabled);\n dompack.toggleClass(formgroup, \"wh-form__fieldgroup--required\", required);\n\n mergeNodes.push(formgroup);\n }\n }\n\n for(let formline of dompack.qSA(this.node, \".wh-form__fieldline\"))\n {\n let formgroup = formline.closest(\".wh-form__fieldgroup\");\n let visible = !hiddengroups.includes(formgroup) && this._matchesCondition(formline.dataset.whFormVisibleIf);\n let enabled = visible && enabledgroups.includes(formgroup) && this._matchesCondition(formline.dataset.whFormEnabledIf);\n let required = enabled && requiredgroups.includes(formgroup);\n\n if (visible !== formline.propWhFormlineCurrentVisible) // These are initially undefined, so this code will always run first time\n {\n formline.propWhFormlineCurrentVisible = visible;\n dompack.toggleClass(formline, \"wh-form__fieldline--hidden\", !visible);\n }\n\n // Look for nodes that are explicit enable state (enablee/require) listeners, or that need to do so because they're real input controls\n let inputtargets = dompack.qSA(formline, \"[data-wh-form-state-listener='true'],input,select,textarea\");\n\n for (let node of inputtargets)\n {\n //Record initial states\n if (node.propWhFormSavedEnabled === undefined)\n node.propWhFormSavedEnabled = !node.disabled && !(\"whFormDisabled\" in node.dataset);\n\n if (node.propWhFormSavedRequired === undefined)\n node.propWhFormSavedRequired = !!node.required;\n\n // The field is enabled if all of these are matched:\n // - we're setting it to enabled now\n // - it hasn't been disabled explicitly (set initially on the node)\n // - it hasn't been disabled through enablecomponents\n let node_enabled = enabled && node.propWhFormSavedEnabled && this._matchesCondition(node.dataset.whFormEnabledIf);\n\n if(node_enabled !== node.propWhNodeCurrentEnabled)\n {\n node.propWhNodeCurrentEnabled = node_enabled;\n\n // Give the formgroup a chance to handle it\n if (dompack.dispatchCustomEvent(node, \"wh:form-enable\", { bubbles: true, cancelable: true, detail: { enabled: node_enabled }}))\n {\n // Not cancelled, so run our default handler\n if(node.matches(\"input,select,textarea\")) //For true html5 inputs we'll use the native attributes. formstatelisteners: we use data attributes\n node.disabled = !node_enabled;\n else if(node_enabled)\n node.removeAttribute(\"data-wh-form-disabled\");\n else\n node.setAttribute(\"data-wh-form-disabled\",\"\");\n }\n\n if (!isinit && !node_enabled && !tovalidate.includes(node))\n tovalidate.push(node); // to clear errors for this disabled field\n }\n\n let node_required = (node.propWhFormSavedRequired || required) && node_enabled && visible;\n if(node.propWhNodeCurrentRequired !== node_required)\n {\n node.propWhNodeCurrentRequired = node_required;\n\n // Give the formgroup a chance to handle it\n if (dompack.dispatchCustomEvent(node, \"wh:form-require\", { bubbles: true, cancelable: true, detail: { required: node_required }}))\n {\n // Not cancelled, so run our default handler\n if(node.matches(\"input,select,textarea\")) //For true html5 inputs we'll use the native attributes. formstatelisteners: we use data attributes\n {\n if(node.type != 'checkbox') //don't set required on checkboxes, that doesn't do what you want\n node.required = node_required;\n }\n else if(node_required)\n node.setAttribute(\"data-wh-form-required\",\"\");\n else\n node.removeAttribute(\"data-wh-form-required\");\n }\n\n if (!isinit && !node_required && formgroup.classList.contains(\"wh-form__fieldgroup--error\") && !tovalidate.includes(node))\n tovalidate.push(node); // to clear errors for this now optional field\n }\n }\n }\n\n for(let option of dompack.qSA(this.node, \".wh-form__fieldgroup select > option\"))\n {\n let visible = this._matchesCondition(option.dataset.whFormVisibleIf);\n\n //Record initial states\n if (option.propWhFormSavedEnabled === undefined)\n option.propWhFormSavedEnabled = !option.disabled;\n\n let option_enabled = visible && option.propWhFormSavedEnabled;\n\n if(option_enabled !== option.propWhNodeCurrentEnabled)\n {\n option.propWhNodeCurrentEnabled = option_enabled;\n option.disabled = !option_enabled;\n\n // If this option was the selected option, but is now disabled (but not the placeholder), reset the select's value\n let selectnode = option.closest(\"select\");\n if (option.disabled && option.selected && option.dataset.whPlaceholder === undefined)\n {\n if(selectnode.options[0].dataset.whPlaceholder !== undefined) //we have a placeholder...\n selectnode.selectedIndex = 0;\n else\n selectnode.selectedIndex = -1;\n }\n\n if (!isinit && !tovalidate.includes(selectnode))\n tovalidate.push(selectnode); // to clear errors for this option's select field\n }\n }\n\n if (tovalidate.length)\n await this.validate(tovalidate, { focusfailed: false, iffailedbefore: true });\n\n this.fixupMergeFields(mergeNodes);\n }\n\n async fixupMergeFields(nodes)\n {\n // Rename the data-wh-merge attribute to data-wh-dont-merge on hidden pages and within hidden formgroups to prevent\n // merging invisible nodes\n // FIXME 'merge' has a filter option now - convert to that!\n let formvalue = await this.getFormValue();\n for (let node of nodes)\n {\n if (node.propWhFormCurrentVisible)\n {\n for(let mergeNode of dompack.qSA(node, '*[data-wh-dont-merge]'))\n {\n mergeNode.dataset.merge = mergeNode.dataset.whDontMerge;\n mergeNode.removeAttribute(\"data-wh-dont-merge\");\n }\n merge.run(node, { form: formvalue });\n }\n else\n {\n for(let mergeNode of dompack.qSA(node, '*[data-merge]'))\n {\n mergeNode.dataset.whDontMerge = mergeNode.dataset.merge;\n mergeNode.removeAttribute(\"data-merge\");\n }\n }\n }\n }\n\n _matchesCondition(conditiontext)\n {\n if(!conditiontext)\n return true;\n\n let condition = JSON.parse(conditiontext).c;\n return this._matchesConditionRecursive(condition);\n }\n\n _getConditionRawValue(fieldname, options)\n {\n if(this.node.hasAttribute(\"data-wh-form-var-\" + fieldname))\n return this.node.getAttribute(\"data-wh-form-var-\" + fieldname);\n\n let matchfield = this.elements[fieldname];\n if(!matchfield)\n {\n console.error(`No match for conditional required field '${fieldname}'`);\n return null;\n }\n\n if (isNodeCollection(matchfield))\n {\n let currentvalue = null;\n\n for (let field of matchfield)\n if (((options && options.checkdisabled) || this._isNowSettable(field)) && field.checked)\n {\n if (field.type != \"checkbox\")\n return field.value;\n\n if(!currentvalue)\n currentvalue = [];\n currentvalue.push(field.value);\n }\n return currentvalue;\n }\n else\n {\n //Can we set this field?\n if((!options || !options.checkdisabled) && !this._isNowSettable(matchfield))\n return null;\n }\n\n if (matchfield.type == \"checkbox\")\n return matchfield.checked ? [ matchfield.value ] : null;\n\n if (matchfield.type == \"radio\")\n return matchfield.checked ? matchfield.value : null;\n\n return matchfield.value;\n }\n\n _getVariableValueForConditions(conditionfield, options)\n {\n if(this.node.hasAttribute(\"data-wh-form-var-\" + conditionfield))\n return this.node.getAttribute(\"data-wh-form-var-\" + conditionfield);\n\n let fields = conditionfield.split(\"$\");\n\n if (fields.length > 1)\n {\n // If the condition field has a subfield, check if it's available through a form var\n // The '$' in the attribute name is replaced with '.' to make the attribute name valid\n const attrname = fields.join(\".\");\n if(this.node.hasAttribute(\"data-wh-form-var-\" + attrname))\n return this.node.getAttribute(\"data-wh-form-var-\" + attrname);\n }\n\n let currentvalue = this._getConditionRawValue(fields[0], options);\n if(fields.length === 1 || currentvalue === null) //no subs to process\n return currentvalue;\n\n // Look for an extrafield match\n let matchfield = this.elements[fields[0]];\n if (!matchfield)\n {\n console.error(`No match for conditional required field '${conditionfield}'`);\n return null;\n }\n\n if (matchfield.nodeName == \"SELECT\")\n {\n if (Array.isArray(currentvalue))\n {\n let selectedvalue = currentvalue;\n currentvalue = [];\n for (let val of selectedvalue)\n {\n let selected = dompack.qS(matchfield, `option[value=\"${val}\"]`);\n if(!selected.dataset.__extrafields)\n return null;\n let extrafields = JSON.parse(selected.dataset.__extrafields);\n currentvalue.push(extrafields[fields[1]]);\n }\n }\n else\n {\n let selected = dompack.qS(matchfield, `option[value=\"${currentvalue}\"]`);\n if(!selected.dataset.__extrafields)\n return null;\n let extrafields = JSON.parse(selected.dataset.__extrafields);\n currentvalue = extrafields[fields[1]];\n }\n return currentvalue;\n }\n else\n {\n console.error(\"Subfield matching not supported for non-select fields\");\n return null;\n }\n }\n\n\n _matchesConditionRecursive(condition)\n {\n if (condition.matchtype == \"AND\")\n {\n for (let subcondition of condition.conditions)\n if (!this._matchesConditionRecursive(subcondition))\n return false;\n return true;\n }\n else if (condition.matchtype == \"OR\")\n {\n for (let subcondition of condition.conditions)\n if (this._matchesConditionRecursive(subcondition))\n return true;\n return false;\n }\n else if (condition.matchtype == \"NOT\")\n {\n return !this._matchesConditionRecursive(condition.condition);\n }\n\n let currentvalue = this._getVariableValueForConditions(condition.field, condition.options);\n\n if(condition.matchtype == \"HASVALUE\")\n return !!currentvalue == !!condition.value;\n\n if([ \"IN\", \"HAS\", \"IS\" ].includes(condition.matchtype))\n {\n let matchcase = !condition.options || condition.options.matchcase !== false; // Defaults to true\n let compareagainst = Array.isArray(condition.value) ? condition.value : condition.value ? [ condition.value ] : [];\n\n if (!Array.isArray(currentvalue))\n currentvalue = currentvalue ? [ currentvalue ] : [];\n\n // If the match is not case-sensitive, the condition value is already uppercased, so we only have to uppercase the\n // current value(s) when checking\n if (!matchcase)\n currentvalue = currentvalue.map(value => value.toUpperCase());\n\n // The current value and the condition value should (at least) overlap\n if (!currentvalue.some(value => compareagainst.includes(value)))\n return false;\n\n // For \"HAS\" and \"IS\" conditions, all of the required values should be selected (there shouldn't be required values\n // that are not selected)\n if ((condition.matchtype == \"HAS\" || condition.matchtype == \"IS\") && compareagainst.some(value => !currentvalue.includes(value)))\n return false;\n\n // For an \"IS\" condition, all of the selected values should be required (there shouldn't be selected values that are\n // not required)\n if (condition.matchtype == \"IS\" && currentvalue.some(value => !compareagainst.includes(value)))\n return false;\n\n return true;\n }\n\n if([\"AGE<\",\"AGE>=\"].includes(condition.matchtype))\n {\n if(!currentvalue)\n return false;\n\n let now = new Date, birthdate = new Date(currentvalue);\n let age = now.getFullYear() - birthdate.getFullYear();\n //birthdate not hit yet this year? then you lose a year\n if (now.getMonth() < birthdate.getMonth()\n || (now.getMonth() == birthdate.getMonth() && now.getDate() < birthdate.getDate()))\n {\n --age;\n }\n\n return (condition.matchtype == 'AGE<' && age < condition.value)\n || (condition.matchtype == 'AGE>=' && age >= condition.value);\n }\n return console.error(`No support for conditional type '${condition.matchtype}'`), false;\n }\n\n _updatePageNavigation()\n {\n let pagestate = this._getPageState();\n let nextpage = this._getDestinationPage(pagestate, +1);\n let morepages = nextpage != -1;\n let curpagerole = pagestate.pages[pagestate.curpage] ? pagestate.pages[pagestate.curpage].dataset.whFormPagerole : '';\n let nextpagerole = morepages ? pagestate.pages[nextpage].dataset.whFormPagerole : \"\";\n\n dompack.toggleClasses(this.node, { \"wh-form--allowprevious\": (pagestate.curpage > 0 && curpagerole != 'thankyou') || (pagestate.curpage <= 0 && this.node.dataset.whFormBacklink)\n , \"wh-form--allownext\": morepages && nextpagerole != 'thankyou'\n , \"wh-form--allowsubmit\": curpagerole != 'thankyou' && (!morepages || nextpagerole == 'thankyou')\n });\n }\n\n _navigateToThankYou(richvalues)\n {\n let state = this._getPageState();\n if(state.curpage >= 0)\n {\n let nextpage = this._getDestinationPage(state, +1);\n if (nextpage != -1 && state.pages[nextpage] && state.pages[nextpage].dataset.whFormPagerole == 'thankyou')\n {\n if (state.pages[nextpage].dataset.whFormPageredirect)\n executeSubmitInstruction({ type: \"redirect\", url: state.pages[nextpage].dataset.whFormPageredirect });\n else\n {\n this.updateRichValues(state.pages[nextpage], richvalues);\n this.gotoPage(nextpage);\n }\n }\n }\n }\n\n updateRichValues(page, richvalues)\n {\n if (richvalues)\n {\n for (let { field, value } of richvalues)\n {\n let node = page.querySelector(`.wh-form__fieldgroup--richtext[data-wh-form-group-for=\"${CSS.escape(field)}\"] .wh-form__richtext`);\n if (node)\n {\n node.innerHTML = value;\n dompack.registerMissed(node);\n }\n }\n }\n }\n\n /* Override this to overwrite the processing of individual fields. Note that\n radio and checkboxes are not passed through getFieldValue, and that\n getFieldValue may return undefined or a promise. */\n async getFieldValue(field)\n {\n if(field.hasAttribute('data-wh-form-name') || field.whUseFormGetValue)\n {\n //create a deferred promise for the field to fulfill\n let deferred = dompack.createDeferred();\n //if cancelled, we'll assume the promise is taken over\n if(!dompack.dispatchCustomEvent(field, 'wh:form-getvalue', { bubbles:true, cancelable:true, detail: { deferred } }))\n return deferred.promise;\n }\n if(field.nodeName == 'INPUT' && field.type == 'file')\n {\n //FIXME multiple support\n if(field.files.length==0)\n return null;\n\n let dataurl = await compatupload.getFileAsDataURL(field.files[0]);\n return { filename: field.files[0].name.split('\\\\').join('/').split('/').pop() //ensure we get the last part\n , link: dataurl\n };\n // return Promise.all(Array.from(field.files).map(async function(fileobject)\n // {\n // let dataurl = await compatupload.getFileAsDataURL(fileobject);\n // return { filename: fileobject.name.split('\\\\').join('/').split('/').pop() //ensure we get the last part\n // , dataurl: dataurl\n // };\n // }));\n }\n return field.value;\n }\n\n /* Override this to overwrite the processing of radios and checkboxes. */\n getMultifieldValue(name, fields)\n {\n return fields.map(node => node.value);\n }\n\n /* Override this to overwrite the setting of individual fields. In contrast\n to getFieldValue, this function will also be invoked for radio and checkboxes */\n setFieldValue(fieldnode, value)\n {\n if(fieldnode.hasAttribute('data-wh-form-name'))\n {\n if (!dompack.dispatchCustomEvent(fieldnode, 'wh:form-setvalue', { bubbles:true, cancelable:true, detail: { value } }))\n return;\n // Event is not cancelled, set node value directly\n }\n if(dompack.matches(fieldnode, 'input[type=radio], input[type=checkbox]'))\n {\n dompack.changeValue(fieldnode, !!value);\n return;\n }\n dompack.changeValue(fieldnode, value);\n }\n\n _isPartOfForm(el)\n {\n if(!el.hasAttribute(\"form\"))\n return true;\n if(this.node.id && el.getAttribute(\"form\").toUpperCase() == this.node.id.toUpperCase())\n return true;\n return false;\n }\n\n _queryAllFields(options)\n {\n let foundfields = [];\n let startnode = options && options.startnode ? options.startnode : this.node;\n let skiparraymembers = options && options.skiparraymembers;\n\n for(let field of Array.from(startnode.querySelectorAll(anyinputselector)))\n {\n if(options && field == options.skipfield) //arrayfield.es needs it\n continue;\n if(!this._isPartOfForm(field))\n continue;\n if (options && options.onlysettable && !this._isNowSettable(field))\n continue;\n if(skiparraymembers && field.closest(\".wh-form__arrayrow\"))\n continue;\n\n let name = field.dataset.whFormName || field.name;\n if(!name)\n continue;\n\n let addto = foundfields.find(_ => _.name == field.name);\n if(field.type == 'radio' || field.type == 'checkbox') //expect multiple inputs with this name?\n {\n if(!addto)\n {\n addto = { name: name, multi: true, nodes: [] };\n foundfields.push(addto);\n }\n addto.nodes.push(field);\n }\n else\n {\n if(addto)\n {\n console.error(`[fhv] Encountered duplicate field '${name}'`, field);\n continue;\n }\n\n foundfields.push({ name: name, multi: false, node: field });\n }\n }\n\n return foundfields;\n }\n\n /** Return the names of all form elements */\n getFormElementNames()\n {\n return this._queryAllFields().map(_ => _.name);\n }\n\n /** getValue from a field as returned by _queryAllFields (supporting both multilevel and plain fields)\n @return promise */\n _getQueryiedFieldValue(field)\n {\n if(!field.multi)\n return this.getFieldValue(field.node);\n\n let fields = field.nodes.filter(node => node.checked);\n return this.getMultifieldValue(field.name, fields);\n }\n\n /** Return a promise resolving to the submittable form value */\n getFormValue(options)\n {\n return new Promise( (resolve,reject) =>\n {\n let outdata = {};\n let fieldpromises = [];\n\n for(let field of this._queryAllFields({ onlysettable:true, skiparraymembers: true }))\n this._processFieldValue(outdata, fieldpromises, field.name, this._getQueryiedFieldValue(field));\n\n Promise.all(fieldpromises).then( () => resolve(outdata)).catch( e => reject(e));\n });\n }\n\n _isNowSettable(node)\n {\n // If the node is disabled, it's not settable\n if (node.disabled)\n return false;\n\n // If the node's field group is disabled or hidden, it's not settable\n let formgroup = node.closest(\".wh-form__fieldgroup\");\n if (formgroup)\n {\n if (formgroup.classList.contains(\"wh-form__fieldgroup--disabled\"))\n return false;\n if (formgroup.classList.contains(\"wh-form__fieldgroup--hidden\"))\n return false;\n }\n\n // If the node's form page is hidden dynamically, it's not settable\n let formpage = node.closest(\".wh-form__page\");\n if (formpage)\n {\n if (formpage.propWhFormCurrentVisible === false)\n return false;\n }\n // The node is settable\n return true;\n }\n\n _processFieldValue(outdata, fieldpromises, fieldname, receivedvalue)\n {\n if(receivedvalue === undefined)\n return;\n if(receivedvalue.then)\n {\n fieldpromises.push(new Promise( (resolve,reject) =>\n {\n receivedvalue.then( result =>\n {\n if(result !== undefined)\n outdata[fieldname] = result;\n\n resolve();\n }).catch(e => reject(e));\n }));\n }\n else\n {\n outdata[fieldname] = receivedvalue;\n }\n }\n\n //get the option lines associated with a specific radio/checkbox group\n getOptions(name)\n {\n let nodes = this.node.elements[name];\n if(!nodes)\n return [];\n if(nodes.length === undefined)\n nodes = [nodes];\n\n return Array.from(nodes).map(node => ({ inputnode: node\n , fieldline: node.closest('.wh-form__fieldline')\n , value: node.value\n }));\n }\n\n /** gets the selected option associated with a radio/checkbox group as an array\n */\n getSelectedOptions(name)\n {\n let opts = this.getOptions(name);\n opts = opts.filter(node => node.inputnode.checked);\n return opts;\n }\n\n /** get the selected option associated with a radio/checkbox group. returns an object that's either null or the first selected option\n */\n getSelectedOption(name)\n {\n let opts = this.getSelectedOptions(name);\n return opts.length ? opts[0] : null;\n }\n\n /** get the fieldgroup for an element */\n getFieldGroup(name)\n {\n let node = this.node.elements[name];\n if(!node)\n return null;\n\n if(node.length !== undefined)\n node = node[0];\n\n return node.closest('.wh-form__fieldgroup');\n }\n\n /** get the values of the currently selected radio/checkbox group */\n getValues(name)\n {\n return this.getSelectedOptions(name).map(node=>node.value);\n }\n /** get the value of the first currently selected radio/checkbox group */\n getValue(name)\n {\n let vals = this.getValues(name);\n return vals.length ? vals[0] : null;\n }\n\n setFieldError(field, error, options)\n {\n FormBase.setFieldError(field,error,options);\n }\n\n _getErrorForValidity(field,validity)\n {\n if(validity.customError && field.validationMessage)\n return field.validationMessage;\n\n if(validity.valueMissing)\n return getTid(\"publisher:site.forms.commonerrors.required\");\n if(validity.rangeOverflow)\n return getTid(\"publisher:site.forms.commonerrors.max\", field.max);\n if(validity.rangeUnderflow)\n return getTid(\"publisher:site.forms.commonerrors.min\", field.min);\n if(validity.badInput)\n return getTid(\"publisher:site.forms.commonerrors.default\");\n if(validity.tooShort)\n return getTid(\"publisher:site.forms.commonerrors.minlength\", field.minLength);\n if(validity.tooLong)\n return getTid(\"publisher:site.forms.commonerrors.maxlength\", field.maxLength);\n if(validity.stepMismatch)\n if(!field.step || parseInt(field.step) == 1)\n return getTid(\"publisher:site.forms.commonerrors.step1mismatch\");\n else\n return getTid(\"publisher:site.forms.commonerrors.stepmismatch\", field.step);\n if(validity.typeMismatch)\n if([\"email\", \"url\", \"number\"].includes(field.type))\n return getTid(\"publisher:site.forms.commonerrors.\" + field.type);\n\n for(let key of [\"badInput\", \"customError\", \"patternMismatch\", \"rangeOverflow\", \"rangeUnderflow\", \"stepMismatch\", \"typeMismatch\", \"valueMissing\"])\n if(validity[key])\n return key;\n\n return '?';\n }\n\n async validateSingleFormField(field)\n {\n return true;\n }\n\n async _validateSingleFieldOurselves(field)\n {\n let alreadyfailed = false;\n\n //browser checks go first, any additional checks are always additive (just disable browserchecks you don't want to apply)\n field.propWhFormNativeError = false;\n if(!alreadyfailed && field.checkValidity && !field.hasAttribute(\"data-wh-form-skipnativevalidation\"))\n {\n let validitystatus = field.checkValidity();\n if(this._dovalidation) //we're handling validation UI ourselves\n {\n //we need a separate prop for our errors, as we shouldn't clear explicit errors\n field.propWhValidationError = validitystatus ? '' : this._getErrorForValidity(field, field.validity);\n }\n if(!validitystatus)\n {\n field.propWhFormNativeError = true;\n alreadyfailed = true;\n }\n }\n\n if(!alreadyfailed && field.whFormsBuiltinChecker)\n {\n if(!(await field.whFormsBuiltinChecker(field)))\n alreadyfailed = true;\n }\n\n if(!alreadyfailed && !(await this.validateSingleFormField(field)))\n alreadyfailed = true;\n\n if(!alreadyfailed && field.whFormsApiChecker && this._dovalidation)\n await field.whFormsApiChecker();\n\n return this._reportFieldValidity(field);\n }\n\n /** validate the form\n @param limitset A single element, nodelist or array of elements to validate (or their children)\n @param options.focusfailed Focus the first invalid element (defaults to true)\n @return a promise that will fulfill when the form is validated\n @cell return.valid true if the fields successfuly validated */\n async validate(limitset, options)\n {\n if(dompack.debugflags.fdv)\n {\n console.warn(`[fdv] Validation of form was skipped`);\n return { valid: true, failed: [], firstfailed: null };\n }\n\n let tovalidate; //fields to validate\n if(!limitset) //no limit specified\n {\n tovalidate = Array.from(this.node.querySelectorAll(anyinputselector)).filter(node => this._isPartOfForm(node));\n }\n else\n {\n tovalidate = [];\n let checklist = Array.isArray(limitset) ? limitset : [limitset];\n checklist.forEach(node =>\n {\n if(dompack.matches(node, anyinputselector))\n tovalidate.push(node);\n tovalidate = tovalidate.concat(Array.from(node.querySelectorAll(anyinputselector)));\n });\n\n //If we need to validate a radio, validate all radios in their group so we can properly clear their error classes\n tovalidate.filter(node => node.name && node.type == \"radio\").forEach(node =>\n {\n let siblings = dompack.qSA(this.node, `input[name=\"${node.name}\"]`);\n tovalidate = tovalidate.concat(siblings.filter(sibling => !tovalidate.includes(sibling)));\n });\n }\n\n if(options && options.iffailedbefore)\n tovalidate = tovalidate.filter(node => hasEverFailed(node));\n\n let lock = dompack.flagUIBusy();\n try\n {\n if(!tovalidate.length)\n return { valid: true, failed: [], firstfailed: null };\n\n let deferred = dompack.createDeferred();\n let result;\n let validationcancelled;\n\n if(dompack.dispatchCustomEvent(this.node, 'wh:form-validate', { bubbles:true, cancelable:true, detail: { tovalidate: tovalidate, deferred: deferred } }))\n {\n //not cancelled, carry out the validation ourselves.\n let validationresults = await Promise.all(tovalidate.map(fld => this._validateSingleFieldOurselves(fld)));\n //remove the elements from validate for which the promise failed\n let failed = tovalidate.filter( (fld,idx) => !validationresults[idx]);\n result = { valid: failed.length == 0\n , failed: failed\n };\n }\n else\n {\n validationcancelled = true;\n result = await deferred.promise; //then we expect the validator to sort it all out\n }\n\n result.firstfailed = result.failed.length ? result.failed[0] : null;\n if(result.firstfailed && (!options || options.focusfailed))\n {\n //FIXME shouldn't getFocusableComponents also return startnode if focusable?\n let tofocus = domfocus.canFocusTo(result.firstfailed) ? result.firstfailed : domfocus.getFocusableComponents(result.firstfailed)[0];\n if(tofocus)\n dompack.focus(tofocus, { preventScroll:true });\n\n if(!this._dovalidation && !validationcancelled)\n reportValidity(tofocus);\n\n this.scrollIntoView(result.firstfailed);\n }\n\n if(dompack.debugflags.fhv)\n console.log(`[fhv] Validation of ${tovalidate.length} fields done, ${result.failed.length} failed`, result);\n\n return result;\n }\n finally\n {\n lock.release();\n }\n }\n\n reset()\n {\n this.node.reset();\n }\n\n}\n\nFormBase.getForNode = function(node)\n{\n return node.propWhFormhandler || null;\n};\n\nFormBase.setFieldError = setFieldError;\nFormBase.setupValidator = setupValidator;\n","import * as dompack from 'dompack';\nimport { getTid } from \"@mod-tollium/js/gettid\";\nimport \"./form.lang.json\";\n\n//show HTML5-style validity errors\nexport function reportValidity(node)\n{\n if(node.reportValidity) //not present on all browsers, clicking a submit is a workaround\n {\n node.reportValidity();\n return true;\n }\n let form = node.closest('form');\n if(!form)\n return false;\n\n let submitbutton = form.querySelector(\"button[type=submit], input[type=submit]\" );\n if(!submitbutton)\n return false;\n\n submitbutton.click();\n return true;\n}\n\n\nfunction setupServerErrorClear(field)\n{\n let group = field.closest('.wh-form__fieldgroup') || field;\n field.propWhCleanupFunction = () =>\n {\n group.removeEventListener(\"change\", field.propWhCleanupFunction, true);\n group.removeEventListener(\"input\", field.propWhCleanupFunction, true);\n group.removeEventListener(\"blur\", field.propWhCleanupFunction, true);\n setFieldError(field, '', {serverside:true});\n field.propWhCleanupFunction = null;\n };\n\n // to be rightly paranoid (plugins and JS directly editing other fields) we'll blur when anything anywhere seems to change\n // eg wrd.testwrdauth-emailchange would fail on Chrome without this if the browser window was not currently focused\n group.addEventListener(\"change\", field.propWhCleanupFunction, true);\n group.addEventListener(\"input\", field.propWhCleanupFunction, true);\n if(!field.closest('form[novalidate]')) //if we're doing html5 validation, errors will block submit, so let's already clear on blur\n group.addEventListener(\"blur\", field.propWhCleanupFunction, true);\n}\n\n\nexport function setFieldError(field, error, options)\n{\n if(dompack.debugflags.fhv)\n console.log(`[fhv] ${error?\"Setting\":\"Clearing\"} error for field ${field.name}`, field, error, options);\n\n options = { serverside: false, reportimmediately: false, ...options };\n field.propWhSetFieldError = error;\n\n if(error && options.serverside) //we need to reset the check when the user changed something\n {\n setupServerErrorClear(field);\n field.propWhErrorServerSide = true;\n }\n else\n {\n field.propWhErrorServerSide = false;\n }\n\n //if the error is being cleared, reset any html5 validity stuff to clear custom errors set before wh:form-setfielderror was intercepted\n if(!error && field.setCustomValidity)\n field.setCustomValidity(\"\");\n\n if(!dompack.dispatchCustomEvent(field, 'wh:form-setfielderror', //this is where parsley hooks in and cancels to handle the rendering of faults itself\n { bubbles:true\n , cancelable:true\n , detail: { error: error\n , reportimmediately: options.reportimmediately\n , serverside: options.serverside\n , metadata: options.metadata\n } }))\n {\n return;\n }\n\n //fallback to HTML5 validation\n if(field.setCustomValidity)\n {\n if(typeof error == \"object\") //we got a DOM?\n error = error.textContent || getTid(\"publisher:site.forms.commonerrors.default\"); //we don't want to suddenly change from 'we had an error' to 'no error'\n\n field.setCustomValidity(error || \"\");\n if(!options.reportimmediately || reportValidity(field))\n return;\n }\n if(error) //if we're not setting an error, it's not an issue that we can't show one\n throw new Error(\"No handler available to process setFieldError request\");\n}\n\nexport function setupValidator(node, checker)\n{\n var check = async () =>\n {\n let error = checker(node);\n\n // If error is a thenable (Promise or something like it) await it. Stay synchronous if not.\n if (typeof error === \"object\" && error && error.then)\n error = await error;\n\n if(dompack.debugflags.fhv)\n console.log(`[fhv] Custom check ${error ? `setting error '${error}'` : 'clearing error'} for `,node);\n\n //FIXME shouldn't we set propWhValidationError instead ?\n setFieldError(node, error, { reportimmediately: false });\n };\n node.addEventListener(\"blur\", check);\n node.addEventListener(\"input\", check);\n node.whFormsApiChecker = check;\n check();\n}\n","import * as dompack from 'dompack';\n\n//just number RPCs globally instead of per server, makes debug ouput more useful\nlet globalseqnr = 1;\n\nfunction getDebugAppend()\n{\n let urldebugvar = window.location.href.match(new RegExp('[?]wh-debug=([^?]*)'));\n return urldebugvar ? '?wh-debug='+urldebugvar[1] : '';\n}\n\n/* this is the followup for net/jsonrpc.es - we can hopefully clear net/ someday\n and move net/eventserver to wh/eventserver.es then */\n\nclass ControlledCall\n{\n constructor(client, method, stack, id, options, callurl, fetchoptions)\n {\n this.client = client;\n this.options = options;\n\n\n // if(options.timeout || options.signal) //as long as rpcResolve exists, we'll ALWAYS need to setup a controller\n {\n this.abortcontroller = new AbortController;\n fetchoptions.signal = this.abortcontroller.signal;\n\n if(options.timeout > 0)\n {\n this.timeout = options.timeout;\n setTimeout(() => this._handleTimeout(), options.timeout);\n }\n if(options.signal)\n {\n options.signal.addEventListener(\"abort\", () => this._abort());\n }\n }\n\n this._callurl = callurl;\n this._fetchoptions = fetchoptions;\n\n let fetchpromise = fetch(this._callurl, this._fetchoptions);\n this.promise = this._completeCall(method, stack, id, fetchpromise);\n this.promise.__jsonrpcinfo = this;\n }\n _handleTimeout()\n {\n this.timedout = true;\n this.abortcontroller.abort();\n }\n _abort()\n {\n this.aborted = true;\n this.abortcontroller.abort();\n }\n _legacyResolve(resolution)\n {\n this.legacyresolve = resolution;\n this.abortcontroller.abort();\n }\n async _completeCall(method, stack, id, fetchpromise)\n {\n let response;\n try\n {\n while(true) //loop for 429\n {\n response = await fetchpromise;\n if(response.status == 429 && !(\"retry429\" in this.options && !this.options.retry429) && response.headers.get(\"Retry-After\"))\n {\n let retryafter = parseInt(response.headers.get(\"Retry-After\"));\n if(this.options.debug)\n console.warn(`[rpc] We are being throttled (429 Too Many Requests) - retrying after ${retryafter} seconds`);\n\n await new Promise( resolve => setTimeout(resolve, retryafter*1000) );\n fetchpromise = fetch(this._callurl, this._fetchoptions);\n continue;\n }\n break;\n }\n }\n catch(exception)\n {\n if(this.options.debug)\n console.log(`[rpc] #${id} Exception invoking '${method}'`, exception);\n\n if(this.aborted)\n throw new Error(`RPC Aborted`);\n else if(this.timedout)\n throw new Error(`RPC Timeout: timeout was set to ${this.timeout} milliseconds`);\n else if(this.legacyresolve && this.legacyresolve.resolve)\n return this.legacyresolve.resolve;\n else\n throw new Error(`RPC Failed: exception: ` + exception);\n }\n\n let jsonresponse;\n try\n {\n jsonresponse = await response.json();\n if(this.options.debug)\n console.log(`[rpc] #${id} Received response to '${method}'`, jsonresponse);\n }\n catch(exception)\n {\n if(this.options.debug)\n console.warn(`[rpc] #${id} Response was not valid JSON`, exception);\n }\n\n if(!jsonresponse)\n throw new Error(\"RPC Failed: Invalid JSON/RPC response received\");\n\n if(jsonresponse && jsonresponse.error)\n {\n this.client._tryLogError(stack, jsonresponse.error);\n throw new Error(\"RPC Error: \" + (jsonresponse.error.message || \"Unknown error\"));\n }\n\n if(response.status == 200 && jsonresponse && jsonresponse.id !== id)\n throw new Error(\"RPC Failed: Invalid JSON/RPC response received\");\n\n if(this.options.wrapresult)\n {\n return { status: response.status\n , result: jsonresponse.result || null\n , error: jsonresponse.error || null\n , retryafter: response.headers.get(\"Retry-After\") ? parseInt(response.headers.get(\"Retry-After\")) : null\n };\n }\n\n return jsonresponse.result;\n }\n}\n\n/** Invokes (WebHare) JSON/RPC\n @param url URL to invoke (leave empty or pass no parameters at all to callback to the current page)\n @cell options.timeout Default timeout for all calls\n @cell options.debug Debug (Follows 'rpc' debugflag if not explicity specified) */\nexport default class RPCClient\n{\n constructor(url, options)\n {\n this.options = { timeout: 0\n , debug: dompack.debugflags.rpc\n , ...options\n };\n\n let whservicematch;\n if(url)\n {\n whservicematch = url.match(/^([a-z0-9_]+):([a-z0-9_]+)$/);\n if(whservicematch)\n this.url = `${location.origin}/wh_services/${whservicematch[1]}/${whservicematch[2]}`;\n else\n this.url = url;\n }\n else\n {\n this.url = location.href; //invoke ourselves directly if no path specified\n }\n\n //if shorthand syntax is used, we know we're talking to our local webhare. add function names and the profiling flag if needed\n this.addfunctionname = this.options.addfunctionname !== undefined ? this.options.addfunctionname : !!whservicematch;\n this.urlappend = this.options.urlappend !== undefined ? this.options.urlappend : whservicematch ? getDebugAppend() : \"\";\n }\n\n setOptions(options)\n {\n this.options = {...this.options, ...options};\n }\n\n _handleLegacyRPCResolve(promise, result)\n {\n if(!promise.__jsonrpcinfo)\n throw new Error(\"The promise is not an async JSONRPC request\");\n promise.__jsonrpcinfo._legacyResolve({resolve:result});\n }\n\n _tryLogError(stack,error)\n {\n let trace = error.data ? (error.data.trace || error.data.list || []) : [];\n\n console.group();\n console.warn(\"RPC failed:\", error.message);\n trace.forEach(rec =>\n {\n if (rec.filename || rec.line)\n {\n var line = rec.filename + '#' + rec.line + '#' + rec.col + (rec.func ? ' (' + rec.func + ')' : '');\n console.log(line);\n }\n });\n if(stack)\n {\n console.warn(\"Stack at calling point\");\n console.log(stack);\n }\n console.groupEnd();\n }\n\n invoke(...params)\n {\n let options;\n if(typeof params[0] == \"object\")\n options = {...this.options, ...params.shift()};\n else\n options = this.options;\n\n let method = params.shift();\n\n //build the URL, add profiling and function parameters where needed\n let callurl = this.url;\n if(this.addfunctionname) //simplifies log analysis, ignored by the server\n callurl += `/${method}`;\n callurl += this.urlappend;\n\n let id = ++globalseqnr;\n let stack;\n\n if(options.debug)\n {\n stack = new Error().stack;\n console.log(`[rpc] #${id} Invoking '${method}'`, params, callurl);\n }\n\n let fetchoptions = { method: \"POST\"\n , credentials: 'same-origin' //this is the default since 2017-08-25, but Edge pre-18 is still around and will fail here\n , headers: { \"Accept\": \"application/json\"\n , \"Content-Type\": \"application/json; charset=utf-8\"\n }\n , body: JSON.stringify(\n { id: id\n , method: method\n , params: params || []\n })\n , keepalive: Boolean(options.keepalive)\n };\n\n return new ControlledCall(this, method, stack, id, options, callurl, fetchoptions).promise;\n }\n}\n","import * as dompack from 'dompack';\nimport * as browser from 'dompack/extra/browser';\nimport '@mod-system/js/wh/integration'; //make debugflags work\n\n\n/// Global queue manager object\nvar queue_manager = null;\n\nlet default_upload_chunk_size = 10000000; // 10 MB\nvar moving_average_max_history = 20000; // average current speed over max 20000 ms of history\nvar moving_average_min_history = 2000; // Need min 2000ms of history\n\n\nexport default class EventTarget\n{\n constructor()\n {\n this.handlers = {};\n }\n addEventListener(eventtype, fn)\n {\n let eventhandlers = this.handlers[eventtype];\n if(!eventhandlers)\n eventhandlers = this.handlers[eventtype] = [];\n eventhandlers.push(fn);\n }\n removeEventListener(eventtype, fn)\n {\n let eventhandlers = this.handlers[eventtype];\n if(eventhandlers)\n eventhandlers = eventhandlers.filter(el => el!=fn);\n }\n dispatchEvent(event)\n {\n if(!('defaultPrevented' in event))\n throw new Error(\"Parameter passed is not an event\");\n\n let eventhandlers = this.handlers[event.type];\n if(eventhandlers)\n eventhandlers.forEach(fn => fn.call(this, event));\n return event.defaultPrevented;\n }\n}\n\n/** Upload item. Might be a group, or an uploader.\n Fires loadstart, progress*, abort/load/error, loadend events.\n*/\nclass RawUploadItem extends EventTarget\n{\n constructor()\n {\n super();\n\n /** Current status of this upload\n '': Not started or busy\n 'loaded' Upload complete\n 'aborted' Aborted\n 'error' An error occurred\n */\n this.status = ''; // '', 'loaded', 'aborted', 'error'\n\n /// Session id of the item (used to group uploads into one session)\n this.pvt_sessionid = '';\n\n /// Parent group (used for sharing session ids)\n this.pvt_parentgroup = null;\n\n /// Starting time of upload\n this.pvt_start = null;\n\n /// History of progress events (of last moving_average_max_history ms)\n this.pvt_history = [];\n\n /// Finishing time of upload\n this.pvt_end = null;\n }\n\n /// Returns the total size of this item\n getUploadSize()\n {\n return 0;\n }\n\n /// Returns the number of bytes uploaded\n getUploaded()\n {\n return 0;\n }\n\n /// Schedule this item at a queue (or fire events when empty)\n schedule()\n {\n }\n\n /// Abort upload of this item. Must fire events (loadstart, abort, loadend) when not yet scheduled!\n abort()\n {\n }\n\n /// Returns time elapsed, in seconds\n getElapsedTime()\n {\n var now = (new Date).getTime();\n if (!this.pvt_start || this.pvt_start == now)\n return 0;\n\n if (this.pvt_end)\n now = this.pvt_end;\n\n return (now - this.pvt_start) / 1000;\n }\n\n /// Time remaing in seconds (0 if unknown / very long / n/a)\n getRemainingTime()\n {\n var speed = this.getCurrentSpeed();\n if (!speed)\n return 0;\n var remainingbytes = this.getUploadSize() - this.getUploaded();\n return remainingbytes ? (remainingbytes / speed || 1) : 0;\n }\n\n /// Returns the average speed over the whole upload\n getAverageSpeed()\n {\n return this.getUploaded() / this.getElapsedTime();\n }\n\n /// Returns speed over last X seconds\n getCurrentSpeed()\n {\n if (this.pvt_history.length <= 1)\n return null;\n\n var last = this.pvt_history[this.pvt_history.length-1];\n var first = this.pvt_history[0];\n\n if (last.date - first.date < (this.status == 'loaded' ? 1 : moving_average_min_history))\n return null;\n\n return (last.loaded - first.loaded) / ((last.date - first.date) / 1000);\n }\n\n getCompletedFiles()\n {\n return [];\n }\n\n getFileTokens()\n {\n return [];\n }\n\n getSessionId()\n {\n return this.pvt_sessionid || (this.pvt_parentgroup && this.pvt_parentgroup.getSessionId()) || '';\n }\n\n setSessionId (sessionid)\n {\n this.pvt_sessionid = sessionid;\n if (this.pvt_parentgroup)\n this.pvt_parentgroup.setSessionId(sessionid);\n }\n\n getEventDetail()\n {\n return { uploaded: this.getUploaded()\n , size: this.getUploadSize()\n , speed: this.getCurrentSpeed()\n };\n }\n\n fireLoadStart()\n {\n if(dompack.debugflags.upl)\n console.log(\"[upl] firing loadstart\", this);\n\n this.pvt_start = (new Date).getTime();\n dompack.dispatchCustomEvent(this, 'loadstart', { bubbles:false, cancelable:false, detail: { type: 'loadstart' }});\n }\n\n fireProgress()\n {\n if(dompack.debugflags.upl)\n console.log(\"[upl] firing loadprogress\", this);\n\n var size = this.getUploadSize();\n var loaded = this.getUploaded();\n\n this.addProgressToHistory(loaded);\n dompack.dispatchCustomEvent(this, 'progress', { bubbles:false, cancelable:false, detail: { loaded: loaded, size: size }});\n }\n\n fireLoad()\n {\n if(dompack.debugflags.upl)\n console.log(\"[upl] firing load\", this);\n\n var size = this.getUploadSize();\n var loaded = this.getUploaded();\n this.pvt_end = (new Date).getTime();\n\n this.addProgressToHistory(loaded);\n dompack.dispatchCustomEvent(this, 'load', { bubbles:false, cancelable:false, detail: { loaded: loaded, size: size }});\n }\n\n addProgressToHistory(loaded)\n {\n var now = (new Date).getTime();\n this.pvt_history.push({ date: now, loaded: loaded });\n while ((now - this.pvt_history[0].date) > moving_average_max_history) //\n this.pvt_history.splice(0, 1);\n }\n\n fireLoadEnd()\n {\n if(dompack.debugflags.upl)\n console.log(\"[upl] firing loadend\", this);\n\n if (!this.pvt_end)\n this.pvt_end = (new Date).getTime();\n dompack.dispatchCustomEvent(this, \"loadend\", { bubbles:false, cancelable:false });\n }\n}\n\n/** Upload item that does uploading by itself\n Fires loadstart, progress*, abort/load/error, loadend\n*/\nclass SchedulableRawUploadItem extends RawUploadItem\n{\n constructor()\n {\n super();\n }\n schedule()\n {\n queue_manager.schedule(this);\n }\n\n canStart()\n {\n }\n\n start()\n {\n }\n\n getCompletedFiles()\n {\n return [];\n }\n\n getFileTokens()\n {\n return [];\n }\n}\n\n/** Aggregates multiple uploader items into one unified upload (all sub-items are aborted upon error). Fires events\n as if the group is one big uploaded item\n\n This is used to group the chunks of a single file upload, but also to group the files in a multifile upload\n*/\nclass UploaderAggregator extends RawUploadItem\n{\n constructor()\n {\n super();\n this.pvt_subitems=[];\n this.pvt_aborting = false;\n this.pvt_sentloadstart = false;\n this.pvt_sentloadend = false;\n }\n\n setItems(subitems)\n {\n this.status = '';\n this.pvt_subitems = subitems;\n this.pvt_aborting = false;\n this.pvt_sentloadstart = false;\n this.pvt_sentloadend = false;\n\n // Listen to events of the sub-items\n this.pvt_subitems.forEach(function(i)\n {\n i.pvt_parentgroup = this;\n i.addEventListener('loadstart', this.gotLoadStart.bind(this));\n i.addEventListener('progress', this.fireProgress.bind(this));\n i.addEventListener('abort', this.gotAbort.bind(this));\n i.addEventListener('error', this.gotError.bind(this));\n i.addEventListener('load', this.gotLoad.bind(this));\n i.addEventListener(\"loadend\", this.gotLoadEnd.bind(this));\n }.bind(this));\n }\n\n /// Schedule all subitems, run some events when empty\n schedule()\n {\n this.pvt_subitems.forEach(function(i,idx) { i.schedule(); });\n\n if (!this.pvt_subitems.length) //simulate an upload\n {\n this.gotLoadStart(null);\n this.gotLoad(null);\n this.gotLoadEnd(null);\n }\n }\n\n getUploadSize()\n {\n var size = 0;\n this.pvt_subitems.forEach(function(i) { size += i.getUploadSize(); });\n return size;\n }\n\n getUploaded()\n {\n var loaded = 0;\n this.pvt_subitems.forEach(function(i) { loaded += i.getUploaded(); });\n return loaded;\n }\n\n abort()\n {\n if (this.pvt_subitems.length)\n {\n if (!this.pvt_aborting)\n this.pvt_aborting = true;\n this.pvt_subitems.forEach(i => { if (!i.status) i.abort(); });\n }\n else // Always send an abort back, even when not having items yet.\n {\n this.gotLoadStart(null);\n this.gotAbort(null);\n this.gotLoadEnd(null);\n }\n }\n\n getCompletedFiles()\n {\n var result = [];\n if (this.status == 'loaded')\n this.pvt_subitems.forEach(function(i) { result = result.concat(i.getCompletedFiles()); });\n //sanitize the result, don't leak internal data\n\n return result.map( file => ({ name: file.name, filetoken: file.filetoken, size: file.size, fileinfo:file.fileinfo, type: file.type, url: file.downloadurl, fullpath: file.fullpath }));\n }\n\n getFileTokens()\n {\n var result = [];\n if (this.status == 'loaded')\n this.pvt_subitems.forEach(function(i) { result = result.concat(i.getFileTokens()); });\n return result;\n }\n\n gotLoadStart(event)\n {\n if (!this.pvt_sendloadstart)\n {\n this.pvt_sendloadstart = true;\n this.fireLoadStart();\n }\n }\n\n gotAbort(event)\n {\n if (!this.status)\n {\n this.status = 'aborted';\n dompack.dispatchCustomEvent(this, 'abort', { bubbles:false, cancelable:false });\n this.abort();\n }\n }\n\n gotError(event)\n {\n if (!this.status)\n {\n this.status = 'error';\n dompack.dispatchCustomEvent(this, 'error', { bubbles:false, cancelable:false });\n this.abort();\n }\n }\n\n gotLoad(event)\n {\n if (!this.status && !this.pvt_subitems.some(function(i) { return i.status != 'loaded'; }))\n {\n this.status = 'loaded';\n this.fireLoad();\n }\n }\n\n gotLoadEnd(event)\n {\n if (!this.pvt_subitems.some(function(i) { return i.status == ''; }) && !this.pvt_sendloadend)\n {\n this.pvt_sendloadend = true;\n this.fireLoadEnd();\n }\n }\n}\n\n\n/** HTML 5 upload items, wraps a HTML5 file\n*/\nexport class Html5UploadItem extends UploaderAggregator\n{\n constructor(host, html5file, options)\n {\n super();\n\n /// Name of the file\n this.name = '';\n\n /// Size of the file\n this.size = 0;\n\n /// Default upload chunk size\n this.upload_chunk_size = (options ? options.uploadchunksize : 0) || default_upload_chunk_size;\n\n /// Content-type of the file\n this.type = '';\n\n /// File token (to retrieve the file on the server)\n this.filetoken = '';\n\n /// Detectfiletype info\n this.fileinfo = null;\n\n /// Original File object (if applicable)\n this.file = null;\n\n /// Parameters to send in request\n this.params = {};\n\n /// Base transfer url\n this.transferbaseurl = '';\n\n this.pvt_host = '';\n this.pvt_fileid = 0;\n\n this.pvt_host = host;\n this.name = html5file.name;\n this.size = html5file.size;\n this.type = html5file.type;\n this.fullpath = html5file.fullpath || '';\n this.file = html5file;\n this.params = options&&options.params?{...options.params}:{};\n this.pvt_file = html5file;\n }\n\n schedule()\n {\n var items = [];\n\n var total = this.file.size;\n if(!(total >= 0))\n throw new Error(\"Invalid file size received\"); //would cause an endless loop!\n\n var ofs = 0;\n while (true)\n {\n // Upload in chunks\n var chunksize = Math.min(this.upload_chunk_size, total - ofs);\n\n items.push(new Html5SingleChunk(this,\n { offset: ofs\n , size: chunksize\n , host: this.pvt_host\n }));\n\n ofs += chunksize;\n if (ofs == total)\n break;\n }\n\n this.setItems(items);\n this.transferbaseurl = items[0].transferbaseurl;\n super.schedule();\n }\n\n getCompletedFiles()\n {\n return this.status == 'loaded' ? [ this ] : [];\n }\n\n getFileTokens()\n {\n return this.filetoken ? [ this.filetoken ] : [];\n }\n}\n\n/** This component uploads a html5 chunk to the upload receiver\n*/\nclass Html5SingleChunk extends SchedulableRawUploadItem\n{\n /** @param uploadfile Upload file\n @param firstchunk For second+ chunks, reference to first chunk (needed to stitch them together at server side)\n @param options\n @cell options.name Name of chunk (needed for first chunk)\n @cell options.fullsize Full size of file (needed for first chunk)\n @cell options.offset Offset of chunk within file\n */\n constructor(uploadfile, options)\n {\n super();\n this.uploadfile = uploadfile;\n this.xmlhttp = null;\n this.pvt_loaded = 0;\n this.pvt_sendloadstart = false;\n this.pvt_sendloadend = false;\n this.options = { offset: 0, size:0, host: '', ...options};\n this.transferbaseurl = (new URL(\"/.system/filetransfer/filetransfer.shtml\", this.options.host)).toString();\n }\n\n getUploadSize()\n {\n return this.options.size;\n }\n\n getUploaded()\n {\n return this.pvt_loaded;\n }\n\n /// Returns whether this chunk can start uploading (either first chunk or first chunk has completed)\n canStart()\n {\n return this.options.offset == 0 || this.uploadfile.sessionid != '';\n }\n\n /** Start upload. Events will be sent (loadstart + progress* + (abort|error|load) + loadend) during upload\n */\n start()\n {\n this.xmlhttp = new XMLHttpRequest;\n if (this.xmlhttp.overrideMimeType) // IE doesn't have this.\n this.xmlhttp.overrideMimeType(\"application/octet-stream\");\n\n if (!this.canStart())\n throw new Error(\"First chunk must have finished for rest of chunks to be sent\");\n\n var url = this.transferbaseurl + \"?type=upload-html5&offset=\" + this.options.offset\n + \"&chunksize=\" + this.options.size\n + \"&sessionid=\" + this.getSessionId();\n if (this.options.offset != 0)\n url += \"&fileid=\" + this.uploadfile.pvt_fileid;\n else\n {\n url += \"&size=\" + this.uploadfile.size\n + \"&filename=\" + encodeURIComponent(this.uploadfile.name);\n Object.keys(this.uploadfile.params).forEach( key => { url += \"&\" + encodeURIComponent(key) + \"=\" + encodeURIComponent(this.uploadfile.params[key]); });\n }\n\n this.xmlhttp.upload.addEventListener('progress', this.gotProgress.bind(this));\n this.xmlhttp.addEventListener('loadstart', this.gotLoadStart.bind(this));\n this.xmlhttp.addEventListener('abort', this.gotAbort.bind(this));\n this.xmlhttp.addEventListener('error', this.gotError.bind(this));\n this.xmlhttp.addEventListener('load', this.gotLoad.bind(this));\n this.xmlhttp.addEventListener(\"loadend\", this.gotLoadEnd.bind(this));\n\n this.xmlhttp.open(\"POST\", url, true, \"\", \"\");\n\n // Slice only when we are are really a subset of the data to be sent\n let data;\n if (this.options.offset != 0 || this.options.size != this.uploadfile.file.size)\n data = this.uploadfile.file.slice(this.options.offset, this.options.offset + this.options.size);\n else\n data = this.uploadfile.file;\n\n /* FIXME: it seems that android browser doesn't like this code -\n work around it!\n */\n this.xmlhttp.send(data);\n }\n\n /// Aborts upload\n abort()\n {\n if (!this.status)\n {\n if (this.xmlhttp)\n this.xmlhttp.abort();\n else\n {\n this.gotAbort(null);\n this.gotLoadEnd(null);\n }\n }\n }\n\n gotLoadStart(event)\n {\n if (!this.pvt_sentloadstart)\n {\n this.pvt_sentloadstart = true;\n this.fireLoadStart();\n }\n }\n\n gotProgress(event)\n {\n this.pvt_loaded = event.loaded;\n this.fireProgress();\n }\n\n gotAbort(event)\n {\n if (!this.status)\n {\n this.status = 'aborted';\n dompack.dispatchCustomEvent(this, 'abort', { bubbles:false, cancelable:false });\n }\n }\n\n gotError(event)\n {\n if (!this.status)\n {\n this.status = 'error';\n dompack.dispatchCustomEvent(this, 'error', { bubbles:false, cancelable:false });\n }\n }\n\n gotLoad(event)\n {\n if (this.xmlhttp.status == 200)\n {\n this.pvt_loaded = this.options.size;\n var data = JSON.parse(this.xmlhttp.responseText);\n if (data && data.sessionid)\n this.setSessionId(data.sessionid);\n if (!this.uploadfile.pvt_fileid)\n this.uploadfile.pvt_fileid = (data && data.fileid) || 0;\n if (data && data.filetoken)\n this.uploadfile.filetoken = data.filetoken;\n if (data && data.fileinfo)\n this.uploadfile.fileinfo = data.fileinfo;\n\n if (data && data.complete)\n {\n this.uploadfile.type = data.contenttype;\n this.uploadfile.downloadurl = data.downloadurl;\n }\n this.status = 'loaded';\n this.fireLoad();\n }\n else\n this.gotError(event);\n }\n\n gotLoadEnd(event)\n {\n if (!this.pvt_sentloadend)\n {\n this.pvt_sentloadend = true;\n this.fireLoadEnd();\n }\n }\n}\n\n\n/** A group of upload items\n*/\nexport class UploadItemGroup extends UploaderAggregator\n{\n getItems()\n {\n return this.pvt_subitems.slice();\n }\n}\n\n/// Generate a group of items from a file input element\nUploadItemGroup.fromFileList = function (uploadhost, filelist, options)\n{\n var items = [];\n for (var i = 0; i < filelist.length; ++i)\n items.push(new Html5UploadItem(uploadhost, filelist[i], options));\n\n var group = new UploadItemGroup;\n group.setItems(items);\n return group;\n};\n\n/** Upload manager\n*/\nclass UploadManager\n{\n constructor()\n {\n this.pending=[];\n this.running=[];\n }\n schedule(item)\n {\n if (item instanceof SchedulableRawUploadItem)\n {\n item.addEventListener(\"loadend\", this.gotEnd.bind(this, item));\n this.pending.push(item);\n }\n else\n item.schedule();\n\n this.processQueue();\n }\n\n gotEnd(item)\n {\n if(this.pending.indexOf(item) >= 0)\n this.pending.splice(this.pending.indexOf(item),1);\n if(this.running.indexOf(item) >= 0)\n this.running.splice(this.running.indexOf(item),1);\n this.processQueue();\n }\n\n processQueue()\n {\n if(dompack.debugflags.upl)\n console.log(\"[upl] process queue, running: \" + this.running.length + \" pending: \" + this.pending.length, this);\n\n if (this.running.length < 1 && this.pending.length)\n {\n for (var i = 0; i < this.pending.length; ++i)\n {\n var item = this.pending[i];\n if (item.canStart())\n {\n this.pending.splice(i, 1);\n --i;\n this.running.push(item);\n item.start();\n if (this.running.length == 1)\n break;\n }\n }\n }\n\n if (this.running.length < 1 && this.pending.length)\n throw new Error(\"Got blocked items in the queue\");\n }\n}\n\nqueue_manager = new UploadManager;\n\n\n// Last input used for selecting a file that doesn't have files set\nlet lastinputnode = null;\n\n/** Open a file selection dialog and upload one or more files. Can only be called within a click handler!\n @param options\n @cell options.multiple Whether to allow multiple file upload\n @cell options.mimetypes Array of mime types of files that are accepted (can also contain \"image/*\", \"audio/*\" or \"video/*\")\n @cell options.capture Optional input capture's attribute ('capture', 'user', 'environment', etc)\n @return Selection result object. Fires 'load' or 'abort'\n @cell return.input Used input element\n @cell return.files List of selected files (only valid when 'load' event has fired)\n*/\nexport function selectFiles(options)\n{\n options = {...options};\n let uploaddefer = dompack.createDeferred();\n\n let inputOptions = { type: \"file\"\n , accept: (options.mimetypes || []).join(\",\")\n , multiple: options.multiple\n , style: { display: \"none\" }\n };\n\n if (options.capture)\n inputOptions.capture = options.capture;\n\n let input = dompack.create('input', inputOptions);\n\n //let selectlock = dompack.flagUIBusy();\n\n // IE 10 & 11 won't open the file browser if the input element isn't in the DOM\n if (browser.getName() == 'ie')\n {\n if (lastinputnode)\n document.body.removeChild(lastinputnode);\n lastinputnode = input;\n document.body.appendChild(input);\n }\n\n // Set a handler on next action to capture someone cancelling the upload without telling us (browsers dont inform us the dialog is gone)\n var canceluploadhandler = function()\n {\n uploaddefer.resolve([]);\n window.removeEventListener('mousedown', canceluploadhandler, true);\n window.removeEventListener('keydown', canceluploadhandler, true);\n };\n window.addEventListener('mousedown', canceluploadhandler, true);\n window.addEventListener('keydown', canceluploadhandler, true);\n\n input.addEventListener(\"change\", (event) =>\n {\n // Store files in input, destroy input element\n uploaddefer.resolve(input.files || []);\n });\n input.addEventListener(\"wh:upload-fake\", (event) =>\n {\n uploaddefer.resolve(event.detail.files || []);\n });\n\n let uploader = null;\n try\n {\n uploader = window.top.wh_testapi_fakeupload;\n if(uploader)\n {\n if(dompack.debugflags.upl)\n console.log(\"[upl] Need to invoke callback to simulate upload\");\n\n window.top.wh_testapi_fakeupload = null;\n setTimeout(() => uploader(input), 0);\n return uploaddefer.promise;\n }\n }\n catch(e)\n {\n //ignore fialure to grab the fake upload\n }\n\n if(dompack.debugflags.upl)\n console.log(\"[upl] Invoking browser's sendfile\");\n // On IE, this blocks. Delay starting the upload on IE giving the user a consistent interface - loadstart event signals start\n input.click();\n\n return uploaddefer.promise;\n}\n\nexport class UploadSession extends EventTarget\n{\n constructor(files,options)\n {\n super();\n if(dompack.debugflags.upl)\n console.log(\"[upl] Create upload session\",files,options);\n\n options = {...options};\n let host = options.host || dompack.getBaseURI();\n this.started = false;\n this.anyerror = false;\n\n /* Note: we explicitly let an empty file list pass. for event resolution\n purposes, we'll pretend it was an abort */\n if(files.length)\n {\n this.group = new UploadItemGroup(options);\n let items = Array.from(files).map(function(item)\n {\n return new Html5UploadItem(host, item, { params: options.params });\n });\n\n this.group.setItems(items);\n }\n }\n\n isStarted()\n {\n return this.started;\n }\n\n getStatus()\n {\n return this.group ? this.group.getEventDetail() : { uploaded:0, size:0, speed:0 };\n }\n\n abort()\n {\n if(dompack.debugflags.upl)\n console.log(\"[upl] Upload session abort invoked\",this);\n this.gotabort=true;\n this.group.abort();\n }\n\n upload()\n {\n let uploaddefer = dompack.createDeferred();\n this.started=true;\n if(!this.group) //empty file list - like an abort, but never send the events\n {\n uploaddefer.resolve([]);\n return uploaddefer.promise;\n }\n\n this.group.addEventListener(\"loadstart\", evt =>\n {\n if(dompack.debugflags.upl)\n console.log(\"[upl] Upload session dispatching wh:upload-start\", this);\n this.started = true;\n dompack.dispatchCustomEvent(this, \"wh:upload-start\", { bubbles: false\n , cancelable:false\n });\n });\n this.group.addEventListener(\"progress\", evt =>\n {\n if(dompack.debugflags.upl)\n console.log(\"[upl] Upload session dispatching wh:upload-progress\");\n dompack.dispatchCustomEvent(this, \"wh:upload-progress\", { bubbles: false\n , cancelable:false\n });\n });\n this.group.addEventListener(\"error\", event => this.anyerror = true);\n this.group.addEventListener(\"loadend\", evt =>\n {\n let result = this.gotabort || this.anyerror ? [] : this.group.getCompletedFiles();\n if(dompack.debugflags.upl)\n console.log(\"[upl] Upload session dispatching wh:upload-end\", this, result);\n\n dompack.dispatchCustomEvent(this, \"wh:upload-end\", { bubbles: false\n , cancelable:false\n , detail: { success: this.gotabort || !this.anyerror\n , files: result\n }\n });\n uploaddefer.resolve(result);\n });\n\n this.group.schedule();\n return uploaddefer.promise;\n }\n}\n\nexport function getFileAsDataURL(file)\n{\n return new Promise( (resolve,reject) =>\n {\n let reader = new FileReader;\n reader.onload = function(readdata)\n {\n resolve(reader.result);\n };\n reader.onerror = function()\n {\n reject(new Error(\"Failed to load file\"));\n };\n reader.readAsDataURL(file);\n });\n}\n\nexport function setDefaultUploadChunkSize(newchunksize)\n{\n default_upload_chunk_size = newchunksize;\n}\n\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","/** @import: import * as domfocus from 'dompack/browserfix/focus';\n*/\n\nexport function getActiveElement(doc)\n{\n try\n {\n //activeElement can reportedly throw on IE9 and _definately_ on IE11\n return doc.activeElement;\n }\n catch(e)\n {\n return null;\n }\n}\n\nexport function getToplevelWindow()\n{\n let toplevelwindow = window;\n while(toplevelwindow.frameElement)\n toplevelwindow = toplevelwindow.parent;\n return toplevelwindow;\n}\n/** Find the currently focused element\n @param limitwin If set, only return compontents in the specified document (prevents editable iframes from returning subframes) */\nexport function getCurrentlyFocusedElement(limitdoc)\n{\n try\n {\n var focused = getActiveElement(getToplevelWindow().document);\n while(true)\n {\n if (focused.tagName == \"IFRAME\" && (!limitdoc || focused.ownerDocument != limitdoc))\n focused = getActiveElement(focused.contentDocument);\n else\n break;\n }\n if(focused && limitdoc && focused.ownerDocument != limitdoc)\n return null;\n return focused;\n }\n catch(e)\n {\n return null;\n }\n}\n\nfunction isHTMLElement(node)\n{\n return node.nodeType == 1 && typeof node.className == \"string\";\n}\n\nfunction getIframeFocusableNodes(body, currentnode, recurseframes)\n{\n //ADDME force body into list?\n var subnodes = [];\n try\n {\n const body = (currentnode.contentDocument || currentnode.contentWindow.document).body;\n if (body.isContentEditable)\n return subnodes;\n\n subnodes = getFocusableComponents(body, recurseframes);\n }\n catch (e)\n {\n console.log(\"failed to descend into iframe\",e);\n }\n\n return subnodes;\n}\n\n// whether the node is reachable for focus by keyboard navigation\n// (because tabIndex == -1 will be seen a non(keyboard)focusable by this function)\nexport function canFocusTo(node) //returns if a -visible- node is focusable (this function does not check for visibility itself)\n{\n try\n {\n if(node.nodeType != 1)\n return false;\n if(node.contentEditable === \"true\")\n return true;\n\n // http://dev.w3.org/html5/spec-preview/editing.html#focusable\n if(node.tabIndex == -1) //explicitly disabled\n return false;\n\n return (parseInt(node.getAttribute('tabIndex')) >= 0) //we cannot read the property tabIndex directly, as IE <= 8 will return '0' even if the tabIndex is missing\n || ([\"A\",\"LINK\"].includes(node.nodeName) && node.href)\n || (!node.disabled && ([\"BUTTON\",\"SELECT\",\"TEXTAREA\",\"COMMAND\"].includes(node.nodeName)\n || (node.nodeName==\"INPUT\" && node.type != \"hidden\")));\n }\n catch(e)\n {\n return false; //the code above may fail eg on IE11 if it's a Flash object that'ss still loading\n }\n}\n\n\nexport function getFocusableComponents(startnode, recurseframes)\n{\n var focusable=[];\n for(var currentnode=startnode.firstChild;currentnode;currentnode=currentnode.nextSibling) //can't use element.getChildren, startnode may be document\n {\n if(!isHTMLElement(currentnode))\n {\n //if(currentnode.getStyle) console.log(\"getFocusableComponents skipping\",currentnode, $(currentnode).getStyle(\"display\"), currentnode.getStyle(\"visibility\"))\n continue;\n }\n\n // Get current style (avoid mootools due to cross-frame issues)\n var currentstyle = getComputedStyle(currentnode);\n if (!currentstyle || currentstyle.display == \"none\" || currentstyle.visibility == \"hidden\")\n {\n //if(currentnode.getStyle) console.log(\"getFocusableComponents skipping\",currentnode, $(currentnode).getStyle(\"display\"), currentnode.getStyle(\"visibility\"))\n continue;\n }\n\n if(recurseframes && currentnode.nodeName == \"IFRAME\") //might contain more things to focus\n {\n const subnodes = getIframeFocusableNodes(currentnode, currentnode, recurseframes);\n if(subnodes.length)\n focusable=focusable.concat(subnodes);\n }\n else if(canFocusTo(currentnode))\n {\n focusable.push(currentnode);\n }\n\n if (currentnode.isContentEditable)\n continue;\n\n const subnodes = getFocusableComponents(currentnode, recurseframes);\n if(subnodes.length)\n focusable = focusable.concat(subnodes);\n }\n return focusable;\n}\n\nexport function getAllFocusableComponents()\n{\n return getFocusableComponents(getToplevelWindow().document, true);\n}\n","// Workaround babel error that 'Promise.defer = ' isn't converted to the Babel promise type\nlet PromiseType = Promise;\nif(!PromiseType.prototype.finally)\n{\n /** Finally function for promises (executes callback without parameters, waits on returned thenables, then fulfills with\n original result\n */\n PromiseType.prototype.finally = function(callback)\n {\n // From https://github.com/domenic/promises-unwrapping/issues/18\n var constructor = this.constructor;\n return this.then(\n function(value) { return constructor.resolve(callback()).then(function() { return value; }); },\n function(reason) { return constructor.resolve(callback()).then(function() { throw reason; }); });\n };\n}\n\n/** Create a promise together with resolve & reject functions\n @return\n @cell return.promise\n @cell return.resolve\n @cell return.reject\n*/\nexport function createDeferred()\n{\n var deferred =\n { promise: null\n , resolve: null\n , reject: null\n };\n\n deferred.promise = new Promise(function(resolve, reject) { deferred.resolve = resolve; deferred.reject = reject; });\n return deferred;\n}\n","// WARNING: This file is loaded by both webpack (babel) and nodejs code and\n// should avoid babel-only features not yet supported by nodejs\n\n// import * as texttype from 'dompack/types/text';\n\nexport function encodeTextNode(str)\n{\n return str.split('&').join('&')\n .split('<').join('<')\n .split('>').join('>');\n}\n\nexport function encodeValue(str)\n{\n return str.split('&').join('&')\n .split('<').join('<')\n .split('>').join('>')\n .split('\"').join('"')\n .split(\"'\").join(''');\n}\n\nexport function decodeValue(str)\n{\n return str.replace(//g, \"\\n\")\n .replace(/(\\d+);/g, (match, dec) => String.fromCharCode(dec))\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/"/g, '\"')\n .replace(/'/g, \"'\")\n .replace(/&/g, \"&\");\n}\n\nexport function encodeJSCompatibleJSON(s)\n{\n return JSON.stringify(s).replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029');\n}\n","/** @import: import KeyboardHandler from \"dompack/extra/keyboard\";\n\n*/\n\n/* All keynames should be mixed-cased, as done here: http://www.w3.org/TR/DOM-Level-3-Events-key/\n\n Modifiers should be in the ordering Alt+Control+Meta+Shift+key (ie alphabetical)\n\n To simply prevent keys from propagating up (ie to keep Enter inside its textarea)\n new KeyboardHandler(this.textarea, {}, { dontpropagate: ['Enter']});\n*/\n\nimport { normalizeKeyboardEventData } from '../src/events.es';\nimport { debugflags } from '../src/debug.es';\n\nvar propnames = { \"shiftKey\": \"Shift\"\n , \"ctrlKey\": navigator.platform == \"MacIntel\" ? \"Control\" : [ \"Accel\", \"Control\" ]\n , \"metaKey\": navigator.platform == \"MacIntel\" ? [ \"Accel\", \"Meta\" ] : \"Meta\"\n , \"altKey\": \"Alt\"\n };\n\nfunction getFinalKey(event) //get the naem for the 'final' key, eg the 'D' in 'alt+control+d'\n{\n if(event.code.startsWith('Key') && event.code.length==4)\n return event.code.substr(3,1).toUpperCase();\n if(event.code.startsWith('Digit') && event.code.length==6)\n return event.code.substr(5,1).toUpperCase();\n return event.key.length === 1 ? event.key.toUpperCase() : event.key;\n}\n\nfunction getKeyNames(event)\n{\n let names = [[]];\n\n/*\n // Firefix under selenium on linux always says 'Unidentified' as key. Backup for some keys.\n if (basekey == \"Unidentified\")\n basekey = selenium_backup[event.keyCode];\n*/\n // Create the modifiers in the names array (omit the basekey, so we can sort on modifier first)\n Object.keys(propnames).forEach(function(propname)\n {\n if (event[propname])\n {\n // The key is pressed. Add the modifier name to all current names.\n var modifier = propnames[propname];\n if (!Array.isArray(modifier))\n names.forEach(function(arr) { arr.push(modifier); });\n else\n {\n // Multiple modifiers map to this key, duplicate all result sequences for every modifier\n var newkeys = [];\n modifier.forEach(function(singlemodifier)\n {\n names.forEach(function(arr)\n {\n newkeys.push(arr.concat([ singlemodifier ]));\n });\n });\n names = newkeys;\n }\n }\n });\n\n names = names.map(function(arr)\n {\n // Sort the modifier names\n arr = arr.sort();\n arr.push(getFinalKey(event));\n return arr.join(\"+\");\n });\n\n return names;\n}\n\nfunction validateKeyName(key)\n{\n var modifiers = key.split(\"+\");\n modifiers.pop();\n\n // Check for allowed modifiers\n modifiers.forEach(function(mod)\n {\n if (![ \"Accel\", \"Alt\", \"Control\", \"Meta\", \"Shift\"].includes(mod))\n throw new Error(\"Illegal modifier name '\" + mod + \"' in key '\" + key + \"'\");\n });\n\n var original_order = modifiers.join('+');\n modifiers.sort();\n if (modifiers.join('+') != original_order)\n throw new Error(\"Illegal key name \" + key + \", modifiers must be sorted alphabetically\");\n}\n\n/** node: The node to attach to\n keymap: Keymap\n options.stopmapped - preventDefault and stopPropagation on any key we have in our map\n options.dontpropagate - string array of keys not to propagate out of this object\n options.onkeypress - when set, call for all keypresses. signature: function(event, key). Should always return true and preventDefault (and/or stop) the event to cancel its handling\n options.listenoptions - addEventListener options (eg {capture:true})\n*/\nexport default class KeyboardHandler\n{\n constructor(node, keymap, options)\n {\n this.node = node;\n this.keymap = {};\n this.stopmapped = options&&options.stopmapped;\n this.dontpropagate = options && options.dontpropagate ? [...options.dontpropagate].map(name => name.toUpperCase()) : [];\n this.onkeypress = options&&options.onkeypress;\n this.captureunsafekeys = options&&options.captureunsafekeys;\n this._listenoptions = (options && options.listenoptions) || {};\n\n Object.keys(keymap).forEach(keyname =>\n {\n if (debugflags.key)\n validateKeyName(keyname);\n this.keymap[keyname.toUpperCase()] = keymap[keyname];\n });\n\n this._onkeydown = (event) => this._onKeyDown(event);\n this._onkeypress = (event) => this._onKeyPress(event);\n node.addEventListener('keydown', this._onkeydown, this._listenoptions);\n node.addEventListener('keypress', this._onkeypress, this._listenoptions);\n }\n\n destroy()\n {\n this.node.removeEventListener('keydown', this._onkeydown, this._listenoptions);\n this.node.removeEventListener('keypress', this._onkeypress, this._listenoptions);\n }\n\n /** Returns thether the current pressed special key should be ignored for the current target node\n Used to detect input/textarea/rte's\n @param target Current target node for keyboard event\n @param key Parsed key (as returned by GetKeyNames)\n @return Whether the key must be ignored by KeyboardHandler, default browser behaviour should be triggered.\n */\n _mustIgnoreKey(target, key, keynames)\n {\n var tag = target.nodeName.toLowerCase();\n if (tag == \"select\")\n {\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\", \"PageUp\", \"PageDown\"].indexOf(key) != -1)\n return true;\n }\n else if (tag == \"input\" || tag == \"textarea\" || target.isContentEditable)\n {\n // These keys we ignore, regardless of the modifier\n if ([ \"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\"\n , \"PageUp\", \"PageDown\"\n , \"Home\", \"End\"\n , \"Insert\", \"Delete\", \"Backspace\"\n ].indexOf(key) != -1)\n return true;\n\n var is_special_combo = false;\n\n // only input doesn't want exact combo 'Enter', the rest does\n if (tag != \"input\" && keynames.indexOf(\"Enter\") != -1)\n is_special_combo = true;\n\n // Only contenteditable wants \"Shift+Enter\"\n if (target.isContentEditable && keynames.indexOf(\"Shift+Enter\") != -1)\n is_special_combo = true;\n\n // These exact combo's are wanted by all inputs\n [ \"Accel+A\", \"Accel+V\", \"Accel+C\", \"Accel+X\" ].forEach(function(name)\n {\n is_special_combo = is_special_combo || keynames.indexOf(name) != -1;\n });\n return is_special_combo;\n }\n return false;\n }\n\n addKey(keybinding, handler)\n {\n if(debugflags.key)\n {\n validateKeyName(keybinding);\n console.log(\"[key] KeyDown handler registered for \" + keybinding);\n }\n this.keymap[keybinding.toUpperCase()] = handler;\n }\n removeKey(keybinding)\n {\n delete this.keymap[keybinding.toUpperCase()];\n }\n _onKeyDown(event)\n {\n let keydata = normalizeKeyboardEventData(event);\n\n // Get all possible names for this key\n let keynames = getKeyNames(keydata);\n if (!keydata.key || !keynames.length)\n {\n if(debugflags.key)\n console.log(\"[key] KeyDown handler for \", this.node, \" did not recognize key from event\",event);\n return true;\n }\n\n if(debugflags.key)\n console.log(\"[key] KeyDown handler for \", this.node, \" got key \", keydata.key, \" with target \", event.target, \" keynames:\",keynames);\n\n /* Some keys we ignore, unless we're explicitly bound to a node, so we don't inadvertly break eg a node inside\n a listview we're handling or otherwise break a user's expectation. Set the option 'captureunsafekeys' if you explicitly\n want to be able to capture any key */\n\n if (!this.captureunsafekeys && this._mustIgnoreKey(event.target, keydata.key, keynames))\n {\n if(debugflags.key)\n console.log(\"[key] KeyDown event will not be intercepted, it's an unsafe key to intercept\");\n return true;\n }\n\n if (this.dontpropagate)\n {\n keynames.forEach(keyname =>\n {\n if (this.dontpropagate.includes(keyname))\n {\n if(debugflags.key)\n console.log(\"[key] KeyDown event will not bubbleup because of our dontpropagate option (but may still trigger a default action)\");\n event.stopPropagation();\n }\n });\n }\n\n for (var i = 0; i < keynames.length; ++i)\n {\n let mapping = this.keymap[keynames[i].toUpperCase()];\n if(!mapping)\n continue;\n\n if (this.stopmapped)\n {\n if(debugflags.key)\n console.log(\"[key] KeyDown event will not bubbleup or trigger default, because we're configured to block any mapped key\");\n event.stopPropagation();\n event.preventDefault();\n }\n\n let ishandled = mapping.apply(this.node,[event]);\n if(ishandled && !event.defaultPrevented)\n {\n console.warn(`The key handler for '${keynames[i]}' should preventDefault (or dompack.stop) the event to block fruther propagation`);\n event.stopPropagation();\n event.preventDefault();\n if(debugflags.key)\n console.log(\"[key] KeyDown event will not bubbleup or trigger default, because the keyhandler indicated the key was handled\");\n }\n\n if(!event.defaultPrevented && debugflags.key)\n console.log(\"[key] KeyDown event was not blocked by its explicitly configured handler\");\n }\n return true;\n }\n _onKeyPress(event)\n {\n let keydata = normalizeKeyboardEventData(event);\n\n if (this.onkeypress)\n {\n if (!this.onkeypress.apply(this.node, [ event, keydata.key ]))\n {\n if(!event.defaultPrevented)\n console.warn(\"The onkeypress handler should preventDefault (or dompack.stop) the event to block fruther propagation\");\n event.stopPropagation();\n event.preventDefault();\n }\n }\n }\n}\n\nexport function getEventKeyNames(event)\n{\n let keydata = normalizeKeyboardEventData(event);\n return getKeyNames(keydata);\n}\n\nKeyboardHandler.getEventKeyNames = function(event)\n{\n let keydata = normalizeKeyboardEventData(event);\n return getKeyNames(keydata);\n};\n\n/** Is the native 'copy' modifier for this platform pressed? */\nKeyboardHandler.hasNativeEventCopyKey = function(event)\n{\n return event && (navigator.platform == \"MacIntel\" ? event.altKey : event.ctrlKey);\n};\n\n/** Is the native 'multiselect' modifier for this platform pressed? */\nKeyboardHandler.hasNativeEventMultiSelectKey = function(event)\n{\n return event && (navigator.platform == \"MacIntel\" ? event.metaKey : event.ctrlKey);\n};\n\nKeyboardHandler.getDragModeOverride = function(event)\n{\n const modifiers =\n (event.altKey?\"Alt+\":\"\") +\n (event.ctrlKey?\"Control+\":\"\") +\n (event.metaKey?\"Meta+\":\"\") +\n (event.shiftKey?\"Shift+\":\"\") +\n (navigator.platform === \"MacIntel\" ? \"Mac\" : \"Other\");\n\n let override = \"\";\n switch (modifiers)\n {\n case \"Shift+Other\":\n case \"Meta+Other\": override = \"move\"; break;\n case \"Control+Other\":\n case \"Alt+Mac\": override = \"copy\"; break;\n case \"Control+Shift+Other\":\n case \"Alt+Other\":\n case \"Control+Mac\": override = \"link\"; break;\n }\n\n return override;\n};\n","import * as dompack from 'dompack';\nimport * as upload from '@mod-system/js/compat/upload';\nimport * as formservice from '../internal/form.rpc.json';\nimport \"../internal/form.lang.json\";\nimport { getTid } from \"@mod-tollium/js/gettid\";\nimport FormBase from '../formbase';\n\nfunction isAcceptableType(filetype, masks)\n{\n if(masks.includes(filetype))\n return true;\n\n let basetype = filetype.split('/')[0];\n if(['image','video','audio'].includes(basetype) && masks.includes(basetype + '/*'))\n return true;\n\n return false;\n}\n\n\nexport default class FileEditBase\n{\n constructor(node, options)\n {\n let formnode = node.closest('form');\n if(formnode && !formnode.dataset.whFormId) //doesn't look like a RPC form\n return; //then don't replace it!\n\n this.node = node;\n //FIXME properly cooperate with required... but parsley will insist on validating if required is set (TODO so might not be relevant anymore)\n this.isrequired = node.required || node.hasAttribute(\"data-wh-form-required\");\n node.required = false;\n this.node.whFormsApiChecker = () => this._check();\n this.node.whUseFormGetValue=true;\n this.node.addEventListener('wh:form-getvalue', evt => this.getValue(evt));\n this.busy = false;\n this.deferredvalues = [];\n\n this.node.addEventListener('wh:form-enable', evt => this._handleEnable(evt));\n this.node.addEventListener('wh:form-require', evt => this._handleRequire(evt));\n }\n _afterConstruction() //all derived classes must invoke this at the end of their constructor\n {\n this._updateEnabledStatus(this._getEnabled()); //set current status, might already be disabled\n }\n _check()\n {\n if(this.isrequired && !this.getFieldValueLink())\n FormBase.setFieldError(this.node, getTid(\"publisher:site.forms.commonerrors.required\"), { reportimmediately: false });\n else\n FormBase.setFieldError(this.node, \"\", { reportimmediately: false });\n }\n _handleEnable(evt)\n {\n dompack.stop(evt);\n this._updateEnabledStatus(evt.detail.enabled);\n }\n _handleRequire(evt)\n {\n dompack.stop(evt);\n this.isrequired = evt.detail.required;\n }\n _getEnabled()\n {\n return !this.node.disabled && !this.node.hasAttribute(\"data-wh-form-disabled\");\n }\n _updateEnabledStatus(nowenabled)\n {\n }\n getValue(evt)\n {\n evt.preventDefault();\n evt.stopPropagation();\n\n this.deferredvalues.push(evt.detail.deferred);\n if(!this.busy)\n this.finishGetValue();\n }\n finishGetValue()\n {\n let valuelink = this.getFieldValueLink();\n let value = valuelink\n ? { link: valuelink, filename: this.node.dataset.whFilename, mimetype: this.node.dataset.whFiletype }\n : null;\n\n let toresolve = this.deferredvalues;\n this.deferredvalues = [];\n toresolve.forEach(deferred => deferred.resolve(value));\n }\n getFieldValueLink()\n {\n throw new Error(\"Derived classes must implement getFieldValueLink\");\n }\n async selectFile(evt)\n {\n if(!this._getEnabled())\n return;\n\n evt.preventDefault();\n let lock = dompack.flagUIBusy();\n let files = await upload.selectFiles();\n this.uploadFile(files, lock);\n }\n _isAcceptableType(mimetype)\n {\n return !this.node.dataset.whAccept\n || isAcceptableType(mimetype, this.node.dataset.whAccept.split(','));\n }\n async uploadFile(files, lock)\n {\n if(files.length==0)\n {\n lock.release();\n return;\n }\n\n let uploadingcontrol = this.node.closest(\".wh-form__fieldgroup\");\n if(uploadingcontrol)\n uploadingcontrol.classList.add(\"wh-form--uploading\");\n\n this.busy = true;\n try\n {\n let uploader = new upload.UploadSession(files);//ADDME - should identify us as permitted to upload eg , { params: { edittoken: ...} });\n let res = await uploader.upload();\n\n if(!this._isAcceptableType(res[0].type))\n {\n //TODO tell server it can destroy the file immediately (should have told uploadsession at the start?\n let msg = this.node.dataset.whAccepterror || getTid(\"publisher:site.forms.commonerrors.badfiletype\");\n FormBase.setFieldError(this.node, msg, { reportimmediately: true });\n return;\n }\n\n res[0].url = await formservice.getUploadedFileFinalURL(res[0].url);\n\n this.node.dataset.whFilename = res[0].name;\n this.node.dataset.whFiletype = res[0].type;\n //this.filesize = result.size;\n await this.handleUploadedFile(res[0]);\n\n //FIXME this is just a webserver temporary session, need to get URLs with longer persistence\n dompack.dispatchCustomEvent(this.node, 'change', { bubbles: true, cancelable: false });\n this._check();\n }\n finally\n {\n this.busy = false;\n this.finishGetValue();\n lock.release();\n if(uploadingcontrol)\n uploadingcontrol.classList.remove(\"wh-form--uploading\");\n }\n }\n}\n","/* import * as preload from 'dompack/extra/preload' */\n\nexport function promiseImage(imgsrc)\n{\n return new Promise((resolve, reject) =>\n {\n let img = new Image;\n img.onload = function(evt)\n {\n resolve({node: img\n ,src: img.src\n ,width: img.naturalWidth\n ,height: img.naturalHeight\n });\n };\n img.onerror = reject;\n img.src = imgsrc;\n });\n}\n\nexport function promiseScript(scriptsrc)\n{\n return new Promise((resolve, reject) =>\n {\n let scripttag = document.createElement('script');\n scripttag.onload = function(evt)\n {\n resolve( { node: scripttag\n , src: scripttag.src\n });\n };\n scripttag.onerror = reject;\n scripttag.src = scriptsrc;\n\n let appendto = document.querySelector('head') || document.querySelector('body');\n appendto.appendChild(scripttag);\n });\n}\n","\"use strict\";\n\nrequire(\"./noConflict\");\n\nvar _global = _interopRequireDefault(require(\"core-js/library/fn/global\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nif (_global[\"default\"]._babelPolyfill && typeof console !== \"undefined\" && console.warn) {\n console.warn(\"@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended \" + \"and may have consequences if different versions of the polyfills are applied sequentially. \" + \"If you do need to load the polyfill more than once, use @babel/polyfill/noConflict \" + \"instead to bypass the warning.\");\n}\n\n_global[\"default\"]._babelPolyfill = true;","\"use strict\";\n\nrequire(\"core-js/es6\");\n\nrequire(\"core-js/fn/array/includes\");\n\nrequire(\"core-js/fn/array/flat-map\");\n\nrequire(\"core-js/fn/string/pad-start\");\n\nrequire(\"core-js/fn/string/pad-end\");\n\nrequire(\"core-js/fn/string/trim-start\");\n\nrequire(\"core-js/fn/string/trim-end\");\n\nrequire(\"core-js/fn/symbol/async-iterator\");\n\nrequire(\"core-js/fn/object/get-own-property-descriptors\");\n\nrequire(\"core-js/fn/object/values\");\n\nrequire(\"core-js/fn/object/entries\");\n\nrequire(\"core-js/fn/promise/finally\");\n\nrequire(\"core-js/web\");\n\nrequire(\"regenerator-runtime/runtime\");","/**\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.create');\nrequire('../modules/es6.object.define-property');\nrequire('../modules/es6.object.define-properties');\nrequire('../modules/es6.object.get-own-property-descriptor');\nrequire('../modules/es6.object.get-prototype-of');\nrequire('../modules/es6.object.keys');\nrequire('../modules/es6.object.get-own-property-names');\nrequire('../modules/es6.object.freeze');\nrequire('../modules/es6.object.seal');\nrequire('../modules/es6.object.prevent-extensions');\nrequire('../modules/es6.object.is-frozen');\nrequire('../modules/es6.object.is-sealed');\nrequire('../modules/es6.object.is-extensible');\nrequire('../modules/es6.object.assign');\nrequire('../modules/es6.object.is');\nrequire('../modules/es6.object.set-prototype-of');\nrequire('../modules/es6.object.to-string');\nrequire('../modules/es6.function.bind');\nrequire('../modules/es6.function.name');\nrequire('../modules/es6.function.has-instance');\nrequire('../modules/es6.parse-int');\nrequire('../modules/es6.parse-float');\nrequire('../modules/es6.number.constructor');\nrequire('../modules/es6.number.to-fixed');\nrequire('../modules/es6.number.to-precision');\nrequire('../modules/es6.number.epsilon');\nrequire('../modules/es6.number.is-finite');\nrequire('../modules/es6.number.is-integer');\nrequire('../modules/es6.number.is-nan');\nrequire('../modules/es6.number.is-safe-integer');\nrequire('../modules/es6.number.max-safe-integer');\nrequire('../modules/es6.number.min-safe-integer');\nrequire('../modules/es6.number.parse-float');\nrequire('../modules/es6.number.parse-int');\nrequire('../modules/es6.math.acosh');\nrequire('../modules/es6.math.asinh');\nrequire('../modules/es6.math.atanh');\nrequire('../modules/es6.math.cbrt');\nrequire('../modules/es6.math.clz32');\nrequire('../modules/es6.math.cosh');\nrequire('../modules/es6.math.expm1');\nrequire('../modules/es6.math.fround');\nrequire('../modules/es6.math.hypot');\nrequire('../modules/es6.math.imul');\nrequire('../modules/es6.math.log10');\nrequire('../modules/es6.math.log1p');\nrequire('../modules/es6.math.log2');\nrequire('../modules/es6.math.sign');\nrequire('../modules/es6.math.sinh');\nrequire('../modules/es6.math.tanh');\nrequire('../modules/es6.math.trunc');\nrequire('../modules/es6.string.from-code-point');\nrequire('../modules/es6.string.raw');\nrequire('../modules/es6.string.trim');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/es6.string.code-point-at');\nrequire('../modules/es6.string.ends-with');\nrequire('../modules/es6.string.includes');\nrequire('../modules/es6.string.repeat');\nrequire('../modules/es6.string.starts-with');\nrequire('../modules/es6.string.anchor');\nrequire('../modules/es6.string.big');\nrequire('../modules/es6.string.blink');\nrequire('../modules/es6.string.bold');\nrequire('../modules/es6.string.fixed');\nrequire('../modules/es6.string.fontcolor');\nrequire('../modules/es6.string.fontsize');\nrequire('../modules/es6.string.italics');\nrequire('../modules/es6.string.link');\nrequire('../modules/es6.string.small');\nrequire('../modules/es6.string.strike');\nrequire('../modules/es6.string.sub');\nrequire('../modules/es6.string.sup');\nrequire('../modules/es6.date.now');\nrequire('../modules/es6.date.to-json');\nrequire('../modules/es6.date.to-iso-string');\nrequire('../modules/es6.date.to-string');\nrequire('../modules/es6.date.to-primitive');\nrequire('../modules/es6.array.is-array');\nrequire('../modules/es6.array.from');\nrequire('../modules/es6.array.of');\nrequire('../modules/es6.array.join');\nrequire('../modules/es6.array.slice');\nrequire('../modules/es6.array.sort');\nrequire('../modules/es6.array.for-each');\nrequire('../modules/es6.array.map');\nrequire('../modules/es6.array.filter');\nrequire('../modules/es6.array.some');\nrequire('../modules/es6.array.every');\nrequire('../modules/es6.array.reduce');\nrequire('../modules/es6.array.reduce-right');\nrequire('../modules/es6.array.index-of');\nrequire('../modules/es6.array.last-index-of');\nrequire('../modules/es6.array.copy-within');\nrequire('../modules/es6.array.fill');\nrequire('../modules/es6.array.find');\nrequire('../modules/es6.array.find-index');\nrequire('../modules/es6.array.species');\nrequire('../modules/es6.array.iterator');\nrequire('../modules/es6.regexp.constructor');\nrequire('../modules/es6.regexp.exec');\nrequire('../modules/es6.regexp.to-string');\nrequire('../modules/es6.regexp.flags');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nrequire('../modules/es6.promise');\nrequire('../modules/es6.map');\nrequire('../modules/es6.set');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es6.weak-set');\nrequire('../modules/es6.typed.array-buffer');\nrequire('../modules/es6.typed.data-view');\nrequire('../modules/es6.typed.int8-array');\nrequire('../modules/es6.typed.uint8-array');\nrequire('../modules/es6.typed.uint8-clamped-array');\nrequire('../modules/es6.typed.int16-array');\nrequire('../modules/es6.typed.uint16-array');\nrequire('../modules/es6.typed.int32-array');\nrequire('../modules/es6.typed.uint32-array');\nrequire('../modules/es6.typed.float32-array');\nrequire('../modules/es6.typed.float64-array');\nrequire('../modules/es6.reflect.apply');\nrequire('../modules/es6.reflect.construct');\nrequire('../modules/es6.reflect.define-property');\nrequire('../modules/es6.reflect.delete-property');\nrequire('../modules/es6.reflect.enumerate');\nrequire('../modules/es6.reflect.get');\nrequire('../modules/es6.reflect.get-own-property-descriptor');\nrequire('../modules/es6.reflect.get-prototype-of');\nrequire('../modules/es6.reflect.has');\nrequire('../modules/es6.reflect.is-extensible');\nrequire('../modules/es6.reflect.own-keys');\nrequire('../modules/es6.reflect.prevent-extensions');\nrequire('../modules/es6.reflect.set');\nrequire('../modules/es6.reflect.set-prototype-of');\nmodule.exports = require('../modules/_core');\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('./_set-species')('Array');\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","require('../../modules/es7.array.includes');\nmodule.exports = require('../../modules/_core').Array.includes;\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","require('../../modules/es7.array.flat-map');\nmodule.exports = require('../../modules/_core').Array.flatMap;\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar aFunction = require('./_a-function');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen, A;\n aFunction(callbackfn);\n sourceLen = toLength(O.length);\n A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatMap');\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar isArray = require('./_is-array');\nvar isObject = require('./_is-object');\nvar toLength = require('./_to-length');\nvar ctx = require('./_ctx');\nvar IS_CONCAT_SPREADABLE = require('./_wks')('isConcatSpreadable');\n\nfunction flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;\n var element, spreadable;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n spreadable = false;\n if (isObject(element)) {\n spreadable = element[IS_CONCAT_SPREADABLE];\n spreadable = spreadable !== undefined ? !!spreadable : isArray(element);\n }\n\n if (spreadable && depth > 0) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1fffffffffffff) throw TypeError();\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n}\n\nmodule.exports = flattenIntoArray;\n","require('../../modules/es7.string.pad-start');\nmodule.exports = require('../../modules/_core').String.padStart;\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","require('../../modules/es7.string.pad-end');\nmodule.exports = require('../../modules/_core').String.padEnd;\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n","require('../../modules/es7.string.trim-left');\nmodule.exports = require('../../modules/_core').String.trimLeft;\n","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimLeft', function ($trim) {\n return function trimLeft() {\n return $trim(this, 1);\n };\n}, 'trimStart');\n","require('../../modules/es7.string.trim-right');\nmodule.exports = require('../../modules/_core').String.trimRight;\n","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimRight', function ($trim) {\n return function trimRight() {\n return $trim(this, 2);\n };\n}, 'trimEnd');\n","require('../../modules/es7.symbol.async-iterator');\nmodule.exports = require('../../modules/_wks-ext').f('asyncIterator');\n","require('./_wks-define')('asyncIterator');\n","require('../../modules/es7.object.get-own-property-descriptors');\nmodule.exports = require('../../modules/_core').Object.getOwnPropertyDescriptors;\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","require('../../modules/es7.object.values');\nmodule.exports = require('../../modules/_core').Object.values;\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","'use strict';\nrequire('../../modules/es6.promise');\nrequire('../../modules/es7.promise.finally');\nmodule.exports = require('../../modules/_core').Promise['finally'];\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","require('../modules/web.timers');\nrequire('../modules/web.immediate');\nrequire('../modules/web.dom.iterable');\nmodule.exports = require('../modules/_core');\n","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global');\nvar $export = require('./_export');\nvar userAgent = require('./_user-agent');\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n return function (fn, time /* , ...args */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : false;\n return set(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n } : fn, time);\n };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});\n","var $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","//Polyfills still needed in compatiblity=modern mode (AND IE11/Edge mode)\n\n\n///////////////////////////////////////////////////////////////////////////////\n//\n// ParentNode, ChildNode interfaces\n//\n\n//replaceChildren polyfill\nif(!Element.prototype.replaceChildren)\n{\n Element.prototype.replaceChildren = function()\n {\n this.innerHTML = \"\";\n this.append.apply(this, arguments);\n };\n}\n\n//\n// end of ParentNode, Childnode\n//\n///////////////////////////////////////////////////////////////////////////////////\n\nif(!window.__whCompatibility)\n window.__whCompatibility = \"modern\";\n","require('../modules/es7.global');\nmodule.exports = require('../modules/_core').global;\n","// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.G, { global: require('./_global') });\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","require(\"./index.scss\");\n\nimport * as dompack from 'dompack';\n\nimport \"@mod-system/js/wh/integration\"; //we're a WebHare site\nimport \"@mod-publisher/js/richcontent/all\";\n\n//At minimum, activates required CSS and JSON/RPC links\nimport * as forms from '@mod-publisher/js/forms';\n\n//Optionally: replaces upload fields with a nicer and edit-supporting version\nimport UploadField from '@mod-publisher/js/forms/fields/upload';\ndompack.register(\".wh-form__uploadfield\", node => new UploadField(node));\n\n//Enable the imgedit and/or rtd fields:\nimport ImgEditField from '@mod-publisher/js/forms/fields/imgedit';\ndompack.register(\".wh-form__imgedit\", node => new ImgEditField(node));\nimport RTDField from '@mod-publisher/js/forms/fields/rtd';\ndompack.register(\".wh-form__rtd\", node => new RTDField(node));\n\nforms.setup({ validate: true });\n\n//require('./index.scss');\n//alert(\"hello2\");\nfunction cleanupEmptyParagraphs(pnode)\n{//cleanup empty paragraphs between fullwidth blocks\n for(let node of pnode.querySelectorAll(\".contents--fullwidth\"))\n {\n let prevnode = node.previousElementSibling;\n if(prevnode && prevnode.nodeName == \"P\" && (prevnode.innerHTML == \"\" || prevnode.innerHTML == \"\") )\n node.parentNode.removeChild(prevnode);\n }\n}\n\ndompack.register(\"article\", node => cleanupEmptyParagraphs(node) );\n\n","import * as domdebug from './debug.es';\nimport * as dompromise from './promise.es';\nimport * as domevents from './events.es';\n\nlet lockmgr = null;\nlet locallocks = [];\nlet ischild = false;\n\nclass LockManager\n{\n //this object is not for external consumption\n constructor()\n {\n this.locks = [];\n this.busycounter = 0;\n this.deferreduipromise = null;\n this.uiwatcher = null;\n this.modallocked = false;\n }\n anyModalLocks()\n {\n for(var lock of this.locks)\n if(lock.ismodal)\n return true;\n return false;\n }\n add(lock)\n {\n this.locks.push(lock);\n let returnvalue = this.busycounter++;\n\n if(lock.ismodal && !this.modallocked)\n {\n this.modallocked = true;\n\n if(domevents.dispatchCustomEvent(window, 'dompack:busymodal', { bubbles: true, cancelable: true, detail: { islock: true } }))\n document.documentElement.classList.add(\"dompack--busymodal\");\n }\n return returnvalue;\n }\n release(lock)\n {\n let pos = this.locks.indexOf(lock);\n if(pos==-1)\n {\n if(domdebug.debugflags.bus)\n {\n console.error(\"Duplicate release of busy lock #\" + lock.locknum);\n console.log(\"Lock allocated:\");\n console.log(lock.acquirestack);\n console.log(\"Lock first released:\");\n console.log(lock.releasestack);\n }\n throw new Error(\"Duplicate release of busy lock\");\n }\n\n this.locks.splice(pos,1);\n this.prepWatcher();\n }\n prepWatcher()\n {\n if(!this.uiwatcher && this.locks.length==0 && (this.deferreduipromise || this.modallocked))\n {\n this.uiwatcher = setTimeout(() => this.checkUIFree(),0);\n }\n }\n getNumLocks()\n {\n return this.locks.length;\n }\n checkUIFree()\n {\n this.uiwatcher = null;\n if(this.locks.length == 0)\n {\n if(this.deferreduipromise)\n {\n this.deferreduipromise.resolve(true);\n this.deferreduipromise = null;\n }\n if(this.modallocked && !this.anyModalLocks())\n {\n this.modallocked = false;\n if(domevents.dispatchCustomEvent(window, 'dompack:busymodal', { bubbles: true, cancelable: true, detail: { islock: false } }))\n document.documentElement.classList.remove(\"dompack--busymodal\");\n }\n }\n }\n waitUIFree()\n {\n if(!this.deferreduipromise)\n this.deferreduipromise = dompromise.createDeferred();\n this.prepWatcher();\n return this.deferreduipromise.promise;\n }\n logLocks()\n {\n this.locks.forEach( (lock,idx) => console.log('[bus] lock #' + lock.locknum, lock.acquirestack, lock) );\n console.log(\"[bus] total \" + this.locks.length + \" locks\");\n }\n getLockIds()\n {\n return this.locks.map(l => \"#\" + l.locknum).join(\", \");\n }\n}\n\nexport class Lock\n{\n constructor(options)\n {\n this.ismodal = options && options.ismodal;\n\n this.locknum = lockmgr.add(this);\n if(ischild)\n locallocks.push(this);\n\n if(domdebug.debugflags.bus)\n {\n this.acquirestack = (new Error).stack;\n console.trace('[bus] Busy lock #' + this.locknum + ' taken. ' + lockmgr.getNumLocks() + \" locks active now: \" + lockmgr.getLockIds());\n }\n }\n release()\n {\n if(domdebug.debugflags.bus)\n this.releasestack = (new Error).stack;\n\n lockmgr.release(this);\n if(ischild)\n {\n let lockpos = locallocks.indexOf(this);\n locallocks.splice(lockpos,1);\n }\n\n if(domdebug.debugflags.bus)\n {\n console.trace('[bus] Busy lock #' + this.locknum + ' released. ' + lockmgr.getNumLocks() + \" locks active now: \" + lockmgr.getLockIds());\n }\n }\n}\n\n/** Return a promise resolving as soon as the UI is free for at least one tick */\nexport function waitUIFree()\n{\n return lockmgr.waitUIFree();\n}\n\n/** flag userinterface as busy. tests then know not to interact with the UI until the busy flag is released\n @param options Options\n @cell options.ismodal Whether the lock is a modal lock\n*/\nexport function flagUIBusy(options)\n{\n return new Lock(options);\n}\n\nexport function getUIBusyCounter()\n{\n return lockmgr.busycounter;\n}\n\ntry //we're accessing a parent window, so we may hit security exceptions\n{\n if(window.parent && window.parent.$dompack$busylockmanager)\n {\n lockmgr = window.parent.$dompack$busylockmanager;\n ischild = true;\n //if we connected to a parent... deregister our locks, eg. if parent navigated our frame away\n window.addEventListener(\"unload\", () =>\n {\n if(domdebug.debugflags.bus)\n console.log(\"[bus] Frame unloading, \" + locallocks.length + \" locks pending.\", locallocks.map(l=>\"#\"+l.locknum).join(\", \"), locallocks);\n\n //switch to local instance as we'll be unable to auto-release\n let locallockmgr = new LockManager;\n locallocks.forEach(lock => { lockmgr.release(lock); locallockmgr.add(lock); });\n locallocks = [];\n lockmgr = locallockmgr;\n });\n }\n}\ncatch(e)\n{\n}\n\nif(!lockmgr)\n lockmgr = new LockManager;\n\nif(typeof window != 'undefined')\n window.$dompack$busylockmanager = lockmgr;\n","/* @recommendedimport: import * as storage from 'dompack/extra/storage';\n*/\n\nlet backupsession = {}, backuplocal = {};\nlet sessionfail, localfail;\n\n//isolate us when running previews, CI tests use same Chrome for both preview and tests so the previews start increasing visitorcounts behind our back\nconst isolated = \"whIsolateStorage\" in document.documentElement.dataset;\n\n/** @return True if our storage is fully isolated */\nexport function isIsolated()\n{\n return isolated;\n}\n\nexport function setSession(key, value)\n{\n try\n {\n if(value !== null)\n {\n backupsession[key] = value;\n if(!isolated)\n window.sessionStorage.setItem(key, JSON.stringify(value));\n }\n else\n {\n delete backupsession[key];\n if(!isolated)\n window.sessionStorage.removeItem(key);\n }\n\n if(sessionfail)\n {\n console.log(\"storage.setSession succeed after earlier fail\");\n sessionfail = false;\n }\n }\n catch(e)\n {\n if(!sessionfail)\n {\n console.log(\"storage.setSession failed\", e);\n sessionfail = true;\n }\n }\n}\n\nexport function getSession(key)\n{\n if(!isolated)\n {\n try\n {\n let retval = window.sessionStorage[key];\n try\n {\n return retval ? JSON.parse(retval) : null;\n }\n catch(e)\n {\n console.log(\"Failed to parse sessionStorage\",e,key);\n return null;\n }\n }\n catch(e)\n {\n if(!sessionfail)\n {\n console.log(\"getSessionStorage failed\", e);\n sessionfail = true;\n }\n }\n }\n return key in backupsession ? backupsession[key] : null;\n}\n\nexport function setLocal(key, value)\n{\n try\n {\n if(value !== null)\n {\n backuplocal[key] = value;\n if(!isolated)\n window.localStorage.setItem(key, JSON.stringify(value));\n }\n else\n {\n delete backuplocal[key];\n if(!isolated)\n window.localStorage.removeItem(key);\n }\n\n if(localfail)\n {\n console.log(\"storage.setLocal succeed after earlier fail\");\n localfail = false;\n }\n }\n catch(e)\n {\n if(!localfail)\n {\n console.log(\"storage.setLocal failed\", e);\n localfail = true;\n }\n }\n}\n\nexport function getLocal(key)\n{\n if(!isolated)\n {\n try\n {\n let retval = window.localStorage[key];\n try\n {\n return retval ? JSON.parse(retval) : null;\n }\n catch(e)\n {\n console.log(\"Failed to parse localStorage\",e,key);\n return null;\n }\n }\n catch(e)\n {\n if(!localfail)\n {\n console.log(\"getLocalStorage failed\", e);\n localfail = true;\n }\n }\n }\n return key in backuplocal ? backuplocal[key] : null;\n}\n","import { append, setStyles } from './tree.es';\n\nfunction flattenArray(list)\n{\n return list.reduce((acc, elt) => acc.concat(Array.isArray(elt) ? flattenArray(elt) : elt), []);\n}\n\nfunction setClassName(node, value)\n{\n if (!value || typeof value === 'string')\n node.className = value || '';\n else if (Array.isArray(value))\n node.className = value.filter(elt => elt && typeof elt === 'string').join(\" \");\n else\n {\n let str = \"\";\n Object.keys(value).forEach((key, idx) => { if (value[key]) str += (idx ? \" \" : \"\") + key; });\n node.className = str;\n }\n}\n\n/** Matches non-first uppercase characters\n (when the second char is uppercases, the first char is passed too)\n*/\nconst MATCH_UPCASE = /([A-Z])/g;\nconst MATCH_DASH_AND_CHAR = /-([a-zA-Z])/g;\n\n/** Convert a camelCased identifier to a dashed string\n*/\nexport function toDashed(value)\n{\n if (value)\n return (value.substring(0, 1) + value.substring(1).replace(MATCH_UPCASE, \"-$1\")).toLowerCase();\n}\n\n/** Convert a dashed string to a camelCase identifier\n*/\nexport function toCamel(value)\n{\n return value.replace(MATCH_DASH_AND_CHAR, (item, match_1) => match_1.toUpperCase());\n}\n\nfunction attrHasBooleanValue(propname)\n{\n return ['disabled','checked','selected','readonly','multiple','ismap'].includes(propname);\n}\n\nfunction createElement(elementname, attributes, toattrs)\n{\n var node = document.createElement(elementname);\n if(attributes)\n {\n Object.keys(attributes).forEach(attrname =>\n {\n if(attrname == 'events')\n throw new Error(\"Use 'on' instead of 'events' in dompack.create\");\n if(attrname == 'styles')\n throw new Error(\"Use 'style' instead of 'styles' in dompack.create\");\n if(attrname == 'children')\n {\n // allow null 'children' property for jsxcreate, property delete is detrimental to performance.\n if (attributes[attrname])\n throw new Error(\"Use 'childNodes' instead of 'children' in dompack.create\");\n return;\n }\n\n let value = attributes[attrname];\n\n if (attrname == 'on') //create event listeners\n return void Object.keys(value).forEach(eventname => node.addEventListener(eventname, value[eventname], false));\n else if (attrname.startsWith(\"on\"))\n return void node.addEventListener(toDashed(attrname.substring(2)), value, false);\n\n if (attrname == \"className\" || attrname == \"class\")\n {\n if(node.className) // already modified the class?\n throw new Error(\"Specify either 'className' or 'class' to dompack.create, but not both\");\n setClassName(node, value);\n return;\n }\n\n if(attrname == 'style')\n return void setStyles(node, value);\n\n if(attrname == 'dataset') //explicitly assign\n return void Object.assign(node[attrname], value);\n\n if(attrname == 'childNodes') //append as children\n return void append(node, ...attributes.childNodes.filter(child => child != null && child !== true && child !== false));\n\n if(toattrs && attrHasBooleanValue(attrname))\n {\n if(value)\n node.setAttribute(attrname,\"\");\n else\n node.removeAttribute(attrname);\n return;\n }\n\n if (toattrs && !attrname.startsWith(\"prop\"))\n {\n if (value != null) // matches not null and not undefined\n {\n if (value && typeof value == \"object\")\n throw new Error(\"Cannot store non-null objects in attributes, use a property starting with 'prop'\");\n node.setAttribute(attrname, attributes[attrname]);\n }\n }\n else\n node[attrname] = attributes[attrname];\n });\n }\n return node;\n}\n\n/* create elements. sets properties (not attributes!) immediately.\n everything inside 'on' is added as an addEventListener without capture\n everything inside 'childNodes' is appended to the node. nulls are ignored inside childNodes\n\n Examples:\n domtools.create(\"input\", { type:\"file\", className: \"myupload\", style: { display: \"none\" }));\n\n*/\nexport function create(elementname, attributes)\n{\n return createElement(elementname, attributes, false);\n}\n\n/** Function to create for jsx, create elements directly (instead of virtual dom nodes).\n\n import * as dompack from 'dompack';\n\n /* @jsx dompack.jsxcreate *\\/\n your code\n*/\nexport function jsxcreate(element, attributes, ...childNodes)\n{\n // Ensure attributes\n attributes = attributes || {};\n // Flatten childnodes arrays, convert numbers to strings. Also support children property (React uses that)\n let parts = (attributes.childNodes || []).concat(attributes.children || []).concat(childNodes);\n if (attributes.children)\n attributes.children = null;\n parts = flattenArray(parts);\n parts = parts.map((elt) => typeof elt === \"number\" ? String(elt) : elt);\n // Create the element\n attributes.childNodes = parts;\n if (typeof element === \"function\")\n return element(attributes, null, null);\n return createElement(element, attributes, true);\n}\n\n","import * as domtree from './tree.es';\nimport * as domevents from './events.es';\n\nlet components = [];\nconst map = new WeakMap();\n\n\n//is a node completely in the dom? if we can find a sibling anywhere, it must be closed\nfunction isNodeCompletelyInDom(node)\n{\n for(;node;node=node.parentNode)\n if(node.nextSibling)\n return true;\n return false;\n}\nfunction processRegistration(item, reg, domready)\n{\n if(!domready && !isNodeCompletelyInDom(item))\n return; //not safe to register\n\n if (!map.has(item))\n map.set(item, [ reg.num ]);\n else\n {\n let list = map.get(item);\n if (list.includes(reg.num))\n return;\n list.push(reg.num);\n }\n reg.handler(item, reg.index++); //note: if an exception is reported from Object.handler,\n}\nfunction applyRegistration(reg, startnode)\n{\n let domready = domtree.isDomReady();\n if(reg.afterdomready && !domready)\n return;\n\n let items = Array.from( (startnode || document).querySelectorAll(reg.selector));\n if(startnode && domtree.matches(startnode,reg.selector))\n items.unshift(startnode);\n\n items.forEach(item =>\n {\n try\n {\n processRegistration(item, reg, domready);\n }\n catch(e)\n {\n console.error(\"Exception handling registration of\",item,\"for rule\",reg.selector);\n console.log(\"Registration\",reg);\n console.log(e,e.stack);\n if (window.onerror)\n {\n // Send to onerror to trigger exception reporting\n try\n {\n window.onerror(e.message, e.fileName || \"\", e.lineNumber || 1, e.columNumber || 1, e);\n }\n catch (e)\n {\n }\n }\n }\n });\n}\n\n/** getBoundingClientRect, but as a plain copyable object.. Debugging and other code often needs this\n @param node Node to query\n @param srcret Offset rectangle\n @return top,bottom,left,right,width,height like getBCR, but spreadable/assignable/copyable etc*/\nexport function getRect(node, srcrect)\n{\n const bcr = node.getBoundingClientRect();\n let rect = { top: bcr.top\n , bottom: bcr.bottom\n , left: bcr.left\n , right: bcr.right\n , width: bcr.width\n , height: bcr.height\n };\n\n if(srcrect)\n {\n rect.top = rect.top - srcrect.top;\n rect.bottom = rect.bottom - srcrect.top;\n rect.left = rect.left - srcrect.left;\n rect.right = rect.right - srcrect.left;\n }\n return rect;\n}\n\n/* A focus implementation that allows the node to intercept focused, allowing eg\n radio/checkbox replacements to redirect focus but also explicitly preventing\n focus of a disabled element\n Returns true when the focus operation was successfull or handled by an event handler.\n @param node Node to focus\n @param options.preventScroll Prevent scroll to focused element\n*/\nexport function focus(node, options)\n{\n if(!domevents.dispatchCustomEvent(node, 'dompack:takefocus', { bubbles: true, cancelable: true, detail: {options} }))\n return true;\n\n if(node.disabled)\n return false;\n\n // IE likes to throw errors when setting focus\n try\n {\n node.focus(options);\n }\n catch(e)\n {\n return false;\n }\n return true;\n}\n\n/** Deprecated, invoke scrollIntoView directly on the nodes */\nexport function scrollIntoView(node, options)\n{\n node.scrollIntoView(options);\n return true;\n}\n\n/** @short Register a component for auto-initialization.\n @param selector Selector the component must match\n @param handler Handler\n @param options Any unrecognized options are passed to the handler\n\n The handler will be invoked with two parameters\n - the node to register\n - the index of the node (a unique counter for this selector - first is 0) */\n\nexport function register(selector, handler, options)\n{\n let newreg = { selector: selector\n , handler: handler\n , index: 0\n , num: components.length\n , afterdomready: !options || options.afterdomready\n };\n if(components.length==0 && !domtree.isDomReady()) //first component... we'll need a ready handler\n domtree.onDomReady(() => registerMissed());\n\n components.push(newreg);\n applyRegistration(newreg, null);\n}\n\n// register any components we missed on previous scans\nexport function registerMissed(startnode)\n{\n let todo = components.slice(0);\n todo.forEach(item => applyRegistration(item, startnode));\n}\n","// Auto-generated language file from /opt/wh/whtree/modules/publisher/js/internal/rtd.lang.json\nvar registerTexts = require(\"@mod-tollium/js/gettid\").registerTexts;\nregisterTexts(\"publisher\",\"en\",{\"site\":{\"rtd\":{\"embedvideo\":{\"playbutton-aria\":\"Play video\",\"unrecognized\":\"The URL is not recognized as a supported video URL\",\"videourl\":\"Video URL\"}}}});\nregisterTexts(\"publisher\",\"nl\",{\"site\":{\"rtd\":{\"embedvideo\":{\"playbutton-aria\":\"Speel video af\",\"unrecognized\":\"De URL is niet herkend als een ondersteunde video URL\",\"videourl\":\"Video URL\"}}}});\n// Adding dependency: /opt/wh/whtree/modules/publisher/language/default.xml\n// Adding dependency: /opt/wh/whtree/modules/publisher/language/nl.xml\n","/* import '@mod-publisher/js/richcontent/all';\n*/\nrequire('./styling.css');\nrequire('./video.es');\n","import * as dompack from 'dompack';\nimport { getTid } from \"@mod-tollium/js/gettid\";\nimport \"./video.css\";\nimport \"../internal/rtd.lang.json\";\nimport * as consenthandler from '@mod-publisher/js/analytics/consenthandler.es';\n\n\nlet youtubedomain = 'www.youtube.com';\n\nfunction createMyFrame()\n{\n let ifrm = document.createElement(\"iframe\");\n ifrm.style.width = \"100%\";\n ifrm.style.height = \"100%\";\n ifrm.setAttribute(\"frameborder\", 0);\n ifrm.setAttribute(\"allowfullscreen\", \"\");\n return ifrm;\n}\n\nfunction initYouTube(node, video, playback)\n{\n let ifrm = createMyFrame();\n\n // List of embed parameters YouTube supports:\n // https://developers.google.com/youtube/player_parameters\n\n var args = [];\n\n if(playback.autoplay)\n args.push(\"autoplay=1\");\n\n if(video.mute || playback.mute)\n args.push(\"mute=1\");\n\n if (video.starttime)\n args.push(\"start=\"+Math.floor(video.starttime)); // seconds, whole integer (YouTube also uses t= in the shorturl??)\n\n if (video.endtime)\n args.push(\"end=\"+Math.floor(video.endtime));\n\n if (typeof playback.controls != \"undefined\" && !playback.controls)\n args.push(\"controls=0\");\n\n if (video.loop || playback.loop)\n {\n /* from the documentation: https://developers.google.com/youtube/player_parameters\n Note: This parameter has limited support in IFrame embeds. To loop a single video,\n set the loop parameter value to 1 and set the playlist parameter value to the\n same video ID already specified in the Player API URL:\n https://www.youtube.com/embed/VIDEO_ID?playlist=VIDEO_ID&loop=1\n */\n args.push(\"loop=1\", \"playlist=\" + video.id);//To enable loop, set same video as playlist\n }\n\n args.push(\"rel=0\", \"enablejsapi=1\", \"origin=\" + location.origin); // disable 'related video's'\n\n var youtube_url = `//${youtubedomain}/embed/${video.id}`;\n if (args.length > 0)\n youtube_url += \"?\" + args.join(\"&\");\n\n ifrm.src = youtube_url;\n ifrm.title = video.title ? \"YouTube video: \" + video.title : \"YouTube video\";\n node.appendChild(ifrm);\n}\n\nfunction initVimeo(node,video, playback)\n{\n let ifrm = createMyFrame();\n var args = [];\n\n // List of embed parameters Vimeo supports:\n // https://vimeo.zendesk.com/hc/en-us/articles/360001494447-Player-parameters-overview\n\n if(playback.autoplay)\n args.push(\"autoplay=1\");\n\n if(video.mute || playback.mute)\n args.push(\"muted=1\");\n\n if (video.endtime)\n console.warn(\"setting an endtime doesn't work for Vimeo video's\");\n\n // NOTE: actually disabling controls is possible, but ONLY if the video is hosted by a Plus account or higher\n if (typeof playback.controls != \"undefined\" && !playback.controls)\n console.warn(\"disabling video controls not possible for Vimeo video's\");\n\n if (video.loop || playback.loop)\n args.push(\"loop=1\");\n\n if (playback.background)\n args.push(\"background=1\");\n\n if(playback.api)\n {\n args.push(\"api=\" + playback.api);\n\n // we need a player_id to distinguish from which iframe a message came.\n // (in cross domain situations we cannot lookup/compare the event source with iframe.contentWindow)\n if(playback.player_id)\n args.push(\"player_id=\" + playback.player_id );\n }\n\n var vimeo_url = \"//player.vimeo.com/video/\" + video.id;\n if (args.length > 0)\n vimeo_url += \"?\" + args.join(\"&\");\n\n if (video.starttime)\n {\n // #t=3m28s\n var t = video.starttime;\n var minutes = Math.floor(t / 60);\n var seconds = t % 60;\n vimeo_url += \"#t=\" + minutes + \"m\" + seconds + \"s\";\n }\n\n ifrm.src = vimeo_url;\n ifrm.title = video.title ? \"Vimeo video: \" + video.title : \"Vimeo video\";\n node.appendChild(ifrm);\n}\n\nfunction launchVideo(node, video, opts)\n{\n switch(video.network)\n {\n case 'youtube':\n initYouTube(node,video,opts||{});\n break;\n case 'vimeo':\n initVimeo(node,video,opts||{});\n break;\n }\n}\n\nfunction initializeVideoElementV1(node)\n{\n let video = JSON.parse(node.dataset.video);\n let opts = node.dataset.videoOptions ? JSON.parse(node.dataset.videoOptions) : {};\n node.innerHTML='';\n launchVideo(node, video, opts);\n}\n\nfunction initializeVideoElementV2(node)\n{\n let video = JSON.parse(node.dataset.whVideo);\n\n let videonodes = dompack.qSA(node, \".wh-video--activate\");\n\n for(let videonode of videonodes)\n {\n videonode.addEventListener(\"click\", function()\n {\n activateVideo(videonode, video);\n });\n\n let playbutton = videonode.querySelector(\".wh-video__playbutton\");\n playbutton.setAttribute(\"tabindex\", \"0\");\n playbutton.setAttribute(\"role\", \"button\");\n playbutton.setAttribute(\"aria-label\", getTid(\"publisher:site.rtd.embedvideo.playbutton-aria\"));\n\n playbutton.addEventListener(\"click\", function()\n {\n activateVideo(videonode, video, { autoplay: true });\n });\n\n playbutton.addEventListener(\"keypress\", function(evt)\n {\n // we are only interested in enter and space keypressed\n if (evt.keyCode != 13 && evt.keyCode != 32)\n return;\n\n activateVideo(videonode, video, { autoplay: true});\n });\n\n if(video.autoplay) //activate immediately\n if(node.dataset.whConsentRequired)\n consenthandler.onConsent(node.dataset.whConsentRequired, () => activateVideo(videonode, { ...video, mute: true }, { autoplay: true }));\n else\n activateVideo(videonode, { ...video, mute: true }, { autoplay: true });\n }\n}\n\nfunction activateVideo(videonode, video, opts)\n{\n if (videonode.__initialized)\n return;\n\n videonode.querySelector(\".wh-video__innerframe__preview\").hidden = true;\n videonode.__initialized = true;\n launchVideo(videonode, video, opts);\n}\n\ndompack.register('.wh-video', node => node.dataset.video ? initializeVideoElementV1(node) : initializeVideoElementV2(node));\n","/* @import: import '@mod-publisher/js/forms';\n*/\nimport * as dompack from 'dompack';\nimport './internal/requiredstyles.css';\nimport * as merge from './internal/merge';\nimport FormBase from './formbase.es';\nimport RPCFormBase from './rpc.es';\nexport { FormBase, RPCFormBase };\nexport { setFieldError, setupValidator } from './internal/customvalidation.es';\n\nlet handlers = { \"publisher:form\": form => new FormBase(form)\n , \"publisher:rpc\": form => new RPCFormBase(form)\n };\nlet didregister;\nlet formoptions = null;\nlet defaultsettings = { triggerevents: ['focusout']\n , triggerafterfailure: ['input','change']\n , pxl: true\n , validate: true\n , warnslow: 5000 //after how many msecs to warn a form is slow\n };\n\nexport const registerMergeFormatter = merge.registerFormatter;\n\nexport function registerHandler(handlername, handler)\n{\n if(handlers[handlername])\n {\n console.error(`Duplicate registerHandler for handler '${handlername}'`);\n return; //this _MAY_ be caused by somehow duplicate loading of libs... seen that once and ignoring+continue would indeed be the safer solution\n }\n handlers[handlername] = handler;\n if(didregister) //then we need to catch up registrations\n for(let form of dompack.qSA('form[data-wh-form-handler]'))\n {\n if(form.dataset.whFormHandler == handlername)\n {\n let newform = handler(form);\n if(formoptions)\n newform._setupFormHandler(formoptions);\n }\n }\n}\n\nexport function setup(options)\n{\n formoptions = {...defaultsettings, ...options};\n for(let form of dompack.qSA('form[data-wh-form-handler]'))\n if(form.propWhFormhandler)\n form.propWhFormhandler._setupFormHandler(formoptions);\n}\n\ndompack.register(\"form[data-wh-form-handler]\", function(form)\n{\n //ADDME allow late registration of handlers, delay/block form submission until we have the handler\n didregister=true;\n if(handlers[form.dataset.whFormHandler] && !form.propWhFormhandler)\n {\n let formobj = handlers[form.dataset.whFormHandler](form);\n if(formoptions)\n formobj._setupFormHandler(formoptions);\n }\n});\n","import * as cookie from \"dompack/extra/cookie\";\nimport * as dompack from 'dompack';\n\nlet consentstatus, cookiename, consentoptions;\n\n/** Setup the consent handler\n @param usecookiename Name of the cookie. Should be identical for all sites sharing this consent, set to empty string if you store consent externally\n @param consentrequester Function to invoke if consent is unknown to eg trigger a cookie bar. This function will be immediately registered for invocation through dompack.onDomReady\n @cell options.cookiedomain Domain to which to bind the cookie, can be at most one level higher (eg '.example.net' for 'www.example.net')\n @cell options.cookieduration Duration to store or extend the consent, in days. Defaults to 365\n @cell options.defaultconsent The consent tags which are active by default (only use this for anonymous tracking and functional cookies)\n*/\nexport function setup(usecookiename, consentrequester, options)\n{\n if(typeof usecookiename !== 'string')\n throw new Error(\"Cookiename must be of type 'string'\");\n if(dompack.debugflags.cst)\n console.log(`[cst] consenthandler initialized. cookiename: '${usecookiename}'`);\n\n cookiename = usecookiename;\n consentoptions = { cookiedomain: null\n , cookieduration: 365\n , defaultconsent: []\n , ...options\n };\n\n try\n {\n consentstatus = consentrequester ? JSON.parse(cookie.read(cookiename)) : null;\n if(dompack.debugflags.cst)\n console.log(`[cst] initial consent state:`, consentstatus);\n }\n catch(ignore)\n {\n }\n\n if(!consentstatus || typeof consentstatus != \"object\" || consentstatus.v !== 2 || typeof consentstatus.c != \"object\")\n consentstatus = { v: 2 };\n\n if(!(\"c\" in consentstatus)) //simple consent flag\n {\n if(consentrequester)\n dompack.onDomReady(consentrequester); //run the request function, but only on domready! it's a safe assumption it should be delayed...\n }\n else\n {\n storeConsent(); //renew the status\n }\n updateConsent();\n}\n\n//Test for consent\nexport function hasConsent(consentsetting)\n{\n if(consentsetting === undefined) //generic consent check\n throw new Error(\"hasConsent required a string argument\");\n\n let details = getConsentDetail();\n if ( !details // setup() not called yet?\n || !details.consent) // no consent has been given and no defaults are available consent will be undefined?\n return undefined;\n\n return details.consent.includes(consentsetting);\n}\n\n//Set simple consent\nexport function setConsent(newsetting)\n{\n if(cookiename === undefined)\n throw new Error(\"Invoke consenthandler.setup before modifying consent state!\");\n if(typeof newsetting != \"object\" || !Array.isArray(newsetting))\n throw new Error(\"Expecting an array in call to setConsent\");\n\n // Check if there are some consents being revoked\n let details = getConsentDetail(); // get current list of consent tags, including implicit (default) consent\n let consent_revoked = false;\n if (details.consent) // if no explicit or default consent, the consent field is undefined\n {\n for (let tag of details.consent)\n {\n if (!newsetting.includes(tag))\n consent_revoked = true;\n }\n }\n\n consentstatus.c = newsetting.sort();//ensure stable order\n consentstatus.lc = (new Date()).toISOString();\n\n storeConsent();\n\n // Revoked consent may need a reload to take effect.\n // This is because it's not worth the effort for most websites to implement on-the-fly disabling\n // of functionality. It might even be impossible if 3rd party scripts are already loaded.\n if (consent_revoked)\n window.location.reload();\n\n updateConsent();\n}\n\n/** @short get a list of consents and whether they are defaults (or explicitly set)\n @param return.consent list all consents\n @param return.isdefault if TRUE then the consents are implicit/defaults (not consent explicitly given by the user)\n*/\nfunction getConsentDetail()\n{\n if (!consentstatus) // setup() did not run yet\n return null;\n\n if(!(\"c\" in consentstatus)) // consent not set yet\n {\n if (consentoptions.defaultconsent.length > 0)\n return { consent: consentoptions.defaultconsent, isdefault: true }; // use fallback consent\n else\n return { consent: undefined, isdefault: false }; // no consent given yet (expected to return undefined for consent)\n }\n\n return { consent: consentstatus.c\n , isdefault: false\n };\n}\n\nexport function onConsent(type, callback)\n{\n window.addEventListener(\"wh:consent-changed\", evt =>\n {\n if(evt.detail.consent.includes(type))\n callback(evt.detail);\n });\n\n let details = getConsentDetail();\n\n if (details && details.consent && details.consent.includes(type)) //already missed it, so invoke\n {\n if(dompack.debugflags.anl)\n console.info(\"[anl] Invoking callback\", details);\n callback(getConsentDetail());\n }\n}\n\n//Register callback for content changes\nexport function onConsentChange(callback)\n{\n window.addEventListener(\"wh:consent-changed\", evt => callback(evt.detail));\n\n let details = getConsentDetail();\n\n if (details) //already missed it, so invoke\n {\n if(dompack.debugflags.anl)\n console.info(\"[anl] Invoking callback\", details);\n callback(details);\n }\n}\n\nfunction updateConsentOverlays()\n{\n let overlays = dompack.qSA(\".wh-requireconsent__overlay\");\n let consent = getConsentDetail().consent;\n\n if(dompack.debugflags.cst)\n console.log(`[cst] update ${overlays.length} consent overlay(s). consent: ${consent.length ? consent.join(', ') : \"\"}`);\n\n overlays.forEach(overlay =>\n {\n let parent = overlay.closest(\".wh-requireconsent\");\n if(parent && parent.dataset.whConsentRequired)\n overlay.hidden = consent.includes(parent.dataset.whConsentRequired);\n });\n}\n\nfunction updateConsent() //update in DOM, GTM, etc\n{\n let details = getConsentDetail();\n\n if ( !details // setup() not called yet?\n || !details.consent) // no consent has been given and no defaults are available consent will be undefined?\n {\n document.documentElement.dataset.whConsent = \"unknown\"; // unknown - no explicit or explicit (options.defaultconsent) consent\n return;\n }\n\n document.documentElement.dataset.whConsent = details.consent.length ? details.consent.join(\" \") : \"denied\";\n\n if(dompack.debugflags.anl)\n console.info(\"[anl] Firing wh:consent-changed with\", details);\n\n dompack.dispatchCustomEvent(window, \"wh:consent-changed\", { bubbles:false, cancelable:false, detail: getConsentDetail() });\n dompack.onDomReady(updateConsentOverlays);\n}\n\nfunction storeConsent()\n{\n if(cookiename !== undefined)\n cookie.write(cookiename, JSON.stringify(consentstatus), { duration: consentoptions.cookieduration, domain: consentoptions.cookiedomain });\n}\n\nwindow.whResetConsent = function()\n{\n if(cookiename === undefined)\n throw new Error(\"Consent handler not setup\");\n else if(!cookiename)\n throw new Error(\"Consent handler is not handling storage\");\n\n cookie.remove(cookiename);\n location.reload();\n};\n","import * as dompack from 'dompack';\nimport { qSA } from 'dompack';\nimport * as datetime from 'dompack/types/datetime';\nimport CheckboxGroupField from '@mod-publisher/js/forms/fields/checkboxgroup';\nimport RadioGroupField from '@mod-publisher/js/forms/fields/radiogroup';\nimport AddressField from '@mod-publisher/js/forms/fields/addressfield';\nimport ArrayField from '@mod-publisher/js/forms/fields/arrayfield';\nimport CaptchaField from '@mod-publisher/js/forms/fields/captchafield';\nimport { setupValidator } from './customvalidation.es';\n\nimport { getTid } from \"@mod-tollium/js/gettid\";\nimport \"./form.lang.json\";\n\nfunction isValidDate(year,month,day)\n{\n if(isNaN(year) || isNaN(month) || isNaN(day) || year<100 || year>9999 || month < 1 || month > 12 || day < 1 || day > 31)\n return false;\n if([4,6,9,11].includes(month) && day > 30) //handle april, june, sep, nov\n return false;\n let isleapyear = (year % 400) == 0 || ((year % 100) != 0 && (year % 4) == 0);\n if(month == 2 && day > (isleapyear ? 29 : 28))\n return false;\n return true;\n}\n\nfunction validateDate(date)\n{\n if(date.getAttribute('type') != 'date') //it's no longer a date field\n return '';\n if(!date.value) //any required checks should be handled by the HTML5 compat layer, nothing for us to check\n return '';\n\n let dateparts = date.value.match(/^([0-9]+)-([0-9]+)-([0-9]+)$/) || [];\n let year = parseInt(dateparts[1]), month = parseInt(dateparts[2]), day = parseInt(dateparts[3]);\n if(!isValidDate(year,month,day))\n return getTid(\"publisher:site.forms.commonerrors.default\");\n\n let normalizeddate = ('0000'+year).substr(-4) + '-' + ('00'+month).substr(-2) + '-' + ('00'+day).substr(-2);\n if(date.getAttribute(\"min\") && normalizeddate < date.getAttribute(\"min\"))\n return getTid(\"publisher:site.forms.commonerrors.min\", date.getAttribute(\"min\"));\n if(date.getAttribute(\"max\") && normalizeddate > date.getAttribute(\"max\"))\n return getTid(\"publisher:site.forms.commonerrors.max\", date.getAttribute(\"max\"));\n\n return '';\n}\n\nfunction validateTime(time)\n{\n if(time.getAttribute('type') != 'time') //it's no longer a time field\n return '';\n if(!time.value) //any required checks should be handled by the HTML5 compat layer, nothing for us to check\n return '';\n\n let timeparts = time.value.match(/^([0-9]+):([0-9]+)(:([0-9]+))?$/) || [];\n let hours = parseInt(timeparts[1]), minutes = parseInt(timeparts[2]), seconds = parseInt(timeparts[3]);\n if(isNaN(hours) || isNaN(minutes) || hours < 0 || hours > 23 || minutes < 0 || minutes > 59 || (!isNaN(seconds) && (seconds < 0 || seconds > 59)))\n return getTid(\"publisher:site.forms.commonerrors.default\");\n\n return '';\n}\n\nexport function setup(form)\n{\n for (let datecontrol of qSA(form,'input[type=date]'))\n {\n ['whMin','whMax','whValue'].filter(field => !!datecontrol.dataset[field]).forEach(field =>\n {\n //parse 'now' or 'now+5d'. be able to extract '+5d'\n let datematch = datecontrol.dataset[field].match(/^now((\\+|-)\\d+d)?$/);\n\n if(datematch)\n {\n let propname = field.substr(2).toLowerCase();\n let thedate;\n if(datematch[1])\n thedate = new Date(Date.now() + parseInt(datematch[1]) * 86400 * 1000);\n else\n thedate = new Date;\n\n datecontrol[propname] = datetime.getISOLocalDate(thedate);\n }\n });\n\n if(datecontrol.type != 'date' && !datecontrol.whValidationPolyfilled) //this browser doesn't natively support date fields\n {\n datecontrol.whValidationPolyfilled = true;\n //ADDME some sort of global validator would be better so we don't get confused by fields that change their type\n setupValidator(datecontrol, validateDate);\n }\n\n }\n\n for (let timecontrol of qSA(form,'input[type=time]'))\n {\n ['whValue'].filter(field => !!timecontrol.dataset[field]).forEach(field =>\n {\n //parse 'now'\n //ADDME: Support for stuff like 'now + 15 minutes' 'next whole hour + 2.5 hours'?\n let timematch = timecontrol.dataset[field].match(/^now$/);\n\n if(timematch)\n {\n let propname = field.substr(2).toLowerCase();\n let thedate = new Date;\n\n let propvalue = ('0' + thedate.getHours()).substr(-2) + '-' + ('0' + thedate.getMinutes()).substr(-2);\n if (parseInt(timecontrol.getAttribute(\"step\")||'0') % 60) //step not multiple of 60? seconds\n propvalue += '-' + ('0' + thedate.getSeconds()).substr(-2);\n timecontrol[propname] = propvalue;\n }\n });\n\n if(timecontrol.type != 'time' && !timecontrol.whValidationPolyfilled) //this browser doesn't natively support time fields\n {\n timecontrol.whValidationPolyfilled = true;\n //ADDME some sort of global validator would be better so we don't get confused by fields that change their type\n setupValidator(timecontrol, validateTime);\n }\n\n }\n\n // Setup checkbox group (min/max checked) validation\n for (let checkboxgroup of qSA(form, \".wh-form__fieldgroup--checkboxgroup\"))\n new CheckboxGroupField(checkboxgroup);\n\n // Setup radio group (hidden/disabled) validation\n for (let checkboxgroup of qSA(form, \".wh-form__fieldgroup--radiogroup\"))\n new RadioGroupField(checkboxgroup);\n\n // Setup address field validation\n for (let addresscontrol of qSA(form, \".wh-form__fieldgroup--addressfield\"))\n new AddressField(addresscontrol);\n\n // Setup array fields\n for (let arrayfieldgroup of qSA(form, \".wh-form__fieldgroup--array\"))\n new ArrayField(arrayfieldgroup);\n\n // Setup on-demand captcha\n if(form.dataset.whFormCaptcha)\n {\n //TODO add something like virtualfields to forms but that is too much for a backport.\n let captchanode = ;\n form.appendChild(captchanode);\n new CaptchaField(captchanode);\n }\n}\n","const formatters = {}, updaters = {};\n\nfunction mergeNode(node, set, data)\n{\n const parts = set.split(\":\");\n const isNodeFunc = parts.length === 1;\n if (parts.length > 2)\n {\n console.error(`Illegal merge expression: '${set}'`, node);\n return;\n }\n\n let func;\n let exprpath = (isNodeFunc ? parts[0] : parts[1]).trim();\n\n const callparts = exprpath.split(\"(\");\n if (callparts.length > 1)\n {\n if (callparts.length !== 2)\n {\n console.error(`Illegal merge value: '${set}'`, node);\n return;\n }\n\n func = callparts[0].trim();\n const funcrest = callparts[1].split(\")\");\n if (funcrest.length !== 2 || funcrest[1] !== \"\")\n {\n console.error(`Illegal merge value: '${set}'`, node);\n return;\n }\n exprpath = funcrest[0].trim();\n }\n\n let value = data;\n if (exprpath !== \"*\")\n {\n const exprpathparts = exprpath.split(\".\");\n for (let i = 0; i < exprpathparts.length; ++i)\n {\n value = value[exprpathparts[i].trim()];\n if (typeof value === \"undefined\")\n return;\n }\n }\n\n if (isNodeFunc)\n {\n if(func && updaters[func])\n updaters[func](node, value);\n else if (func)\n console.error(`Unknown updating function '${func}' in '${set}'`, node);\n else\n console.error(`A function is required for merges without a property (in '${set}')`, node);\n return;\n }\n\n const prop = parts[0].trim();\n if (func)\n {\n if(formatters[func])\n value = formatters[func](value);\n else\n {\n console.error(`Unknown formatting function '${func}' in '${set}'`, node);\n return;\n }\n }\n\n if (typeof value !== \"string\" && typeof value !== \"number\")\n {\n console.error(`Got a value of type ${typeof value} in '${set}'`, node);\n return;\n }\n\n switch (prop)\n {\n case 'events':\n case 'styles':\n case 'children':\n case 'on':\n case \"className\":\n case \"class\":\n case 'style':\n case 'dataset':\n case 'childNodes':\n {\n console.error(`Cannot modify '${prop}' with merge`, node);\n return;\n }\n default:\n {\n // 1-to-1 name to property mapping\n node[prop] = value;\n return;\n }\n }\n}\n\n/** Apply all merge fields within a node, recursively\n @param node Root node to start merging\n @param data Merge data\n @param options\n @cell options.filter If set, a function that will be called for every node with merge functions. If it returns a falsy value, the node will be skipped.\n*/\nexport async function run(node, data, { filter } = {})\n{\n let nodes = node.querySelectorAll('*[data-merge],*[data-wh-merge]');\n for(let node of Array.from(nodes)) //FIXME drop support for data-wh-merge as soon as we've completed the phase out\n {\n if (filter && !filter(node))\n continue;\n\n // Parse 'a=b;c=d(e)'\n let sets = (node.dataset.merge || node.dataset.whMerge).split(\";\");\n for (let set of sets)\n mergeNode(node, set, data);\n }\n}\n\n/** Register a formatter function.\n @param name Name of the formatter function\n @param callback Formatter function. Called with parameter (value), must return a formatted value to write to the property.\n*/\nexport function registerFormatter(name, callback)\n{\n formatters[name] = callback;\n}\n\n/** Register an updater function (used to update multiple properties of a node at once)\n @param name Name of the updater function\n @param callback Updater function. Called with parameters (node: HTMLElement, value: Any).\n*/\nexport function registerUpdater(name, callback)\n{\n updaters[name] = callback;\n}\n","import * as dompack from \"dompack\";\nimport { getTid } from \"@mod-tollium/js/gettid\";\n\nexport default class CheckboxGroupField\n{\n constructor(node, options)\n {\n if (!node)\n return;\n this.node = node;\n\n this.nodes = dompack.qSA(node, \"input[type='checkbox']\");\n if (!this.nodes.length)\n return;\n\n this.node.dataset.whFormIsValidator = true; //needed to forward validation calls to us\n this.node.whCheckboxGroupField = this;\n this.node.whFormsBuiltinChecker = () => this._validate();\n this._validate(null);\n }\n\n _validate()\n {\n const min = parseInt(this.node.dataset.whMin, 10) || 0;\n const max = parseInt(this.node.dataset.whMax, 10) || 0;\n\n const anyenabled = this.nodes.some(node => !node.disabled);\n const numChecked = this.nodes.filter(node => node.checked).length;\n let error;\n\n if(anyenabled)\n {\n if(numChecked < min)\n error = getTid(\"publisher:site.forms.commonerrors.mincheck\", min);\n else if(max > 0 && numChecked > max)\n error = getTid(\"publisher:site.forms.commonerrors.maxcheck\", max);\n }\n\n this.node.propWhSetFieldError = error;\n return !error;\n }\n}\n","import * as dompack from \"dompack\";\nimport { getTid } from \"@mod-tollium/js/gettid\";\n\nexport default class RadioGroupField\n{\n constructor(node, options)\n {\n this.node = node;\n this.node.dataset.whFormIsValidator = true; //needed to forward validation calls to us\n this.node.whCheckboxGroupField = this;\n this.node.whFormsBuiltinChecker = () => this._validate();\n this._validate();\n }\n\n _validate()\n {\n let nodes = dompack.qSA(this.node, \"input[type='radio']\");\n let isrequired = nodes.some(node => node.required);\n let error;\n\n if(isrequired)\n {\n let isanychecked = nodes.some(node => node.checked && !node.disabled);\n if(!isanychecked)\n error = getTid(\"publisher:site.forms.commonerrors.required\");\n }\n\n this.node.propWhSetFieldError = error;\n return !error;\n }\n}\n","import * as dompack from \"dompack\";\nimport { getTid } from \"@mod-tollium/js/gettid\";\n\nlet lookupcache = {};\n\nexport default class AddressField\n{\n constructor(node, options)\n {\n this.numvaliditycalls = 0;\n this.node = node;\n this.form = this.node.closest(\"form\").propWhFormhandler;\n\n // AddressField is initialized for the address's country field, so first find the other fields\n this.countryNode = dompack.qS(this.node, \"select.wh-form__pulldown\");\n if (!this.countryNode)\n throw new Error(\"Could not find country select node\");\n\n this.currentcountry = this.countryNode.value;\n this.fieldName = this.countryNode.name.substr(0, this.countryNode.name.lastIndexOf(\".\"));\n this.orderingData = this.countryNode.dataset.orderingdata && JSON.parse(this.countryNode.dataset.orderingdata);\n let prefixLength = this.fieldName.length + 1; // fieldName + \".\"\n this.allFields = new Map();\n let fieldpos = 0;\n this.allFields.set(this.countryNode.name.substr(prefixLength),\n { node: this.countryNode\n , fieldgroup: this.countryNode.closest(\".wh-form__fieldgroup\")\n , pos: ++fieldpos\n });\n for (let field of dompack.qSA(this.node.closest(\"form\"), `[name^='${this.fieldName}.']`))\n {\n this.allFields.set(field.name.substr(prefixLength),\n { node: field\n , fieldgroup: field.closest(\".wh-form__fieldgroup\")\n , pos: ++fieldpos\n });\n field.addEventListener(\"change\", event => this._gotFieldChange(event));\n }\n\n if (this.orderingData)\n {\n this.countryNode.addEventListener(\"change\", () => this._reconfigureFieldOrdering());\n this._reconfigureFieldOrdering();\n }\n }\n\n _gotFieldChange(event)\n {\n if (this._updatingFields)\n return; // We're updating our own fields\n\n if(event.target == this.countryNode && this.currentcountry != this.countryNode.value)\n {\n //country changed. clear errors on all fields before revalidating.. otherwise the errors will just seem to 'linger' for a while after switching\n this._clearErrors();\n this.currentcountry = this.countryNode.value;\n }\n\n if (this._getFieldValue(\"country\") === \"NL\")\n {\n if (!this._getFieldValue(\"zip\") || !this._getFieldValue(\"nr_detail\"))\n return;\n }\n this._checkValidity(event);\n }\n\n _getFieldValue(fieldname)\n {\n const data = this.allFields.get(fieldname);\n if (data)\n return data.node.value;\n return \"\";\n }\n\n _getFirstCountrySpecificField()\n {\n let firstfield = null;\n this.allFields.forEach((field, key) =>\n {\n if (key !== \"country\" && !field.fieldgroup.classList.contains(\"wh-form__fieldgroup--hidden\") && (!firstfield || firstfield.pos > field.pos))\n firstfield = field;\n });\n return firstfield;\n }\n\n _reconfigureFieldOrdering()\n {\n const country = this.countryNode.value;\n if (country)\n {\n const ordering = this.orderingData.find(e => e.countries.length === 0 || e.countries.includes(country));\n if (ordering)\n {\n let prevgroup;\n for (let idx = 0; idx < ordering.fieldorder.length; ++idx)\n {\n const item = this.allFields.get(ordering.fieldorder[idx]);\n item.pos = idx + 1;\n const fieldgroup = item.fieldgroup;\n if (idx !== 0)\n {\n const compareres = prevgroup.compareDocumentPosition(fieldgroup);\n if (compareres & Node.DOCUMENT_POSITION_PRECEDING)\n prevgroup.parentNode.insertBefore(fieldgroup, prevgroup.nextSibling);\n }\n prevgroup = fieldgroup;\n }\n }\n }\n\n //street + city should skip client side validation for NL, we will be looking it up server side (FIXME we should consider overwriting our validation to delay validation until address lookups are complete)\n for(let fieldname of ['street','city'])\n {\n let field = this.allFields.get(fieldname);\n if(field)\n if(country.toUpperCase() == 'NL')\n field.node.setAttribute(\"data-wh-form-skipnativevalidation\",\"\");\n else\n field.node.removeAttribute(\"data-wh-form-skipnativevalidation\");\n }\n }\n\n _clearErrors()\n {\n this.allFields.forEach(field => this.form.setFieldError(field.node, \"\", { reportimmediately: true }));\n }\n\n _getCurState()\n {\n let value = {}, visiblefields = [], anyset = false, allrequiredset = true;\n this.allFields.forEach((field, key) =>\n {\n if (!field.fieldgroup.classList.contains(\"wh-form__fieldgroup--hidden\"))\n {\n visiblefields.push(field.node.closest(\".wh-form__fieldgroup\"));\n value[key] = field.node.value;\n\n if(!anyset && key != 'country' && field.node.value)\n anyset = true;\n if(field.node.required && !field.node.value && !field.node.hasAttribute(\"data-wh-form-skipnativevalidation\"))\n allrequiredset = false;\n }\n });\n\n return { value, visiblefields, anyset, allrequiredset, lookupkey: JSON.stringify(value) };\n }\n\n async _checkValidity(event)\n {\n /* we used to clear fields that are no longer visible after a country change, add visible fields to the value we're checking\n but not sure why. ignoring those fields should be okay? and this is a very eager trigger, so if we really do this, do\n this on base of the country actually changing, not an external checkbox controlling visibility of the whole country field\n and a stray update event\n */\n let curstate = this._getCurState();\n if(!curstate.anyset) //fields are empty..\n {\n this._clearErrors();\n return; //then don't validate\n }\n if(!curstate.allrequiredset)\n return; //no need to validate if we don't even have the required fields in place\n\n let result;\n try\n {\n curstate.visiblefields.forEach(el => el.classList.add(\"wh-form__fieldgroup--addresslookup\"));\n\n ++this.numvaliditycalls;\n if(!lookupcache[curstate.lookupkey])\n lookupcache[curstate.lookupkey] = this.form.invokeBackgroundRPC(this.fieldName + \".ValidateValue\", curstate.value);\n\n result = await lookupcache[curstate.lookupkey];\n }\n catch (e)\n {\n console.error(`Error while validating value: ${e}`);\n return;\n }\n finally\n {\n if(--this.numvaliditycalls == 0) //we're the last call\n curstate.visiblefields.forEach(el => el.classList.remove(\"wh-form__fieldgroup--addresslookup\"));\n }\n if(this._getCurState().lookupkey != curstate.lookupkey)\n return; //abandon this _checkValidity call, the field has already changed.\n\n if(dompack.debugflags.fhv)\n console.log(`[fhv] Validation result for address '${this.fieldName}': ${result.status}`);\n\n if(dompack.debugflags.fdv)\n {\n if ([ \"different_citystreet\", \"incomplete\" ].includes(result.status))\n console.warn(`[fdv] Address validation was performed, processing incomplete address (status: '${result.status}')`);\n else\n {\n console.warn(`[fdv] Ignoring return status '${result.status}' of address validation`);\n result.status = \"ok\";\n }\n }\n\n this._clearErrors();\n switch (result.status)\n {\n case \"not_supported\": // Address lookup not supported, treat as \"ok\"\n case \"ok\":\n {\n break;\n }\n case \"not_enough_data\":\n {\n // Nothing to check yet\n break;\n }\n case \"invalid_city\":\n {\n // We'll target the right field but we don't want to supply N translations for 'invalid city'\n this.form.setFieldError(this.allFields.get(\"city\").node, getTid(\"publisher:site.forms.addressfield.address_not_found\"), { reportimmediately: true });\n break;\n }\n case \"invalid_zip\":\n {\n this.form.setFieldError(this.allFields.get(\"zip\").node, getTid(\"publisher:site.forms.addressfield.invalid_zip\"), { reportimmediately: true });\n break;\n }\n case \"invalid_nr_detail\":\n {\n this.form.setFieldError(this.allFields.get(\"nr_detail\").node, getTid(\"publisher:site.forms.addressfield.invalid_nr_detail\"), { reportimmediately: true });\n break;\n }\n case \"zip_not_found\":\n {\n this.form.setFieldError(this.allFields.get(\"zip\").node, getTid(\"publisher:site.forms.addressfield.zip_not_found\"), { reportimmediately: true });\n break;\n }\n case \"address_not_found\":\n {\n this.form.setFieldError(this._getFirstCountrySpecificField().node, getTid(\"publisher:site.forms.addressfield.address_not_found\"), { reportimmediately: true });\n break;\n }\n case \"different_citystreet\": // This can happen when fields have been set for another country, we'll update those fields with correct values\n case \"incomplete\":\n {\n let anychanges = false;\n this._updatingFields = true;\n this.allFields.forEach((field, key) =>\n {\n if (key in result.looked_up)\n {\n dompack.changeValue(field.node, result.looked_up[key]);\n anychanges = true;\n }\n });\n this._updatingFields = false;\n if (anychanges)\n this.form.refreshConditions();\n break;\n }\n case \"lookup_failed\":\n {\n console.error(\"Lookup failed, is the service configured correctly?\");\n break;\n }\n default:\n {\n console.error(`Unknown status code '${result.status}' returned`);\n break;\n }\n }\n }\n}\n","import * as dompack from \"dompack\";\nimport { getTid } from \"@mod-tollium/js/gettid\";\nimport \"./arrayfield.css\";\n\nexport default class ArrayField\n{\n constructor(node, options)\n {\n this.node = node;\n this.name = node.dataset.whFormGroupFor;\n this.nextnewrowid = 0;\n this.form = this.node.closest(\"form\").propWhFormhandler;\n\n // The template for new rows\n this.template = node.querySelector(\"template\");\n this.template.parentNode.removeChild(this.template);\n\n // The node before which to add new rows\n this.insertPoint = this.node.querySelector(\".wh-form__arrayadd\");\n\n // Event handler for add/delete button clicks\n this.node.addEventListener(\"click\", event => this._onClick(event));\n\n // Proxy node for getting/setting properties and receiving events\n this.valueNode = this.node.querySelector(\".wh-form__arrayinput\");\n this.valueNode.whUseFormGetValue = true;\n this.valueNode.addEventListener(\"wh:form-getvalue\", event => this._onGetValue(event));\n\n // Initialize initial value rows\n for (let rownode of this.node.querySelectorAll(\".wh-form__arrayrow\"))\n this._fixupRowNode(rownode);\n\n this._checkValidity();\n }\n\n addRow()\n {\n // Instatiate a new row\n let newrow = this.template.content.cloneNode(true);\n newrow.firstChild.dataset.whFormRowid = (this.nextnewrowid++);\n this._fixupRowNode(newrow.firstChild);\n\n // Insert the new row\n this.insertPoint.parentNode.insertBefore(newrow, this.insertPoint);\n dompack.registerMissed(this.insertPoint.previousSibling);\n this._checkValidity();\n }\n/* seems a unused API ?. .. if we need to provide this, just let people pass us a row node instead of understanding IDs\n removeRow(id)\n {\n // Remove a row by id\n let node = this.node.querySelector(`.wh-form__arrayrow[data-row-id=${id}]`);\n if (node)\n this._removeRowNode(node);\n }\n*/\n _onClick(event)\n {\n // Check if the add button was clicked\n if (event.target.closest(\".wh-form__arrayadd\"))\n {\n event.preventDefault();\n this.addRow();\n return;\n }\n\n // Check if a delete button was clicked\n let delNode = event.target.closest(\".wh-form__arraydelete\");\n if (delNode)\n {\n event.preventDefault();\n this._removeRowNode(delNode.closest(\".wh-form__arrayrow\"));\n }\n }\n\n _onGetValue(event)\n {\n // We're using the deferred promise to return our value\n event.preventDefault();\n event.stopPropagation();\n\n // Create a promise for each row that resolves with the combined value of all fields in the row\n let valuePromises = [];\n for (let row of dompack.qSA(this.node, \".wh-form__arrayrow\"))\n {\n let rowFields = this._queryAllFields(row);\n // Create a promise for each of the row's subfields to get its value\n let rowPromises = rowFields.map(field => this.form._getQueryiedFieldValue(field));\n // Add an all promise for the value promises and add it to the list of row promises\n valuePromises.push(Promise.all(rowPromises).then(values =>\n {\n // Combine the values into a value object for this row\n let rowValue = { formrowid: row.dataset.whFormRowid };\n values.forEach((value, idx) =>\n {\n // The values are returned in the order that the promises were added to the list of value promises, so we can use\n // the index of the value to get the original field\n\n let firstnode = rowFields[idx].node || rowFields[idx].nodes[0];\n rowValue[firstnode.dataset.whFormCellname] = value;\n });\n return rowValue;\n }));\n }\n // Wait for all the row promises (which resolves with a list of promise resolution values, which will be the final value\n // of the array field)\n Promise.all(valuePromises).then(valueRows => event.detail.deferred.resolve(valueRows));\n }\n\n _fixupRowNode(node)\n {\n let rowid = node.dataset.whFormRowid;\n\n // Rename all fields to avoid duplicate field names\n for (let field of this._queryAllFields(node))\n for (let fieldnode of (field.nodes || [field.node]))\n {\n //TODO: Update id's as well!\n fieldnode.dataset.whFormCellname = field.name.substr(this.name.length + 1);\n let subname = this.valueNode.dataset.whFormName + \"-\" + field.name + \"-\" + rowid;\n if (fieldnode.dataset.whFormName)\n fieldnode.dataset.whFormName = subname;\n else\n fieldnode.name = subname;\n }\n }\n\n _removeRowNode(node)\n {\n // Remove the row node\n node.parentNode.removeChild(node);\n this._checkValidity();\n }\n\n _checkValidity()\n {\n const minRows = parseInt(this.valueNode.dataset.whMin) || 0;\n const maxRows = parseInt(this.valueNode.dataset.whMax) || 0;\n\n const numRows = this.node.querySelectorAll(\".wh-form__arrayrow\").length;\n if (numRows < minRows)\n this.valueNode.setCustomValidity(getTid(\"publisher:site.forms.commonerrors.minarray\", minRows));\n else if (maxRows > 0 && numRows > maxRows)\n this.valueNode.setCustomValidity(getTid(\"publisher:site.forms.commonerrors.maxarray\", maxRows));\n else\n this.valueNode.setCustomValidity(\"\");\n\n // Disable the add button if the maximum number of rows is reached\n if (maxRows > 0 && numRows >= maxRows)\n this.node.classList.add(\"wh-form__array--maxrows\");\n else\n this.node.classList.remove(\"wh-form__array--maxrows\");\n }\n\n _queryAllFields(node)\n {\n return this.form._queryAllFields({ startnode: node, skipfield: this.valueNode });\n }\n}\n","import * as dompack from 'dompack';\nimport { getCaptchaResponse } from \"@mod-publisher/js/captcha/api\";\n\nexport default class CaptchaField\n{\n constructor(node)\n {\n this.response = '';\n this.node = node;\n this.node.addEventListener('wh:form-getvalue', evt => this._getValue(evt));\n this.node.addEventListener('wh:form-setfielderror', evt => this._setFieldError(evt));\n }\n _getValue(evt)\n {\n dompack.stop(evt);\n evt.detail.deferred.resolve(this.response);\n }\n async _setFieldError(evt)\n {\n dompack.stop(evt);\n if(!evt.detail.error) //error cleared\n return;\n if(!evt.detail.metadata.apikey)\n throw new Error(\"No apikey received in captcha error message\");\n\n //ADDME start a modality layer? coordinate with form? make sure this executes only once!\n let result = await getCaptchaResponse(evt.detail.metadata.apikey, { busycomponent: this.node });\n if(result)\n {\n this.response = result;\n //FIXME: We should make sure the same button (submitter) is pressed again, and we should also submit the original\n // extradata... It's probably better to have the captcha field use the same (kind of) confirmation flow as the\n // mail confirmation handler. This also has the benefit that the field value is already stored, which would allow\n // the result to be confirmed in the backend, if a user is stuck on the captcha.\n this.node.closest('form').propWhFormhandler._doSubmit();\n }\n }\n}\n","export var captcharegistry = {};\n\nexport async function getCaptchaResponse(apikey, options)\n{\n if(!captcharegistry[\"google-recaptcha\"]) //only supported one so far\n throw new Error(\"No captcha provider registered\");\n return await captcharegistry[\"google-recaptcha\"].getResponse(apikey, options);\n}\n","import * as dompack from \"dompack\";\nimport * as domdebug from \"dompack/src/debug\";\nimport * as browser from \"dompack/extra/browser\";\nimport * as cookie from \"dompack/extra/cookie\";\nimport * as whintegration from \"@mod-system/js/wh/integration\";\n\nconst eventname_regex = /^[\\w:]+$/;\nconst datakey_regex = /^(ds_[0-9a-z_]+)|(dn_[0-9a-z_]+)|(db_[0-9a-z_]+)$/;\n/*TODO: Not sure yet what the new maximum URL length will be\nconst max_data_length = 600; // The maximum number of bytes stored for the request*/\nconst max_sessionid_age = 30;\n\nlet globalOptions;\nlet pagesession; //current page session id (used to track multiple events from single page)\nlet isaltsample; //send events for this page to the altrecordurl\nlet seqnr = 0;\n\n/** @short Set global pxl options\n @param options Set to null to reset the global options to their defaults\n @cell options.donottrack Set to \"0\" or \"1\" to explicitly allow resp. refuse tracking, or set to \"unspecified\", which\n means the browser's Do Not Track setting is used. Defaults to \"0\".\n @cell options.recordurl Base url to which to send PXL events. Defaults to \"/.px/\".\n @cell options.altsamplerate Sample rate for the alternative record url as a fraction of the number of events, for example,\n setting it to 1/100 sends 1 in 100 events to the alternative record url. Defaults to 0 (no sampling).\n @cell options.altrecordurl Alternative record url. Defaults to \"/.px/alt/\".\n @cell options.sessionexpiration The number of days the user id is valid. Defaults to 30.\n @cell options.nobrowserenvironment Set to true to omit some browser context fields (\"bu\", \"bs\" and \"bp\"). This option can\n be used to reduce the length of the pxl url. Defaults to false.\n*/\nexport function setPxlOptions(options)\n{\n globalOptions = { donottrack: \"0\"\n , recordurl: \"/.px/\"\n , altsamplerate: 0\n , altrecordurl: \"/.px/alt/\"\n , sessionexpiration: max_sessionid_age\n , nobrowserenvironment: false\n , debug: !!domdebug.debugflags.pxl\n , ...(!options ? null : globalOptions) // Keep existing options if not resetting to default\n , ...options // And apply the new ones\n };\n\n if (globalOptions.altrecordurl && globalOptions.altsamplerate)\n {\n isaltsample = Math.random() < globalOptions.altsamplerate;\n if (globalOptions.debug)\n console.log(`[pxl] using altrecordurl for ${100 * globalOptions.altsamplerate}% of pageloads, this session is sent to the ${isaltsample ? \"alternative\" : \"normal\"} url`);\n }\n else\n isaltsample = false;\n}\n\nfunction pxlFailed(errormessage, ...params)\n{\n console.error('[pxl] ' + errormessage, ...params);\n if(!whintegration.config.islive)\n throw new Error(errormessage); //big errors on test servers\n return null;\n}\n\nexport function makePxlUrl(baseurl, eventname, data, options)\n{\n options = { ...globalOptions, ...options };\n\n if (typeof eventname != \"string\")\n return pxlFailed(`Invalid eventname name '${eventname}', expected string, got ${typeof eventname}`);\n if (!eventname_regex.test(eventname))\n return pxlFailed(`Invalid eventname name '${eventname}', must only contain letters, digits, underscores and colons`);\n if (data && typeof data != \"object\")\n return pxlFailed(`Invalid data, expected object, got ${typeof data}`);\n\n if(!pagesession)\n pagesession = generateId();\n\n //not using URL object, simplifies support of relative URLs\n let var_sep = baseurl.includes(\"?\") ? \"&\" : \"?\";\n let url = `${baseurl}${var_sep}pe=${encodeURIComponent(eventname)}&pp=${encodeURIComponent(pagesession)}&pc=${++seqnr}`;\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/navigator/doNotTrack\n // The 'doNotTrack' option overrides the browser setting if not \"unspecified\"\n let donottrack = options.donottrack == \"1\" || (options.donottrack == \"unspecified\" && (window.navigator.doNotTrack == \"1\" || window.navigator.doNotTrack == \"yes\" || window.navigator.msDoNotTrack == \"1\"));\n if (!donottrack)\n url += `&pi=${encodeURIComponent(getPxlId())}&ps=${encodeURIComponent(getPxlSessionId())}`;\n else if (globalOptions.debug)\n console.log(`[pxl] Do Not Track is set, not adding pi and ps`);\n\n if (globalOptions.altsamplerate)\n url += `&pr=${globalOptions.altsamplerate}`;\n\n if (document.location)\n url += `&bl=${encodeURIComponent(document.location.href)}`;\n if (document.referrer)\n url += `&br=${encodeURIComponent(document.referrer)}`;\n url += `&bt=${encodeURIComponent(browser.getTriplet())}`;\n let device = browser.getDevice();\n if (device)\n url += `&bd=${encodeURIComponent(device)}`;\n if (!options.nobrowserenvironment)\n {\n url += `&bu=${encodeURIComponent(window.navigator.userAgent)}`;\n if (window.screen.width && window.screen.height)\n url += `&bs=${window.screen.width}x${window.screen.height}`;\n if (window.devicePixelRatio)\n url += `&bp=${window.devicePixelRatio}`;\n }\n\n if (data)\n {\n for (let name of Object.keys(data))\n {\n let test = datakey_regex.exec(name);\n if (!test)\n return pxlFailed(`Invalid data field name '${name}', should be ds_XXX, dn_XXX or db_XXX with X consisting of characters in the range 0-9, a-z or an underscore`);\n\n let value = data[name];\n let type = typeof data[name];\n\n if (test[1]) // String\n {\n if (!value)\n value = \"\";\n else if (type != \"string\")\n return pxlFailed(`Invalid value type '${type}', expected 'string' for field '${name}'`);\n\n url += `&${name}=${encodeURIComponent(value)}`;\n }\n else if (test[2]) // Number\n {\n if (!value)\n value = 0;\n else if (type != \"number\")\n return pxlFailed(`Invalid value type '${type}', expected 'number' for field '${name}'`);\n\n url += `&${name}=${value}`;\n }\n else if (test[3]) // Boolean\n {\n if (!value)\n value = false;\n else if (type != \"boolean\")\n return pxlFailed(`Invalid value type '${type}', expected 'boolean' for field '${name}'`);\n\n url += `&${name}=${value}`;\n }\n }\n }\n return url;\n}\n\nexport function getPxlId(options)\n{\n options = { ...globalOptions, ...options };\n\n //Chrome's cookie block setting throws when acessing window.localStorage, so check for it in a safer way\n let havelocalstorage = true;\n try { window.localStorage.getItem(\"_wh.pi\"); }\n catch(ignore) { havelocalstorage = false; }\n\n // Use localStorage if available, otherwise just use a cookie\n if (havelocalstorage)\n {\n let expiration = new Date();\n let id = localStorage.getItem(\"_wh.pi\");\n if (id)\n {\n let timestamp = new Date(localStorage.getItem(\"_wh.ti\"));\n if (timestamp > expiration)\n {\n if (options.debug)\n console.log(`[pxl] Using id ${id} from localStorage`);\n return id;\n }\n if (options.debug)\n console.log(`[pxl] Id from localStorage has expired (${timestamp} <= ${expiration})`);\n }\n id = generateId();\n expiration = new Date(expiration.getTime() + options.sessionexpiration * 24*60*60*1000);\n localStorage.setItem(\"_wh.pi\", id);\n localStorage.setItem(\"_wh.ti\", expiration.toISOString());\n if (options.debug)\n console.log(`[pxl] Storing id ${id} in localStorage with expiration date ${expiration}`);\n return id;\n }\n else\n {\n let id = cookie.read(\"_wh.pi\");\n if (!id)\n {\n id = generateId();\n cookie.write(\"_wh.pi\", id, { duration: options.sessionexpiration });\n if (options.debug)\n console.log(`[pxl] Storing user id ${id} in cookie`);\n }\n else if (options.debug)\n console.log(`[pxl] Using user id ${id} from cookie`);\n return id;\n }\n}\n\nfunction getPxlSessionId(options)\n{\n options = { ...globalOptions, ...options };\n\n let id = cookie.read(\"_wh.ps\");\n if (!id)\n {\n id = generateId();\n cookie.write(\"_wh.ps\", id);\n if (options.debug)\n console.log(`[pxl] Storing session id ${id} in cookie`);\n }\n else if (options.debug)\n console.log(`[pxl] Using session id ${id} from cookie`);\n return id;\n}\n\n/** Send a pxl event\n @param event Event type, preferably in the format 'module:event'\n @param data Event data. A map whose keys must start with either ds_ (string), db_ (boolean) or dn_ (number)\n @param options\n @cell options.node Node responsible for generating this event (if not set, 'window' is assumed). Used for the event handlers\n*/\nexport function sendPxlEvent(event, data, options)\n{\n options = { ...globalOptions, ...options };\n\n if(!dompack.dispatchCustomEvent(options.node || window, \"consilio:pxl\", { bubbles:true, cancelable:true, defaulthandler: pingPxlEvent, detail: { event, data, options, isaltsample } }))\n {\n if(options.debug)\n console.log(`[pxl] Event of type '${event}' cancelled by consilio:pxl event handler`);\n }\n}\n\nfunction pingPxlEvent(evt)\n{\n // determine the recordurl for this page\n const isaltsample = evt.detail.isaltsample;\n const event = evt.detail.event;\n const data = evt.detail.data;\n const options = evt.detail.options;\n const baseurl = isaltsample ? options.altrecordurl : options.recordurl;\n\n // Add the pxl event to the url\n let url = makePxlUrl(baseurl, event, data, options);\n if(!url)\n return;\n\n if (!window.whPxlLog)\n window.whPxlLog = [];\n window.whPxlLog.push({event,data,options,isaltsample});\n if (options.debug)\n console.log(`[pxl] Event '${event}'`,data);\n\n if(options.beacon)\n {\n if(window.navigator.sendBeacon)\n {\n if (options.debug)\n console.log(`[pxl] Beacon-pinging pxl '${url}' (sendBeacon)`);\n navigator.sendBeacon(url);\n }\n else\n {\n if (options.debug)\n console.log(`[pxl] Beacon-pinging pxl '${url}' (sync XHR)`);\n\n let xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", url, false);\n xhr.send();\n\n if (options.debug)\n console.log(`[pxl] Beacon-pinging pxl '${url}' - sync XHR done!`);\n }\n }\n else\n {\n // Load the pxl file using fetch TODO DOES IE11 support no-cors? Or just switch to loading\n let promise = fetch(url, { mode: \"no-cors\", method: \"HEAD\", credentials: \"same-origin\", cache: \"no-store\", keepalive: true });\n if (options.debug)\n {\n console.log(`[pxl] Pinging pxl '${url}'`);\n promise.then(() =>\n {\n console.log(`[pxl] Pinged pxl`);\n }).catch(error =>\n {\n console.error(`[pxl] Error while pinging pxl`, error);\n });\n }\n else\n {\n promise.catch(function(){}); //we don't really care about failed fetches, but don't turn them into unhandled rejections\n }\n }\n}\n\nfunction makePart()\n{\n return (\"00000000\" + Math.abs(Date.now() ^ Math.floor(Math.random() * 4000000000)).toString(16)).substr(-8);\n}\nexport function generateId()\n{\n return makePart() + makePart();\n}\n\nsetPxlOptions(null);\n","import * as dompack from 'dompack';\nimport * as focus from 'dompack/browserfix/focus';\nimport * as browser from 'dompack/extra/browser';\nimport * as merge from './internal/merge';\nimport FormBase from './formbase';\nimport RPCClient from '@mod-system/js/wh/rpc';\nimport * as whintegration from '@mod-system/js/wh/integration';\nimport * as emailvalidation from './internal/emailvalidation';\nimport { runMessageBox } from 'dompack/api/dialog';\n\nfunction supportsScrollIntoViewBehavior() //http://caniuse.com/#feat=scrollintoview\n{\n return [\"firefox\",\"chrome\"].includes(browser.getName());\n}\n\nexport default class RPCFormBase extends FormBase\n{\n constructor(formnode)\n {\n super(formnode);\n this.__formhandler = { errors: []\n , warnings: []\n , formid: formnode.dataset.whFormId\n , formref: formnode.dataset.whFormRef\n , url: location.href.split('/').slice(3).join('/')\n };\n this.pendingrpcs = [];\n\n if(!this.__formhandler.formid)\n {\n if(!whintegration.config.islive)\n console.error(\"Missing data-wh-form-id on form, did your witty apply '[form.formattributes]' to the tag ?\", formnode);\n throw new Error(\"Form does not appear to be a WebHare form\");\n }\n\n this.formservice = new RPCClient(this.__formhandler.formid == \"-\" ? \"\" : \"publisher:forms\");\n }\n\n getServiceSubmitInfo() //submitinfo as required by some RPCs\n {\n return { formid: this.__formhandler.formid\n , formref: this.__formhandler.formref\n , url: this.__formhandler.url\n };\n }\n\n //Invoke a function on the form on the server\n async _invokeRPC(background, ...invokeargs)\n {\n let waiter = dompack.createDeferred();\n\n if(!background)\n this.onRPC(waiter.promise);\n\n let lock = dompack.flagUIBusy({ ismodal: !background, component: this.node });\n try\n {\n let options;\n if(typeof invokeargs[0] == 'object') //receiving optiions first\n options = invokeargs.shift();\n\n let formvalue = await this.getFormValue();\n let methodname = invokeargs.shift();\n let rpc = this.formservice.invoke( options || {}\n , \"callFormService\"\n , \"invoke\"\n , { ...this.getServiceSubmitInfo()\n , fields: formvalue\n , methodname: methodname\n , args: invokeargs\n });\n this.pendingrpcs.push(rpc);\n let result = await rpc;\n this._processMessages(result.messages);\n return result.result;\n }\n finally\n {\n lock.release();\n waiter.resolve();\n }\n }\n\n /* Override this to implement support for incoming field messages */\n processFieldMessage(field, prop, value)\n {\n let fieldnode = this.node.querySelector(`*[name=\"${CSS.escape(field)}\"], *[data-wh-form-name=\"${CSS.escape(field)}\"]`);\n if(!fieldnode)\n {\n console.warn(\"Message for non-existent field: \" + field + \", prop: \" + prop + \", value: \" + value.toString());\n return;\n }\n if(prop == 'value')\n {\n this.setFieldValue(fieldnode, value);\n return;\n }\n console.warn(\"Unknown field message: field: \" + field + \", prop: \" + prop + \", value: \" + value.toString());\n }\n\n //Override this function to easily submit extra fields\n getFormExtraSubmitData()\n {\n return {};\n }\n\n //Invoked when RPC is occuring. Is passed a promise that will resolve on completion\n //onRPC is DEPRECATED, switching to event based api\n onRPC(promise)\n {\n }\n\n /** Invoke a function on the form on the server\n @param options RPC invoke options (optional)\n @param methodname Name of the function on the form\n @param args Arguments for the function\n @return Promise that resolves to the result of the rpc call\n */\n invokeRPC(...args)\n {\n return this._invokeRPC(false, ...args);\n }\n\n /** Invoke a function on the form on the server, doesn't call .onRPC or request modality layers\n @param options RPC invoke options (optional)\n @param methodname Name of the function on the form\n @param args Arguments for the function\n @return Promise that resolves to the result of the rpc call\n */\n invokeBackgroundRPC(...args)\n {\n return this._invokeRPC(true, ...args);\n }\n\n _processMessages(messages)\n {\n for(let msg of messages)\n {\n this.processFieldMessage(msg.field, msg.prop, msg.data);\n }\n }\n\n async _flushPendingRPCs()\n {\n while(this.pendingrpcs.length)\n {\n try\n {\n await this.pendingrpcs.pop();\n }\n catch(ignore)\n {\n //*we* can't handle those...\n }\n }\n }\n\n async submit(extradata)\n {\n //ADDME timeout and free the form after some time\n if(this.__formhandler.submitting) //throwing is the safest solution... having the caller register a second resolve is too dangerous\n throw new Error(\"The form is already being submitted\");\n\n let waiter = dompack.createDeferred();\n let insubmitrpc = false;\n this.onRPC(waiter.promise);\n\n let eventdetail = { form: this.node\n , rpchandler: this\n };\n await this._flushPendingRPCs();\n try\n {\n this.__formhandler.submitting = true;\n\n //Request extrasubmit first, so that if it returns a promise, it can execute in parallel with getFormValue\n let extrasubmit = this.getFormExtraSubmitData();\n eventdetail.extrasubmitdata = extrasubmit;\n\n let formvalue = await this.getFormValue();\n eventdetail.submitted = formvalue;\n\n if(extrasubmit && extrasubmit.then) //got a promise? expand it\n extrasubmit = await extrasubmit;\n\n extrasubmit = { ...extradata\n , ...extrasubmit\n };\n\n /* make sure no getFormValue RPCs are still pending, assuming they went through us, eg if an address validation is\n still running (and could update)\n TODO probably wiser to have validators take and hold a submission preventing lock in such a case, but this most closely matches original formservice behavior\n */\n await this._flushPendingRPCs();\n dompack.dispatchCustomEvent(this.node, \"wh:form-preparesubmit\", { bubbles:true, cancelable: false, detail: { extrasubmit: extrasubmit } });\n let submitparameters = { ...this.getServiceSubmitInfo()\n , fields: formvalue\n , extrasubmit: extrasubmit\n };\n\n if(dompack.debugflags.fhv)\n console.log('[fhv] start submission',submitparameters);\n\n insubmitrpc = true; //so we can easily determine exception source\n let result = await this.formservice.invoke(\"callFormService\", \"submit\", submitparameters);\n insubmitrpc = false;\n\n if(dompack.debugflags.fhv)\n console.log('[fhv] received response',result);\n\n if(!dompack.dispatchCustomEvent(this.node, \"wh:form-response\", { bubbles:true, cancelable: true, detail: result }))\n return result;\n\n eventdetail.result = result.result;\n eventdetail.errors = result.errors;\n\n let didfirstfocus = false;\n let globalerrors = [];\n for(let error of result.errors)\n {\n if(!error.name)\n {\n globalerrors.push(error);\n continue;\n }\n\n let failednode = this.node.querySelector('[name=\"' + error.name + '\"], [data-wh-form-name=\"' + error.name + '\"]');\n if(!failednode)\n {\n console.error(\"[fhv] Unable to find node '\" + error.name + \"' which caused error:\" + error.message);\n continue;\n }\n if(!didfirstfocus)\n {\n dompack.focus(failednode);\n didfirstfocus = true;\n }\n FormBase.setFieldError(failednode, error.message, { reportimmediately: true, serverside: true, metadata: error.metadata });\n }\n\n if(result.success)\n {\n dompack.dispatchCustomEvent(this.node, \"wh:form-values\", { bubbles:true, cancelable: false, detail: eventdetail });\n this.sendFormEvent('publisher:formsubmitted', { dn_formmeta_waittime: Date.now() - this._submitstart });\n if(dompack.dispatchCustomEvent(this.node, \"wh:form-submitted\", { bubbles:true, cancelable: true, detail: eventdetail }))\n {\n merge.run(this.node, { form: await this.getFormValue() });\n\n this._navigateToThankYou(result.result && result.result.richvalues);\n this.onSubmitSuccess(result.result);\n }\n }\n else\n {\n let failedfields = result.errors.map(error => error.name || \"*\").sort().join(\" \");\n this.sendFormEvent('publisher:formfailed', { ds_formmeta_errorfields: failedfields\n , ds_formmeta_errorsource: 'server'\n , dn_formmeta_waittime: Date.now() - this._submitstart\n });\n\n if(globalerrors.length)\n {\n if(dompack.dispatchCustomEvent(this.node, \"wh:form-globalerrors\", { bubbles:true, cancelable: true, detail: { globalerrors } }))\n this.displayGlobalErrors(globalerrors);\n }\n\n if(dompack.dispatchCustomEvent(this.node, \"wh:form-failed\", { bubbles:true, cancelable: true, detail: eventdetail }))\n this.onSubmitFailed(result.errors, result.result);\n }\n return result;\n }\n catch(e)\n {\n this.sendFormEvent('publisher:formexception', { ds_formmeta_exception: String(e)\n , ds_formmeta_errorsource: insubmitrpc ? 'server' : 'client'\n , dn_formmeta_waittime: Date.now() - this._submitstart\n });\n\n if(dompack.dispatchCustomEvent(this.node, \"wh:form-exception\", { bubbles:true, cancelable: true, detail: eventdetail }))\n this.onSubmitException(e);\n\n throw e;\n }\n finally\n {\n waiter.resolve();\n this.__formhandler.submitting = false;\n }\n }\n\n displayGlobalErrors(globalerrors)\n {\n try\n {\n let errors = globalerrors.map(error => dompack.create(\"p\", { textContent:error.message }));\n runMessageBox(errors, [ { title: \"OK\" } ]); //TODO: language?\n }\n catch(e)\n {\n console.error(\"runMessageBox failed\",e);\n alert(globalerrors.map(error => error.message).join(\"\\n\"));\n }\n }\n\n //Get the first group that failed error handling\n getFirstFailedGroup()\n {\n return this.node.querySelector(\".wh-form__fieldgroup-error\");\n }\n\n //override this to deal with succesful submissions\n onSubmitSuccess(result)\n {\n let formpos = this.node.getBoundingClientRect();\n if(formpos.top < 0)\n this.node.scrollIntoView(supportsScrollIntoViewBehavior() ? {block:'start', behavior:'smooth'} : true);\n\n if(result && result.resultsguid)\n this.node.dataset.whFormResultguid = result.resultsguid;\n\n if(result && result.submitinstruction)\n whintegration.executeSubmitInstruction(result.submitinstruction);\n }\n\n //override this to deal with failed submissions\n onSubmitFailed(errors, result)\n {\n }\n\n //override this to deal with form exceptions\n onSubmitException(e)\n {\n }\n\n async validateSingleFormField(field)\n {\n if(field.type == \"email\") //TODO perhaps move this to webharefields.es ?\n {\n if(focus.getCurrentlyFocusedElement() == field) //TODO clearing suggestion on change should probably be generalized\n {\n if(field.propWhValidationSuggestion)\n {\n field.propWhValidationSuggestion = null;\n }\n }\n else\n {\n let validation = emailvalidation.validateField(this, field);\n this.pendingrpcs.push(validation);\n if(! (await validation))\n return false;\n }\n }\n return true;\n }\n}\n","/** Get ISO-formatted local date from a date (getISOString returns an UTC datetime) */\nexport function getISOLocalDate(date)\n{\n return date.getFullYear() + '-' + ('0' + (date.getMonth()+1)).substr(-2) + '-' + ('0' + date.getDate()).substr(-2);\n}\n","import * as dompack from 'dompack';\nimport { getTid, getTidLanguage } from \"@mod-tollium/js/gettid\";\nimport * as formservice from './form.rpc.json';\n\nlet cache = {};\n\nfunction mayValidateField(field)\n{\n if(field.disabled || field.readOnly) //FIXME shouldn't we just decide not to validate at a much higher level if something cannot be changed ?\n return false;\n if(field.autocomplete && field.autocomplete.split(' ').includes(\"username\"))\n return false;\n return true;\n}\n\nfunction acceptEmailSuggestion(evt, form, field, suggestion)\n{\n dompack.stop(evt);\n field.value = suggestion;\n field.propWhValidationSuggestion = null;\n form._reportFieldValidity(field);\n}\n\nexport async function validateField(form, field)\n{\n if(!field.value || !mayValidateField(field))\n return true; //not a problem\n\n //user is 'done' with email field apparently. remotely validate it\n let key = \"e_\" + field.value; //e_ prefix protects against funny people using 'constructor' etc\n if(!cache[key])\n cache[key] = formservice.validateEmail(getTidLanguage(), field.value);\n\n //TODO should we ever clear the cache? only relevant probably if someone is on the frontend testing emails and doesn't want to refrehs\n let result = await cache[key];\n if(result)\n {\n if(result.blocked)\n {\n field.propWhValidationError = result.blocked;\n return false;\n }\n else if (result.force)\n {\n field.value = result.force;\n return true;\n }\n else if (result.suggestion)\n {\n let suggestion = getTid(\"publisher:site.forms.commonerrors.email_suggestion\", \"___SUGGESTION___\").split(\"___SUGGESTION___\");\n field.propWhValidationSuggestion = {suggestion[0]}acceptEmailSuggestion(evt, form, field, result.suggestion)}}>{result.suggestion}{suggestion[1]};\n return true;\n }\n }\n return true;\n}\n","/* import ImgEditField from '@mod-publisher/js/forms/fields/imgedit';\n*/\nimport * as dompack from 'dompack';\nimport { getTid } from \"@mod-tollium/js/gettid\";\nimport \"../internal/form.lang.json\";\nimport FileEditBase from './fileeditbase';\nimport './upload.css';\n\n\nfunction getLabelText(node)\n{\n let label;\n if (node.id != \"\")\n {\n let labelnode = document.querySelector(`label[for=\"${node.id}\"]`);\n if (labelnode)\n label = labelnode.textContent;\n\n return label;\n }\n\n return \"\";\n}\n\n\nexport default class UploadField extends FileEditBase\n{\n constructor(node, options)\n {\n super(node, options);\n if(!this.node)\n return; //init cancelled\n\n let label = getLabelText(this.node);\n\n this.node.addEventListener(\"click\", e => this.selectFile(e)); //we still need to intercept clicks, even if we're hiding it\n this.node.addEventListener('dompack:takefocus', evt => this._takeFocus(evt));\n this.replacement = this.selectFile(e) }}>\n { this._filenameinput =\n \n { this._filenamefield =\n \n }\n { this._deletebutton =\n this._doDelete(evt), keypress: evt => this._checkForDelete(evt) }}\n />\n }\n \n }\n { this._uploadbutton = {getTid(\"publisher:site.forms.selectfile\")} }\n ;\n\n dompack.before(this.node, this.replacement);\n\n this.refresh();\n this._afterConstruction();\n }\n _updateEnabledStatus(nowenabled)\n {\n this.node.disabled = false; //we'll now manually handle disabled status\n this._uploadbutton.disabled = !nowenabled;\n }\n _takeFocus(evt)\n {\n evt.preventDefault();\n dompack.focus(this.replacement.querySelector(\"button\"));\n }\n\n // check whether the delete button was activated through a keypress\n _checkForDelete(evt)\n {\n // We only interested when the enter or space key was pressed\n if (evt.keyCode != 13 && evt.keyCode != 32)\n return;\n\n this._doDelete(evt);\n }\n\n _doDelete(evt)\n {\n dompack.stop(evt);\n if(!this._getEnabled())\n return;\n\n this.node.dataset.whFilename='';\n this.node.dataset.whFileurl='';\n this.refresh();\n dompack.dispatchCustomEvent(this.node, 'change', { bubbles: true, cancelable: false });\n }\n refresh()\n {\n let filename = this.node.dataset.whFilename || '';\n let hasfile = !!this.node.dataset.whFileurl;\n\n this._filenamefield.value = filename;\n dompack.toggleClass(this.replacement, \"wh-form__uploadfield--hasfile\", hasfile);\n }\n getFieldValueLink()\n {\n return this.node.dataset.whFileurl;\n }\n async handleUploadedFile(result)\n {\n this.node.dataset.whFileurl = result.url;\n //this.filesize = result.size; - size is there if we need it, but not using it yet\n this.refresh();\n }\n}\n","/* import ImgEditField from '@mod-publisher/js/forms/fields/imgedit';\n*/\nimport * as dompack from 'dompack';\nimport * as preload from 'dompack/extra/preload';\nimport { getTid } from \"@mod-tollium/js/gettid\";\nimport FileEditBase from './fileeditbase';\nimport './imgedit.css';\n\n// also used in testimgedit.es\nexport function readBackgroundUrl(imgnode)\n{\n if (!imgnode)\n return \"\";\n let prop = getComputedStyle(imgnode).backgroundImage;\n if (prop && prop.match(/url\\(.*\\)/))\n {\n let url = prop.substr(4, prop.length - 5);\n if (url[0] == url[url.length - 1] && (url[0] == \"'\" || url[0] == '\"'))\n url = url.substr(1, url.length - 2);\n return url;\n }\n return \"\";\n}\n\nexport default class ImgEditField extends FileEditBase\n{\n constructor(node, options)\n {\n super(node, options);\n this.node.addEventListener('click', evt => this.selectFile(evt));\n this.node.addEventListener(\"keypress\", evt => this.checkForUploadOrClear(evt)); // handle space+enter to active\n\n this.setupComponent();\n if (window.FileReader)\n {\n this.node.addEventListener(\"dragover\", evt => evt.preventDefault());\n this.node.addEventListener(\"dragenter\", evt => evt.preventDefault());\n this.node.addEventListener(\"drop\", evt => this.doDrop(evt));\n }\n this._afterConstruction();\n }\n\n checkForUploadOrClear(evt)\n {\n // We're only interested when the enter or space key was pressed\n if (evt.keyCode != 13 && evt.keyCode != 32)\n return;\n\n let deletebutton = evt.target.closest(\".wh-form__imgeditdelete\");\n if (deletebutton)\n {\n dompack.stop(evt);\n this.doDelete(evt);\n return;\n }\n\n dompack.stop(evt);\n this.selectFile(evt);\n }\n\n _updateEnabledStatus(nowenabled)\n {\n this.node.tabIndex = nowenabled ? 0 : -1;\n\n if (this.deletebutton) // it is created the first time it's needed\n this.deletebutton.tabIndex = nowenabled ? 0 : -1;\n\n if(nowenabled)\n this.node.removeAttribute(\"data-wh-form-disabled\");\n else\n this.node.setAttribute(\"data-wh-form-disabled\",\"\");\n }\n getFieldValueLink()\n {\n let imgnode = this.node.querySelector('.wh-form__imgeditimg');\n return readBackgroundUrl(imgnode);\n }\n setupComponent()\n {\n if(!this.node.querySelector('.wh-form__imgeditimg')) //we don't have an image to edit\n {\n if(this.deletebutton && this.node.contains(this.deletebutton))\n dompack.remove(this.deletebutton);\n\n this.node.classList.remove('wh-form__imgedit--hasimage');\n\n // Set the aria-label to a combined label of the field together with the action which activating it through click/enter/space will perform\n this.node.setAttribute(\"aria-label\", getTid(\"publisher:site.forms.imgedit-groupelement-upload\", this.node.dataset.arialabel));\n\n return;\n }\n\n this.node.classList.add('wh-form__imgedit--hasimage');\n\n // Set the aria-label to a combined label of the field together with the action which activating it through click/enter/space will perform\n this.node.setAttribute(\"aria-label\", getTid(\"publisher:site.forms.imgedit-groupelement-replace\", this.node.dataset.arialabel));\n\n // if we already created the delete button, reinsert it into the DOM\n if(this.deletebutton)\n {\n this.node.appendChild(this.deletebutton);\n return;\n }\n\n\n this.deletebutton =\n this.doDelete(evt) }}\n aria-label={getTid(\"publisher:site.forms.imgedit-remove\")}\n tabindex=\"0\"\n role=\"button\"\n >\n \n\n this.node.appendChild(this.deletebutton);\n dompack.registerMissed(this.node); //allow anyone to pick up the delete button\n }\n doDrop(evt)\n {\n evt.preventDefault();\n\n let lock = dompack.flagUIBusy();\n let files = evt.dataTransfer.files;\n this.uploadFile(files, lock);\n }\n doDelete(evt)\n {\n dompack.stop(evt);\n if(!this._getEnabled())\n return;\n\n let imgnode = this.node.querySelector('.wh-form__imgeditimg');\n let changed = false;\n if(imgnode)\n {\n dompack.remove(imgnode);\n changed = true;\n }\n this.setupComponent();\n if (changed)\n dompack.dispatchCustomEvent(this.node, 'change', { bubbles: true, cancelable: false });\n }\n async handleUploadedFile(result)\n {\n //ADDME maxsize? files[0].size....\n\n /* We MUST work through the server to get proper JPEG rotation fixes. So we\n can't just take a dataurl and preview it immediately (not without parsing EXIF)\n until we'd support image-editor integration */\n\n if( !result.type || result.type.indexOf(\"image/\") != 0 )\n return;//Not an image\n\n let imgpreload = await preload.promiseImage(result.url);\n if(!imgpreload.width || !imgpreload.height)\n return;\n\n this.uploadurl = result.url;\n\n let holder = this.node.querySelector('.wh-form__imgeditholder');\n if(!holder)\n throw new Error(\"Cannot process image, missing wh-form__imgeditholder holder\");\n\n dompack.empty(holder);\n let imgnode = document.createElement(\"div\");\n imgnode.classList.add('wh-form__imgeditimg');\n imgnode.style.backgroundImage = `url('${imgpreload.node.src}')`;\n holder.appendChild(imgnode);\n this.setupComponent();\n //FIXME this is just a webserver temporary session, need to get URLs with longer persistence\n }\n}\n","/** Generic support for .wh-form .wh-rtd--forminput */\nimport * as dompack from 'dompack';\n\n//we delay load the RTE, but we still need its styling - we don't have a delayed load for SCSS yet\nimport '@mod-tollium/web/ui/components/richeditor/styling.es';\n\nlet richeditor;\n\n/** options.onInsertVideo: function(node) - should return a promise resolving to an instance if the insertion is successful, or resolve to null if cancelled. receives the html rteedit node on which we're invoked */\n\nexport default class RTDField\n{\n constructor(node, options)\n {\n this.node = node;\n this.node.whRTDField = this;\n this.options = {...options};\n\n let specifiedopts = JSON.parse(node.dataset.whRtdoptions||'{}');\n let structure = specifiedopts.structure || null;\n let hidebuttons = this.options.hidebuttons ? this.options.hidebuttons : [];\n\n if(!this.options.onInsertVideo)\n hidebuttons.push('object-video');\n if (structure && !structure.blockstyles.some(style => style.type == \"table\"))\n hidebuttons.push(\"table\");\n hidebuttons.push('object-insert');\n hidebuttons.push('action-showformatting');\n\n let rtdoptions =\n { enabled: true\n , readonly: false\n , backgroundcolor: 'transparent'\n , structure: structure\n , allowtags: null//data.allowtags.length ? data.allowtags : null\n , hidebuttons: hidebuttons\n , editembeddedobjects:false\n , ...this.options.rtdoptions\n };\n //FIXME\n //, onStatechange: this._onRTEStateChange.bind(this)\n //FIXME\n //, language: 'en'//parent.app.lang // FIXME\n //, log:true\n //FIXME , structure: data.structure\n //, csslinks: [data.cssurl]\n //, cssinstance: data.cssinstance\n //, breakupnodes: this.isemaileditor ? [ 'blockquote' ] : []\n //, hidebuttons: hidebuttons\n //, htmlclass: data.htmlclass\n //, bodyclass: data.bodyclass\n //, csscode: data.csscode\n\n this._fieldgroup = this.node.closest(\".wh-form__fieldgroup\");\n this.setupRTE(node, rtdoptions);\n }\n async setupRTE(node, rtdoptions)\n {\n if(!richeditor)\n if(typeof System !== 'undefined')\n richeditor = await System.import('@mod-tollium/web/ui/components/richeditor/editor.es');\n else\n richeditor = await import('@mod-tollium/web/ui/components/richeditor/editor.es');\n\n this.rte = new richeditor.RTE(node, { ...rtdoptions\n , enabled: this._getEnabled() //initial enabled state\n });\n\n node.addEventListener('wh:form-getvalue', evt => { evt.preventDefault(); evt.detail.deferred.resolve(this.rte.getValue()); });\n node.addEventListener('wh:form-setvalue', evt => { evt.preventDefault(); this.rte.setValue(evt.detail.value); });\n node.addEventListener('wh:richeditor-action', evt => this.executeAction(evt));\n node.addEventListener('wh:richeditor-dirty', evt => dompack.dispatchCustomEvent(this.node, 'input', { bubbles: true, cancelable: false }));\n\n if(this._fieldgroup)\n {\n this.node.dataset.whFormStateListener = true;\n this.node.addEventListener('wh:form-enable', evt => this._handleEnable(evt));\n }\n }\n\n async executeAction(evt)\n {\n if(evt.detail.action == 'object-video' && this.options.onInsertVideo)\n {\n evt.stopPropagation();\n evt.preventDefault();\n this.options.onInsertVideo(this.node);\n return;\n }\n }\n\n async insertVideoByURL(url)\n {\n let formhandler = this.node.closest('form').propWhFormhandler;\n let result = await formhandler.invokeRPC(this.node.dataset.whFormName + '.insertVideoByUrl', url);\n if(!result.success)\n return { success:false, message: \"Video URL not understood\" };\n\n this.rte.getEditor().insertEmbeddedObject(result.embeddedobject);\n return { success: true };\n }\n\n _getEnabled()\n {\n return !(this._fieldgroup && this._fieldgroup.classList.contains(\"wh-form__fieldgroup--disabled\"));\n }\n _handleEnable(evt)\n {\n dompack.stop(evt);\n this._updateEnabledStatus(this._getEnabled());\n }\n _updateEnabledStatus(nowenabled)\n {\n this.rte.setEnabled(nowenabled);\n if(nowenabled)\n this.node.removeAttribute(\"data-wh-form-disabled\");\n else\n this.node.setAttribute(\"data-wh-form-disabled\",\"\");\n }\n}\n\nRTDField.getForNode = function(node)\n{\n return node.whRTDField || null;\n};\n","/* @import * as dialogapi from 'dompack/api/dialog'\n\n Dialogapi offers an API to which dialog providers cannot connect. It does\n not implement the dialogs themselves\n*/\n\nimport * as dompack from 'dompack';\nimport * as domfocus from 'dompack/browserfix/focus';\nimport KeyboardHandler from \"dompack/extra/keyboard\";\n\nlet dialogstack;\nlet keyhandler;\nlet dialogconstructor = null;\nlet dialogoptions = null;\n\nfunction onEscape(event)\n{\n if(!dialogstack.length)\n return;\n\n dompack.stop(event);\n if(dialogstack[dialogstack.length-1].options.allowcancel)\n dialogstack[dialogstack.length-1].resolve(null);\n}\n\nfunction onTab(event, direction)\n{\n if(!dialogstack.length)\n return;\n\n dompack.stop(event);\n\n let focusable = domfocus.getFocusableComponents(dialogstack[dialogstack.length-1].contentnode, true);\n let tofocusidx = focusable.indexOf(domfocus.getCurrentlyFocusedElement()) + direction;\n let tofocus = tofocusidx< 0 ? focusable[focusable.length-1] : tofocusidx >= focusable.length ? focusable[0] : focusable[tofocusidx];\n if(tofocus)\n dompack.focus(tofocus);\n}\n\nexport class DialogBase\n{\n constructor(options)\n {\n this.options = { allowcancel: true\n , borrow: null\n , signal: null\n , ...options\n };\n\n if(this.options.borrow && typeof this.options.borrow == 'string')\n {\n let borrow = document.querySelector(this.options.borrow);\n if(!borrow)\n throw new Error(\"Invalid 'borrow' selectior: \" + this.options.borrow);\n this.options.borrow = borrow;\n }\n\n if(this.options.borrow)\n {\n this._borrowedfrom = this.options.borrow.parentNode;\n this._borrowednext = this.options.borrow.nextSibling;\n }\n\n if(this.options.signal)\n this.options.signal.addEventListener(\"abort\", () => { this.resolve(null); });\n\n this.contentnode = null;\n this._deferred = dompack.createDeferred();\n this.open = false;\n }\n\n async runModal()\n {\n if(this.open)\n throw new Error(\"Attempting to re-open already opened dialog\");\n\n if(!dialogstack)\n dialogstack = [];\n\n if(!keyhandler)\n keyhandler = new KeyboardHandler(window, { \"Escape\": evt => onEscape(evt)\n , \"Tab\": evt => onTab(evt, +1)\n , \"Shift+Tab\": evt => onTab(evt, -1)\n }, { captureunsafekeys: true, listenoptions: { capture: true }});\n\n this._previousfocus = domfocus.getCurrentlyFocusedElement();\n this._openDialog();\n\n this.open = true;\n dialogstack.push(this);\n\n try\n {\n this.afterShow();\n this._checkFocus();\n return await this._deferred.promise;\n }\n finally\n {\n if(this.open)\n this.closeDialog();\n }\n }\n\n _openDialog()\n {\n throw new Error(\"_openDialog not overridden by dialog class\");\n }\n\n _checkFocus()\n {\n let focusable = domfocus.getFocusableComponents(this.contentnode, true);\n if(focusable.length != 0)\n dompack.focus(focusable[0]);\n else\n dompack.focus(document.body);\n }\n\n //close the dialog. this may be invoked even when inside runModal to ensure synchronous dialog cleanup\n closeDialog()\n {\n if(!this.open)\n return;\n\n let myoffset = dialogstack.indexOf(this);\n if(myoffset >= 0)\n dialogstack.splice(myoffset,1);\n\n this.open = false;\n if(this.options.borrow)\n if(this._borrowedfrom)\n this._borrowedfrom.insertBefore(this.options.borrow, this._borrowednext);\n else\n dompack.remove(this._borrowednext);\n\n if(this.options.focusonclose)\n dompack.focus(this.options.focusonclose);\n else if(this._previousfocus)\n dompack.focus(this._previousfocus);\n\n if(dialogstack.length == 0 && keyhandler)\n {\n keyhandler.destroy();\n keyhandler = null;\n }\n }\n\n //resolve the dialog with the specified answer\n resolve(response)\n {\n if(this.open)\n this.closeDialog();\n this._deferred.resolve(response);\n }\n\n afterShow()\n {\n }\n}\n\nexport function setupDialogs(newdialogconstructor, options)\n{\n if(dialogconstructor)\n {\n console.error(\"Duplicate setupDialogs call!\");\n return;\n }\n\n dialogconstructor = newdialogconstructor;\n dialogoptions = { messageboxclassbase: 'dompack-messagebox__', ...options };\n}\n\n/** Verify whether the dialog api is initialized */\nexport function isCreateDialogAvailable()\n{\n return !!dialogconstructor;\n}\n\n/** Create a dialog */\nexport function createDialog(options)\n{\n if(!dialogconstructor)\n throw new Error(\"Cannot create dialog, no dialog class defined\");\n\n let dialog = dialogconstructor(options);\n if(dialog.options.borrow)\n dialog.contentnode.appendChild(dialog.options.borrow);\n return dialog;\n}\n\n/** @param question - if a string, will be wrapped as textContent into a and presented as the question\n - if a html node, will appear as the question (allowing you to insert html)\n - if an array of nodes, all these nodes will be inserted\n @param choices\n @cell choices.title Title for the choice\n @cell choices.result Override result to return if clicked (otherwise you'll just receive the title)\n @cell(boolean) options.allowcancel Allow the dialog to be cancelled by clicking outside the dialog. Defaults to true if no choices are specified\n @cell(object) options.focusonclose Element to focus on closing the dialog\n @cell(object) options.signal An AbortSignal which if set will close the dialog and resolve it with a null response\n @cell(string) options.theme Additional class to set on the dialog\n*/\nexport async function runMessageBox(question, choices, options)\n{\n choices = choices || [];\n options = { allowcancel: choices.length == 0, ...options};\n\n let dialog = createDialog(options);\n let choicebuttons = choices.map(choice =>\n dompack.create(\"button\", { type: \"button\"\n , className: dialogoptions.messageboxclassbase + \"button \" + (choice.className||'')\n , textContent: choice.title\n , on: { click: evt=> dialog.resolve(choice.result || choice.title) }\n , dataset: { messageboxResult: choice.result || choice.title }\n }));\n\n if(typeof question == 'string')\n question = dompack.create(\"p\", { textContent: question });\n\n if(Array.isArray(question))\n dialog.contentnode.append(...question);\n else\n dialog.contentnode.append(question);\n\n if(dialog.buttonsnode) //this dialog has a separte node for the button area\n dialog.buttonsnode.append(...choicebuttons);\n else\n dialog.contentnode.append(dompack.create(\"div\", { className: dialogoptions.messageboxclassbase + \"buttongroup\"\n , childNodes: choicebuttons\n }));\n\n return dialog.runModal();\n}\n","import '@mod-publisher/js/richcontent/styling.css';\nimport './richeditor.scss';\nimport './internal/buttons.scss';\nimport './internal/widgets.scss';\n"],"sourceRoot":""}
and presented as the question\n - if a html node, will appear as the question (allowing you to insert html)\n - if an array of nodes, all these nodes will be inserted\n @param choices\n @cell choices.title Title for the choice\n @cell choices.result Override result to return if clicked (otherwise you'll just receive the title)\n @cell(boolean) options.allowcancel Allow the dialog to be cancelled by clicking outside the dialog. Defaults to true if no choices are specified\n @cell(object) options.focusonclose Element to focus on closing the dialog\n @cell(object) options.signal An AbortSignal which if set will close the dialog and resolve it with a null response\n @cell(string) options.theme Additional class to set on the dialog\n*/\nexport async function runMessageBox(question, choices, options)\n{\n choices = choices || [];\n options = { allowcancel: choices.length == 0, ...options};\n\n let dialog = createDialog(options);\n let choicebuttons = choices.map(choice =>\n dompack.create(\"button\", { type: \"button\"\n , className: dialogoptions.messageboxclassbase + \"button \" + (choice.className||'')\n , textContent: choice.title\n , on: { click: evt=> dialog.resolve(choice.result || choice.title) }\n , dataset: { messageboxResult: choice.result || choice.title }\n }));\n\n if(typeof question == 'string')\n question = dompack.create(\"p\", { textContent: question });\n\n if(Array.isArray(question))\n dialog.contentnode.append(...question);\n else\n dialog.contentnode.append(question);\n\n if(dialog.buttonsnode) //this dialog has a separte node for the button area\n dialog.buttonsnode.append(...choicebuttons);\n else\n dialog.contentnode.append(dompack.create(\"div\", { className: dialogoptions.messageboxclassbase + \"buttongroup\"\n , childNodes: choicebuttons\n }));\n\n return dialog.runModal();\n}\n","import '@mod-publisher/js/richcontent/styling.css';\nimport './richeditor.scss';\nimport './internal/buttons.scss';\nimport './internal/widgets.scss';\n"],"sourceRoot":""}